diff --git a/classpath/avian/Assembler.java b/classpath/avian/Assembler.java index 6a8cb46f2f..a17b3af81c 100644 --- a/classpath/avian/Assembler.java +++ b/classpath/avian/Assembler.java @@ -67,7 +67,7 @@ public class Assembler { write4(out, 0xCAFEBABE); write2(out, 0); // minor version - write2(out, 0); // major version + write2(out, 50); // major version write2(out, pool.size() + 1); for (PoolEntry e: pool) { diff --git a/classpath/avian/Machine.java b/classpath/avian/Machine.java index 3cb2cbfb40..3b5cf587ac 100644 --- a/classpath/avian/Machine.java +++ b/classpath/avian/Machine.java @@ -11,10 +11,23 @@ package avian; import sun.misc.Unsafe; +import java.lang.reflect.Field; public abstract class Machine { - private static final Unsafe unsafe = Unsafe.getUnsafe(); + private static final Unsafe unsafe; + + static { + Unsafe u; + try { + Field f = Unsafe.class.getDeclaredField("theUnsafe"); + f.setAccessible(true); + u = (Unsafe)f.get(null); + } catch (Exception e) { + u = null; + } + unsafe = u; + } public static native void dumpHeap(String outputFile); diff --git a/classpath/avian/jar/Handler.java b/classpath/avian/jar/Handler.java index 726f12e413..4ac926a911 100644 --- a/classpath/avian/jar/Handler.java +++ b/classpath/avian/jar/Handler.java @@ -70,7 +70,7 @@ public class Handler extends URLStreamHandler { } public int getContentLength() { - return entry.getSize(); + return (int)entry.getSize(); } public InputStream getInputStream() throws IOException { diff --git a/classpath/java/util/jar/JarFile.java b/classpath/java/util/jar/JarFile.java index e173b9738d..dd437eeff2 100644 --- a/classpath/java/util/jar/JarFile.java +++ b/classpath/java/util/jar/JarFile.java @@ -50,7 +50,7 @@ public class JarFile extends ZipFile { } } - public int getCompressedSize() { + public long getCompressedSize() { try { return compressedSize(window, pointer); } catch (IOException e) { @@ -58,7 +58,7 @@ public class JarFile extends ZipFile { } } - public int getSize() { + public long getSize() { try { return uncompressedSize(window, pointer); } catch (IOException e) { diff --git a/classpath/java/util/zip/ZipEntry.java b/classpath/java/util/zip/ZipEntry.java index a7215598a0..97d5887305 100644 --- a/classpath/java/util/zip/ZipEntry.java +++ b/classpath/java/util/zip/ZipEntry.java @@ -42,8 +42,8 @@ public class ZipEntry { int modTimeDate = -1; long millisTime = -1; int crc = -1; - int compSize = 0; - int uncompSize = 0; + long compSize = 0; + long uncompSize = 0; int offset = -1; public ZipEntry(String name) { @@ -191,12 +191,12 @@ public class ZipEntry { uncompSize = size; } - public int getSize() { + public long getSize() { return uncompSize; } //Methods to set and get the compressed size of the entry - public void setCompressedSize(int size){ + public void setCompressedSize(long size){ if (size < 0){ return; } @@ -204,7 +204,7 @@ public class ZipEntry { compSize = size; } - public int getCompressedSize() { + public long getCompressedSize() { return compSize; } } diff --git a/classpath/java/util/zip/ZipFile.java b/classpath/java/util/zip/ZipFile.java index b45fead8f7..8a675ef8fe 100644 --- a/classpath/java/util/zip/ZipFile.java +++ b/classpath/java/util/zip/ZipFile.java @@ -298,7 +298,7 @@ public class ZipFile { } } - public int getCompressedSize() { + public long getCompressedSize() { try { return compressedSize(window, pointer); } catch (IOException e) { @@ -306,7 +306,7 @@ public class ZipFile { } } - public int getSize() { + public long getSize() { try { return uncompressedSize(window, pointer); } catch (IOException e) { diff --git a/classpath/java/util/zip/ZipOutputStream.java b/classpath/java/util/zip/ZipOutputStream.java index 02702218da..7ea16238df 100644 --- a/classpath/java/util/zip/ZipOutputStream.java +++ b/classpath/java/util/zip/ZipOutputStream.java @@ -147,8 +147,8 @@ public class ZipOutputStream extends DeflaterOutputStream { addFourBytes(DATA_DESCRIPTER_HEADER, 0, tmpBuffer); // data descripter header addFourBytes(currentEntry.crc, 4, tmpBuffer); // crc value - addFourBytes(currentEntry.compSize, 8, tmpBuffer); // compressed size - addFourBytes(currentEntry.uncompSize, 12, tmpBuffer);// uncompressed size + addFourBytes((int)currentEntry.compSize, 8, tmpBuffer); // compressed size + addFourBytes((int)currentEntry.uncompSize, 12, tmpBuffer);// uncompressed size out.write(tmpBuffer, 0, 16); bytesWritten += 16; } @@ -164,8 +164,8 @@ public class ZipOutputStream extends DeflaterOutputStream { addFourBytes(e.modTimeDate, 12, tmpBuffer); // last mod date and time addFourBytes(e.crc, 16, tmpBuffer); // crc - addFourBytes(e.compSize, 20, tmpBuffer); // compressed size - addFourBytes(e.uncompSize, 24, tmpBuffer); // uncompressed size + addFourBytes((int)e.compSize, 20, tmpBuffer); // compressed size + addFourBytes((int)e.uncompSize, 24, tmpBuffer); // uncompressed size addTwoBytes(e.getName().length(), 28, tmpBuffer); // file name length diff --git a/classpath/sun/misc/Unsafe.java b/classpath/sun/misc/Unsafe.java index d894e76db8..ed00ee24ca 100644 --- a/classpath/sun/misc/Unsafe.java +++ b/classpath/sun/misc/Unsafe.java @@ -5,10 +5,10 @@ import java.lang.reflect.Field; public final class Unsafe { private void Unsafe() { } - private static final Unsafe Instance = new Unsafe(); + private static final Unsafe theUnsafe = new Unsafe(); public static Unsafe getUnsafe() { - return Instance; + return theUnsafe; } public native long allocateMemory(long bytes); diff --git a/makefile b/makefile index d5594388f9..5037950cab 100755 --- a/makefile +++ b/makefile @@ -1451,6 +1451,10 @@ else ssh -p$(remote-test-port) $(remote-test-user)@$(remote-test-host) sh "$(remote-test-dir)/$(platform)-$(arch)$(options)/run-tests.sh" endif +.PHONY: jdk-test +jdk-test: $(test-dep) $(build)/jdk-run-tests.sh $(build)/test.sh + /bin/sh $(build)/jdk-run-tests.sh + PHONY: audit-baseline audit-baseline: $(audit-codegen-executable) $(<) -output $(build)/codegen-audit-output/baseline.o -format macho @@ -1495,6 +1499,13 @@ $(build)/run-tests.sh: $(test-classes) makefile $(build)/extra-dir/multi-classpa echo "$(call class-names,$(test-build),$(filter-out $(test-support-classes), $(test-classes))) \\" >> $(@) echo "$(continuation-tests) $(tail-tests)" >> $(@) +$(build)/jdk-run-tests.sh: $(test-classes) makefile $(build)/extra-dir/multi-classpath-test.txt $(build)/test/multi-classpath-test.txt + echo 'cd $$(dirname $$0)' > $(@) + echo "sh ./test.sh 2>/dev/null \\" >> $(@) + echo "$(shell echo $(library-path) | sed 's|$(build)|\.|g') /bin/true $(JAVA_HOME)/bin/java $(mode) \"-Djava.library.path=. -cp test:extra-dir:classpath\" \\" >> $(@) + echo "$(call class-names,$(test-build),$(filter-out $(test-support-classes), $(test-classes))) \\" >> $(@) + echo "$(continuation-tests) $(tail-tests)" >> $(@) + $(build)/extra-dir/multi-classpath-test.txt: mkdir -p $(build)/extra-dir echo "$@" > $@ diff --git a/test/LazyLoading.java b/test/LazyLoading.java index ace2ebf5d0..e94004b065 100644 --- a/test/LazyLoading.java +++ b/test/LazyLoading.java @@ -70,7 +70,7 @@ public class LazyLoading { if (loadLazy) { return findClass(name); } else { - throw new ClassNotFoundException(); + throw new ClassNotFoundException(name); } } else { return super.loadClass(name); diff --git a/test/ci.sh b/test/ci.sh index c1863360b2..2afc65c4dc 100755 --- a/test/ci.sh +++ b/test/ci.sh @@ -2,6 +2,7 @@ set -e +make ${flags} jdk-test make ${flags} test make ${flags} mode=debug test make ${flags} process=interpret test