Mercurial > hg > release > icedtea6-1.9
changeset 2062:3e9397f2ac2c
Merge
author | Andrew John Hughes <ahughes@redhat.com> |
---|---|
date | Sun, 18 Apr 2010 17:04:10 +0100 |
parents | e89067b8a611 (current diff) 1a17fa784cae (diff) |
children | 4d10e44726a4 |
files | ChangeLog patches/hotspot/hs16/6873059-javac-versioning-hotspot.patch patches/hotspot/hs16/icedtea-params-cast-size_t.patch patches/hotspot/hs16/memory-limits.patch patches/hotspot/hs16/openjdk-6886353-ignore_deoptimizealot.patch patches/hotspot/hs16/shark.patch patches/hotspot/hs16/zero.patch patches/hotspot/original/6873059-javac-versioning-hotspot.patch patches/hotspot/original/icedtea-6778657-f2i-overflow.patch patches/hotspot/original/icedtea-6778662-lib64.patch patches/hotspot/original/icedtea-6791168.patch patches/hotspot/original/icedtea-6793825-includedb.patch patches/hotspot/original/icedtea-debuginfo.patch patches/hotspot/original/icedtea-params-cast-size_t.patch patches/hotspot/original/memory-limits.patch patches/icedtea-6761856-freetypescaler.patch patches/icedtea-fonts.patch patches/icedtea-nss-6763530.patch patches/icedtea-systemtap.patch patches/openjdk/6822370-reentrantreadwritelock.patch patches/openjdk/6873059-javac-versioning-corba.patch patches/openjdk/6873059-javac-versioning-jdk.patch patches/openjdk/6879689-hotspot_warning_fix.patch patches/openjdk/6928623-verbose-langtools.patch patches/openjdk/annotation-tests.patch patches/openjdk/bidi-tests.patch patches/security/20100330/6633872.patch patches/security/20100330/6639665.patch patches/security/20100330/6736390.patch patches/security/20100330/6745393.patch patches/security/20100330/6887703.patch patches/security/20100330/6888149.patch patches/security/20100330/6892265.patch patches/security/20100330/6893947.patch patches/security/20100330/6893954.patch patches/security/20100330/6894807.patch patches/security/20100330/6898622.patch patches/security/20100330/6898739.patch patches/security/20100330/6899653.patch patches/security/20100330/6902299.patch patches/security/20100330/6904691.patch patches/security/20100330/6909597.patch patches/security/20100330/6910590.patch patches/security/20100330/6914823.patch patches/security/20100330/6914866.patch patches/security/20100330/6932480.patch patches/security/20100330/hotspot/hs16/6626217.patch patches/zero/6890308.patch patches/zero/6891677.patch patches/zero/6896043.patch patches/zero/6903453.patch patches/zero/6909153.patch patches/zero/6913869.patch patches/zero/6914622.patch patches/zero/6939845.patch |
diffstat | 69 files changed, 1246 insertions(+), 14056 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sun Apr 18 17:03:04 2010 +0100 +++ b/ChangeLog Sun Apr 18 17:04:10 2010 +0100 @@ -5,6 +5,10 @@ (AC_CHECK_WITH_HG_REVISION): Likewise. (IT_CHECK_PLUGIN_DEPENDENCIES): Likewise. +2010-04-16 Andrew John Hughes <ahughes@redhat.com> + + * Makefile.am: Bump to b19 tarball. + 2010-04-12 Andrew John Hughes <ahughes@redhat.com> PR icedtea/373 @@ -64,6 +68,38 @@ * configure.ac: Clarify result message of the NSS check. +2010-04-11 Andrew John Hughes <ahughes@redhat.com> + + * patches/hotspot/original/6873059-javac-versioning-hotspot.patch, + * patches/openjdk/6873059-javac-versioning-corba.patch, + * patches/openjdk/6873059-javac-versioning-jdk.patch: + Removed, upstreamed. + * Makefile.am: + Move 6873059 to hs17-specific block. + +2010-04-11 Andrew John Hughes <ahughes@redhat.com> + + Support hs17. + * patches/icedtea-params-cast-size_t.patch, + * patches/icedtea-systemtap.patch: + Split into original and hs17 versions. + * Makefile.am: + Make above patches $(HSBUILD) specific. + Add 6896472 fix for hs17. + * hotspot.map: Add hs17 b13, enabled using + --with-hotspot-build=hs17. + * patches/hotspot/hs17/6873059-javac-versioning-hotspot.patch, + * patches/hotspot/hs17/params-cast-size_t.patch, + * patches/hotspot/hs17/systemtap.patch: + New variants for hs17. + * patches/hotspot/original/params-cast-size_t.patch, + * patches/hotspot/original/systemtap.patch: + Moved from main patches directory. + * patches/icedtea-explicit-target-arch.patch: + Remove unneeded diff at top which breaks on hs17. + * patches/openjdk/6896472-missing_libjsig.patch: + Backport from OpenJDK7; needed for hs17. + 2010-04-10 Matthias Klose <doko@ubuntu.com> * Makefile.am (ICEDTEA_PATCHES): Always apply @@ -73,6 +109,12 @@ is enabled or disabled by default. * patches/icedtea-nss-not-enabled-config.patch: New. +2010-04-09 Andrew John Hughes <ahughes@redhat.com> + + * patches/zero/6939845.patch, + * Makefile.am: + Remove upstreamed Zero patch. + 2010-04-09 Xerxes RĂ„nby <xerxes@zafena.se> * Makefile.am (ICEDTEA_PATCHES): @@ -82,6 +124,15 @@ * patches/zero/6939845.patch: added from upstream. * patches/zero/cppInterpreter-fast-bytecodes.patch: removed. +2010-04-09 Andrew John Hughes <ahughes@redhat.com> + + * patches/zero/6903453.patch, + * patches/zero/6909153.patch, + * patches/zero/6913869.patch, + * patches/zero/6914622.patch, + * Makefile.am: + Remove patches applied upstream. + 2010-04-08 Andrew John Hughes <ahughes@redhat.com> * configure.ac: Move NSS detection to macros @@ -105,6 +156,13 @@ * Makefile.am: Remove remaining references to rt source directory. +2010-04-07 Andrew John Hughes <ahughes@redhat.com> + + * patches/openjdk/6879689-hotspot_warning_fix.patch, + * patches/security/20100330/6633872.patch, + * Makefile.am: + Remove upstreamed patches. + 2010-04-07 Deepak Bhole <dbhole@redhat.com> * plugin/icedteanp/IcedTeaNPPlugin.cc: ReplaceAll "GCJ" with "ITNP", and @@ -161,6 +219,41 @@ (IcedTeaScriptableJavaObject::deAllocate): Same. (IcedTeaScriptableJavaObject::invalidate): Same. +2010-04-06 Andrew John Hughes <ahughes@redhat.com> + + * patches/hotspot/hs16/6873059-javac-versioning-hotspot.patch: + Moved to hotspot/original. + * patches/openjdk/6822370-reentrantreadwritelock.patch, + * patches/security/20100330/6639665.patch, + * patches/security/20100330/6736390.patch, + * patches/security/20100330/6745393.patch, + * patches/security/20100330/6887703.patch, + * patches/security/20100330/6888149.patch, + * patches/security/20100330/6892265.patch, + * patches/security/20100330/6893947.patch, + * patches/security/20100330/6893954.patch, + * patches/security/20100330/6894807.patch, + * patches/security/20100330/6898622.patch, + * patches/security/20100330/6898739.patch, + * patches/security/20100330/6899653.patch, + * patches/security/20100330/6902299.patch, + * patches/security/20100330/6904691.patch, + * patches/security/20100330/6909597.patch, + * patches/security/20100330/6910590.patch, + * patches/security/20100330/6914823.patch, + * patches/security/20100330/6914866.patch, + * patches/security/20100330/6932480.patch, + * patches/security/20100330/hotspot/hs16/6626217.patch: + Drop patches available upstream. + * Makefile.am: Remove listed patches. + * patches/hotspot/original/6873059-javac-versioning-hotspot.patch: + Moved from hs16 directory. + * patches/icedtea-lcms.patch: + Recreated against new security patches (inverse of + before where 6899653 was adapted to our LCMS fix). + * patches/security/20100330/6633872.patch: + Keep just the fragment not in the Sun version which + fixes an NPE when running rmid. 2010-04-04 Nobuhiro Iwamatsu <iwamatsu@nigauri.org> @@ -229,6 +322,11 @@ 2010-03-30 Andrew John Hughes <ahughes@redhat.com> + * patches/icedtea-override.patch: + Fix path on previous HttpsClient hunk. + +2010-03-30 Andrew John Hughes <ahughes@redhat.com> + * patches/openjdk/6873059-javac-versioning-hotspot.patch: Move to hotspot/original directory. * Makefile.am: Make javac versioning patch for HotSpot @@ -244,6 +342,18 @@ * bytecodeInterpreter.cpp Fix to support fast bytecodes +2010-03-30 Andrew John Hughes <ahughes@redhat.com> + + * patches/openjdk/annotation-tests.patch: + Dropped, was applied upstream in a different + directory some time ago. + * patches/openjdk/bidi-tests.patch, + * patches/zero/6890308.patch, + * patches/zero/6891677.patch, + * patches/zero/6896043.patch: + Dropped, applied upstream. + * Makefile.am: Remove above. + 2010-03-29 Andrew John Hughes <ahughes@redhat.com> * .hgignore: @@ -287,6 +397,12 @@ * THANKYOU: Add C. K. Jester-Young who created the initial Perl version of javac.in. +2010-03-28 Andrew John Hughes <ahughes@redhat.com> + + * patches/icedtea-override.patch: + Remove @Override on interface method + in sun/net/www/protocol/https/HttpsClient.java + 2009-08-21 Andrew John Hughes <ahughes@redhat.com> * javac.in: @@ -545,7 +661,6 @@ Fix references to IcedTeaNPPlugin.h. 2010-03-16 Andrew John Hughes <ahughes@redhat.com> - * patches/icedtea-override.patch: Moved to ecj subdirectory. * Makefile.am: @@ -711,6 +826,13 @@ 2010-03-12 Andrew John Hughes <ahughes@redhat.com> + * patches/icedtea-fonts.patch: + Removed, applied upstream as S6934327. + http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/178f954e1fd1 + * Makefile.am: Drop above patch. + +2010-03-12 Andrew John Hughes <ahughes@redhat.com> + NetX/plugin build sync (1/3): Build NetX and plugin sources separately. * rt/javax/jnlp/BasicService.java, @@ -1186,6 +1308,12 @@ (sharkCompiler::sharkCompiler): Move mattr define to make its memory valid in the scope where it are used by the args vector. +2010-03-02 Andrew John Hughes <ahughes@redhat.com> + + * patches/openjdk/6928623-verbose-langtools.patch: + Removed, applied upstream. + * Makefile.am: Drop above patch. + 2010-03-01 Andrew John Hughes <ahughes@redhat.com> * Makefile.am: @@ -1307,6 +1435,34 @@ (SharkCompiler::generate_native_code): Undefine debug code for NDEBUG builds +2010-02-25 Andrew John Hughes <ahughes@redhat.com> + + * patches/hotspot/hs16/icedtea-params-cast-size_t.patch, + * patches/hotspot/hs16/memory-limits.patch: + Move to main patches directory. + * patches/hotspot/hs16/openjdk-6886353-ignore_deoptimizealot.patch: + Dropped, applied upstream. + * patches/hotspot/hs16/shark.patch, + * patches/hotspot/hs16/zero.patch: + Moved to main patches directory. + * patches/hotspot/original/icedtea-6778657-f2i-overflow.patch, + * patches/hotspot/original/icedtea-6778662-lib64.patch, + * patches/hotspot/original/icedtea-6791168.patch, + * patches/hotspot/original/icedtea-6793825-includedb.patch, + * patches/hotspot/original/icedtea-debuginfo.patch, + * patches/hotspot/original/icedtea-params-cast-size_t.patch, + * patches/hotspot/original/memory-limits.patch: + Obsoleted by move to hs16 upstream. + * patches/icedtea-nss-6763530.patch: + Applied upstream. + * Makefile.am: Update patch list. + * hotspot.map: Remove outdated hs16 build. + * patches/icedtea-params-cast-size_t.patch, + * patches/memory-limits.patch, + * patches/shark.patch, + * patches/zero.patch: + Moved from hotspot/hs16. + 2010-02-24 Andrew John Hughes <ahughes@redhat.com> * Makefile.am: Add PULSE_JAVA_CLEAN_TARGET @@ -1588,12 +1744,23 @@ 2010-02-17 Andrew John Hughes <ahughes@redhat.com> * Makefile.am: + Update JAXP tarball. + +2010-02-17 Andrew John Hughes <ahughes@redhat.com> + + * Makefile.am: Remove dead JAXWS and JAXP sourcepaths. Add sun.misc.Unsafe explicitly to ensure it is compiled as a bootstrap class. 2010-02-17 Andrew John Hughes <ahughes@redhat.com> + * patches/icedtea-6761856-freetypescaler.patch: + Dropped; applied upstream. + * Makefile.am: Remove above patch. + +2010-02-17 Andrew John Hughes <ahughes@redhat.com> + * Makefile.am: Bump to released b18 tarball.
--- a/Makefile.am Sun Apr 18 17:03:04 2010 +0100 +++ b/Makefile.am Sun Apr 18 17:04:10 2010 +0100 @@ -1,8 +1,8 @@ # Dependencies -OPENJDK_DATE = 16_feb_2010 -OPENJDK_MD5SUM = 94db01691ab38f98b7d42b2ebf4d5c0b -OPENJDK_VERSION = b18 +OPENJDK_DATE = 15_apr_2010 +OPENJDK_MD5SUM = 39bbf623a6c83ca63b92593062a28146 +OPENJDK_VERSION = b19 OPENJDK_URL = http://download.java.net/openjdk/jdk6/promoted/$(OPENJDK_VERSION)/ CACAO_VERSION = 0.99.4 @@ -23,9 +23,9 @@ JAXWS_DROP_SHA256SUM = 155ff3be83c980e197621a2fbf7ee34e8e0f536489351a5865cf0e52206245e2 JAF_DROP_ZIP = jdk6-jaf-2009_10_27.zip JAF_DROP_SHA256SUM = fdc51476fc6bcc69ea1f099f33e84601a126bfa8b11c8fa11c25dc574345aa9f -JAXP_DROP_URL = https://jaxp.dev.java.net/files/documents/913/147329 -JAXP_DROP_ZIP = jdk6-jaxp-2009_10_13.zip -JAXP_DROP_SHA256SUM = 8714d55de18db48ca9da0ee986202005082f44cf4c215da8683342b70e61792b +JAXP_DROP_URL = https://jaxp.dev.java.net/files/documents/913/147491 +JAXP_DROP_ZIP = jdk6-jaxp-2010_01_15.zip +JAXP_DROP_SHA256SUM = 181615cfec1c3721a7d8f278fa25b392be4247a496c7774a10cb9df37684f94f OPENJDK_HG_URL = http://hg.openjdk.java.net/jdk6/jdk6 @@ -224,14 +224,6 @@ ICEDTEA_FSG_PATCHES = ICEDTEA_PATCHES = \ - patches/zero/6890308.patch \ - patches/zero/6891677.patch \ - patches/zero/6896043.patch \ - patches/zero/6903453.patch \ - patches/zero/6909153.patch \ - patches/zero/6913869.patch \ - patches/zero/6914622.patch \ - patches/zero/6939845.patch \ patches/zero/shark_do_nothing_on_stub_frame.patch \ patches/icedtea-notice-safepoints.patch \ patches/icedtea-parisc-opt.patch \ @@ -248,7 +240,7 @@ patches/icedtea-gcc-suffix.patch \ patches/icedtea-gcc-suffix-hotspot.patch \ patches/icedtea-bytebuffer-compact.patch \ - patches/hotspot/$(HSBUILD)/memory-limits.patch \ + patches/memory-limits.patch \ patches/icedtea-sunsrc.patch \ patches/icedtea-libraries.patch \ patches/icedtea-javafiles.patch \ @@ -259,7 +251,6 @@ patches/icedtea-jpegclasses.patch \ patches/icedtea-uname.patch \ patches/icedtea-freetypeversion.patch \ - patches/icedtea-fonts.patch \ patches/icedtea-shark-build.patch \ patches/icedtea-shark-build-hotspot.patch \ patches/icedtea-nomotif-6706121.patch \ @@ -269,7 +260,7 @@ patches/icedtea-alt-jar.patch \ patches/icedtea-jdk-use-ssize_t.patch \ patches/icedtea-use-idx_t.patch \ - patches/hotspot/$(HSBUILD)/icedtea-params-cast-size_t.patch \ + patches/hotspot/$(HSBUILD)/params-cast-size_t.patch \ patches/icedtea-clean-crypto.patch \ patches/icedtea-shark.patch \ patches/icedtea-arch.patch \ @@ -278,13 +269,10 @@ patches/icedtea-renderer-crossing.patch \ patches/icedtea-stroker-finish.patch \ patches/icedtea-linker-libs-order.patch \ - patches/icedtea-6761856-freetypescaler.patch \ patches/icedtea-testenv.patch \ patches/icedtea-samejvm-safe.patch \ patches/icedtea-pr261.patch \ patches/icedtea-doc-headers.patch \ - patches/openjdk/bidi-tests.patch \ - patches/openjdk/annotation-tests.patch \ patches/icedtea-sparc-buildfixes.patch \ patches/icedtea-sparc64-linux.patch \ patches/icedtea-sparc-ptracefix.patch \ @@ -303,44 +291,25 @@ patches/icedtea-disable-cc-incompatible-sanity-checks.patch \ patches/icedtea-explicit-target-arch.patch \ patches/icedtea-gcc-stack-markings.patch \ - patches/openjdk/6879689-hotspot_warning_fix.patch \ - patches/openjdk/6928623-verbose-langtools.patch \ patches/icedtea-no-precompiled.patch \ patches/icedtea-linux-separate-debuginfo.patch \ patches/icedtea-parisc.patch \ patches/icedtea-sh4-support.patch \ patches/libpng.patch \ + patches/zero.patch \ + patches/shark.patch \ patches/extensions/netx.patch \ patches/extensions/netx-dist.patch \ patches/extensions/netx-umask.patch \ patches/icedtea-jtreg-httpTest.patch \ - patches/openjdk/6873059-javac-versioning-corba.patch \ - patches/hotspot/$(HSBUILD)/6873059-javac-versioning-hotspot.patch \ - patches/openjdk/6873059-javac-versioning-jdk.patch \ - patches/security/20100330/hotspot/$(HSBUILD)/6626217.patch \ - patches/security/20100330/6633872.patch \ - patches/security/20100330/6639665.patch \ - patches/security/20100330/6736390.patch \ - patches/security/20100330/6745393.patch \ - patches/security/20100330/6887703.patch \ - patches/security/20100330/6888149.patch \ - patches/security/20100330/6892265.patch \ - patches/security/20100330/6893947.patch \ - patches/security/20100330/6893954.patch \ - patches/security/20100330/6894807.patch \ - patches/security/20100330/6898622.patch \ - patches/security/20100330/6898739.patch \ - patches/security/20100330/6899653.patch \ - patches/security/20100330/6902299.patch \ - patches/security/20100330/6904691.patch \ - patches/security/20100330/6909597.patch \ - patches/security/20100330/6910590.patch \ - patches/security/20100330/6914823.patch \ - patches/security/20100330/6914866.patch \ - patches/security/20100330/6932480.patch \ - patches/icedtea-nss-6763530.patch \ patches/nss-debug.patch +if WITH_ALT_HSBUILD +ICEDTEA_PATCHES += \ + patches/openjdk/6896472-missing_libjsig.patch \ + patches/hotspot/$(HSBUILD)/6873059-javac-versioning-hotspot.patch +endif + if WITH_RHINO ICEDTEA_PATCHES += \ patches/icedtea-rhino.patch @@ -387,7 +356,7 @@ endif if ENABLE_SYSTEMTAP -ICEDTEA_PATCHES += patches/icedtea-systemtap.patch +ICEDTEA_PATCHES += patches/hotspot/$(HSBUILD)/systemtap.patch endif if ENABLE_NSS @@ -396,18 +365,6 @@ ICEDTEA_PATCHES += patches/icedtea-nss-not-enabled-config.patch endif -if WITH_ALT_HSBUILD -ICEDTEA_PATCHES += patches/hotspot/$(HSBUILD)/openjdk-6886353-ignore_deoptimizealot.patch \ - patches/hotspot/$(HSBUILD)/zero.patch \ - patches/hotspot/$(HSBUILD)/shark.patch -else -ICEDTEA_PATCHES += patches/hotspot/original/icedtea-6778662-lib64.patch \ - patches/hotspot/original/icedtea-6778657-f2i-overflow.patch \ - patches/hotspot/original/icedtea-6791168.patch \ - patches/hotspot/original/icedtea-6793825-includedb.patch \ - patches/openjdk/6822370-reentrantreadwritelock.patch -endif - ICEDTEA_PATCHES += $(DISTRIBUTION_PATCHES) # Bootstrapping patches
--- a/hotspot.map Sun Apr 18 17:03:04 2010 +0100 +++ b/hotspot.map Sun Apr 18 17:04:10 2010 +0100 @@ -1,2 +1,3 @@ # version url changeset md5sum -hs16 http://hg.openjdk.java.net/hsx/hsx16/master 62926c7f67a3 d683eb501e7ce710198f20f0c127ebbb +hs17 http://hg.openjdk.java.net/hsx/hsx17/master 8ca546927f8c 0d41815127b8fecd0a4e1546e23fa1f3 +
--- a/patches/ecj/override.patch Sun Apr 18 17:03:04 2010 +0100 +++ b/patches/ecj/override.patch Sun Apr 18 17:04:10 2010 +0100 @@ -196,3 +196,14 @@ return revocationReason; } +diff -r 697e3f8cac33 src/share/classes/sun/net/www/protocol/https/HttpsClient.java +--- openjdk-ecj.orig/jdk/src/share/classes/sun/net/www/protocol/https/HttpsClient.java Wed Mar 24 17:05:49 2010 +0000 ++++ openjdk-ecj/jdk/src/share/classes/sun/net/www/protocol/https/HttpsClient.java Sun Mar 28 12:55:34 2010 +0100 +@@ -624,7 +624,6 @@ + * a given connection may change. When sessions change, so may + * peer identities and cipher suites. + */ +- @Override + public void handshakeCompleted(HandshakeCompletedEvent event) + { + session = event.getSession();
--- a/patches/hotspot/hs16/6873059-javac-versioning-hotspot.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,245 +0,0 @@ -# HG changeset patch -# User andrew -# Date 1252756207 -3600 -# Node ID 0fc81f0a8ca8642c9e4b6901fa23b59c29ac81d7 -# Parent 682194ca1d8d5e705da06c5974ffcda76b0a7add -6873059: Explicitly use -source 6 -target 6 when compiling with the boot jdk -Summary: The build fails if the bootstrap JDK defaults to <1.5 -Reviewed-by: jcoomes - -diff -r 682194ca1d8d -r 0fc81f0a8ca8 make/linux/makefiles/jvmti.make ---- openjdk.orig/hotspot/make/linux/makefiles/jvmti.make Thu Sep 10 09:04:41 2009 -0400 -+++ openjdk/hotspot/make/linux/makefiles/jvmti.make Sat Sep 12 12:50:07 2009 +0100 -@@ -70,10 +70,10 @@ - both = $(JvmtiGenClass) $(JvmtiSrcDir)/jvmti.xml $(JvmtiSrcDir)/jvmtiLib.xsl - - $(JvmtiGenClass): $(JvmtiGenSource) -- $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -g -d $(JvmtiOutDir) $(JvmtiGenSource) -+ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiGenSource) - - $(JvmtiEnvFillClass): $(JvmtiEnvFillSource) -- $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -g -d $(JvmtiOutDir) $(JvmtiEnvFillSource) -+ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiEnvFillSource) - - $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl - @echo Generating $@ -diff -r 682194ca1d8d -r 0fc81f0a8ca8 make/linux/makefiles/rules.make ---- openjdk.orig/hotspot/make/linux/makefiles/rules.make Thu Sep 10 09:04:41 2009 -0400 -+++ openjdk/hotspot/make/linux/makefiles/rules.make Sat Sep 12 12:50:07 2009 +0100 -@@ -122,12 +122,20 @@ - endif - endif - -+COMPILE.JAVAC += $(BOOTSTRAP_JAVAC_FLAGS) -+ - SUM = /usr/bin/sum - - # 'gmake MAKE_VERBOSE=y' gives all the gory details. - QUIETLY$(MAKE_VERBOSE) = @ - RUN.JAR$(MAKE_VERBOSE) += >/dev/null - -+# Settings for javac -+BOOT_SOURCE_LANGUAGE_VERSION = 6 -+BOOT_TARGET_CLASS_VERSION = 6 -+JAVAC_FLAGS = -g -encoding ascii -+BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) -+ - # With parallel makes, print a message at the end of compilation. - ifeq ($(findstring j,$(MFLAGS)),j) - COMPILE_DONE = && { echo Done with $<; } -diff -r 682194ca1d8d -r 0fc81f0a8ca8 make/linux/makefiles/sa.make ---- openjdk.orig/hotspot/make/linux/makefiles/sa.make Thu Sep 10 09:04:41 2009 -0400 -+++ openjdk/hotspot/make/linux/makefiles/sa.make Sat Sep 12 12:50:07 2009 +0100 -@@ -74,8 +74,8 @@ - mkdir -p $(SA_CLASSDIR); \ - fi - -- $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1) -- $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2) -+ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1) -+ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2) - - $(QUIETLY) $(REMOTE) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer - $(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES) -diff -r 682194ca1d8d -r 0fc81f0a8ca8 make/linux/makefiles/top.make ---- openjdk.orig/hotspot/make/linux/makefiles/top.make Thu Sep 10 09:04:41 2009 -0400 -+++ openjdk/hotspot/make/linux/makefiles/top.make Sat Sep 12 12:50:07 2009 +0100 -@@ -24,7 +24,7 @@ - - # top.make is included in the Makefile in the build directories. - # It DOES NOT include the vm dependency info in order to be faster. --# It's main job is to implement the incremental form of make lists. -+# Its main job is to implement the incremental form of make lists. - # It also: - # -builds and runs adlc via adlc.make - # -generates JVMTI source and docs via jvmti.make (JSR-163) -@@ -114,7 +114,7 @@ - # make makeDeps: (and zap the cached db files to force a nonincremental run) - - $(GENERATED)/$(MakeDepsClass): $(MakeDepsSources) -- @$(REMOTE) $(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -g -d $(GENERATED) $(MakeDepsSources) -+ @$(REMOTE) $(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources) - @echo Removing $(Incremental_Lists) to force regeneration. - @rm -f $(Incremental_Lists) - @$(CDG) echo >$(Cached_plat) -diff -r 682194ca1d8d -r 0fc81f0a8ca8 make/solaris/makefiles/jvmti.make ---- openjdk.orig/hotspot/make/solaris/makefiles/jvmti.make Thu Sep 10 09:04:41 2009 -0400 -+++ openjdk/hotspot/make/solaris/makefiles/jvmti.make Sat Sep 12 12:50:07 2009 +0100 -@@ -69,10 +69,10 @@ - both = $(JvmtiGenClass) $(JvmtiSrcDir)/jvmti.xml $(JvmtiSrcDir)/jvmtiLib.xsl - - $(JvmtiGenClass): $(JvmtiGenSource) -- $(QUIETLY) $(COMPILE.JAVAC) -g -d $(JvmtiOutDir) $(JvmtiGenSource) -+ $(QUIETLY) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiGenSource) - - $(JvmtiEnvFillClass): $(JvmtiEnvFillSource) -- $(QUIETLY) $(COMPILE.JAVAC) -g -d $(JvmtiOutDir) $(JvmtiEnvFillSource) -+ $(QUIETLY) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiEnvFillSource) - - $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl - @echo Generating $@ -diff -r 682194ca1d8d -r 0fc81f0a8ca8 make/solaris/makefiles/rules.make ---- openjdk.orig/hotspot/make/solaris/makefiles/rules.make Thu Sep 10 09:04:41 2009 -0400 -+++ openjdk/hotspot/make/solaris/makefiles/rules.make Sat Sep 12 12:50:07 2009 +0100 -@@ -122,12 +122,20 @@ - endif - endif - -+COMPILE.JAVAC += $(BOOTSTRAP_JAVAC_FLAGS) -+ - SUM = /usr/bin/sum - - # 'gmake MAKE_VERBOSE=y' gives all the gory details. - QUIETLY$(MAKE_VERBOSE) = @ - RUN.JAR$(MAKE_VERBOSE) += >/dev/null - -+# Settings for javac -+BOOT_SOURCE_LANGUAGE_VERSION = 6 -+BOOT_TARGET_CLASS_VERSION = 6 -+JAVAC_FLAGS = -g -encoding ascii -+BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) -+ - # With parallel makes, print a message at the end of compilation. - ifeq ($(findstring j,$(MFLAGS)),j) - COMPILE_DONE = && { echo Done with $<; } -diff -r 682194ca1d8d -r 0fc81f0a8ca8 make/solaris/makefiles/sa.make ---- openjdk.orig/hotspot/make/solaris/makefiles/sa.make Thu Sep 10 09:04:41 2009 -0400 -+++ openjdk/hotspot/make/solaris/makefiles/sa.make Sat Sep 12 12:50:07 2009 +0100 -@@ -67,8 +67,8 @@ - $(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \ - mkdir -p $(SA_CLASSDIR); \ - fi -- $(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1) -- $(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2) -+ $(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1) -+ $(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2) - - $(QUIETLY) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer - $(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES) -diff -r 682194ca1d8d -r 0fc81f0a8ca8 make/solaris/makefiles/top.make ---- openjdk.orig/hotspot/make/solaris/makefiles/top.make Thu Sep 10 09:04:41 2009 -0400 -+++ openjdk/hotspot/make/solaris/makefiles/top.make Sat Sep 12 12:50:07 2009 +0100 -@@ -24,7 +24,7 @@ - - # top.make is included in the Makefile in the build directories. - # It DOES NOT include the vm dependency info in order to be faster. --# It's main job is to implement the incremental form of make lists. -+# Its main job is to implement the incremental form of make lists. - # It also: - # -builds and runs adlc via adlc.make - # -generates JVMTI source and docs via jvmti.make (JSR-163) -@@ -112,7 +112,7 @@ - # make makeDeps: (and zap the cached db files to force a nonincremental run) - - $(GENERATED)/$(MakeDepsClass): $(MakeDepsSources) -- @$(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -g -d $(GENERATED) $(MakeDepsSources) -+ @$(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources) - @echo Removing $(Incremental_Lists) to force regeneration. - @rm -f $(Incremental_Lists) - @$(CDG) echo >$(Cached_plat) -diff -r 682194ca1d8d -r 0fc81f0a8ca8 make/windows/makefiles/generated.make ---- openjdk.orig/hotspot/make/windows/makefiles/generated.make Thu Sep 10 09:04:41 2009 -0400 -+++ openjdk/hotspot/make/windows/makefiles/generated.make Sat Sep 12 12:50:07 2009 +0100 -@@ -91,7 +91,7 @@ - classes/MakeDeps.class: $(MakeDepsSources) - if exist classes rmdir /s /q classes - mkdir classes -- $(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\MakeDeps -g -d classes $(MakeDepsSources) -+ $(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\MakeDeps -d classes $(MakeDepsSources) - - !if ("$(Variant)" == "compiler2") || ("$(Variant)" == "tiered") - -diff -r 682194ca1d8d -r 0fc81f0a8ca8 make/windows/makefiles/jvmti.make ---- openjdk.orig/hotspot/make/windows/makefiles/jvmti.make Thu Sep 10 09:04:41 2009 -0400 -+++ openjdk/hotspot/make/windows/makefiles/jvmti.make Sat Sep 12 12:50:07 2009 +0100 -@@ -68,10 +68,10 @@ - @if not exist $(JvmtiOutDir) mkdir $(JvmtiOutDir) - - $(JvmtiGenClass): $(JvmtiGenSource) -- $(COMPILE_JAVAC) -g -d $(JvmtiOutDir) $(JvmtiGenSource) -+ $(COMPILE_JAVAC) -d $(JvmtiOutDir) $(JvmtiGenSource) - - $(JvmtiEnvFillClass): $(JvmtiEnvFillSource) -- @$(COMPILE_JAVAC) -g -d $(JvmtiOutDir) $(JvmtiEnvFillSource) -+ @$(COMPILE_JAVAC) -d $(JvmtiOutDir) $(JvmtiEnvFillSource) - - $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl - @echo Generating $@ -diff -r 682194ca1d8d -r 0fc81f0a8ca8 make/windows/makefiles/rules.make ---- openjdk.orig/hotspot/make/windows/makefiles/rules.make Thu Sep 10 09:04:41 2009 -0400 -+++ openjdk/hotspot/make/windows/makefiles/rules.make Sat Sep 12 12:50:07 2009 +0100 -@@ -29,7 +29,7 @@ - RUN_JAVAP=$(BootStrapDir)\bin\javap - RUN_JAVAH=$(BootStrapDir)\bin\javah - RUN_JAR=$(BootStrapDir)\bin\jar --COMPILE_JAVAC=$(BootStrapDir)\bin\javac -+COMPILE_JAVAC=$(BootStrapDir)\bin\javac $(BOOTSTRAP_JAVAC_FLAGS) - COMPILE_RMIC=$(BootStrapDir)\bin\rmic - BOOT_JAVA_HOME=$(BootStrapDir) - !else -@@ -37,11 +37,17 @@ - RUN_JAVAP=javap - RUN_JAVAH=javah - RUN_JAR=jar --COMPILE_JAVAC=javac -+COMPILE_JAVAC=javac $(BOOTSTRAP_JAVAC_FLAGS) - COMPILE_RMIC=rmic - BOOT_JAVA_HOME= - !endif - -+# Settings for javac -+BOOT_SOURCE_LANGUAGE_VERSION=6 -+BOOT_TARGET_CLASS_VERSION=6 -+JAVAC_FLAGS=-g -encoding ascii -+BOOTSTRAP_JAVAC_FLAGS=$(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) -+ - ProjectFile=vm.vcproj - - !if "$(MSC_VER)" == "1200" -diff -r 682194ca1d8d -r 0fc81f0a8ca8 make/windows/makefiles/sa.make ---- openjdk.orig/hotspot/make/windows/makefiles/sa.make Thu Sep 10 09:04:41 2009 -0400 -+++ openjdk/hotspot/make/windows/makefiles/sa.make Sat Sep 12 12:50:07 2009 +0100 -@@ -55,9 +55,9 @@ - $(GENERATED)\sa-jdi.jar: $(AGENT_FILES1:/=\) $(AGENT_FILES2:/=\) - @if not exist $(SA_CLASSDIR) mkdir $(SA_CLASSDIR) - @echo ...Building sa-jdi.jar -- @echo ...$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -g -d $(SA_CLASSDIR) .... -- @$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\) -- @$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\) -+ @echo ...$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -d $(SA_CLASSDIR) .... -+ @$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\) -+ @$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\) - $(COMPILE_RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer - $(QUIETLY) echo $(SA_BUILD_VERSION_PROP)> $(SA_PROPERTIES) - $(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js -diff -r 682194ca1d8d -r 0fc81f0a8ca8 make/windows/projectfiles/common/Makefile ---- openjdk.orig/hotspot/make/windows/projectfiles/common/Makefile Thu Sep 10 09:04:41 2009 -0400 -+++ openjdk/hotspot/make/windows/projectfiles/common/Makefile Sat Sep 12 12:50:07 2009 +0100 -@@ -179,6 +179,6 @@ - $(HOTSPOTBUILDSPACE)/classes/MakeDeps.class: $(MakeDepsSources) - @if exist $(HOTSPOTBUILDSPACE)\classes rmdir /s /q $(HOTSPOTBUILDSPACE)\classes - @mkdir $(HOTSPOTBUILDSPACE)\classes -- @$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\MakeDeps -g -d $(HOTSPOTBUILDSPACE)/classes $(MakeDepsSources) -+ @$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\MakeDeps -d $(HOTSPOTBUILDSPACE)/classes $(MakeDepsSources) - - FORCE:
--- a/patches/hotspot/hs16/icedtea-params-cast-size_t.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,252 +0,0 @@ -diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2009-12-08 23:12:17.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2010-01-11 20:57:36.000000000 +0000 -@@ -941,7 +941,7 @@ - if (free_percentage < desired_free_percentage) { - size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage)); - assert(desired_capacity >= capacity(), "invalid expansion size"); -- expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes); -+ expand_bytes = MAX2((long unsigned int) (desired_capacity - capacity()), (long unsigned int) MinHeapDeltaBytes); - } - if (expand_bytes > 0) { - if (PrintGCDetails && Verbose) { -@@ -6095,7 +6095,7 @@ - HeapWord* curAddr = _markBitMap.startWord(); - while (curAddr < _markBitMap.endWord()) { - size_t remaining = pointer_delta(_markBitMap.endWord(), curAddr); -- MemRegion chunk(curAddr, MIN2(CMSBitMapYieldQuantum, remaining)); -+ MemRegion chunk(curAddr, MIN2((size_t) CMSBitMapYieldQuantum, remaining)); - _markBitMap.clear_large_range(chunk); - if (ConcurrentMarkSweepThread::should_yield() && - !foregroundGCIsActive() && -@@ -6383,7 +6383,7 @@ - return; - } - // Double capacity if possible -- size_t new_capacity = MIN2(_capacity*2, CMSMarkStackSizeMax); -+ size_t new_capacity = MIN2((size_t) (_capacity*2), (size_t) CMSMarkStackSizeMax); - // Do not give up existing stack until we have managed to - // get the double capacity that we desired. - ReservedSpace rs(ReservedSpace::allocation_align_size_up( -diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2010-01-11 20:48:22.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2010-01-11 20:57:36.000000000 +0000 -@@ -412,7 +412,7 @@ - _regionStack(), - // _finger set in set_non_marking_state - -- _max_task_num(MAX2(ParallelGCThreads, (size_t)1)), -+ _max_task_num(MAX2((size_t)ParallelGCThreads, (size_t)1)), - // _active_tasks set in set_non_marking_state - // _tasks set inside the constructor - _task_queues(new CMTaskQueueSet((int) _max_task_num)), -@@ -463,7 +463,7 @@ - SATBMarkQueueSet& satb_qs = JavaThread::satb_mark_queue_set(); - satb_qs.set_buffer_size(G1SATBLogBufferSize); - -- int size = (int) MAX2(ParallelGCThreads, (size_t)1); -+ int size = (int) MAX2((size_t)ParallelGCThreads, (size_t)1); - _par_cleanup_thread_state = NEW_C_HEAP_ARRAY(ParCleanupThreadState*, size); - for (int i = 0 ; i < size; i++) { - _par_cleanup_thread_state[i] = new ParCleanupThreadState; -@@ -522,7 +522,7 @@ - _sleep_factor = sleep_factor; - _marking_task_overhead = marking_task_overhead; - } else { -- _parallel_marking_threads = MAX2((ParallelGCThreads + 2) / 4, (size_t)1); -+ _parallel_marking_threads = MAX2((size_t)((ParallelGCThreads + 2) / 4), (size_t)1); - _sleep_factor = 0.0; - _marking_task_overhead = 1.0; - } -@@ -649,7 +649,7 @@ - } - - ConcurrentMark::~ConcurrentMark() { -- int size = (int) MAX2(ParallelGCThreads, (size_t)1); -+ int size = (int) MAX2((size_t)ParallelGCThreads, (size_t)1); - for (int i = 0; i < size; i++) delete _par_cleanup_thread_state[i]; - FREE_C_HEAP_ARRAY(ParCleanupThreadState*, - _par_cleanup_thread_state); -@@ -1708,7 +1708,7 @@ - if (has_aborted()) return; - - int first = 0; -- int last = (int)MAX2(ParallelGCThreads, (size_t)1); -+ int last = (int)MAX2((size_t)ParallelGCThreads, (size_t)1); - for (int t = 0; t < last; t++) { - UncleanRegionList* list = &_par_cleanup_thread_state[t]->list; - assert(list->well_formed(), "Inv"); -@@ -3202,7 +3202,7 @@ - // of things to do) or totally (at the very end). - size_t target_size; - if (partially) -- target_size = MIN2((size_t)_task_queue->max_elems()/3, GCDrainStackTargetSize); -+ target_size = MIN2((size_t)_task_queue->max_elems()/3, (size_t)GCDrainStackTargetSize); - else - target_size = 0; - -diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2009-12-08 23:12:17.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2010-01-11 20:57:36.000000000 +0000 -@@ -1058,7 +1058,7 @@ - // This can be done by either mutator threads together with the - // concurrent refinement threads or GC threads. - int HeapRegionRemSet::num_par_rem_sets() { -- return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), ParallelGCThreads); -+ return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), (size_t)ParallelGCThreads); - } - - HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, -diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2009-12-08 23:12:17.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2010-01-11 20:57:36.000000000 +0000 -@@ -863,8 +863,8 @@ - void PSParallelCompact::initialize_dead_wood_limiter() - { - const size_t max = 100; -- _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0; -- _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0; -+ _dwl_mean = double(MIN2((size_t) ParallelOldDeadWoodLimiterMean, max)) / 100.0; -+ _dwl_std_dev = double(MIN2((size_t) ParallelOldDeadWoodLimiterStdDev, max)) / 100.0; - _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev); - DEBUG_ONLY(_dwl_initialized = true;) - _dwl_adjustment = normal_distribution(1.0); -diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp ---- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp 2009-12-08 23:12:17.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp 2010-01-11 20:57:36.000000000 +0000 -@@ -63,7 +63,7 @@ - _last_used = current_live; - - // We have different alignment constraints than the rest of the heap. -- const size_t alignment = MAX2(MinPermHeapExpansion, -+ const size_t alignment = MAX2((size_t) MinPermHeapExpansion, - virtual_space()->alignment()); - - // Compute the desired size: -diff -Nru openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp ---- openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp 2009-12-08 23:12:17.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp 2010-01-11 20:57:36.000000000 +0000 -@@ -281,7 +281,7 @@ - // yield a size that is too small) and bound it by MaxNewSize above. - // Ergonomics plays here by previously calculating the desired - // NewSize and MaxNewSize. -- max_new_size = MIN2(MAX2(max_new_size, NewSize), MaxNewSize); -+ max_new_size = MIN2(MAX2(max_new_size, (size_t)NewSize), (size_t)MaxNewSize); - } - assert(max_new_size > 0, "All paths should set max_new_size"); - -@@ -308,7 +308,7 @@ - // generally small compared to the NewRatio calculation. - _min_gen0_size = NewSize; - desired_new_size = NewSize; -- max_new_size = MAX2(max_new_size, NewSize); -+ max_new_size = MAX2(max_new_size, (size_t) NewSize); - } else { - // For the case where NewSize is the default, use NewRatio - // to size the minimum and initial generation sizes. -@@ -316,10 +316,10 @@ - // NewRatio is overly large, the resulting sizes can be too - // small. - _min_gen0_size = MAX2(scale_by_NewRatio_aligned(min_heap_byte_size()), -- NewSize); -+ (size_t) NewSize); - desired_new_size = - MAX2(scale_by_NewRatio_aligned(initial_heap_byte_size()), -- NewSize); -+ (size_t) NewSize); - } - - assert(_min_gen0_size > 0, "Sanity check"); -@@ -374,14 +374,14 @@ - // Adjust gen0 down to accomodate OldSize - *gen0_size_ptr = heap_size - min_gen0_size; - *gen0_size_ptr = -- MAX2((uintx)align_size_down(*gen0_size_ptr, min_alignment()), -+ MAX2((size_t)align_size_down(*gen0_size_ptr, min_alignment()), - min_alignment()); - assert(*gen0_size_ptr > 0, "Min gen0 is too large"); - result = true; - } else { - *gen1_size_ptr = heap_size - *gen0_size_ptr; - *gen1_size_ptr = -- MAX2((uintx)align_size_down(*gen1_size_ptr, min_alignment()), -+ MAX2((size_t)align_size_down(*gen1_size_ptr, min_alignment()), - min_alignment()); - } - } -@@ -405,7 +405,7 @@ - // for setting the gen1 maximum. - _max_gen1_size = max_heap_byte_size() - _max_gen0_size; - _max_gen1_size = -- MAX2((uintx)align_size_down(_max_gen1_size, min_alignment()), -+ MAX2((size_t)align_size_down(_max_gen1_size, min_alignment()), - min_alignment()); - // If no explicit command line flag has been set for the - // gen1 size, use what is left for gen1. -@@ -419,11 +419,11 @@ - "gen0 has an unexpected minimum size"); - set_min_gen1_size(min_heap_byte_size() - min_gen0_size()); - set_min_gen1_size( -- MAX2((uintx)align_size_down(_min_gen1_size, min_alignment()), -+ MAX2((size_t)align_size_down(_min_gen1_size, min_alignment()), - min_alignment())); - set_initial_gen1_size(initial_heap_byte_size() - initial_gen0_size()); - set_initial_gen1_size( -- MAX2((uintx)align_size_down(_initial_gen1_size, min_alignment()), -+ MAX2((size_t)align_size_down(_initial_gen1_size, min_alignment()), - min_alignment())); - - } else { -diff -Nru openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp ---- openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2009-12-08 23:12:17.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2010-01-11 20:57:36.000000000 +0000 -@@ -221,7 +221,7 @@ - size_t init_sz; - - if (TLABSize > 0) { -- init_sz = MIN2(TLABSize / HeapWordSize, max_size()); -+ init_sz = MIN2((size_t) (TLABSize / HeapWordSize), max_size()); - } else if (global_stats() == NULL) { - // Startup issue - main thread initialized before heap initialized. - init_sz = min_size(); -diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp openjdk/hotspot/src/share/vm/runtime/arguments.cpp ---- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp 2010-01-11 20:48:21.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2010-01-11 20:59:44.000000000 +0000 -@@ -1071,7 +1071,7 @@ - // NewSize was set on the command line and it is larger than - // preferred_max_new_size. - if (!FLAG_IS_DEFAULT(NewSize)) { // NewSize explicitly set at command-line -- FLAG_SET_ERGO(uintx, MaxNewSize, MAX2(NewSize, preferred_max_new_size)); -+ FLAG_SET_ERGO(uintx, MaxNewSize, MAX2((size_t) NewSize, preferred_max_new_size)); - } else { - FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size); - } -@@ -1090,7 +1090,7 @@ - // there was no obvious reason. Also limit to the case where - // MaxNewSize has not been set. - -- FLAG_SET_ERGO(intx, NewRatio, MAX2(NewRatio, new_ratio)); -+ FLAG_SET_ERGO(intx, NewRatio, MAX2((intx) NewRatio, new_ratio)); - - // Code along this path potentially sets NewSize and OldSize - -@@ -1132,8 +1132,8 @@ - // Unless explicitly requested otherwise, make young gen - // at least min_new, and at most preferred_max_new_size. - if (FLAG_IS_DEFAULT(NewSize)) { -- FLAG_SET_ERGO(uintx, NewSize, MAX2(NewSize, min_new)); -- FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, NewSize)); -+ FLAG_SET_ERGO(uintx, NewSize, MAX2((size_t) NewSize, min_new)); -+ FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t) NewSize)); - if (PrintGCDetails && Verbose) { - // Too early to use gclog_or_tty - tty->print_cr("Ergo set NewSize: " SIZE_FORMAT, NewSize); -@@ -1144,7 +1144,7 @@ - // later NewRatio will decide how it grows; see above. - if (FLAG_IS_DEFAULT(OldSize)) { - if (max_heap > NewSize) { -- FLAG_SET_ERGO(uintx, OldSize, MIN2(3*NewSize, max_heap - NewSize)); -+ FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t) 3*NewSize, max_heap - (size_t) NewSize)); - if (PrintGCDetails && Verbose) { - // Too early to use gclog_or_tty - tty->print_cr("Ergo set OldSize: " SIZE_FORMAT, OldSize);
--- a/patches/hotspot/hs16/memory-limits.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -diff -Nru openjdk.orig/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp openjdk/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp ---- openjdk.orig/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp 2009-12-08 23:12:17.000000000 +0000 -+++ openjdk/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp 2010-01-11 20:44:32.000000000 +0000 -@@ -95,7 +95,7 @@ - - // Heap related flags - define_pd_global(uintx,PermSize, ScaleForWordSize(16*M)); --define_pd_global(uintx,MaxPermSize, ScaleForWordSize(64*M)); -+define_pd_global(uintx,MaxPermSize, ScaleForWordSize(128*M)); - - // Ergonomics related flags - define_pd_global(bool, NeverActAsServerClassMachine, false); -diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp openjdk/hotspot/src/share/vm/runtime/globals.hpp ---- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp 2009-12-08 23:12:17.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/runtime/globals.hpp 2010-01-11 20:45:17.000000000 +0000 -@@ -2809,7 +2809,7 @@ - product(uintx, InitialHeapSize, 0, \ - "Initial heap size (in bytes); zero means OldSize + NewSize") \ - \ -- product(uintx, MaxHeapSize, ScaleForWordSize(96*M), \ -+ product(uintx, MaxHeapSize, ScaleForWordSize(512*M), \ - "Maximum heap size (in bytes)") \ - \ - product(uintx, OldSize, ScaleForWordSize(4*M), \
--- a/patches/hotspot/hs16/openjdk-6886353-ignore_deoptimizealot.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -# HG changeset patch -# User andrew -# Date 1254183265 25200 -# Node ID d6b9fd78f38951b6c8b2912701f52aa9fbc08a63 -# Parent ddd6f1182ae3c0014cbc139952ba8d9d14bfb3d1 -6886353: For DeoptimizeALot, JTreg tests should "IgnoreUnrecognizedVMOptions on a product build -Summary: Add IgnoreUnrecognizedVMOptions for JTreg tests (on a product build) to pass with DeoptimizeALot -Reviewed-by: kvn - -diff -r ddd6f1182ae3 -r d6b9fd78f389 test/compiler/6823453/Test.java ---- openjdk/hotspot/test/compiler/6823453/Test.java Fri Sep 25 13:26:02 2009 -0700 -+++ openjdk/hotspot/test/compiler/6823453/Test.java Mon Sep 28 17:14:25 2009 -0700 -@@ -26,7 +26,7 @@ - * @test - * @bug 6823453 - * @summary DeoptimizeALot causes fastdebug server jvm to fail with assert(false,"unscheduable graph") -- * @run main/othervm -Xcomp -XX:CompileOnly=Test -XX:+DeoptimizeALot Test -+ * @run main/othervm -Xcomp -XX:+IgnoreUnrecognizedVMOptions -XX:CompileOnly=Test -XX:+DeoptimizeALot Test - */ - - public class Test { -diff -r ddd6f1182ae3 -r d6b9fd78f389 test/compiler/6833129/Test.java ---- openjdk/hotspot/test/compiler/6833129/Test.java Fri Sep 25 13:26:02 2009 -0700 -+++ openjdk/hotspot/test/compiler/6833129/Test.java Mon Sep 28 17:14:25 2009 -0700 -@@ -25,7 +25,7 @@ - * @test - * @bug 6833129 - * @summary Object.clone() and Arrays.copyOf ignore coping with -XX:+DeoptimizeALot -- * @run main/othervm -Xbatch -XX:+DeoptimizeALot Test -+ * @run main/othervm -Xbatch -XX:+IgnoreUnrecognizedVMOptions -XX:+DeoptimizeALot Test - */ - - public class Test{
--- a/patches/hotspot/hs16/shark.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ ---- openjdk.orig/hotspot/src/cpu//zero/vm/shark_globals_zero.hpp 2009-09-10 15:36:58.658607552 +0100 -+++ openjdk/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp 2010-01-13 14:57:16.000000000 +0000 -@@ -59,5 +59,5 @@ - define_pd_global(uintx, PermSize, 12*M ); - define_pd_global(uintx, MaxPermSize, 64*M ); - define_pd_global(bool, NeverActAsServerClassMachine, true ); --define_pd_global(uintx, DefaultMaxRAM, 1*G ); -+define_pd_global(uint64_t,MaxRAM, 1ULL*G); - define_pd_global(bool, CICompileOSR, true );
--- a/patches/hotspot/hs16/zero.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp ---- openjdk.orig/hotspot/src/cpu/zero/vm/assembler_zero.cpp Mon Oct 26 23:26:33 2009 +0000 -+++ openjdk/hotspot/src/cpu/zero/vm/assembler_zero.cpp Tue Oct 27 15:06:00 2009 +0000 -@@ -54,6 +54,12 @@ - sync(); - } - -+RegisterOrConstant MacroAssembler::delayed_value_impl(intptr_t* delayed_value_addr, -+ Register tmpl, int offset) -+{ -+ Unimplemented(); -+} -+ - void MacroAssembler::store_oop(jobject obj) { - code_section()->relocate(pc(), oop_Relocation::spec_for_immediate()); - emit_address((address) obj); -diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp ---- openjdk.orig/hotspot/src/cpu/zero/vm/assembler_zero.hpp Mon Oct 26 23:26:33 2009 +0000 -+++ openjdk/hotspot/src/cpu/zero/vm/assembler_zero.hpp Tue Oct 27 15:06:00 2009 +0000 -@@ -47,7 +47,8 @@ - void align(int modulus); - void bang_stack_with_offset(int offset); - bool needs_explicit_null_check(intptr_t offset); -- -+ RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr, -+ Register tmp, int offset); - public: - void advance(int bytes); - void store_oop(jobject obj); -diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp ---- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Mon Oct 26 23:26:33 2009 +0000 -+++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue Oct 27 15:06:00 2009 +0000 -@@ -759,6 +759,10 @@ - entry_point = ((InterpreterGenerator*) this)->generate_abstract_entry(); - break; - -+ case Interpreter::method_handle: -+ entry_point = ((InterpreterGenerator*)this)->generate_method_handle_entry(); -+ break; -+ - case Interpreter::java_lang_math_sin: - case Interpreter::java_lang_math_cos: - case Interpreter::java_lang_math_tan: -diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/frame_zero.cpp ---- openjdk.orig/hotspot/src/cpu/zero/vm/frame_zero.cpp Mon Oct 26 23:26:33 2009 +0000 -+++ openjdk/hotspot/src/cpu/zero/vm/frame_zero.cpp Tue Oct 27 15:06:00 2009 +0000 -@@ -166,7 +166,7 @@ - return type; - } - --int frame::frame_size() const { -+int frame::frame_size(RegisterMap* map) const { - #ifdef PRODUCT - ShouldNotCallThis(); - #else -diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp ---- openjdk.orig/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp Mon Oct 26 23:26:33 2009 +0000 -+++ openjdk/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp Tue Oct 27 15:06:00 2009 +0000 -@@ -28,4 +28,7 @@ - class InterpreterMacroAssembler : public MacroAssembler { - public: - InterpreterMacroAssembler(CodeBuffer* code) : MacroAssembler(code) {} -+ RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr, Register tmp, int offset) { -+ Unimplemented(); -+ } - }; -diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp ---- openjdk.orig/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp Mon Oct 26 23:26:33 2009 +0000 -+++ openjdk/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp Tue Oct 27 15:06:00 2009 +0000 -@@ -34,3 +34,4 @@ - address generate_math_entry(AbstractInterpreter::MethodKind kind); - address generate_empty_entry(); - address generate_accessor_entry(); -+ address generate_method_handle_entry(); -diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/interpreter_zero.cpp ---- openjdk.orig/hotspot/src/cpu/zero/vm/interpreter_zero.cpp Mon Oct 26 23:26:33 2009 +0000 -+++ openjdk/hotspot/src/cpu/zero/vm/interpreter_zero.cpp Tue Oct 27 15:06:00 2009 +0000 -@@ -43,6 +43,11 @@ - return ShouldNotCallThisEntry(); - } - -+address InterpreterGenerator::generate_method_handle_entry() -+{ -+ return ShouldNotCallThisEntry(); -+} -+ - int AbstractInterpreter::size_activation(methodOop method, - int tempcount, - int popframe_extra_args, -diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/register_zero.hpp ---- openjdk.orig/hotspot/src/cpu/zero/vm/register_zero.hpp Mon Oct 26 23:26:33 2009 +0000 -+++ openjdk/hotspot/src/cpu/zero/vm/register_zero.hpp Tue Oct 27 15:06:00 2009 +0000 -@@ -106,3 +106,5 @@ - static const int max_gpr; - static const int max_fpr; - }; -+ -+CONSTANT_REGISTER_DECLARATION(Register, noreg, (-1)); -diff -r 7d2ae1d67c95 ports/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp ---- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp Mon Oct 26 23:26:33 2009 +0000 -+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp Tue Oct 27 15:06:00 2009 +0000 -@@ -41,3 +41,5 @@ - define_pd_global(uintx, JVMInvokeMethodSlack, 8192); - - define_pd_global(bool, UseVectoredExceptions, false); -+// Only used on 64 bit platforms -+define_pd_global(uintx, HeapBaseMinAddress, 2*G);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/hotspot/hs17/6873059-javac-versioning-hotspot.patch Sun Apr 18 17:04:10 2010 +0100 @@ -0,0 +1,42 @@ +diff -Nru openjdk.orig/hotspot/make/linux/makefiles/rules.make openjdk/hotspot/make/linux/makefiles/rules.make +--- openjdk.orig/hotspot/make/linux/makefiles/rules.make 2010-04-10 01:52:10.000000000 +0100 ++++ openjdk/hotspot/make/linux/makefiles/rules.make 2010-04-10 02:34:43.000000000 +0100 +@@ -131,8 +131,8 @@ + RUN.JAR$(MAKE_VERBOSE) += >/dev/null + + # Settings for javac +-BOOT_SOURCE_LANGUAGE_VERSION = 6 +-BOOT_TARGET_CLASS_VERSION = 6 ++BOOT_SOURCE_LANGUAGE_VERSION = 5 ++BOOT_TARGET_CLASS_VERSION = 5 + JAVAC_FLAGS = -g -encoding ascii + BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + +diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/rules.make openjdk/hotspot/make/solaris/makefiles/rules.make +--- openjdk.orig/hotspot/make/solaris/makefiles/rules.make 2010-04-10 01:52:10.000000000 +0100 ++++ openjdk/hotspot/make/solaris/makefiles/rules.make 2010-04-10 02:35:05.000000000 +0100 +@@ -131,8 +131,8 @@ + RUN.JAR$(MAKE_VERBOSE) += >/dev/null + + # Settings for javac +-BOOT_SOURCE_LANGUAGE_VERSION = 6 +-BOOT_TARGET_CLASS_VERSION = 6 ++BOOT_SOURCE_LANGUAGE_VERSION = 5 ++BOOT_TARGET_CLASS_VERSION = 5 + JAVAC_FLAGS = -g -encoding ascii + BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + +diff -Nru openjdk.orig/hotspot/make/windows/makefiles/rules.make openjdk/hotspot/make/windows/makefiles/rules.make +--- openjdk.orig/hotspot/make/windows/makefiles/rules.make 2010-04-09 00:03:58.000000000 +0100 ++++ openjdk/hotspot/make/windows/makefiles/rules.make 2010-04-10 02:35:35.000000000 +0100 +@@ -43,8 +43,8 @@ + !endif + + # Settings for javac +-BOOT_SOURCE_LANGUAGE_VERSION=6 +-BOOT_TARGET_CLASS_VERSION=6 ++BOOT_SOURCE_LANGUAGE_VERSION=5 ++BOOT_TARGET_CLASS_VERSION=5 + JAVAC_FLAGS=-g -encoding ascii + BOOTSTRAP_JAVAC_FLAGS=$(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/hotspot/hs17/params-cast-size_t.patch Sun Apr 18 17:04:10 2010 +0100 @@ -0,0 +1,252 @@ +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2010-04-09 00:03:58.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2010-04-10 02:29:45.000000000 +0100 +@@ -963,7 +963,7 @@ + if (free_percentage < desired_free_percentage) { + size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage)); + assert(desired_capacity >= capacity(), "invalid expansion size"); +- expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes); ++ expand_bytes = MAX2((long unsigned int) (desired_capacity - capacity()), (long unsigned int) MinHeapDeltaBytes); + } + if (expand_bytes > 0) { + if (PrintGCDetails && Verbose) { +@@ -6150,7 +6150,7 @@ + HeapWord* curAddr = _markBitMap.startWord(); + while (curAddr < _markBitMap.endWord()) { + size_t remaining = pointer_delta(_markBitMap.endWord(), curAddr); +- MemRegion chunk(curAddr, MIN2(CMSBitMapYieldQuantum, remaining)); ++ MemRegion chunk(curAddr, MIN2((size_t) CMSBitMapYieldQuantum, remaining)); + _markBitMap.clear_large_range(chunk); + if (ConcurrentMarkSweepThread::should_yield() && + !foregroundGCIsActive() && +@@ -6438,7 +6438,7 @@ + return; + } + // Double capacity if possible +- size_t new_capacity = MIN2(_capacity*2, MarkStackSizeMax); ++ size_t new_capacity = MIN2((size_t) (_capacity*2), (size_t) MarkStackSizeMax); + // Do not give up existing stack until we have managed to + // get the double capacity that we desired. + ReservedSpace rs(ReservedSpace::allocation_align_size_up( +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2010-04-10 01:52:13.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2010-04-10 02:28:51.000000000 +0100 +@@ -452,7 +452,7 @@ + _regionStack(), + // _finger set in set_non_marking_state + +- _max_task_num(MAX2(ParallelGCThreads, (size_t)1)), ++ _max_task_num(MAX2((size_t)ParallelGCThreads, (size_t)1)), + // _active_tasks set in set_non_marking_state + // _tasks set inside the constructor + _task_queues(new CMTaskQueueSet((int) _max_task_num)), +@@ -503,7 +503,7 @@ + SATBMarkQueueSet& satb_qs = JavaThread::satb_mark_queue_set(); + satb_qs.set_buffer_size(G1SATBBufferSize); + +- int size = (int) MAX2(ParallelGCThreads, (size_t)1); ++ int size = (int) MAX2((size_t)ParallelGCThreads, (size_t)1); + _par_cleanup_thread_state = NEW_C_HEAP_ARRAY(ParCleanupThreadState*, size); + for (int i = 0 ; i < size; i++) { + _par_cleanup_thread_state[i] = new ParCleanupThreadState; +@@ -562,7 +562,7 @@ + _sleep_factor = sleep_factor; + _marking_task_overhead = marking_task_overhead; + } else { +- _parallel_marking_threads = MAX2((ParallelGCThreads + 2) / 4, (size_t)1); ++ _parallel_marking_threads = MAX2((size_t)((ParallelGCThreads + 2) / 4), (size_t)1); + _sleep_factor = 0.0; + _marking_task_overhead = 1.0; + } +@@ -689,7 +689,7 @@ + } + + ConcurrentMark::~ConcurrentMark() { +- int size = (int) MAX2(ParallelGCThreads, (size_t)1); ++ int size = (int) MAX2((size_t)ParallelGCThreads, (size_t)1); + for (int i = 0; i < size; i++) delete _par_cleanup_thread_state[i]; + FREE_C_HEAP_ARRAY(ParCleanupThreadState*, + _par_cleanup_thread_state); +@@ -1778,7 +1778,7 @@ + if (has_aborted()) return; + + int first = 0; +- int last = (int)MAX2(ParallelGCThreads, (size_t)1); ++ int last = (int)MAX2((size_t)ParallelGCThreads, (size_t)1); + for (int t = 0; t < last; t++) { + UncleanRegionList* list = &_par_cleanup_thread_state[t]->list; + assert(list->well_formed(), "Inv"); +@@ -3276,7 +3276,7 @@ + // of things to do) or totally (at the very end). + size_t target_size; + if (partially) +- target_size = MIN2((size_t)_task_queue->max_elems()/3, GCDrainStackTargetSize); ++ target_size = MIN2((size_t)_task_queue->max_elems()/3, (size_t)GCDrainStackTargetSize); + else + target_size = 0; + +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2010-04-09 00:03:58.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2010-04-10 02:28:51.000000000 +0100 +@@ -1068,7 +1068,7 @@ + // This can be done by either mutator threads together with the + // concurrent refinement threads or GC threads. + int HeapRegionRemSet::num_par_rem_sets() { +- return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), ParallelGCThreads); ++ return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), (size_t)ParallelGCThreads); + } + + HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2010-04-09 00:03:58.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2010-04-10 02:28:51.000000000 +0100 +@@ -863,8 +863,8 @@ + void PSParallelCompact::initialize_dead_wood_limiter() + { + const size_t max = 100; +- _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0; +- _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0; ++ _dwl_mean = double(MIN2((size_t) ParallelOldDeadWoodLimiterMean, max)) / 100.0; ++ _dwl_std_dev = double(MIN2((size_t) ParallelOldDeadWoodLimiterStdDev, max)) / 100.0; + _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev); + DEBUG_ONLY(_dwl_initialized = true;) + _dwl_adjustment = normal_distribution(1.0); +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp 2010-04-09 00:03:58.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp 2010-04-10 02:28:51.000000000 +0100 +@@ -63,7 +63,7 @@ + _last_used = current_live; + + // We have different alignment constraints than the rest of the heap. +- const size_t alignment = MAX2(MinPermHeapExpansion, ++ const size_t alignment = MAX2((size_t) MinPermHeapExpansion, + virtual_space()->alignment()); + + // Compute the desired size: +diff -Nru openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp +--- openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp 2010-04-09 00:03:58.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp 2010-04-10 02:28:51.000000000 +0100 +@@ -281,7 +281,7 @@ + // yield a size that is too small) and bound it by MaxNewSize above. + // Ergonomics plays here by previously calculating the desired + // NewSize and MaxNewSize. +- max_new_size = MIN2(MAX2(max_new_size, NewSize), MaxNewSize); ++ max_new_size = MIN2(MAX2(max_new_size, (size_t)NewSize), (size_t)MaxNewSize); + } + assert(max_new_size > 0, "All paths should set max_new_size"); + +@@ -308,7 +308,7 @@ + // generally small compared to the NewRatio calculation. + _min_gen0_size = NewSize; + desired_new_size = NewSize; +- max_new_size = MAX2(max_new_size, NewSize); ++ max_new_size = MAX2(max_new_size, (size_t) NewSize); + } else { + // For the case where NewSize is the default, use NewRatio + // to size the minimum and initial generation sizes. +@@ -316,10 +316,10 @@ + // NewRatio is overly large, the resulting sizes can be too + // small. + _min_gen0_size = MAX2(scale_by_NewRatio_aligned(min_heap_byte_size()), +- NewSize); ++ (size_t) NewSize); + desired_new_size = + MAX2(scale_by_NewRatio_aligned(initial_heap_byte_size()), +- NewSize); ++ (size_t) NewSize); + } + + assert(_min_gen0_size > 0, "Sanity check"); +@@ -374,14 +374,14 @@ + // Adjust gen0 down to accomodate OldSize + *gen0_size_ptr = heap_size - min_gen0_size; + *gen0_size_ptr = +- MAX2((uintx)align_size_down(*gen0_size_ptr, min_alignment()), ++ MAX2((size_t)align_size_down(*gen0_size_ptr, min_alignment()), + min_alignment()); + assert(*gen0_size_ptr > 0, "Min gen0 is too large"); + result = true; + } else { + *gen1_size_ptr = heap_size - *gen0_size_ptr; + *gen1_size_ptr = +- MAX2((uintx)align_size_down(*gen1_size_ptr, min_alignment()), ++ MAX2((size_t)align_size_down(*gen1_size_ptr, min_alignment()), + min_alignment()); + } + } +@@ -405,7 +405,7 @@ + // for setting the gen1 maximum. + _max_gen1_size = max_heap_byte_size() - _max_gen0_size; + _max_gen1_size = +- MAX2((uintx)align_size_down(_max_gen1_size, min_alignment()), ++ MAX2((size_t)align_size_down(_max_gen1_size, min_alignment()), + min_alignment()); + // If no explicit command line flag has been set for the + // gen1 size, use what is left for gen1. +@@ -419,11 +419,11 @@ + "gen0 has an unexpected minimum size"); + set_min_gen1_size(min_heap_byte_size() - min_gen0_size()); + set_min_gen1_size( +- MAX2((uintx)align_size_down(_min_gen1_size, min_alignment()), ++ MAX2((size_t)align_size_down(_min_gen1_size, min_alignment()), + min_alignment())); + set_initial_gen1_size(initial_heap_byte_size() - initial_gen0_size()); + set_initial_gen1_size( +- MAX2((uintx)align_size_down(_initial_gen1_size, min_alignment()), ++ MAX2((size_t)align_size_down(_initial_gen1_size, min_alignment()), + min_alignment())); + + } else { +diff -Nru openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp +--- openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2010-04-09 00:03:58.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2010-04-10 02:28:51.000000000 +0100 +@@ -221,7 +221,7 @@ + size_t init_sz; + + if (TLABSize > 0) { +- init_sz = MIN2(TLABSize / HeapWordSize, max_size()); ++ init_sz = MIN2((size_t) (TLABSize / HeapWordSize), max_size()); + } else if (global_stats() == NULL) { + // Startup issue - main thread initialized before heap initialized. + init_sz = min_size(); +diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp openjdk/hotspot/src/share/vm/runtime/arguments.cpp +--- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp 2010-04-10 01:52:10.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2010-04-10 02:28:51.000000000 +0100 +@@ -1071,7 +1071,7 @@ + // NewSize was set on the command line and it is larger than + // preferred_max_new_size. + if (!FLAG_IS_DEFAULT(NewSize)) { // NewSize explicitly set at command-line +- FLAG_SET_ERGO(uintx, MaxNewSize, MAX2(NewSize, preferred_max_new_size)); ++ FLAG_SET_ERGO(uintx, MaxNewSize, MAX2((size_t) NewSize, preferred_max_new_size)); + } else { + FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size); + } +@@ -1090,7 +1090,7 @@ + // there was no obvious reason. Also limit to the case where + // MaxNewSize has not been set. + +- FLAG_SET_ERGO(intx, NewRatio, MAX2(NewRatio, new_ratio)); ++ FLAG_SET_ERGO(intx, NewRatio, MAX2((intx) NewRatio, new_ratio)); + + // Code along this path potentially sets NewSize and OldSize + +@@ -1132,8 +1132,8 @@ + // Unless explicitly requested otherwise, make young gen + // at least min_new, and at most preferred_max_new_size. + if (FLAG_IS_DEFAULT(NewSize)) { +- FLAG_SET_ERGO(uintx, NewSize, MAX2(NewSize, min_new)); +- FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, NewSize)); ++ FLAG_SET_ERGO(uintx, NewSize, MAX2((size_t) NewSize, min_new)); ++ FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t) NewSize)); + if (PrintGCDetails && Verbose) { + // Too early to use gclog_or_tty + tty->print_cr("Ergo set NewSize: " SIZE_FORMAT, NewSize); +@@ -1144,7 +1144,7 @@ + // later NewRatio will decide how it grows; see above. + if (FLAG_IS_DEFAULT(OldSize)) { + if (max_heap > NewSize) { +- FLAG_SET_ERGO(uintx, OldSize, MIN2(3*NewSize, max_heap - NewSize)); ++ FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t) 3*NewSize, max_heap - (size_t) NewSize)); + if (PrintGCDetails && Verbose) { + // Too early to use gclog_or_tty + tty->print_cr("Ergo set OldSize: " SIZE_FORMAT, OldSize);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/hotspot/hs17/systemtap.patch Sun Apr 18 17:04:10 2010 +0100 @@ -0,0 +1,157 @@ +diff -Nru openjdk.orig/hotspot/make/linux/makefiles/dtrace.make openjdk/hotspot/make/linux/makefiles/dtrace.make +--- openjdk.orig/hotspot/make/linux/makefiles/dtrace.make 2010-04-09 00:03:58.000000000 +0100 ++++ openjdk/hotspot/make/linux/makefiles/dtrace.make 2010-04-10 02:51:08.000000000 +0100 +@@ -25,3 +25,7 @@ + # Linux does not build jvm_db + LIBJVM_DB = + ++# But it does have a Systemtap dtrace compatible sys/sdt.h ++CFLAGS += -DDTRACE_ENABLED ++ ++# It doesn't support HAVE_DTRACE_H though. +diff -Nru openjdk.orig/hotspot/src/share/vm/prims/jni.cpp openjdk/hotspot/src/share/vm/prims/jni.cpp +--- openjdk.orig/hotspot/src/share/vm/prims/jni.cpp 2010-04-09 00:03:58.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/prims/jni.cpp 2010-04-10 02:51:08.000000000 +0100 +@@ -1753,10 +1753,7 @@ + JNI_QUICK_ENTRY(void, jni_Set##Result##Field(JNIEnv *env, jobject obj, jfieldID fieldID, Argument value)) \ + JNIWrapper("Set" XSTR(Result) "Field"); \ + \ +- HS_DTRACE_PROBE_CDECL_N(hotspot_jni, Set##Result##Field__entry, \ +- ( JNIEnv*, jobject, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \ +- HS_DTRACE_PROBE_N(hotspot_jni, Set##Result##Field__entry, \ +- ( env, obj, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \ ++ FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID, value),DTRACE_PROBE3(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID)); \ + \ + oop o = JNIHandles::resolve_non_null(obj); \ + klassOop k = o->klass(); \ +@@ -1930,10 +1927,7 @@ + \ + JNI_ENTRY(void, jni_SetStatic##Result##Field(JNIEnv *env, jclass clazz, jfieldID fieldID, Argument value)) \ + JNIWrapper("SetStatic" XSTR(Result) "Field"); \ +- HS_DTRACE_PROBE_CDECL_N(hotspot_jni, SetStatic##Result##Field__entry,\ +- ( JNIEnv*, jclass, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \ +- HS_DTRACE_PROBE_N(hotspot_jni, SetStatic##Result##Field__entry, \ +- ( env, clazz, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \ ++ FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID, value),DTRACE_PROBE3(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID)); \ + \ + JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \ + assert(id->is_static_field_id(), "invalid static field id"); \ +diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp openjdk/hotspot/src/share/vm/runtime/arguments.cpp +--- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp 2010-04-10 02:47:16.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2010-04-10 02:53:39.000000000 +0100 +@@ -2460,16 +2460,16 @@ + FLAG_SET_CMDLINE(bool, DisplayVMOutputToStderr, false); + FLAG_SET_CMDLINE(bool, DisplayVMOutputToStdout, true); + } else if (match_option(option, "-XX:+ExtendedDTraceProbes", &tail)) { +-#ifdef SOLARIS ++#ifdef DTRACE_ENABLED + FLAG_SET_CMDLINE(bool, ExtendedDTraceProbes, true); + FLAG_SET_CMDLINE(bool, DTraceMethodProbes, true); + FLAG_SET_CMDLINE(bool, DTraceAllocProbes, true); + FLAG_SET_CMDLINE(bool, DTraceMonitorProbes, true); +-#else // ndef SOLARIS ++#else // ndef DTRACE_ENABLED + jio_fprintf(defaultStream::error_stream(), +- "ExtendedDTraceProbes flag is only applicable on Solaris\n"); ++ "ExtendedDTraceProbes flag is only applicable on dtrace enabled builds\n"); + return JNI_EINVAL; +-#endif // ndef SOLARIS ++#endif // ndef DTRACE_ENABLED + #ifdef ASSERT + } else if (match_option(option, "-XX:+FullGCALot", &tail)) { + FLAG_SET_CMDLINE(bool, FullGCALot, true); +diff -Nru openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp openjdk/hotspot/src/share/vm/utilities/dtrace.hpp +--- openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp 2010-04-09 00:03:58.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp 2010-04-10 02:52:51.000000000 +0100 +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. ++ * Copyright 2009 Red Hat, Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -22,14 +23,14 @@ + * + */ + +-#if defined(SOLARIS) && defined(DTRACE_ENABLED) ++#if defined(DTRACE_ENABLED) + + #include <sys/sdt.h> + + #define DTRACE_ONLY(x) x + #define NOT_DTRACE(x) + +-#else // ndef SOLARIS || ndef DTRACE_ENABLED ++#else // ndef DTRACE_ENABLED + + #define DTRACE_ONLY(x) + #define NOT_DTRACE(x) x +@@ -40,9 +41,16 @@ + #define DTRACE_PROBE3(a,b,c,d,e) {;} + #define DTRACE_PROBE4(a,b,c,d,e,f) {;} + #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;} ++#define DTRACE_PROBE6(a,b,c,d,e,f,g,h) {;} ++#define DTRACE_PROBE7(a,b,c,d,e,f,g,h,i) {;} ++#define DTRACE_PROBE8(a,b,c,d,e,f,g,h,i,j) {;} ++#define DTRACE_PROBE9(a,b,c,d,e,f,g,h,i,j,k) {;} ++#define DTRACE_PROBE10(a,b,c,d,e,f,g,h,i,j,k,l) {;} + + #endif + ++#if defined(SOLARIS) ++// Solaris dtrace needs actual extern function decls. + #define HS_DTRACE_PROBE_FN(provider,name)\ + __dtrace_##provider##___##name + +@@ -50,6 +58,11 @@ + DTRACE_ONLY(extern "C" void HS_DTRACE_PROBE_FN(provider,name) args) + #define HS_DTRACE_PROBE_CDECL_N(provider,name,args) \ + DTRACE_ONLY(extern void HS_DTRACE_PROBE_FN(provider,name) args) ++#else ++// Systemtap dtrace compatible probes on GNU/Linux don't. ++#define HS_DTRACE_PROBE_DECL_N(provider,name,args) ++#define HS_DTRACE_PROBE_CDECL_N(provider,name,args) ++#endif + + /* Dtrace probe declarations */ + #define HS_DTRACE_PROBE_DECL(provider,name) \ +@@ -88,6 +101,8 @@ + uintptr_t,uintptr_t,uintptr_t)) + + /* Dtrace probe definitions */ ++#if defined(SOLARIS) ++// Solaris dtrace uses actual function calls. + #define HS_DTRACE_PROBE_N(provider,name, args) \ + DTRACE_ONLY(HS_DTRACE_PROBE_FN(provider,name) args) + +@@ -123,3 +138,29 @@ + HS_DTRACE_PROBE_N(provider,name,((uintptr_t)a0,(uintptr_t)a1,(uintptr_t)a2,\ + (uintptr_t)a3,(uintptr_t)a4,(uintptr_t)a5,(uintptr_t)a6,(uintptr_t)a7,\ + (uintptr_t)a8,(uintptr_t)a9)) ++#else ++// Systemtap dtrace compatible probes on GNU/Linux use direct macros. ++#define HS_DTRACE_PROBE(provider,name) HS_DTRACE_PROBE0(provider,name) ++#define HS_DTRACE_PROBE0(provider,name)\ ++ DTRACE_PROBE(provider,name) ++#define HS_DTRACE_PROBE1(provider,name,a0)\ ++ DTRACE_PROBE1(provider,name,a0) ++#define HS_DTRACE_PROBE2(provider,name,a0,a1)\ ++ DTRACE_PROBE2(provider,name,a0,a1) ++#define HS_DTRACE_PROBE3(provider,name,a0,a1,a2)\ ++ DTRACE_PROBE3(provider,name,a0,a1,a2) ++#define HS_DTRACE_PROBE4(provider,name,a0,a1,a2,a3)\ ++ DTRACE_PROBE4(provider,name,a0,a1,a2,a3) ++#define HS_DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4)\ ++ DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4) ++#define HS_DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5)\ ++ DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5) ++#define HS_DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6)\ ++ DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6) ++#define HS_DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)\ ++ DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7) ++#define HS_DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\ ++ DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8) ++#define HS_DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\ ++ DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8) ++#endif
--- a/patches/hotspot/original/6873059-javac-versioning-hotspot.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,245 +0,0 @@ -# HG changeset patch -# User andrew -# Date 1252756207 -3600 -# Node ID 0fc81f0a8ca8642c9e4b6901fa23b59c29ac81d7 -# Parent 682194ca1d8d5e705da06c5974ffcda76b0a7add -6873059: Explicitly use -source 6 -target 6 when compiling with the boot jdk -Summary: The build fails if the bootstrap JDK defaults to <1.5 -Reviewed-by: jcoomes - -diff -Nru openjdk.orig/hotspot/make/linux/makefiles/jvmti.make openjdk/hotspot/make/linux/makefiles/jvmti.make ---- openjdk.orig/hotspot/make/linux/makefiles/jvmti.make 2010-03-29 21:25:49.000000000 +0100 -+++ openjdk/hotspot/make/linux/makefiles/jvmti.make 2010-03-29 21:30:06.000000000 +0100 -@@ -70,10 +70,10 @@ - both = $(JvmtiGenClass) $(JvmtiSrcDir)/jvmti.xml $(JvmtiSrcDir)/jvmtiLib.xsl - - $(JvmtiGenClass): $(JvmtiGenSource) -- $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -g -d $(JvmtiOutDir) $(JvmtiGenSource) -+ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiGenSource) - - $(JvmtiEnvFillClass): $(JvmtiEnvFillSource) -- $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -g -d $(JvmtiOutDir) $(JvmtiEnvFillSource) -+ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiEnvFillSource) - - $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl - @echo Generating $@ -diff -Nru openjdk.orig/hotspot/make/linux/makefiles/rules.make openjdk/hotspot/make/linux/makefiles/rules.make ---- openjdk.orig/hotspot/make/linux/makefiles/rules.make 2010-03-29 21:25:49.000000000 +0100 -+++ openjdk/hotspot/make/linux/makefiles/rules.make 2010-03-29 21:30:06.000000000 +0100 -@@ -122,12 +122,20 @@ - endif - endif - -+COMPILE.JAVAC += $(BOOTSTRAP_JAVAC_FLAGS) -+ - SUM = /usr/bin/sum - - # 'gmake MAKE_VERBOSE=y' gives all the gory details. - QUIETLY$(MAKE_VERBOSE) = @ - RUN.JAR$(MAKE_VERBOSE) += >/dev/null - -+# Settings for javac -+BOOT_SOURCE_LANGUAGE_VERSION = 6 -+BOOT_TARGET_CLASS_VERSION = 6 -+JAVAC_FLAGS = -g -encoding ascii -+BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) -+ - # With parallel makes, print a message at the end of compilation. - ifeq ($(findstring j,$(MFLAGS)),j) - COMPILE_DONE = && { echo Done with $<; } -diff -Nru openjdk.orig/hotspot/make/linux/makefiles/sa.make openjdk/hotspot/make/linux/makefiles/sa.make ---- openjdk.orig/hotspot/make/linux/makefiles/sa.make 2010-03-29 21:25:48.000000000 +0100 -+++ openjdk/hotspot/make/linux/makefiles/sa.make 2010-03-29 21:30:06.000000000 +0100 -@@ -74,8 +74,8 @@ - mkdir -p $(SA_CLASSDIR); \ - fi - -- $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1) -- $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2) -+ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1) -+ $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2) - - $(QUIETLY) $(REMOTE) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer - $(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES) -diff -Nru openjdk.orig/hotspot/make/linux/makefiles/top.make openjdk/hotspot/make/linux/makefiles/top.make ---- openjdk.orig/hotspot/make/linux/makefiles/top.make 2010-03-29 21:25:49.000000000 +0100 -+++ openjdk/hotspot/make/linux/makefiles/top.make 2010-03-29 21:30:06.000000000 +0100 -@@ -24,7 +24,7 @@ - - # top.make is included in the Makefile in the build directories. - # It DOES NOT include the vm dependency info in order to be faster. --# It's main job is to implement the incremental form of make lists. -+# Its main job is to implement the incremental form of make lists. - # It also: - # -builds and runs adlc via adlc.make - # -generates JVMTI source and docs via jvmti.make (JSR-163) -@@ -116,7 +116,7 @@ - # make makeDeps: (and zap the cached db files to force a nonincremental run) - - $(GENERATED)/$(MakeDepsClass): $(MakeDepsSources) -- @$(REMOTE) $(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -g -d $(GENERATED) $(MakeDepsSources) -+ @$(REMOTE) $(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources) - @echo Removing $(Incremental_Lists) to force regeneration. - @rm -f $(Incremental_Lists) - @$(CDG) echo >$(Cached_plat) -diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/jvmti.make openjdk/hotspot/make/solaris/makefiles/jvmti.make ---- openjdk.orig/hotspot/make/solaris/makefiles/jvmti.make 2010-02-17 03:11:04.000000000 +0000 -+++ openjdk/hotspot/make/solaris/makefiles/jvmti.make 2010-03-29 21:30:06.000000000 +0100 -@@ -69,10 +69,10 @@ - both = $(JvmtiGenClass) $(JvmtiSrcDir)/jvmti.xml $(JvmtiSrcDir)/jvmtiLib.xsl - - $(JvmtiGenClass): $(JvmtiGenSource) -- $(QUIETLY) $(COMPILE.JAVAC) -g -d $(JvmtiOutDir) $(JvmtiGenSource) -+ $(QUIETLY) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiGenSource) - - $(JvmtiEnvFillClass): $(JvmtiEnvFillSource) -- $(QUIETLY) $(COMPILE.JAVAC) -g -d $(JvmtiOutDir) $(JvmtiEnvFillSource) -+ $(QUIETLY) $(COMPILE.JAVAC) -d $(JvmtiOutDir) $(JvmtiEnvFillSource) - - $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl - @echo Generating $@ -diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/rules.make openjdk/hotspot/make/solaris/makefiles/rules.make ---- openjdk.orig/hotspot/make/solaris/makefiles/rules.make 2010-03-29 21:25:49.000000000 +0100 -+++ openjdk/hotspot/make/solaris/makefiles/rules.make 2010-03-29 21:30:06.000000000 +0100 -@@ -122,12 +122,20 @@ - endif - endif - -+COMPILE.JAVAC += $(BOOTSTRAP_JAVAC_FLAGS) -+ - SUM = /usr/bin/sum - - # 'gmake MAKE_VERBOSE=y' gives all the gory details. - QUIETLY$(MAKE_VERBOSE) = @ - RUN.JAR$(MAKE_VERBOSE) += >/dev/null - -+# Settings for javac -+BOOT_SOURCE_LANGUAGE_VERSION = 6 -+BOOT_TARGET_CLASS_VERSION = 6 -+JAVAC_FLAGS = -g -encoding ascii -+BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) -+ - # With parallel makes, print a message at the end of compilation. - ifeq ($(findstring j,$(MFLAGS)),j) - COMPILE_DONE = && { echo Done with $<; } -diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/sa.make openjdk/hotspot/make/solaris/makefiles/sa.make ---- openjdk.orig/hotspot/make/solaris/makefiles/sa.make 2010-02-17 03:11:04.000000000 +0000 -+++ openjdk/hotspot/make/solaris/makefiles/sa.make 2010-03-29 21:30:06.000000000 +0100 -@@ -67,8 +67,8 @@ - $(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \ - mkdir -p $(SA_CLASSDIR); \ - fi -- $(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1) -- $(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2) -+ $(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1) -+ $(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2) - - $(QUIETLY) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer - $(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES) -diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/top.make openjdk/hotspot/make/solaris/makefiles/top.make ---- openjdk.orig/hotspot/make/solaris/makefiles/top.make 2010-02-17 03:11:04.000000000 +0000 -+++ openjdk/hotspot/make/solaris/makefiles/top.make 2010-03-29 21:30:06.000000000 +0100 -@@ -24,7 +24,7 @@ - - # top.make is included in the Makefile in the build directories. - # It DOES NOT include the vm dependency info in order to be faster. --# It's main job is to implement the incremental form of make lists. -+# Its main job is to implement the incremental form of make lists. - # It also: - # -builds and runs adlc via adlc.make - # -generates JVMTI source and docs via jvmti.make (JSR-163) -@@ -112,7 +112,7 @@ - # make makeDeps: (and zap the cached db files to force a nonincremental run) - - $(GENERATED)/$(MakeDepsClass): $(MakeDepsSources) -- @$(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -g -d $(GENERATED) $(MakeDepsSources) -+ @$(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources) - @echo Removing $(Incremental_Lists) to force regeneration. - @rm -f $(Incremental_Lists) - @$(CDG) echo >$(Cached_plat) -diff -Nru openjdk.orig/hotspot/make/windows/makefiles/generated.make openjdk/hotspot/make/windows/makefiles/generated.make ---- openjdk.orig/hotspot/make/windows/makefiles/generated.make 2010-02-17 03:11:04.000000000 +0000 -+++ openjdk/hotspot/make/windows/makefiles/generated.make 2010-03-29 21:30:06.000000000 +0100 -@@ -91,7 +91,7 @@ - classes/MakeDeps.class: $(MakeDepsSources) - if exist classes rmdir /s /q classes - mkdir classes -- $(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\MakeDeps -g -d classes $(MakeDepsSources) -+ $(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\MakeDeps -d classes $(MakeDepsSources) - - !if ("$(Variant)" == "compiler2") || ("$(Variant)" == "tiered") - -diff -Nru openjdk.orig/hotspot/make/windows/makefiles/jvmti.make openjdk/hotspot/make/windows/makefiles/jvmti.make ---- openjdk.orig/hotspot/make/windows/makefiles/jvmti.make 2010-02-17 03:11:04.000000000 +0000 -+++ openjdk/hotspot/make/windows/makefiles/jvmti.make 2010-03-29 21:30:06.000000000 +0100 -@@ -68,10 +68,10 @@ - @if not exist $(JvmtiOutDir) mkdir $(JvmtiOutDir) - - $(JvmtiGenClass): $(JvmtiGenSource) -- $(COMPILE_JAVAC) -g -d $(JvmtiOutDir) $(JvmtiGenSource) -+ $(COMPILE_JAVAC) -d $(JvmtiOutDir) $(JvmtiGenSource) - - $(JvmtiEnvFillClass): $(JvmtiEnvFillSource) -- @$(COMPILE_JAVAC) -g -d $(JvmtiOutDir) $(JvmtiEnvFillSource) -+ @$(COMPILE_JAVAC) -d $(JvmtiOutDir) $(JvmtiEnvFillSource) - - $(JvmtiOutDir)/jvmtiEnter.cpp: $(both) $(JvmtiSrcDir)/jvmtiEnter.xsl - @echo Generating $@ -diff -Nru openjdk.orig/hotspot/make/windows/makefiles/rules.make openjdk/hotspot/make/windows/makefiles/rules.make ---- openjdk.orig/hotspot/make/windows/makefiles/rules.make 2010-02-17 03:11:04.000000000 +0000 -+++ openjdk/hotspot/make/windows/makefiles/rules.make 2010-03-29 21:30:42.000000000 +0100 -@@ -29,7 +29,7 @@ - RUN_JAVAP=$(BootStrapDir)\bin\javap - RUN_JAVAH=$(BootStrapDir)\bin\javah - RUN_JAR=$(BootStrapDir)\bin\jar --COMPILE_JAVAC=$(BootStrapDir)\bin\javac -+COMPILE_JAVAC=$(BootStrapDir)\bin\javac $(BOOTSTRAP_JAVAC_FLAGS) - COMPILE_RMIC=$(BootStrapDir)\bin\rmic - BOOT_JAVA_HOME=$(BootStrapDir) - !else -@@ -37,11 +37,17 @@ - RUN_JAVAP=javap - RUN_JAVAH=javah - RUN_JAR=jar --COMPILE_JAVAC=javac -+COMPILE_JAVAC=javac $(BOOTSTRAP_JAVAC_FLAGS) - COMPILE_RMIC=rmic - BOOT_JAVA_HOME= - !endif - -+# Settings for javac -+BOOT_SOURCE_LANGUAGE_VERSION=6 -+BOOT_TARGET_CLASS_VERSION=6 -+JAVAC_FLAGS=-g -encoding ascii -+BOOTSTRAP_JAVAC_FLAGS=$(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) -+ - !if "$(MSC_VER)" == "1200" - VcVersion=VC6 - ProjectFile=vm.dsp -diff -Nru openjdk.orig/hotspot/make/windows/makefiles/sa.make openjdk/hotspot/make/windows/makefiles/sa.make ---- openjdk.orig/hotspot/make/windows/makefiles/sa.make 2010-02-17 03:11:04.000000000 +0000 -+++ openjdk/hotspot/make/windows/makefiles/sa.make 2010-03-29 21:30:06.000000000 +0100 -@@ -55,9 +55,9 @@ - $(GENERATED)\sa-jdi.jar: $(AGENT_FILES1:/=\) $(AGENT_FILES2:/=\) - @if not exist $(SA_CLASSDIR) mkdir $(SA_CLASSDIR) - @echo ...Building sa-jdi.jar -- @echo ...$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -g -d $(SA_CLASSDIR) .... -- @$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\) -- @$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\) -+ @echo ...$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -d $(SA_CLASSDIR) .... -+ @$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\) -+ @$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\) - $(COMPILE_RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer - $(QUIETLY) echo $(SA_BUILD_VERSION_PROP)> $(SA_PROPERTIES) - $(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js -diff -Nru openjdk.orig/hotspot/make/windows/projectfiles/common/Makefile openjdk/hotspot/make/windows/projectfiles/common/Makefile ---- openjdk.orig/hotspot/make/windows/projectfiles/common/Makefile 2010-02-17 03:11:04.000000000 +0000 -+++ openjdk/hotspot/make/windows/projectfiles/common/Makefile 2010-03-29 21:30:06.000000000 +0100 -@@ -179,6 +179,6 @@ - $(HOTSPOTBUILDSPACE)/classes/MakeDeps.class: $(MakeDepsSources) - @if exist $(HOTSPOTBUILDSPACE)\classes rmdir /s /q $(HOTSPOTBUILDSPACE)\classes - @mkdir $(HOTSPOTBUILDSPACE)\classes -- @$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\MakeDeps -g -d $(HOTSPOTBUILDSPACE)/classes $(MakeDepsSources) -+ @$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\MakeDeps -d $(HOTSPOTBUILDSPACE)/classes $(MakeDepsSources) - - FORCE:
--- a/patches/hotspot/original/icedtea-6778657-f2i-overflow.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -diff -r dcb49b482348 -r f63a8dee04ae openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp ---- openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp Mon Nov 03 14:00:57 2008 +0000 -+++ openjdk/hotspot/src/share/vm/runtime/sharedRuntime.cpp Mon Nov 03 15:56:17 2008 +0000 -@@ -173,64 +173,46 @@ JRT_END - - - JRT_LEAF(jint, SharedRuntime::f2i(jfloat x)) -- if (g_isnan(x)) {return 0;} -- jlong lltmp = (jlong)x; -- jint ltmp = (jint)lltmp; -- if (ltmp == lltmp) { -- return ltmp; -- } else { -- if (x < 0) { -- return min_jint; -- } else { -- return max_jint; -- } -- } -+ if (g_isnan(x)) -+ return 0; -+ if (x >= (jfloat) max_jint) -+ return max_jint; -+ if (x <= (jfloat) min_jint) -+ return min_jint; -+ return (jint) x; - JRT_END - - - JRT_LEAF(jlong, SharedRuntime::f2l(jfloat x)) -- if (g_isnan(x)) {return 0;} -- jlong lltmp = (jlong)x; -- if (lltmp != min_jlong) { -- return lltmp; -- } else { -- if (x < 0) { -- return min_jlong; -- } else { -- return max_jlong; -- } -- } -+ if (g_isnan(x)) -+ return 0; -+ if (x >= (jfloat) max_jlong) -+ return max_jlong; -+ if (x <= (jfloat) min_jlong) -+ return min_jlong; -+ return (jlong) x; - JRT_END - - - JRT_LEAF(jint, SharedRuntime::d2i(jdouble x)) -- if (g_isnan(x)) {return 0;} -- jlong lltmp = (jlong)x; -- jint ltmp = (jint)lltmp; -- if (ltmp == lltmp) { -- return ltmp; -- } else { -- if (x < 0) { -- return min_jint; -- } else { -- return max_jint; -- } -- } -+ if (g_isnan(x)) -+ return 0; -+ if (x >= (jdouble) max_jint) -+ return max_jint; -+ if (x <= (jdouble) min_jint) -+ return min_jint; -+ return (jint) x; - JRT_END - - - JRT_LEAF(jlong, SharedRuntime::d2l(jdouble x)) -- if (g_isnan(x)) {return 0;} -- jlong lltmp = (jlong)x; -- if (lltmp != min_jlong) { -- return lltmp; -- } else { -- if (x < 0) { -- return min_jlong; -- } else { -- return max_jlong; -- } -- } -+ if (g_isnan(x)) -+ return 0; -+ if (x >= (jdouble) max_jlong) -+ return max_jlong; -+ if (x <= (jdouble) min_jlong) -+ return min_jlong; -+ return (jlong) x; - JRT_END - -
--- a/patches/hotspot/original/icedtea-6778662-lib64.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ ---- origopenjdk/hotspot/src/os/linux/vm/os_linux.cpp 2008-01-04 18:11:53.000000000 -0500 -+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2008-04-21 14:00:59.000000000 -0400 -@@ -265,7 +265,12 @@ - * ... - * 7: The default directories, normally /lib and /usr/lib. - */ --#define DEFAULT_LIBPATH "/lib:/usr/lib" -+ -+#if defined(AMD64) || defined(_LP64) && (defined(PPC) || defined(S390)) -+#define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib" -+#else -+#define DEFAULT_LIBPATH "/lib:/usr/lib" -+#endif - - #define EXTENSIONS_DIR "/lib/ext" - #define ENDORSED_DIR "/lib/endorsed"
--- a/patches/hotspot/original/icedtea-6791168.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,230 +0,0 @@ ---- openjdk/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp.orig 2009-01-13 10:15:42.000000000 +0000 -+++ openjdk/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp 2009-01-13 10:17:05.000000000 +0000 -@@ -594,7 +594,7 @@ - __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::frequency_counter_overflow), rax); - - // for c++ interpreter can rsi really be munged? -- __ lea(state, Address(rbp, -sizeof(BytecodeInterpreter))); // restore state -+ __ lea(state, Address(rbp, -(int)sizeof(BytecodeInterpreter))); // restore state - __ movptr(rbx, Address(state, byte_offset_of(BytecodeInterpreter, _method))); // restore method - __ movptr(rdi, Address(state, byte_offset_of(BytecodeInterpreter, _locals))); // get locals pointer - -@@ -658,7 +658,7 @@ - const Address size_of_stack (rbx, methodOopDesc::max_stack_offset()); - // Always give one monitor to allow us to start interp if sync method. - // Any additional monitors need a check when moving the expression stack -- const one_monitor = frame::interpreter_frame_monitor_size() * wordSize; -+ const int one_monitor = frame::interpreter_frame_monitor_size() * wordSize; - __ load_unsigned_word(rax, size_of_stack); // get size of expression stack in words - __ lea(rax, Address(noreg, rax, Interpreter::stackElementScale(), one_monitor)); - __ lea(rax, Address(rax, rdx, Interpreter::stackElementScale(), overhead_size)); -@@ -1829,7 +1829,7 @@ - Label unwind_and_forward; - - // restore state pointer. -- __ lea(state, Address(rbp, -sizeof(BytecodeInterpreter))); -+ __ lea(state, Address(rbp, -(int)sizeof(BytecodeInterpreter))); - - __ movptr(rbx, STATE(_method)); // get method - #ifdef _LP64 -@@ -1877,14 +1877,14 @@ - - // The FPU stack is clean if UseSSE >= 2 but must be cleaned in other cases - if (UseSSE < 2) { -- __ lea(state, Address(rbp, -sizeof(BytecodeInterpreter))); -+ __ lea(state, Address(rbp, -(int)sizeof(BytecodeInterpreter))); - __ movptr(rbx, STATE(_result._to_call._callee)); // get method just executed - __ movl(rcx, Address(rbx, methodOopDesc::result_index_offset())); - __ cmpl(rcx, AbstractInterpreter::BasicType_as_index(T_FLOAT)); // Result stub address array index - __ jcc(Assembler::equal, do_float); - __ cmpl(rcx, AbstractInterpreter::BasicType_as_index(T_DOUBLE)); // Result stub address array index - __ jcc(Assembler::equal, do_double); --#ifdef COMPILER2 -+#if !defined(_LP64) || defined(COMPILER1) || !defined(COMPILER2) - __ empty_FPU_stack(); - #endif // COMPILER2 - __ jmp(done_conv); -@@ -1928,7 +1928,7 @@ - - // Restore rsi/r13 as compiled code may not preserve it - -- __ lea(state, Address(rbp, -sizeof(BytecodeInterpreter))); -+ __ lea(state, Address(rbp, -(int)sizeof(BytecodeInterpreter))); - - // restore stack to what we had when we left (in case i2c extended it) - -@@ -1942,7 +1942,7 @@ - #else - __ movptr(rcx, STATE(_thread)); // get thread - __ cmpptr(Address(rcx, Thread::pending_exception_offset()), (int32_t)NULL_WORD); --#endif / __LP64 -+#endif // _LP64 - __ jcc(Assembler::notZero, return_with_exception); - - // get method just executed ---- openjdk/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp.orig 2009-01-13 10:15:42.000000000 +0000 -+++ openjdk/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp 2009-01-13 10:17:05.000000000 +0000 -@@ -139,7 +139,7 @@ - #ifdef CC_INTERP - - inline interpreterState frame::get_interpreterState() const { -- return ((interpreterState)addr_at( -sizeof(BytecodeInterpreter)/wordSize )); -+ return ((interpreterState)addr_at( -((int)sizeof(BytecodeInterpreter))/wordSize )); - } - - inline intptr_t* frame::sender_sp() const { ---- openjdk/hotspot/src/cpu/x86/vm/assembler_x86.cpp.orig 2009-01-13 10:15:42.000000000 +0000 -+++ openjdk/hotspot/src/cpu/x86/vm/assembler_x86.cpp 2009-01-13 10:17:05.000000000 +0000 -@@ -6943,29 +6943,32 @@ - - Label slow_case, done; - -- // x ?<= pi/4 -- fld_d(ExternalAddress((address)&pi_4)); -- fld_s(1); // Stack: X PI/4 X -- fabs(); // Stack: |X| PI/4 X -- fcmp(tmp); -- jcc(Assembler::above, slow_case); -- -- // fastest case: -pi/4 <= x <= pi/4 -- switch(trig) { -- case 's': -- fsin(); -- break; -- case 'c': -- fcos(); -- break; -- case 't': -- ftan(); -- break; -- default: -- assert(false, "bad intrinsic"); -- break; -+ ExternalAddress pi4_adr = (address)&pi_4; -+ if (reachable(pi4_adr)) { -+ // x ?<= pi/4 -+ fld_d(pi4_adr); // ExternalAddress((address)&pi_4)); -+ fld_s(1); // Stack: X PI/4 X -+ fabs(); // Stack: |X| PI/4 X -+ fcmp(tmp); -+ jcc(Assembler::above, slow_case); -+ -+ // fastest case: -pi/4 <= x <= pi/4 -+ switch(trig) { -+ case 's': -+ fsin(); -+ break; -+ case 'c': -+ fcos(); -+ break; -+ case 't': -+ ftan(); -+ break; -+ default: -+ assert(false, "bad intrinsic"); -+ break; -+ } -+ jmp(done); - } -- jmp(done); - - // slow case: runtime call - bind(slow_case); ---- openjdk/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp.orig 2009-01-13 10:15:42.000000000 +0000 -+++ openjdk/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp 2009-01-13 10:17:05.000000000 +0000 -@@ -2954,10 +2954,16 @@ - __ pushptr(Address(rcx, 0)); // Save return address - __ enter(); // Save old & set new rbp - __ subptr(rsp, rbx); // Prolog -+#ifdef CC_INTERP -+ __ movptr(Address(rbp, -+ -(sizeof(BytecodeInterpreter)) + in_bytes(byte_offset_of(BytecodeInterpreter, _sender_sp))), -+ sender_sp); // Make it walkable -+#else // CC_INTERP - __ movptr(Address(rbp, frame::interpreter_frame_sender_sp_offset * wordSize), - sender_sp); // Make it walkable - // This value is corrected by layout_activation_impl - __ movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD ); -+#endif // CC_INTERP - __ mov(sender_sp, rsp); // Pass sender_sp to next frame - __ addptr(rsi, wordSize); // Bump array pointer (sizes) - __ addptr(rcx, wordSize); // Bump array pointer (pcs) ---- openjdk/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp.orig 2009-01-13 10:15:42.000000000 +0000 -+++ openjdk/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp 2009-01-13 10:17:05.000000000 +0000 -@@ -213,7 +213,7 @@ - - inline jint BytecodeInterpreter::VMintDiv(jint op1, jint op2) { - /* it's possible we could catch this special case implicitly */ -- if (op1 == 0x80000000 && op2 == -1) return op1; -+ if ((juint)op1 == 0x80000000 && op2 == -1) return op1; - else return op1 / op2; - } - -@@ -231,7 +231,7 @@ - - inline jint BytecodeInterpreter::VMintRem(jint op1, jint op2) { - /* it's possible we could catch this special case implicitly */ -- if (op1 == 0x80000000 && op2 == -1) return 0; -+ if ((juint)op1 == 0x80000000 && op2 == -1) return 0; - else return op1 % op2; - } - ---- openjdk/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp.orig 2009-01-13 10:15:42.000000000 +0000 -+++ openjdk/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp 2009-01-13 10:17:05.000000000 +0000 -@@ -30,7 +30,7 @@ - - #ifdef CC_INTERP - void InterpreterMacroAssembler::get_method(Register reg) { -- movptr(reg, Address(rbp, -(sizeof(BytecodeInterpreter) + 2 * wordSize))); -+ movptr(reg, Address(rbp, -((int)sizeof(BytecodeInterpreter) + 2 * wordSize))); - movptr(reg, Address(reg, byte_offset_of(BytecodeInterpreter, _method))); - } - #endif // CC_INTERP ---- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp.orig 2009-01-13 10:16:45.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp 2009-01-13 10:17:05.000000000 +0000 -@@ -163,7 +163,7 @@ - #ifdef USELABELS - // Have to do this dispatch this way in C++ because otherwise gcc complains about crossing an - // initialization (which is is the initialization of the table pointer...) --#define DISPATCH(opcode) goto *dispatch_table[opcode] -+#define DISPATCH(opcode) goto *(void*)dispatch_table[opcode] - #define CONTINUE { \ - opcode = *pc; \ - DO_UPDATE_INSTRUCTION_COUNT(opcode); \ -@@ -341,7 +341,7 @@ - */ - #undef CHECK_NULL - #define CHECK_NULL(obj_) \ -- if ((obj_) == 0) { \ -+ if ((obj_) == NULL) { \ - VM_JAVA_ERROR(vmSymbols::java_lang_NullPointerException(), ""); \ - } - -@@ -1362,7 +1362,7 @@ - - #define NULL_COMPARISON_NOT_OP(name) \ - CASE(_if##name): { \ -- int skip = (!(STACK_OBJECT(-1) == 0)) \ -+ int skip = (!(STACK_OBJECT(-1) == NULL)) \ - ? (int16_t)Bytes::get_Java_u2(pc + 1) : 3; \ - address branch_pc = pc; \ - UPDATE_PC_AND_TOS(skip, -1); \ -@@ -1372,7 +1372,7 @@ - - #define NULL_COMPARISON_OP(name) \ - CASE(_if##name): { \ -- int skip = ((STACK_OBJECT(-1) == 0)) \ -+ int skip = ((STACK_OBJECT(-1) == NULL)) \ - ? (int16_t)Bytes::get_Java_u2(pc + 1) : 3; \ - address branch_pc = pc; \ - UPDATE_PC_AND_TOS(skip, -1); \ ---- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp.orig 2009-01-13 10:15:42.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp 2009-01-13 10:17:05.000000000 +0000 -@@ -66,7 +66,6 @@ - friend class InterpreterGenerator; - friend class InterpreterMacroAssembler; - friend class frame; --friend class SharedRuntime; - friend class VMStructs; - - public:
--- a/patches/hotspot/original/icedtea-6793825-includedb.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ ---- openjdk/hotspot/src/share/vm/includeDB_compiler2.orig 2009-01-13 10:10:44.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/includeDB_compiler2 2009-01-13 10:11:17.000000000 +0000 -@@ -140,6 +140,7 @@ - c2_globals_<os_family>.hpp macros.hpp - - c2_init_<arch>.cpp compile.hpp -+c2_init_<arch>.cpp node.hpp - - c2compiler.cpp ad_<arch_model>.hpp - c2compiler.cpp c2compiler.hpp -@@ -839,6 +840,7 @@ - phase.cpp compile.hpp - phase.cpp compileBroker.hpp - phase.cpp nmethod.hpp -+phase.cpp node.hpp - phase.cpp phase.hpp - - phase.hpp port.hpp ---- openjdk/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1.orig 2009-01-13 10:10:44.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1 2009-01-13 10:11:17.000000000 +0000 -@@ -34,6 +34,7 @@ - collectionSetChooser.cpp g1CollectedHeap.hpp - collectionSetChooser.cpp g1CollectorPolicy.hpp - collectionSetChooser.cpp collectionSetChooser.hpp -+collectionSetChooser.cpp space.inline.hpp - - collectionSetChooser.hpp heapRegion.hpp - collectionSetChooser.hpp growableArray.hpp -@@ -44,6 +45,7 @@ - concurrentG1Refine.cpp copy.hpp - concurrentG1Refine.cpp g1CollectedHeap.hpp - concurrentG1Refine.cpp g1RemSet.hpp -+concurrentG1Refine.cpp space.inline.hpp - - concurrentG1Refine.hpp globalDefinitions.hpp - -@@ -264,7 +266,7 @@ - heapRegion.cpp iterator.hpp - heapRegion.cpp oop.inline.hpp - --heapRegion.hpp space.hpp -+heapRegion.hpp space.inline.hpp - heapRegion.hpp spaceDecorator.hpp - heapRegion.hpp g1BlockOffsetTable.inline.hpp - heapRegion.hpp watermark.hpp ---- openjdk/hotspot/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge.orig 2009-01-13 10:10:44.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge 2009-01-13 10:11:17.000000000 +0000 -@@ -306,6 +306,8 @@ - psPermGen.cpp psMarkSweepDecorator.hpp - psPermGen.cpp psParallelCompact.hpp - psPermGen.cpp psPermGen.hpp -+psPermGen.cpp markOop.inline.hpp -+psPermGen.cpp markSweep.inline.hpp - - psPermGen.hpp psOldGen.hpp - ---- openjdk/hotspot/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep.orig 2009-01-13 10:10:44.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep 2009-01-13 10:11:17.000000000 +0000 -@@ -28,6 +28,7 @@ - binaryTreeDictionary.cpp binaryTreeDictionary.hpp - binaryTreeDictionary.cpp globals.hpp - binaryTreeDictionary.cpp ostream.hpp -+binaryTreeDictionary.cpp space.inline.hpp - binaryTreeDictionary.cpp spaceDecorator.hpp - - binaryTreeDictionary.hpp freeBlockDictionary.hpp ---- openjdk/hotspot/src/share/vm/gc_implementation/includeDB_gc_parNew.orig 2009-01-13 10:10:44.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/gc_implementation/includeDB_gc_parNew 2009-01-13 10:11:17.000000000 +0000 -@@ -29,6 +29,8 @@ - asParNewGeneration.cpp cmsAdaptiveSizePolicy.hpp - asParNewGeneration.cpp cmsGCAdaptivePolicyCounters.hpp - asParNewGeneration.cpp defNewGeneration.inline.hpp -+asParNewGeneration.cpp markOop.inline.hpp -+asParNewGeneration.cpp markSweep.inline.hpp - asParNewGeneration.cpp oop.pcgc.inline.hpp - asParNewGeneration.cpp parNewGeneration.hpp - asParNewGeneration.cpp referencePolicy.hpp -@@ -40,7 +42,7 @@ - parCardTableModRefBS.cpp java.hpp - parCardTableModRefBS.cpp mutexLocker.hpp - parCardTableModRefBS.cpp sharedHeap.hpp --parCardTableModRefBS.cpp space.hpp -+parCardTableModRefBS.cpp space.inline.hpp - parCardTableModRefBS.cpp universe.hpp - parCardTableModRefBS.cpp virtualspace.hpp - ---- openjdk/hotspot/src/share/vm/includeDB_features.orig 2009-01-13 10:10:44.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/includeDB_features 2009-01-13 10:11:17.000000000 +0000 -@@ -59,6 +59,8 @@ - - dump_<arch_model>.cpp assembler_<arch>.inline.hpp - dump_<arch_model>.cpp compactingPermGenGen.hpp -+dump_<arch_model>.cpp generation.inline.hpp -+dump_<arch_model>.cpp space.inline.hpp - - forte.cpp collectedHeap.inline.hpp - forte.cpp debugInfoRec.hpp ---- openjdk/hotspot/src/share/vm/includeDB_core.orig 2009-03-11 13:14:45.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/includeDB_core 2009-03-11 13:15:59.000000000 +0000 -@@ -1311,6 +1311,7 @@ - cppInterpreter_<arch>.cpp debug.hpp - cppInterpreter_<arch>.cpp deoptimization.hpp - cppInterpreter_<arch>.cpp frame.inline.hpp -+cppInterpreter_<arch>.cpp interfaceSupport.hpp - cppInterpreter_<arch>.cpp interpreterRuntime.hpp - cppInterpreter_<arch>.cpp interpreter.hpp - cppInterpreter_<arch>.cpp interpreterGenerator.hpp
--- a/patches/hotspot/original/icedtea-debuginfo.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -diff -urN openjdk.orig/hotspot/build/linux/makefiles/gcc.make openjdk/hotspot/build/linux/makefiles/gcc.make ---- openjdk.orig/hotspot/build/linux/makefiles/gcc.make 2007-10-12 18:11:59.000000000 -0400 -+++ openjdk/hotspot/build/linux/makefiles/gcc.make 2007-10-12 18:12:22.000000000 -0400 -@@ -63,6 +63,10 @@ - CFLAGS += -D_REENTRANT - CFLAGS += -fcheck-new - -+# Always generate full debuginfo on Linux. It'll be in a separate -+# debuginfo package when building RPMs. -+CFLAGS += -g -+ - ARCHFLAG = $(ARCHFLAG/$(BUILDARCH)) - ARCHFLAG/i486 = -m32 -march=i586 - ARCHFLAG/amd64 = -m64 -
--- a/patches/hotspot/original/icedtea-params-cast-size_t.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,255 +0,0 @@ ---- openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp.orig 2008-12-20 18:59:01.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp 2009-03-11 21:54:11.000000000 +0100 -@@ -63,7 +63,7 @@ - _last_used = current_live; - - // We have different alignment constraints than the rest of the heap. -- const size_t alignment = MAX2(MinPermHeapExpansion, -+ const size_t alignment = MAX2((size_t) MinPermHeapExpansion, - virtual_space()->alignment()); - - // Compute the desired size: ---- openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp.orig 2008-12-20 18:59:01.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2009-03-11 21:54:11.000000000 +0100 -@@ -864,8 +864,8 @@ - void PSParallelCompact::initialize_dead_wood_limiter() - { - const size_t max = 100; -- _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0; -- _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0; -+ _dwl_mean = double(MIN2((size_t) ParallelOldDeadWoodLimiterMean, max)) / 100.0; -+ _dwl_std_dev = double(MIN2((size_t) ParallelOldDeadWoodLimiterStdDev, max)) / 100.0; - _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev); - DEBUG_ONLY(_dwl_initialized = true;) - _dwl_adjustment = normal_distribution(1.0); ---- openjdk/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp.orig 2008-12-20 18:59:01.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp 2009-03-11 21:54:11.000000000 +0100 -@@ -72,7 +72,7 @@ - } - - size_t DirtyCardQueueSet::num_par_ids() { -- return MAX2(ParallelGCThreads, (size_t)2); -+ return MAX2((size_t)ParallelGCThreads, (size_t)2); - } - - ---- openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp.orig 2008-12-20 18:59:01.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2009-03-11 21:54:11.000000000 +0100 -@@ -1061,7 +1061,7 @@ - int HeapRegionRemSet::num_par_rem_sets() { - // We always have at least two, so that a mutator thread can claim an - // id and add to a rem set. -- return (int) MAX2(ParallelGCThreads, (size_t)2); -+ return (int) MAX2((size_t)ParallelGCThreads, (size_t)2); - } - - HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, ---- openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp.orig 2009-03-11 21:52:00.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2009-03-11 21:54:11.000000000 +0100 -@@ -412,7 +412,7 @@ - _regionStack(), - // _finger set in set_non_marking_state - -- _max_task_num(MAX2(ParallelGCThreads, (size_t)1)), -+ _max_task_num(MAX2((size_t)ParallelGCThreads, (size_t)1)), - // _active_tasks set in set_non_marking_state - // _tasks set inside the constructor - _task_queues(new CMTaskQueueSet((int) _max_task_num)), -@@ -463,7 +463,7 @@ - SATBMarkQueueSet& satb_qs = JavaThread::satb_mark_queue_set(); - satb_qs.set_buffer_size(G1SATBLogBufferSize); - -- int size = (int) MAX2(ParallelGCThreads, (size_t)1); -+ int size = (int) MAX2((size_t)ParallelGCThreads, (size_t)1); - _par_cleanup_thread_state = NEW_C_HEAP_ARRAY(ParCleanupThreadState*, size); - for (int i = 0 ; i < size; i++) { - _par_cleanup_thread_state[i] = new ParCleanupThreadState; -@@ -521,7 +521,7 @@ - _sleep_factor = sleep_factor; - _marking_task_overhead = marking_task_overhead; - } else { -- _parallel_marking_threads = MAX2((ParallelGCThreads + 2) / 4, (size_t)1); -+ _parallel_marking_threads = MAX2((size_t)((ParallelGCThreads + 2) / 4), (size_t)1); - _sleep_factor = 0.0; - _marking_task_overhead = 1.0; - } -@@ -648,7 +648,7 @@ - } - - ConcurrentMark::~ConcurrentMark() { -- int size = (int) MAX2(ParallelGCThreads, (size_t)1); -+ int size = (int) MAX2((size_t)ParallelGCThreads, (size_t)1); - for (int i = 0; i < size; i++) delete _par_cleanup_thread_state[i]; - FREE_C_HEAP_ARRAY(ParCleanupThreadState*, - _par_cleanup_thread_state); -@@ -1746,7 +1746,7 @@ - if (has_aborted()) return; - - int first = 0; -- int last = (int)MAX2(ParallelGCThreads, (size_t)1); -+ int last = (int)MAX2((size_t)ParallelGCThreads, (size_t)1); - for (int t = 0; t < last; t++) { - UncleanRegionList* list = &_par_cleanup_thread_state[t]->list; - assert(list->well_formed(), "Inv"); -@@ -3199,7 +3199,7 @@ - // of things to do) or totally (at the very end). - size_t target_size; - if (partially) -- target_size = MIN2((size_t)_task_queue->max_elems()/3, GCDrainStackTargetSize); -+ target_size = MIN2((size_t)_task_queue->max_elems()/3, (size_t)GCDrainStackTargetSize); - else - target_size = 0; - ---- openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp.orig 2008-12-20 18:59:01.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2009-03-11 21:54:11.000000000 +0100 -@@ -939,7 +939,7 @@ - if (free_percentage < desired_free_percentage) { - size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage)); - assert(desired_capacity >= capacity(), "invalid expansion size"); -- expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes); -+ expand_bytes = MAX2((long unsigned int) (desired_capacity - capacity()), (long unsigned int) MinHeapDeltaBytes); - } - if (expand_bytes > 0) { - if (PrintGCDetails && Verbose) { -@@ -6054,7 +6054,7 @@ - HeapWord* curAddr = _markBitMap.startWord(); - while (curAddr < _markBitMap.endWord()) { - size_t remaining = pointer_delta(_markBitMap.endWord(), curAddr); -- MemRegion chunk(curAddr, MIN2(CMSBitMapYieldQuantum, remaining)); -+ MemRegion chunk(curAddr, MIN2((size_t) CMSBitMapYieldQuantum, remaining)); - _markBitMap.clear_large_range(chunk); - if (ConcurrentMarkSweepThread::should_yield() && - !foregroundGCIsActive() && -@@ -6342,7 +6342,7 @@ - return; - } - // Double capacity if possible -- size_t new_capacity = MIN2(_capacity*2, CMSMarkStackSizeMax); -+ size_t new_capacity = MIN2((size_t) (_capacity*2), (size_t) CMSMarkStackSizeMax); - // Do not give up existing stack until we have managed to - // get the double capacity that we desired. - ReservedSpace rs(ReservedSpace::allocation_align_size_up( ---- openjdk/hotspot/src/share/vm/runtime/arguments.cpp.orig 2009-03-11 21:45:27.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2009-03-11 21:54:11.000000000 +0100 -@@ -1051,7 +1051,7 @@ - // for "short" pauses ~ 4M*ParallelGCThreads - if (FLAG_IS_DEFAULT(MaxNewSize)) { // MaxNewSize not set at command-line - if (!FLAG_IS_DEFAULT(NewSize)) { // NewSize explicitly set at command-line -- FLAG_SET_ERGO(uintx, MaxNewSize, MAX2(NewSize, preferred_max_new_size)); -+ FLAG_SET_ERGO(uintx, MaxNewSize, MAX2((size_t) NewSize, preferred_max_new_size)); - } else { - FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size); - } -@@ -1064,7 +1064,7 @@ - // Old to Young gen size so as to shift the collection load - // to the old generation concurrent collector - if (FLAG_IS_DEFAULT(NewRatio)) { -- FLAG_SET_ERGO(intx, NewRatio, MAX2(NewRatio, new_ratio)); -+ FLAG_SET_ERGO(intx, NewRatio, MAX2((intx) NewRatio, new_ratio)); - - size_t min_new = align_size_up(ScaleForWordSize(min_new_default), os::vm_page_size()); - size_t prev_initial_size = initial_heap_size(); -@@ -1093,8 +1093,8 @@ - // Unless explicitly requested otherwise, make young gen - // at least min_new, and at most preferred_max_new_size. - if (FLAG_IS_DEFAULT(NewSize)) { -- FLAG_SET_ERGO(uintx, NewSize, MAX2(NewSize, min_new)); -- FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, NewSize)); -+ FLAG_SET_ERGO(uintx, NewSize, MAX2((size_t) NewSize, min_new)); -+ FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t) NewSize)); - if(PrintGCDetails && Verbose) { - // Too early to use gclog_or_tty - tty->print_cr("Ergo set NewSize: " SIZE_FORMAT, NewSize); -@@ -1105,7 +1105,7 @@ - // later NewRatio will decide how it grows; see above. - if (FLAG_IS_DEFAULT(OldSize)) { - if (max_heap > NewSize) { -- FLAG_SET_ERGO(uintx, OldSize, MIN2(3*NewSize, max_heap - NewSize)); -+ FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t) (3*NewSize), max_heap - (size_t) NewSize)); - if(PrintGCDetails && Verbose) { - // Too early to use gclog_or_tty - tty->print_cr("Ergo set OldSize: " SIZE_FORMAT, OldSize); ---- openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp.orig 2008-12-20 18:59:01.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2009-03-11 21:54:11.000000000 +0100 -@@ -221,7 +221,7 @@ - size_t init_sz; - - if (TLABSize > 0) { -- init_sz = MIN2(TLABSize / HeapWordSize, max_size()); -+ init_sz = MIN2((size_t) (TLABSize / HeapWordSize), max_size()); - } else if (global_stats() == NULL) { - // Startup issue - main thread initialized before heap initialized. - init_sz = min_size(); ---- openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp.orig 2008-12-20 18:59:01.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp 2009-03-11 21:55:31.000000000 +0100 -@@ -281,7 +281,7 @@ - // yield a size that is too small) and bound it by MaxNewSize above. - // Ergonomics plays here by previously calculating the desired - // NewSize and MaxNewSize. -- max_new_size = MIN2(MAX2(max_new_size, NewSize), MaxNewSize); -+ max_new_size = MIN2(MAX2(max_new_size, (size_t)NewSize), (size_t)MaxNewSize); - } - assert(max_new_size > 0, "All paths should set max_new_size"); - -@@ -308,7 +308,7 @@ - // generally small compared to the NewRatio calculation. - _min_gen0_size = NewSize; - desired_new_size = NewSize; -- max_new_size = MAX2(max_new_size, NewSize); -+ max_new_size = MAX2(max_new_size, (size_t) NewSize); - } else { - // For the case where NewSize is the default, use NewRatio - // to size the minimum and initial generation sizes. -@@ -316,10 +316,10 @@ - // NewRatio is overly large, the resulting sizes can be too - // small. - _min_gen0_size = MAX2(scale_by_NewRatio_aligned(min_heap_byte_size()), -- NewSize); -+ (size_t) NewSize); - desired_new_size = - MAX2(scale_by_NewRatio_aligned(initial_heap_byte_size()), -- NewSize); -+ (size_t) NewSize); - } - - assert(_min_gen0_size > 0, "Sanity check"); -@@ -374,14 +374,14 @@ - // Adjust gen0 down to accomodate OldSize - *gen0_size_ptr = heap_size - min_gen0_size; - *gen0_size_ptr = -- MAX2((uintx)align_size_down(*gen0_size_ptr, min_alignment()), -+ MAX2((size_t)align_size_down(*gen0_size_ptr, min_alignment()), - min_alignment()); - assert(*gen0_size_ptr > 0, "Min gen0 is too large"); - result = true; - } else { - *gen1_size_ptr = heap_size - *gen0_size_ptr; - *gen1_size_ptr = -- MAX2((uintx)align_size_down(*gen1_size_ptr, min_alignment()), -+ MAX2((size_t)align_size_down(*gen1_size_ptr, min_alignment()), - min_alignment()); - } - } -@@ -405,7 +405,7 @@ - // for setting the gen1 maximum. - _max_gen1_size = max_heap_byte_size() - _max_gen0_size; - _max_gen1_size = -- MAX2((uintx)align_size_down(_max_gen1_size, min_alignment()), -+ MAX2((size_t)align_size_down(_max_gen1_size, min_alignment()), - min_alignment()); - // If no explicit command line flag has been set for the - // gen1 size, use what is left for gen1. -@@ -419,11 +419,11 @@ - "gen0 has an unexpected minimum size"); - set_min_gen1_size(min_heap_byte_size() - min_gen0_size()); - set_min_gen1_size( -- MAX2((uintx)align_size_down(_min_gen1_size, min_alignment()), -+ MAX2((size_t)align_size_down(_min_gen1_size, min_alignment()), - min_alignment())); - set_initial_gen1_size(initial_heap_byte_size() - initial_gen0_size()); - set_initial_gen1_size( -- MAX2((uintx)align_size_down(_initial_gen1_size, min_alignment()), -+ MAX2((size_t)align_size_down(_initial_gen1_size, min_alignment()), - min_alignment())); - - } else {
--- a/patches/hotspot/original/memory-limits.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -diff -Nru openjdk.orig/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp openjdk/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp ---- openjdk.orig/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp 2008-05-23 22:30:44.000000000 +0100 -+++ openjdk/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp 2008-05-23 22:30:59.000000000 +0100 -@@ -98,7 +98,7 @@ - - // Heap related flags - define_pd_global(uintx, PermSize, ScaleForWordSize(16*M)); --define_pd_global(uintx, MaxPermSize, ScaleForWordSize(64*M)); -+define_pd_global(uintx, MaxPermSize, ScaleForWordSize(128*M)); - - // Ergonomics related flags - define_pd_global(bool, NeverActAsServerClassMachine, false); ---- penjdk6/hotspot/src/share/vm/runtime/globals.hpp 2008-02-12 04:14:24.000000000 -0500 -+++ openjdk/hotspot/src/share/vm/runtime/globals.hpp 2008-02-14 16:34:00.000000000 -0500 -@@ -2606,7 +2606,7 @@ - "an OS lock") \ - \ - /* gc parameters */ \ -- product(uintx, MaxHeapSize, ScaleForWordSize(64*M), \ -+ product(uintx, MaxHeapSize, ScaleForWordSize(512*M), \ - "Default maximum size for object heap (in bytes)") \ - \ - product_pd(uintx, NewSize, \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/hotspot/original/params-cast-size_t.patch Sun Apr 18 17:04:10 2010 +0100 @@ -0,0 +1,252 @@ +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2009-12-08 23:12:17.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2010-01-11 20:57:36.000000000 +0000 +@@ -941,7 +941,7 @@ + if (free_percentage < desired_free_percentage) { + size_t desired_capacity = (size_t)(used() / ((double) 1 - desired_free_percentage)); + assert(desired_capacity >= capacity(), "invalid expansion size"); +- expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes); ++ expand_bytes = MAX2((long unsigned int) (desired_capacity - capacity()), (long unsigned int) MinHeapDeltaBytes); + } + if (expand_bytes > 0) { + if (PrintGCDetails && Verbose) { +@@ -6095,7 +6095,7 @@ + HeapWord* curAddr = _markBitMap.startWord(); + while (curAddr < _markBitMap.endWord()) { + size_t remaining = pointer_delta(_markBitMap.endWord(), curAddr); +- MemRegion chunk(curAddr, MIN2(CMSBitMapYieldQuantum, remaining)); ++ MemRegion chunk(curAddr, MIN2((size_t) CMSBitMapYieldQuantum, remaining)); + _markBitMap.clear_large_range(chunk); + if (ConcurrentMarkSweepThread::should_yield() && + !foregroundGCIsActive() && +@@ -6383,7 +6383,7 @@ + return; + } + // Double capacity if possible +- size_t new_capacity = MIN2(_capacity*2, CMSMarkStackSizeMax); ++ size_t new_capacity = MIN2((size_t) (_capacity*2), (size_t) CMSMarkStackSizeMax); + // Do not give up existing stack until we have managed to + // get the double capacity that we desired. + ReservedSpace rs(ReservedSpace::allocation_align_size_up( +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2010-01-11 20:48:22.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2010-01-11 20:57:36.000000000 +0000 +@@ -412,7 +412,7 @@ + _regionStack(), + // _finger set in set_non_marking_state + +- _max_task_num(MAX2(ParallelGCThreads, (size_t)1)), ++ _max_task_num(MAX2((size_t)ParallelGCThreads, (size_t)1)), + // _active_tasks set in set_non_marking_state + // _tasks set inside the constructor + _task_queues(new CMTaskQueueSet((int) _max_task_num)), +@@ -463,7 +463,7 @@ + SATBMarkQueueSet& satb_qs = JavaThread::satb_mark_queue_set(); + satb_qs.set_buffer_size(G1SATBLogBufferSize); + +- int size = (int) MAX2(ParallelGCThreads, (size_t)1); ++ int size = (int) MAX2((size_t)ParallelGCThreads, (size_t)1); + _par_cleanup_thread_state = NEW_C_HEAP_ARRAY(ParCleanupThreadState*, size); + for (int i = 0 ; i < size; i++) { + _par_cleanup_thread_state[i] = new ParCleanupThreadState; +@@ -522,7 +522,7 @@ + _sleep_factor = sleep_factor; + _marking_task_overhead = marking_task_overhead; + } else { +- _parallel_marking_threads = MAX2((ParallelGCThreads + 2) / 4, (size_t)1); ++ _parallel_marking_threads = MAX2((size_t)((ParallelGCThreads + 2) / 4), (size_t)1); + _sleep_factor = 0.0; + _marking_task_overhead = 1.0; + } +@@ -649,7 +649,7 @@ + } + + ConcurrentMark::~ConcurrentMark() { +- int size = (int) MAX2(ParallelGCThreads, (size_t)1); ++ int size = (int) MAX2((size_t)ParallelGCThreads, (size_t)1); + for (int i = 0; i < size; i++) delete _par_cleanup_thread_state[i]; + FREE_C_HEAP_ARRAY(ParCleanupThreadState*, + _par_cleanup_thread_state); +@@ -1708,7 +1708,7 @@ + if (has_aborted()) return; + + int first = 0; +- int last = (int)MAX2(ParallelGCThreads, (size_t)1); ++ int last = (int)MAX2((size_t)ParallelGCThreads, (size_t)1); + for (int t = 0; t < last; t++) { + UncleanRegionList* list = &_par_cleanup_thread_state[t]->list; + assert(list->well_formed(), "Inv"); +@@ -3202,7 +3202,7 @@ + // of things to do) or totally (at the very end). + size_t target_size; + if (partially) +- target_size = MIN2((size_t)_task_queue->max_elems()/3, GCDrainStackTargetSize); ++ target_size = MIN2((size_t)_task_queue->max_elems()/3, (size_t)GCDrainStackTargetSize); + else + target_size = 0; + +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2009-12-08 23:12:17.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2010-01-11 20:57:36.000000000 +0000 +@@ -1058,7 +1058,7 @@ + // This can be done by either mutator threads together with the + // concurrent refinement threads or GC threads. + int HeapRegionRemSet::num_par_rem_sets() { +- return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), ParallelGCThreads); ++ return (int)MAX2(DirtyCardQueueSet::num_par_ids() + ConcurrentG1Refine::thread_num(), (size_t)ParallelGCThreads); + } + + HeapRegionRemSet::HeapRegionRemSet(G1BlockOffsetSharedArray* bosa, +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2009-12-08 23:12:17.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2010-01-11 20:57:36.000000000 +0000 +@@ -863,8 +863,8 @@ + void PSParallelCompact::initialize_dead_wood_limiter() + { + const size_t max = 100; +- _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0; +- _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0; ++ _dwl_mean = double(MIN2((size_t) ParallelOldDeadWoodLimiterMean, max)) / 100.0; ++ _dwl_std_dev = double(MIN2((size_t) ParallelOldDeadWoodLimiterStdDev, max)) / 100.0; + _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev); + DEBUG_ONLY(_dwl_initialized = true;) + _dwl_adjustment = normal_distribution(1.0); +diff -Nru openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp 2009-12-08 23:12:17.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp 2010-01-11 20:57:36.000000000 +0000 +@@ -63,7 +63,7 @@ + _last_used = current_live; + + // We have different alignment constraints than the rest of the heap. +- const size_t alignment = MAX2(MinPermHeapExpansion, ++ const size_t alignment = MAX2((size_t) MinPermHeapExpansion, + virtual_space()->alignment()); + + // Compute the desired size: +diff -Nru openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp +--- openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp 2009-12-08 23:12:17.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp 2010-01-11 20:57:36.000000000 +0000 +@@ -281,7 +281,7 @@ + // yield a size that is too small) and bound it by MaxNewSize above. + // Ergonomics plays here by previously calculating the desired + // NewSize and MaxNewSize. +- max_new_size = MIN2(MAX2(max_new_size, NewSize), MaxNewSize); ++ max_new_size = MIN2(MAX2(max_new_size, (size_t)NewSize), (size_t)MaxNewSize); + } + assert(max_new_size > 0, "All paths should set max_new_size"); + +@@ -308,7 +308,7 @@ + // generally small compared to the NewRatio calculation. + _min_gen0_size = NewSize; + desired_new_size = NewSize; +- max_new_size = MAX2(max_new_size, NewSize); ++ max_new_size = MAX2(max_new_size, (size_t) NewSize); + } else { + // For the case where NewSize is the default, use NewRatio + // to size the minimum and initial generation sizes. +@@ -316,10 +316,10 @@ + // NewRatio is overly large, the resulting sizes can be too + // small. + _min_gen0_size = MAX2(scale_by_NewRatio_aligned(min_heap_byte_size()), +- NewSize); ++ (size_t) NewSize); + desired_new_size = + MAX2(scale_by_NewRatio_aligned(initial_heap_byte_size()), +- NewSize); ++ (size_t) NewSize); + } + + assert(_min_gen0_size > 0, "Sanity check"); +@@ -374,14 +374,14 @@ + // Adjust gen0 down to accomodate OldSize + *gen0_size_ptr = heap_size - min_gen0_size; + *gen0_size_ptr = +- MAX2((uintx)align_size_down(*gen0_size_ptr, min_alignment()), ++ MAX2((size_t)align_size_down(*gen0_size_ptr, min_alignment()), + min_alignment()); + assert(*gen0_size_ptr > 0, "Min gen0 is too large"); + result = true; + } else { + *gen1_size_ptr = heap_size - *gen0_size_ptr; + *gen1_size_ptr = +- MAX2((uintx)align_size_down(*gen1_size_ptr, min_alignment()), ++ MAX2((size_t)align_size_down(*gen1_size_ptr, min_alignment()), + min_alignment()); + } + } +@@ -405,7 +405,7 @@ + // for setting the gen1 maximum. + _max_gen1_size = max_heap_byte_size() - _max_gen0_size; + _max_gen1_size = +- MAX2((uintx)align_size_down(_max_gen1_size, min_alignment()), ++ MAX2((size_t)align_size_down(_max_gen1_size, min_alignment()), + min_alignment()); + // If no explicit command line flag has been set for the + // gen1 size, use what is left for gen1. +@@ -419,11 +419,11 @@ + "gen0 has an unexpected minimum size"); + set_min_gen1_size(min_heap_byte_size() - min_gen0_size()); + set_min_gen1_size( +- MAX2((uintx)align_size_down(_min_gen1_size, min_alignment()), ++ MAX2((size_t)align_size_down(_min_gen1_size, min_alignment()), + min_alignment())); + set_initial_gen1_size(initial_heap_byte_size() - initial_gen0_size()); + set_initial_gen1_size( +- MAX2((uintx)align_size_down(_initial_gen1_size, min_alignment()), ++ MAX2((size_t)align_size_down(_initial_gen1_size, min_alignment()), + min_alignment())); + + } else { +diff -Nru openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp +--- openjdk.orig/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2009-12-08 23:12:17.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp 2010-01-11 20:57:36.000000000 +0000 +@@ -221,7 +221,7 @@ + size_t init_sz; + + if (TLABSize > 0) { +- init_sz = MIN2(TLABSize / HeapWordSize, max_size()); ++ init_sz = MIN2((size_t) (TLABSize / HeapWordSize), max_size()); + } else if (global_stats() == NULL) { + // Startup issue - main thread initialized before heap initialized. + init_sz = min_size(); +diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp openjdk/hotspot/src/share/vm/runtime/arguments.cpp +--- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp 2010-01-11 20:48:21.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2010-01-11 20:59:44.000000000 +0000 +@@ -1071,7 +1071,7 @@ + // NewSize was set on the command line and it is larger than + // preferred_max_new_size. + if (!FLAG_IS_DEFAULT(NewSize)) { // NewSize explicitly set at command-line +- FLAG_SET_ERGO(uintx, MaxNewSize, MAX2(NewSize, preferred_max_new_size)); ++ FLAG_SET_ERGO(uintx, MaxNewSize, MAX2((size_t) NewSize, preferred_max_new_size)); + } else { + FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size); + } +@@ -1090,7 +1090,7 @@ + // there was no obvious reason. Also limit to the case where + // MaxNewSize has not been set. + +- FLAG_SET_ERGO(intx, NewRatio, MAX2(NewRatio, new_ratio)); ++ FLAG_SET_ERGO(intx, NewRatio, MAX2((intx) NewRatio, new_ratio)); + + // Code along this path potentially sets NewSize and OldSize + +@@ -1132,8 +1132,8 @@ + // Unless explicitly requested otherwise, make young gen + // at least min_new, and at most preferred_max_new_size. + if (FLAG_IS_DEFAULT(NewSize)) { +- FLAG_SET_ERGO(uintx, NewSize, MAX2(NewSize, min_new)); +- FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, NewSize)); ++ FLAG_SET_ERGO(uintx, NewSize, MAX2((size_t) NewSize, min_new)); ++ FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t) NewSize)); + if (PrintGCDetails && Verbose) { + // Too early to use gclog_or_tty + tty->print_cr("Ergo set NewSize: " SIZE_FORMAT, NewSize); +@@ -1144,7 +1144,7 @@ + // later NewRatio will decide how it grows; see above. + if (FLAG_IS_DEFAULT(OldSize)) { + if (max_heap > NewSize) { +- FLAG_SET_ERGO(uintx, OldSize, MIN2(3*NewSize, max_heap - NewSize)); ++ FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t) 3*NewSize, max_heap - (size_t) NewSize)); + if (PrintGCDetails && Verbose) { + // Too early to use gclog_or_tty + tty->print_cr("Ergo set OldSize: " SIZE_FORMAT, OldSize);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/hotspot/original/systemtap.patch Sun Apr 18 17:04:10 2010 +0100 @@ -0,0 +1,182 @@ +diff -r 945bf7540697 make/linux/makefiles/dtrace.make +--- openjdk/hotspot/make/linux/makefiles/dtrace.make Thu Jan 22 14:42:01 2009 -0800 ++++ openjdk/hotspot/make/linux/makefiles/dtrace.make Mon Feb 02 13:47:34 2009 +0100 +@@ -25,3 +25,7 @@ + # Linux does not build jvm_db + LIBJVM_DB = + ++# But it does have a Systemtap dtrace compatible sys/sdt.h ++CFLAGS += -DDTRACE_ENABLED ++ ++# It doesn't support HAVE_DTRACE_H though. +--- openjdk/hotspot/src/share/vm/prims/jni.cpp 2009-10-13 15:34:52.499809508 +0200 ++++ openjdk/hotspot/src/share/vm/prims/jni.cpp 2009-10-13 15:31:26.117823588 +0200 +@@ -1747,10 +1744,7 @@ + JNI_QUICK_ENTRY(void, jni_Set##Result##Field(JNIEnv *env, jobject obj, jfieldID fieldID, Argument value)) \ + JNIWrapper("Set" XSTR(Result) "Field"); \ + \ +- HS_DTRACE_PROBE_CDECL_N(hotspot_jni, Set##Result##Field__entry, \ +- ( JNIEnv*, jobject, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \ +- HS_DTRACE_PROBE_N(hotspot_jni, Set##Result##Field__entry, \ +- ( env, obj, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \ ++ FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID, value),DTRACE_PROBE3(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID)); \ + \ + oop o = JNIHandles::resolve_non_null(obj); \ + klassOop k = o->klass(); \ +@@ -1924,10 +1918,7 @@ + \ + JNI_ENTRY(void, jni_SetStatic##Result##Field(JNIEnv *env, jclass clazz, jfieldID fieldID, Argument value)) \ + JNIWrapper("SetStatic" XSTR(Result) "Field"); \ +- HS_DTRACE_PROBE_CDECL_N(hotspot_jni, SetStatic##Result##Field__entry,\ +- ( JNIEnv*, jclass, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \ +- HS_DTRACE_PROBE_N(hotspot_jni, SetStatic##Result##Field__entry, \ +- ( env, clazz, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \ ++ FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID, value),DTRACE_PROBE3(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID)); \ + \ + JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \ + assert(id->is_static_field_id(), "invalid static field id"); \ +@@ -2116,7 +2101,7 @@ + DT_RETURN_MARK(GetObjectArrayElement, jobject, (const jobject&)ret); + objArrayOop a = objArrayOop(JNIHandles::resolve_non_null(array)); + if (a->is_within_bounds(index)) { +- jobject ret = JNIHandles::make_local(env, a->obj_at(index)); ++ ret = JNIHandles::make_local(env, a->obj_at(index)); + return ret; + } else { + char buf[jintAsStringSize]; +@@ -2150,14 +2150,14 @@ + + #define DEFINE_NEWSCALARARRAY(Return,Allocator,Result) \ + \ +- DT_RETURN_MARK_DECL_FOR(Result, New##Result##Array, Return);\ ++ DT_RETURN_MARK_DECL(New##Result##Array, Return);\ + \ + JNI_ENTRY(Return, \ + jni_New##Result##Array(JNIEnv *env, jsize len)) \ + JNIWrapper("New" XSTR(Result) "Array"); \ + DTRACE_PROBE2(hotspot_jni, New##Result##Array__entry, env, len);\ + Return ret = NULL;\ +- DT_RETURN_MARK_FOR(Result, New##Result##Array, Return, (const Return&)ret);\ ++ DT_RETURN_MARK(New##Result##Array, Return, (const Return&)ret);\ + \ + oop obj= oopFactory::Allocator(len, CHECK_0); \ + ret = (Return) JNIHandles::make_local(env, obj); \ + +diff -r 945bf7540697 src/share/vm/utilities/dtrace.hpp +--- openjdk/hotspot/src/share/vm/utilities/dtrace.hpp Thu Jan 22 14:42:01 2009 -0800 ++++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp Mon Feb 02 13:47:34 2009 +0100 +@@ -1,5 +1,6 @@ + /* + * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. ++ * Copyright 2009 Red Hat, Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -22,14 +23,14 @@ + * + */ + +-#if defined(SOLARIS) && defined(DTRACE_ENABLED) ++#if defined(DTRACE_ENABLED) + + #include <sys/sdt.h> + + #define DTRACE_ONLY(x) x + #define NOT_DTRACE(x) + +-#else // ndef SOLARIS || ndef DTRACE_ENABLED ++#else // ndef DTRACE_ENABLED + + #define DTRACE_ONLY(x) + #define NOT_DTRACE(x) x +@@ -40,9 +41,16 @@ + #define DTRACE_PROBE3(a,b,c,d,e) {;} + #define DTRACE_PROBE4(a,b,c,d,e,f) {;} + #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;} ++#define DTRACE_PROBE6(a,b,c,d,e,f,g,h) {;} ++#define DTRACE_PROBE7(a,b,c,d,e,f,g,h,i) {;} ++#define DTRACE_PROBE8(a,b,c,d,e,f,g,h,i,j) {;} ++#define DTRACE_PROBE9(a,b,c,d,e,f,g,h,i,j,k) {;} ++#define DTRACE_PROBE10(a,b,c,d,e,f,g,h,i,j,k,l) {;} + + #endif + ++#if defined(SOLARIS) ++// Solaris dtrace needs actual extern function decls. + #define HS_DTRACE_PROBE_FN(provider,name)\ + __dtrace_##provider##___##name + +@@ -50,6 +58,11 @@ + DTRACE_ONLY(extern "C" void HS_DTRACE_PROBE_FN(provider,name) args) + #define HS_DTRACE_PROBE_CDECL_N(provider,name,args) \ + DTRACE_ONLY(extern void HS_DTRACE_PROBE_FN(provider,name) args) ++#else ++// Systemtap dtrace compatible probes on GNU/Linux don't. ++#define HS_DTRACE_PROBE_DECL_N(provider,name,args) ++#define HS_DTRACE_PROBE_CDECL_N(provider,name,args) ++#endif + + /* Dtrace probe declarations */ + #define HS_DTRACE_PROBE_DECL(provider,name) \ +@@ -88,6 +101,8 @@ + uintptr_t,uintptr_t,uintptr_t)) + + /* Dtrace probe definitions */ ++#if defined(SOLARIS) ++// Solaris dtrace uses actual function calls. + #define HS_DTRACE_PROBE_N(provider,name, args) \ + DTRACE_ONLY(HS_DTRACE_PROBE_FN(provider,name) args) + +@@ -123,3 +138,29 @@ + HS_DTRACE_PROBE_N(provider,name,((uintptr_t)a0,(uintptr_t)a1,(uintptr_t)a2,\ + (uintptr_t)a3,(uintptr_t)a4,(uintptr_t)a5,(uintptr_t)a6,(uintptr_t)a7,\ + (uintptr_t)a8,(uintptr_t)a9)) ++#else ++// Systemtap dtrace compatible probes on GNU/Linux use direct macros. ++#define HS_DTRACE_PROBE(provider,name) HS_DTRACE_PROBE0(provider,name) ++#define HS_DTRACE_PROBE0(provider,name)\ ++ DTRACE_PROBE(provider,name) ++#define HS_DTRACE_PROBE1(provider,name,a0)\ ++ DTRACE_PROBE1(provider,name,a0) ++#define HS_DTRACE_PROBE2(provider,name,a0,a1)\ ++ DTRACE_PROBE2(provider,name,a0,a1) ++#define HS_DTRACE_PROBE3(provider,name,a0,a1,a2)\ ++ DTRACE_PROBE3(provider,name,a0,a1,a2) ++#define HS_DTRACE_PROBE4(provider,name,a0,a1,a2,a3)\ ++ DTRACE_PROBE4(provider,name,a0,a1,a2,a3) ++#define HS_DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4)\ ++ DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4) ++#define HS_DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5)\ ++ DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5) ++#define HS_DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6)\ ++ DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6) ++#define HS_DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)\ ++ DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7) ++#define HS_DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\ ++ DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8) ++#define HS_DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\ ++ DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8) ++#endif +--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2009-03-04 14:39:43.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2009-03-04 22:11:37.000000000 +0100 +@@ -2272,16 +2272,16 @@ + FLAG_SET_CMDLINE(bool, DisplayVMOutputToStderr, false); + FLAG_SET_CMDLINE(bool, DisplayVMOutputToStdout, true); + } else if (match_option(option, "-XX:+ExtendedDTraceProbes", &tail)) { +-#ifdef SOLARIS ++#ifdef DTRACE_ENABLED + FLAG_SET_CMDLINE(bool, ExtendedDTraceProbes, true); + FLAG_SET_CMDLINE(bool, DTraceMethodProbes, true); + FLAG_SET_CMDLINE(bool, DTraceAllocProbes, true); + FLAG_SET_CMDLINE(bool, DTraceMonitorProbes, true); +-#else // ndef SOLARIS ++#else // ndef DTRACE_ENABLED + jio_fprintf(defaultStream::error_stream(), +- "ExtendedDTraceProbes flag is only applicable on Solaris\n"); ++ "ExtendedDTraceProbes flag is only applicable on dtrace enabled builds\n"); + return JNI_EINVAL; +-#endif // ndef SOLARIS ++#endif // ndef DTRACE_ENABLED + } else + #ifdef ASSERT + if (match_option(option, "-XX:+FullGCALot", &tail)) {
--- a/patches/icedtea-6761856-freetypescaler.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -# User igor -# Date 1225234342 -10800 -# Node ID 9cdababf6179bd03270d881740fbb5dcc405854f -# Parent 594c52582b21063bdbc36b38d9f73a3c46abe041 -6761856: OpenJDK: vertical text metrics may be significanly different from those returned by Sun JDK -Reviewed-by: bae, prr - ---- openjdk.orig/jdk/src/share/native/sun/font/freetypeScaler.c Tue Oct 28 14:47:14 2008 -0700 -+++ openjdk/jdk/src/share/native/sun/font/freetypeScaler.c Wed Oct 29 01:52:22 2008 +0300 -@@ -1281,7 +1281,7 @@ Java_sun_font_FreetypeFontScaler_getGlyp - sunFontIDs.rect2DFloatClass, - sunFontIDs.rect2DFloatCtr4, - F26Dot6ToFloat(bbox.xMin), -- F26Dot6ToFloat(bbox.yMax), -+ F26Dot6ToFloat(-bbox.yMax), - F26Dot6ToFloat(bbox.xMax-bbox.xMin), - F26Dot6ToFloat(bbox.yMax-bbox.yMin)); - } ---- openjdk.orig/jdk/test/java/awt/font/TextLayout/TextLayoutBounds.java Tue Oct 28 14:47:14 2008 -0700 -+++ openjdk/jdk/test/java/awt/font/TextLayout/TextLayoutBounds.java Wed Oct 29 01:52:22 2008 +0300 -@@ -22,7 +22,7 @@ - */ - /* @test - * @summary verify TextLayout.getBounds() return visual bounds -- * @bug 6323611 -+ * @bug 6323611 6761856 - */ - - import java.awt.*; -@@ -39,10 +39,15 @@ public class TextLayoutBounds { - Rectangle2D tlBounds = tl.getBounds(); - GlyphVector gv = f.createGlyphVector(frc, s); - Rectangle2D gvvBounds = gv.getVisualBounds(); -+ Rectangle2D oBounds = tl.getOutline(null).getBounds2D(); - System.out.println("tlbounds="+tlBounds); - System.out.println("gvbounds="+gvvBounds); -+ System.out.println("outlineBounds="+oBounds); - if (!gvvBounds.equals(tlBounds)) { -- throw new RuntimeException("Bounds differ"); -+ throw new RuntimeException("Bounds differ [gvv != tl]"); -+ } -+ if (!tlBounds.equals(oBounds)) { -+ throw new RuntimeException("Bounds differ [tl != outline]"); - } - } - } -
--- a/patches/icedtea-explicit-target-arch.patch Sun Apr 18 17:03:04 2010 +0100 +++ b/patches/icedtea-explicit-target-arch.patch Sun Apr 18 17:04:10 2010 +0100 @@ -2,12 +2,6 @@ =================================================================== --- openjdk.orig/hotspot/make/linux/makefiles/defs.make 2009-05-18 14:09:57.812930043 +0200 +++ openjdk/hotspot/make/linux/makefiles/defs.make 2009-05-18 14:30:46.318871170 +0200 -@@ -1,4 +1,4 @@ --# -+ - # Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. - # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - # @@ -29,7 +29,11 @@ SLASH_JAVA ?= /java
--- a/patches/icedtea-fonts.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,783 +0,0 @@ ---- openjdkold/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties 2008-03-26 14:30:01.000000000 +0530 -+++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties 2008-04-21 11:21:49.000000000 +0530 -@@ -25,134 +25,310 @@ - - # Version - --# Uses Fedora Core 6 fonts and file paths. -+# Uses Fedora 9 fonts and file paths. - version=1 - - # Component Font Mappings - --dialog.plain.latin-1=DejaVu LGC Sans -+dialog.plain.latin-1=DejaVu Sans - dialog.plain.japanese-x0208=Sazanami Gothic - dialog.plain.korean=Baekmuk Gulim - dialog.plain.chinese-big5=AR PL ShanHeiSun Uni - dialog.plain.chinese-gb18030=AR PL ShanHeiSun Uni -+dialog.plain.bengali=Lohit Bengali -+dialog.plain.gujarati=Lohit Gujarati -+dialog.plain.hindi=Lohit Hindi -+dialog.plain.malayalam=Lohit Malayalam -+dialog.plain.oriya=Lohit Oriya -+dialog.plain.punjabi=Lohit Punjabi -+dialog.plain.tamil=Lohit Tamil -+dialog.plain.telugu=Lohit Telugu -+dialog.plain.sinhala=LKLUG - --dialog.bold.latin-1=DejaVu LGC Sans Bold -+dialog.bold.latin-1=DejaVu Sans Bold - dialog.bold.japanese-x0208=Sazanami Gothic - dialog.bold.korean=Baekmuk Gulim - dialog.bold.chinese-big5=AR PL ShanHeiSun Uni - dialog.bold.chinese-gb18030=AR PL ShanHeiSun Uni -+dialog.bold.bengali=Lohit Bengali -+dialog.bold.gujarati=Lohit Gujarati -+dialog.bold.hindi=Lohit Hindi -+dialog.bold.malayalam=Lohit Malayalam -+dialog.bold.oriya=Lohit Oriya -+dialog.bold.punjabi=Lohit Punjabi -+dialog.bold.tamil=Lohit Tamil -+dialog.bold.telugu=Lohit Telugu -+dialog.bold.sinhala=LKLUG - --dialog.italic.latin-1=DejaVu LGC Sans Oblique -+dialog.italic.latin-1=DejaVu Sans Oblique - dialog.italic.japanese-x0208=Sazanami Gothic - dialog.italic.korean=Baekmuk Gulim - dialog.italic.chinese-big5=AR PL ShanHeiSun Uni - dialog.italic.chinese-gb18030=AR PL ShanHeiSun Uni -+dialog.italic.bengali=Lohit Bengali -+dialog.italic.gujarati=Lohit Gujarati -+dialog.italic.hindi=Lohit Hindi -+dialog.italic.malayalam=Lohit Malayalam -+dialog.italic.oriya=Lohit Oriya -+dialog.italic.punjabi=Lohit Punjabi -+dialog.italic.tamil=Lohit Tamil -+dialog.italic.telugu=Lohit Telugu -+dialog.italic.sinhala=LKLUG - --dialog.bolditalic.latin-1=DejaVu LGC Sans Bold Oblique -+dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique - dialog.bolditalic.japanese-x0208=Sazanami Gothic - dialog.bolditalic.korean=Baekmuk Gulim - dialog.bolditalic.chinese-big5=AR PL ShanHeiSun Uni - dialog.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni -+dialog.bolditalic.bengali=Lohit Bengali -+dialog.bolditalic.gujarati=Lohit Gujarati -+dialog.bolditalic.hindi=Lohit Hindi -+dialog.bolditalic.malayalam=Lohit Malayalam -+dialog.bolditalic.oriya=Lohit Oriya -+dialog.bolditalic.punjabi=Lohit Punjabi -+dialog.bolditalic.tamil=Lohit Tamil -+dialog.bolditalic.telugu=Lohit Telugu -+dialog.bolditalic.sinhala=LKLUG - -- --sansserif.plain.latin-1=DejaVu LGC Sans -+sansserif.plain.latin-1=DejaVu Sans - sansserif.plain.japanese-x0208=Sazanami Gothic - sansserif.plain.korean=Baekmuk Gulim - sansserif.plain.chinese-big5=AR PL ShanHeiSun Uni - sansserif.plain.chinese-gb18030=AR PL ShanHeiSun Uni -+sansserif.plain.bengali=Lohit Bengali -+sansserif.plain.gujarati=Lohit Gujarati -+sansserif.plain.hindi=Lohit Hindi -+sansserif.plain.malayalam=Lohit Malayalam -+sansserif.plain.oriya=Lohit Oriya -+sansserif.plain.punjabi=Lohit Punjabi -+sansserif.plain.tamil=Lohit Tamil -+sansserif.plain.telugu=Lohit Telugu -+sansserif.plain.sinhala=LKLUG - --sansserif.bold.latin-1=DejaVu LGC Sans Bold -+sansserif.bold.latin-1=DejaVu Sans Bold - sansserif.bold.japanese-x0208=Sazanami Gothic - sansserif.bold.korean=Baekmuk Gulim - sansserif.bold.chinese-big5=AR PL ShanHeiSun Uni - sansserif.bold.chinese-gb18030=AR PL ShanHeiSun Uni -+sansserif.bold.bengali=Lohit Bengali -+sansserif.bold.gujarati=Lohit Gujarati -+sansserif.bold.hindi=Lohit Hindi -+sansserif.bold.malayalam=Lohit Malayalam -+sansserif.bold.oriya=Lohit Oriya -+sansserif.bold.punjabi=Lohit Punjabi -+sansserif.bold.tamil=Lohit Tamil -+sansserif.bold.telugu=Lohit Telugu -+sansserif.bold.sinhala=LKLUG - --sansserif.italic.latin-1=DejaVu LGC Sans Oblique -+sansserif.italic.latin-1=DejaVu Sans Oblique - sansserif.italic.japanese-x0208=Sazanami Gothic - sansserif.italic.korean=Baekmuk Gulim - sansserif.italic.chinese-big5=AR PL ShanHeiSun Uni - sansserif.italic.chinese-gb18030=AR PL ShanHeiSun Uni -+sansserif.italic.bengali=Lohit Bengali -+sansserif.italic.gujarati=Lohit Gujarati -+sansserif.italic.hindi=Lohit Hindi -+sansserif.italic.malayalam=Lohit Malayalam -+sansserif.italic.oriya=Lohit Oriya -+sansserif.italic.punjabi=Lohit Punjabi -+sansserif.italic.tamil=Lohit Tamil -+sansserif.italic.telugu=Lohit Telugu -+sansserif.italic.sinhala=LKLUG - --sansserif.bolditalic.latin-1=DejaVu LGC Sans Bold Oblique -+sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique - sansserif.bolditalic.japanese-x0208=Sazanami Gothic - sansserif.bolditalic.korean=Baekmuk Gulim - sansserif.bolditalic.chinese-big5=AR PL ShanHeiSun Uni - sansserif.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni -+sansserif.bolditalic.bengali=Lohit Bengali -+sansserif.bolditalic.gujarati=Lohit Gujarati -+sansserif.bolditalic.hindi=Lohit Hindi -+sansserif.bolditalic.malayalam=Lohit Malayalam -+sansserif.bolditalic.oriya=Lohit Oriya -+sansserif.bolditalic.punjabi=Lohit Punjabi -+sansserif.bolditalic.tamil=Lohit Tamil -+sansserif.bolditalic.telugu=Lohit Telugu -+sansserif.bolditalic.sinhala=LKLUG - -- --serif.plain.latin-1=DejaVu LGC Serif -+serif.plain.latin-1=DejaVu Serif - serif.plain.japanese-x0208=Sazanami Mincho - serif.plain.korean=Baekmuk Batang - serif.plain.chinese-big5=AR PL ZenKai Uni - serif.plain.chinese-gb18030=AR PL ZenKai Uni -+serif.plain.bengali=Lohit Bengali -+serif.plain.gujarati=Lohit Gujarati -+serif.plain.hindi=Lohit Hindi -+serif.plain.malayalam=Lohit Malayalam -+serif.plain.oriya=Lohit Oriya -+serif.plain.punjabi=Lohit Punjabi -+serif.plain.tamil=Lohit Tamil -+serif.plain.telugu=Lohit Telugu -+serif.plain.sinhala=LKLUG - --serif.bold.latin-1=DejaVu LGC Serif Bold -+serif.bold.latin-1=DejaVu Serif Bold - serif.bold.japanese-x0208=Sazanami Mincho - serif.bold.korean=Baekmuk Batang - serif.bold.chinese-big5=AR PL ZenKai Uni - serif.bold.chinese-gb18030=AR PL ZenKai Uni -+serif.bold.bengali=Lohit Bengali -+serif.bold.gujarati=Lohit Gujarati -+serif.bold.hindi=Lohit Hindi -+serif.bold.malayalam=Lohit Malayalam -+serif.bold.oriya=Lohit Oriya -+serif.bold.punjabi=Lohit Punjabi -+serif.bold.tamil=Lohit Tamil -+serif.bold.telugu=Lohit Telugu -+serif.bold.sinhala=LKLUG - --serif.italic.latin-1=DejaVu LGC Serif Oblique -+serif.italic.latin-1=DejaVu Serif Oblique - serif.italic.japanese-x0208=Sazanami Mincho - serif.italic.korean=Baekmuk Batang - serif.italic.chinese-big5=AR PL ZenKai Uni - serif.italic.chinese-gb18030=AR PL ZenKai Uni -+serif.italic.bengali=Lohit Bengali -+serif.italic.gujarati=Lohit Gujarati -+serif.italic.hindi=Lohit Hindi -+serif.italic.malayalam=Lohit Malayalam -+serif.italic.oriya=Lohit Oriya -+serif.italic.punjabi=Lohit Punjabi -+serif.italic.tamil=Lohit Tamil -+serif.italic.telugu=Lohit Telugu -+serif.italic.sinhala=LKLUG - --serif.bolditalic.latin-1=DejaVu LGC Serif Bold Oblique -+serif.bolditalic.latin-1=DejaVu Serif Bold Oblique - serif.bolditalic.japanese-x0208=Sazanami Mincho - serif.bolditalic.korean=Baekmuk Batang - serif.bolditalic.chinese-big5=AR PL ZenKai Uni - serif.bolditalic.chinese-gb18030=AR PL ZenKai Uni -+serif.bolditalic.bengali=Lohit Bengali -+serif.bolditalic.gujarati=Lohit Gujarati -+serif.bolditalic.hindi=Lohit Hindi -+serif.bolditalic.malayalam=Lohit Malayalam -+serif.bolditalic.oriya=Lohit Oriya -+serif.bolditalic.punjabi=Lohit Punjabi -+serif.bolditalic.tamil=Lohit Tamil -+serif.bolditalic.telugu=Lohit Telugu -+serif.bolditalic.sinhala=LKLUG - -- --monospaced.plain.latin-1=DejaVu LGC Sans Mono -+monospaced.plain.latin-1=DejaVu Sans Mono - monospaced.plain.japanese-x0208=Sazanami Gothic - monospaced.plain.korean=Baekmuk Gulim - monospaced.plain.chinese-big5=AR PL ShanHeiSun Uni - monospaced.plain.chinese-gb18030=AR PL ShanHeiSun Uni -+monospaced.plain.bengali=Lohit Bengali -+monospaced.plain.gujarati=Lohit Gujarati -+monospaced.plain.hindi=Lohit Hindi -+monospaced.plain.malayalam=Lohit Malayalam -+monospaced.plain.oriya=Lohit Oriya -+monospaced.plain.punjabi=Lohit Punjabi -+monospaced.plain.tamil=Lohit Tamil -+monospaced.plain.telugu=Lohit Telugu -+monospaced.plain.sinhala=LKLUG - --monospaced.bold.latin-1=DejaVu LGC Sans Mono Bold -+monospaced.bold.latin-1=DejaVu Sans Mono Bold - monospaced.bold.japanese-x0208=Sazanami Gothic - monospaced.bold.korean=Baekmuk Gulim - monospaced.bold.chinese-big5=AR PL ShanHeiSun Uni - monospaced.bold.chinese-gb18030=AR PL ShanHeiSun Uni -+monospaced.bold.bengali=Lohit Bengali -+monospaced.bold.gujarati=Lohit Gujarati -+monospaced.bold.hindi=Lohit Hindi -+monospaced.bold.malayalam=Lohit Malayalam -+monospaced.bold.oriya=Lohit Oriya -+monospaced.bold.punjabi=Lohit Punjabi -+monospaced.bold.tamil=Lohit Tamil -+monospaced.bold.telugu=Lohit Telugu -+monospaced.bold.sinhala=LKLUG - --monospaced.italic.latin-1=DejaVu LGC Sans Mono Oblique -+monospaced.italic.latin-1=DejaVu Sans Mono Oblique - monospaced.italic.japanese-x0208=Sazanami Gothic - monospaced.italic.korean=Baekmuk Gulim - monospaced.italic.chinese-big5=AR PL ShanHeiSun Uni - monospaced.italic.chinese-gb18030=AR PL ShanHeiSun Uni -+monospaced.italic.bengali=Lohit Bengali -+monospaced.italic.gujarati=Lohit Gujarati -+monospaced.italic.hindi=Lohit Hindi -+monospaced.italic.malayalam=Lohit Malayalam -+monospaced.italic.oriya=Lohit Oriya -+monospaced.italic.punjabi=Lohit Punjabi -+monospaced.italic.tamil=Lohit Tamil -+monospaced.italic.telugu=Lohit Telugu -+monospaced.italic.sinhala=LKLUG - --monospaced.bolditalic.latin-1=DejaVu LGC Sans Mono Bold Oblique -+monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique - monospaced.bolditalic.japanese-x0208=Sazanami Gothic - monospaced.bolditalic.korean=Baekmuk Gulim - monospaced.bolditalic.chinese-big5=AR PL ShanHeiSun Uni - monospaced.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni -+monospaced.bolditalic.bengali=Lohit Bengali -+monospaced.bolditalic.gujarati=Lohit Gujarati -+monospaced.bolditalic.hindi=Lohit Hindi -+monospaced.bolditalic.malayalam=Lohit Malayalam -+monospaced.bolditalic.oriya=Lohit Oriya -+monospaced.bolditalic.punjabi=Lohit Punjabi -+monospaced.bolditalic.tamil=Lohit Tamil -+monospaced.bolditalic.telugu=Lohit Telugu -+monospaced.bolditalic.sinhala=LKLUG - -- --dialoginput.plain.latin-1=DejaVu LGC Sans Mono -+dialoginput.plain.latin-1=DejaVu Sans Mono - dialoginput.plain.japanese-x0208=Sazanami Gothic - dialoginput.plain.korean=Baekmuk Gulim - dialoginput.plain.chinese-big5=AR PL ShanHeiSun Uni - dialoginput.plain.chinese-gb18030=AR PL ShanHeiSun Uni -+dialoginput.plain.bengali=Lohit Bengali -+dialoginput.plain.gujarati=Lohit Gujarati -+dialoginput.plain.hindi=Lohit Hindi -+dialoginput.plain.malayalam=Lohit Malayalam -+dialoginput.plain.oriya=Lohit Oriya -+dialoginput.plain.punjabi=Lohit Punjabi -+dialoginput.plain.tamil=Lohit Tamil -+dialoginput.plain.telugu=Lohit Telugu -+dialoginput.plain.sinhala=LKLUG - --dialoginput.bold.latin-1=DejaVu LGC Sans Mono Bold -+dialoginput.bold.latin-1=DejaVu Sans Mono Bold - dialoginput.bold.japanese-x0208=Sazanami Gothic - dialoginput.bold.korean=Baekmuk Gulim - dialoginput.bold.chinese-big5=AR PL ShanHeiSun Uni - dialoginput.bold.chinese-gb18030=AR PL ShanHeiSun Uni -+dialoginput.bold.bengali=Lohit Bengali -+dialoginput.bold.gujarati=Lohit Gujarati -+dialoginput.bold.hindi=Lohit Hindi -+dialoginput.bold.malayalam=Lohit Malayalam -+dialoginput.bold.oriya=Lohit Oriya -+dialoginput.bold.punjabi=Lohit Punjabi -+dialoginput.bold.tamil=Lohit Tamil -+dialoginput.bold.telugu=Lohit Telugu -+dialoginput.bold.sinhala=LKLUG - --dialoginput.italic.latin-1=DejaVu LGC Sans Mono Oblique -+dialoginput.italic.latin-1=DejaVu Sans Mono Oblique - dialoginput.italic.japanese-x0208=Sazanami Gothic - dialoginput.italic.korean=Baekmuk Gulim - dialoginput.italic.chinese-big5=AR PL ShanHeiSun Uni - dialoginput.italic.chinese-gb18030=AR PL ShanHeiSun Uni -+dialoginput.italic.bengali=Lohit Bengali -+dialoginput.italic.gujarati=Lohit Gujarati -+dialoginput.italic.hindi=Lohit Hindi -+dialoginput.italic.malayalam=Lohit Malayalam -+dialoginput.italic.oriya=Lohit Oriya -+dialoginput.italic.punjabi=Lohit Punjabi -+dialoginput.italic.tamil=Lohit Tamil -+dialoginput.italic.telugu=Lohit Telugu -+dialoginput.italic.sinhala=LKLUG - --dialoginput.bolditalic.latin-1=DejaVu LGC Sans Mono Bold Oblique -+dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique - dialoginput.bolditalic.japanese-x0208=Sazanami Gothic - dialoginput.bolditalic.korean=Baekmuk Gulim - dialoginput.bolditalic.chinese-big5=AR PL ShanHeiSun Uni - dialoginput.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni -+dialoginput.bolditalic.bengali=Lohit Bengali -+dialoginput.bolditalic.gujarati=Lohit Gujarati -+dialoginput.bolditalic.hindi=Lohit Hindi -+dialoginput.bolditalic.malayalam=Lohit Malayalam -+dialoginput.bolditalic.oriya=Lohit Oriya -+dialoginput.bolditalic.punjabi=Lohit Punjabi -+dialoginput.bolditalic.tamil=Lohit Tamil -+dialoginput.bolditalic.telugu=Lohit Telugu -+dialoginput.bolditalic.sinhala=LKLUG - - # Search Sequences - -@@ -161,28 +337,40 @@ - sequence.allfonts.x-euc-jp-linux=japanese-x0208,latin-1 - sequence.allfonts.EUC-KR=korean,latin-1 - sequence.allfonts.GB18030=chinese-gb18030,latin-1 --sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean -+sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala - - # Font File Names - --filename.DejaVu_LGC_Sans=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf --filename.DejaVu_LGC_Sans_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-Bold.ttf --filename.DejaVu_LGC_Sans_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-Oblique.ttf --filename.DejaVu_LGC_Sans_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-BoldOblique.ttf -- --filename.DejaVu_LGC_Sans_Mono=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono.ttf --filename.DejaVu_LGC_Sans_Mono_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-Bold.ttf --filename.DejaVu_LGC_Sans_Mono_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-Oblique.ttf --filename.DejaVu_LGC_Sans_Mono_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-BoldOblique.ttf -- --filename.DejaVu_LGC_Serif=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif.ttf --filename.DejaVu_LGC_Serif_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-Bold.ttf --filename.DejaVu_LGC_Serif_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-Oblique.ttf --filename.DejaVu_LGC_Serif_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-BoldOblique.ttf -- --filename.Sazanami_Gothic=/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf --filename.Sazanami_Mincho=/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf --filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/chinese/TrueType/uming.ttf --filename.AR_PL_ZenKai_Uni=/usr/share/fonts/chinese/TrueType/ukai.ttf --filename.Baekmuk_Gulim=/usr/share/fonts/korean/TrueType/gulim.ttf --filename.Baekmuk_Batang=/usr/share/fonts/korean/TrueType/batang.ttf -+filename.DejaVu_Sans=/usr/share/fonts/dejavu/DejaVuSans.ttf -+filename.DejaVu_Sans_Bold=/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf -+filename.DejaVu_Sans_Oblique=/usr/share/fonts/dejavu/DejaVuSans-Oblique.ttf -+filename.DejaVu_Sans_Bold_Oblique=/usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf -+ -+filename.DejaVu_Sans_Mono=/usr/share/fonts/dejavu/DejaVuSansMono.ttf -+filename.DejaVu_Sans_Mono_Bold=/usr/share/fonts/dejavu/DejaVuSansMono-Bold.ttf -+filename.DejaVu_Sans_Mono_Oblique=/usr/share/fonts/dejavu/DejaVuSansMono-Oblique.ttf -+filename.DejaVu_Sans_Mono_Bold_Oblique=/usr/share/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf -+ -+filename.DejaVu_Serif=/usr/share/fonts/dejavu/DejaVuSerif.ttf -+filename.DejaVu_Serif_Bold=/usr/share/fonts/dejavu/DejaVuSerif-Bold.ttf -+filename.DejaVu_Serif_Oblique=/usr/share/fonts/dejavu/DejaVuSerif-Oblique.ttf -+filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/dejavu/DejaVuSerif-BoldOblique.ttf -+ -+filename.Sazanami_Gothic=/usr/share/fonts/sazanami-fonts-gothic/sazanami-gothic.ttf -+filename.Sazanami_Mincho=/usr/share/fonts/sazanami-fonts-mincho/sazanami-mincho.ttf -+filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/cjkunifonts-uming/uming.ttc -+filename.AR_PL_ZenKai_Uni=/usr/share/fonts/cjkunifonts-ukai/ukai.ttc -+filename.Baekmuk_Gulim=/usr/share/fonts/baekmuk-ttf-gulim/gulim.ttf -+filename.Baekmuk_Batang=/usr/share/fonts/baekmuk-ttf-batang/batang.ttf -+ -+filename.Lohit_Bengali=/usr/share/fonts/lohit-bengali/lohit_bn.ttf -+filename.Lohit_Gujarati=/usr/share/fonts/lohit-gujarati/lohit_gu.ttf -+filename.Lohit_Hindi=/usr/share/fonts/lohit-hindi/lohit_hi.ttf -+filename.Lohit_Kannda=/usr/share/fonts/lohit-kannada/lohit_kn.ttf -+filename.Lohit_Malayalam=/usr/share/fonts/lohit-malayalam/lohit_ml.ttf -+filename.Lohit_Oriya=/usr/share/fonts/lohit-oriya/lohit_or.ttf -+filename.Lohit_Punjabi=/usr/share/fonts/lohit-punjabi/lohit_pa.ttf -+filename.Lohit_Tamil=/usr/share/fonts/lohit-tamil/lohit_ta.ttf -+filename.Lohit_Telugu=/usr/share/fonts/lohit-telugu/lohit_te.ttf -+filename.LKLUG=/usr/share/fonts/lklug/lklug.ttf -+ ---- openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.orig 2009-05-05 15:35:28.000000000 +0000 -+++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties 2009-05-05 15:36:52.000000000 +0000 -@@ -25,106 +25,253 @@ - - # Version - --# Uses Ubuntu 6.10 (Edgy) fonts and file paths. -+# Uses Ubuntu 8.04 (hardy), Debian 6.0 (Squeeze) (and more recent releases) fonts and file paths. - version=1 - - # Component Font Mappings - --dialog.plain.latin-1=DejaVu Sans --dialog.plain.japanese-x0208=Kochi Gothic --dialog.plain.korean=Baekmuk Dotum -+# Chinese fonts -+allfonts.umingcn=AR PL UMing CN -+#allfonts.umingcn.motif=AR PL UMing CN -+allfonts.uminghk=AR PL UMing HK -+#allfonts.uminghk.motif=AR PL UMing HK -+allfonts.umingtw=AR PL UMing TW -+#allfonts.umingtw.motif=AR PL UMing TW -+allfonts.wqy-zenhei=WenQuanYi Zen Hei -+#allfonts.wqy-zenhei.motif=WenQuanYi Zen Hei -+allfonts.shanheisun=AR PL ShanHeiSun Uni -+#allfonts.shanheisun.motif=AR PL ShanHeiSun Uni -+ -+# Indic scripts -+allfonts.bengali=Lohit Bengali -+allfonts.gujarati=Lohit Gujarati -+allfonts.hindi=Lohit Hindi -+#allfonts.malayalam=Lohit Malayalam -+allfonts.oriya=Lohit Oriya -+allfonts.punjabi=Lohit Punjabi -+allfonts.tamil=Lohit Tamil -+allfonts.telugu=Lohit Telugu -+allfonts.sinhala=LKLUG - --dialog.bold.latin-1=DejaVu Sans Bold --dialog.bold.japanese-x0208=Kochi Gothic --dialog.bold.korean=Baekmuk Dotum - --dialog.italic.latin-1=DejaVu Sans Oblique --dialog.italic.japanese-x0208=Kochi Gothic --dialog.italic.korean=Baekmuk Dotum -+serif.plain.latin-1=DejaVu Serif -+#serif.plain.latin-1.motif=LuxiSerif-Regular -+serif.plain.japanese-kochi=Kochi Mincho -+serif.plain.japanese-sazanami=Sazanami Mincho -+serif.plain.japanese-vlgothic=Sazanami Mincho -+serif.plain.korean-baekmuk=Baekmuk Batang -+#serif.plain.korean-baekmuk.motif=Baekmuk Batang -+serif.plain.korean-un=UnBatang -+#serif.plain.korean-un.motif=UnBatang - --dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique --dialog.bolditalic.japanese-x0208=Kochi Gothic --dialog.bolditalic.korean=Baekmuk Dotum -+serif.bold.latin-1=DejaVu Serif Bold -+#serif.bold.latin-1.motif=LuxiSerif-Bold -+serif.bold.japanese-kochi=Kochi Mincho -+serif.bold.japanese-sazanami=Sazanami Mincho -+serif.bold.japanese-vlgothic=Sazanami Mincho -+serif.bold.korean-baekmuk=Baekmuk Batang -+#serif.bold.korean-baekmuk.motif=Baekmuk Batang -+serif.bold.korean-un=UnBatang Bold -+#serif.bold.korean-un.motif=UnBatang Bold -+ -+serif.italic.latin-1=DejaVu Serif Oblique -+#serif.italic.latin-1.motif=LuxiSerif-Oblique -+serif.italic.japanese-kochi=Kochi Mincho -+serif.italic.japanese-sazanami=Sazanami Mincho -+serif.italic.japanese-vlgothic=Sazanami Mincho -+serif.italic.korean-baekmuk=Baekmuk Batang -+#serif.italic.korean-baekmuk.motif=Baekmuk Batang -+serif.italic.korean-un=UnBatang -+#serif.italic.korean-un.motif=UnBatang - -+serif.bolditalic.latin-1=DejaVu Serif Bold Oblique -+#serif.bolditalic.latin-1.motif=LuxiSerif-BoldOblique -+serif.bolditalic.japanese-kochi=Kochi Mincho -+serif.bolditalic.japanese-sazanami=Sazanami Mincho -+serif.bolditalic.japanese-vlgothic=Sazanami Mincho -+serif.bolditalic.korean-baekmuk=Baekmuk Batang -+#serif.bolditalic.korean-baekmuk.motif=Baekmuk Batang -+serif.bolditalic.korean-un=UnBatang Bold -+#serif.bolditalic.korean-un.motif=UnBatang Bold - - sansserif.plain.latin-1=DejaVu Sans --sansserif.plain.japanese-x0208=Kochi Gothic --sansserif.plain.korean=Baekmuk Dotum -+#sansserif.plain.latin-1.motif=LuxiSans-Regular -+sansserif.plain.japanese-kochi=Kochi Gothic -+sansserif.plain.japanese-sazanami=Sazanami Gothic -+sansserif.plain.japanese-vlgothic=VL PGothic -+sansserif.plain.korean-baekmuk=Baekmuk Gulim -+#sansserif.plain.korean-baekmuk.motif=Baekmuk Gulim -+sansserif.plain.korean-un=UnDotum -+#sansserif.plain.korean-un.motif=UnDotum - - sansserif.bold.latin-1=DejaVu Sans Bold --sansserif.bold.japanese-x0208=Kochi Gothic --sansserif.bold.korean=Baekmuk Dotum -+#sansserif.bold.latin-1.motif=LuxiSans-Bold -+sansserif.bold.japanese-kochi=Kochi Gothic -+sansserif.bold.japanese-sazanami=Sazanami Gothic -+sansserif.bold.japanese-vlgothic=VL PGothic -+sansserif.bold.korean-baekmuk=Baekmuk Gulim -+#sansserif.bold.korean-baekmuk.motif=Baekmuk Gulim -+sansserif.bold.korean-un=UnDotum Bold -+#sansserif.bold.korean-un.motif=UnDotum Bold - - sansserif.italic.latin-1=DejaVu Sans Oblique --sansserif.italic.japanese-x0208=Kochi Gothic --sansserif.italic.korean=Baekmuk Dotum -+#sansserif.italic.latin-1.motif=LuxiSans-Oblique -+sansserif.italic.japanese-kochi=Kochi Gothic -+sansserif.italic.japanese-sazanami=Sazanami Gothic -+sansserif.italic.japanese-vlgothic=VL PGothic -+sansserif.italic.korean-baekmuk=Baekmuk Gulim -+#sansserif.italic.korean-baekmuk.motif=Baekmuk Gulim -+sansserif.italic.korean-un=UnDotum -+#sansserif.italic.korean-un.motif=UnDotum - - sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique --sansserif.bolditalic.japanese-x0208=Kochi Gothic --sansserif.bolditalic.korean=Baekmuk Dotum -- -- --serif.plain.latin-1=DejaVu Serif --serif.plain.japanese-x0208=Kochi Mincho --serif.plain.korean=Baekmuk Batang -- --serif.bold.latin-1=DejaVu Serif Bold --serif.bold.japanese-x0208=Kochi Mincho --serif.bold.korean=Baekmuk Batang -- --serif.italic.latin-1=DejaVu Serif Oblique --serif.italic.japanese-x0208=Kochi Mincho --serif.italic.korean=Baekmuk Batang -- --serif.bolditalic.latin-1=DejaVu Serif Bold Oblique --serif.bolditalic.japanese-x0208=Kochi Mincho --serif.bolditalic.korean=Baekmuk Batang -- -+#sansserif.bolditalic.latin-1.motif=LuxiSans-BoldOblique -+sansserif.bolditalic.japanese-kochi=Kochi Gothic -+sansserif.bolditalic.japanese-sazanami=Sazanami Gothic -+sansserif.bolditalic.japanese-vlgothic=VL PGothic -+sansserif.bolditalic.korean-baekmuk=Baekmuk Gulim -+#sansserif.bolditalic.korean-baekmuk.motif=Baekmuk Gulim -+sansserif.bolditalic.korean-un=UnDotum Bold -+#sansserif.bolditalic.korean-un.motif=UnDotum Bold - - monospaced.plain.latin-1=DejaVu Sans Mono --monospaced.plain.japanese-x0208=Kochi Gothic --monospaced.plain.korean=Baekmuk Dotum -+#monospaced.plain.latin-1.motif=LuxiMono-Regular -+monospaced.plain.japanese-kochi=Kochi Gothic -+monospaced.plain.japanese-sazanami=Sazanami Gothic -+monospaced.plain.japanese-vlgothic=VL Gothic -+monospaced.plain.korean-baekmuk=Baekmuk Gulim -+#monospaced.plain.korean-baekmuk.motif=Baekmuk Gulim -+monospaced.plain.korean-un=UnDotum -+#monospaced.plain.korean-un.motif=UnDotum - - monospaced.bold.latin-1=DejaVu Sans Mono Bold --monospaced.bold.japanese-x0208=Kochi Gothic --monospaced.bold.korean=Baekmuk Dotum -+#monospaced.bold.latin-1.motif=LuxiMono-Bold -+monospaced.bold.japanese-kochi=Kochi Gothic -+monospaced.bold.japanese-sazanami=Sazanami Gothic -+monospaced.bold.japanese-vlgothic=VL Gothic -+monospaced.bold.korean-baekmuk=Baekmuk Gulim -+#monospaced.bold.korean-baekmuk.motif=Baekmuk Gulim -+monospaced.bold.korean-un=UnDotum Bold -+#monospaced.bold.korean-un.motif=UnDotum Bold - - monospaced.italic.latin-1=DejaVu Sans Mono Oblique --monospaced.italic.japanese-x0208=Kochi Gothic --monospaced.italic.korean=Baekmuk Dotum -+#monospaced.italic.latin-1.motif=LuxiMono-Oblique -+monospaced.italic.japanese-kochi=Kochi Gothic -+monospaced.italic.japanese-sazanami=Sazanami Gothic -+monospaced.italic.japanese-vlgothic=VL Gothic -+monospaced.italic.korean-baekmuk=Baekmuk Gulim -+#monospaced.italic.korean-baekmuk.motif=Baekmuk Gulim -+monospaced.italic.korean-un=UnDotum -+#monospaced.italic.korean-un.motif=UnDotum - - monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique --monospaced.bolditalic.japanese-x0208=Kochi Gothic --monospaced.bolditalic.korean=Baekmuk Dotum -+#monospaced.bolditalic.latin-1.motif=LuxiMono-BoldOblique -+monospaced.bolditalic.japanese-kochi=Kochi Gothic -+monospaced.bolditalic.japanese-sazanami=Sazanami Gothic -+monospaced.bolditalic.japanese-vlgothic=VL Gothic -+monospaced.bolditalic.korean-baekmuk=Baekmuk Gulim -+#monospaced.bolditalic.korean-baekmuk.motif=Baekmuk Gulim -+monospaced.bolditalic.korean-un=UnDotum Bold -+#monospaced.bolditalic.korean-un.motif=UnDotum Bold -+ -+dialog.plain.latin-1=DejaVu Sans -+#dialog.plain.latin-1.motif=LuxiSans-Regular -+dialog.plain.japanese-kochi=Kochi Gothic -+dialog.plain.japanese-sazanami=Sazanami Gothic -+dialog.plain.japanese-vlgothic=VL PGothic -+dialog.plain.korean-baekmuk=Baekmuk Gulim -+#dialog.plain.korean-baekmuk.motif=Baekmuk Gulim -+dialog.plain.korean-un=UnDotum -+#dialog.plain.korean-un.motif=UnDotum - -+dialog.bold.latin-1=DejaVu Sans Bold -+#dialog.bold.latin-1.motif=LuxiSans-Bold -+dialog.bold.japanese-kochi=Kochi Gothic -+dialog.bold.japanese-sazanami=Sazanami Gothic -+dialog.bold.japanese-vlgothic=VL PGothic -+dialog.bold.korean-baekmuk=Baekmuk Gulim -+#dialog.bold.korean-baekmuk.motif=Baekmuk Gulim -+dialog.bold.korean-un=UnDotum Bold -+#dialog.bold.korean-un.motif=UnDotum Bold -+ -+dialog.italic.latin-1=DejaVu Sans Oblique -+#dialog.italic.latin-1.motif=LuxiSans-Oblique -+dialog.italic.japanese-kochi=Kochi Gothic -+dialog.italic.japanese-sazanami=Sazanami Gothic -+dialog.italic.japanese-vlgothic=VL PGothic -+dialog.italic.korean-baekmuk=Baekmuk Gulim -+#dialog.italic.korean-baekmuk.motif=Baekmuk Gulim -+dialog.italic.korean-un=UnDotum -+#dialog.italic.korean-un.motif=UnDotum -+ -+dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique -+#dialog.bolditalic.latin-1.motif=LuxiSans-BoldOblique -+dialog.bolditalic.japanese-kochi=Kochi Gothic -+dialog.bolditalic.japanese-sazanami=Sazanami Gothic -+dialog.bolditalic.japanese-vlgothic=VL PGothic -+dialog.bolditalic.korean-baekmuk=Baekmuk Gulim -+#dialog.bolditalic.korean-baekmuk.motif=Baekmuk Gulim -+dialog.bolditalic.korean-un=UnDotum Bold -+#dialog.bolditalic.korean-un.motif=UnDotum Bold - - dialoginput.plain.latin-1=DejaVu Sans Mono --dialoginput.plain.japanese-x0208=Kochi Gothic --dialoginput.plain.korean=Baekmuk Dotum -+#dialoginput.plain.latin-1.motif=LuxiMono-Regular -+dialoginput.plain.japanese-kochi=Kochi Gothic -+dialoginput.plain.japanese-sazanami=Sazanami Gothic -+dialoginput.plain.japanese-vlgothic=VL Gothic -+dialoginput.plain.korean-baekmuk=Baekmuk Gulim -+#dialoginput.plain.korean-baekmuk.motif=Baekmuk Gulim -+dialoginput.plain.korean-un=UnDotum -+#dialoginput.plain.korean-un.motif=UnDotum - - dialoginput.bold.latin-1=DejaVu Sans Mono Bold --dialoginput.bold.japanese-x0208=Kochi Gothic --dialoginput.bold.korean=Baekmuk Dotum -+#dialoginput.bold.latin-1.motif=LuxiMono-Bold -+dialoginput.bold.japanese-kochi=Kochi Gothic -+dialoginput.bold.japanese-sazanami=Sazanami Gothic -+dialoginput.bold.japanese-vlgothic=VL Gothic -+dialoginput.bold.korean-baekmuk=Baekmuk Gulim -+#dialoginput.bold.korean-baekmuk.motif=Baekmuk Gulim -+dialoginput.bold.korean-un=UnDotum Bold -+#dialoginput.bold.korean-un.motif=UnDotum Bold - - dialoginput.italic.latin-1=DejaVu Sans Mono Oblique --dialoginput.italic.japanese-x0208=Kochi Gothic --dialoginput.italic.korean=Baekmuk Dotum -+#dialoginput.italic.latin-1.motif=LuxiMono-Oblique -+dialoginput.italic.japanese-kochi=Kochi Gothic -+dialoginput.italic.japanese-sazanami=Sazanami Gothic -+dialoginput.italic.japanese-vlgothic=VL Gothic -+dialoginput.italic.korean-baekmuk=Baekmuk Gulim -+#dialoginput.italic.korean-baekmuk.motif=Baekmuk Gulim -+dialoginput.italic.korean-un=UnDotum -+#dialoginput.italic.korean-un.motif=UnDotum - - dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique --dialoginput.bolditalic.japanese-x0208=Kochi Gothic --dialoginput.bolditalic.korean=Baekmuk Dotum -- --allfonts.chinese-big5=AR PL ZenKai Uni --allfonts.chinese-gb18030=AR PL ZenKai Uni -+#dialoginput.bolditalic.latin-1.motif=LuxiMono-BoldOblique -+dialoginput.bolditalic.japanese-kochi=Kochi Gothic -+dialoginput.bolditalic.japanese-sazanami=Sazanami Gothic -+dialoginput.bolditalic.japanese-vlgothic=VL Gothic -+dialoginput.bolditalic.korean-baekmuk=Baekmuk Gulim -+#dialoginput.bolditalic.korean-baekmuk.motif=Baekmuk Gulim -+dialoginput.bolditalic.korean-un=UnDotum Bold -+#dialoginput.bolditalic.korean-un.motif=UnDotum Bold - - # Search Sequences - - sequence.allfonts=latin-1 --sequence.allfonts.Big5=chinese-big5,latin-1 --sequence.allfonts.x-euc-jp-linux=japanese-x0208,latin-1 --sequence.allfonts.EUC-KR=korean,latin-1 --sequence.allfonts.GB18030=chinese-gb18030,latin-1 --sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean -+sequence.allfonts.GB18030=latin-1,umingcn,shanheisun,wqy-zenhei -+sequence.allfonts.GB2312=latin-1,umingcn,shanheisun,wqy-zenhei -+sequence.allfonts.GBK=latin-1,umingcn,shanheisun,wqy-zenhei -+sequence.allfonts.x-euc-jp-linux=latin-1,japanese-vlgothic,japanese-sazanami,japanese-kochi -+sequence.allfonts.EUC-KR=latin-1,korean-un,korean-baekmuk -+sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-zenhei -+sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-zenhei -+#sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala -+sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu -+ -+# Exclusion Ranges -+ -+exclusion.japanese-kochi=0390-03d6,2200-22ef,2701-27be -+exclusion.japanese-sazanami=0390-03d6,2200-22ef,2701-27be -+exclusion.japanese-vlgothic=0390-03d6,2200-22ef,2701-27be - - # Font File Names - -@@ -143,8 +290,58 @@ - filename.DejaVu_Serif_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Oblique.ttf - filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldOblique.ttf - --filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic-subst.ttf --filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho-subst.ttf --filename.AR_PL_ZenKai_Uni=/usr/share/fonts//truetype/arphic/ukai.ttf --filename.Baekmuk_Dotum=/usr/share/fonts/truetype/baekmuk/dotum.ttf -+filename.AR_PL_UMing_CN=/usr/share/fonts/truetype/arphic/uming.ttc -+filename.AR_PL_UMing_HK=/usr/share/fonts/truetype/arphic/uming.ttc -+filename.AR_PL_UMing_TW=/usr/share/fonts/truetype/arphic/uming.ttc -+filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/truetype/arphic/uming.ttf -+ -+filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf - filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf -+filename.UnBatang=/usr/share/fonts/truetype/unfonts/UnBatang.ttf -+filename.UnBatang_Bold=/usr/share/fonts/truetype/unfonts/UnBatangBold.ttf -+filename.Baekmuk_Gulim=/usr/share/fonts/truetype/baekmuk/gulim.ttf -+filename.UnDotum=/usr/share/fonts/truetype/unfonts/UnDotum.ttf -+filename.UnDotum_Bold=/usr/share/fonts/truetype/unfonts/UnDotumBold.ttf -+filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic.ttf -+filename.Sazanami_Gothic=/usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf -+filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho.ttf -+filename.Sazanami_Mincho=/usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf -+filename.VL_Gothic=/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf -+filename.VL_PGothic=/usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf -+ -+filename.Lohit_Bengali=/usr/share/fonts/truetype/ttf-bengali-fonts/lohit_bn.ttf -+filename.Lohit_Gujarati=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_gu.ttf -+filename.Lohit_Hindi=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_hi.ttf -+filename.Lohit_Kannda=/usr/share/fonts/truetype/ttf-kannada-fonts/lohit_kn.ttf -+#filename.Lohit_Malayalam=/usr/share/fonts/lohit-malayalam/lohit_ml.ttf -+filename.Lohit_Oriya=/usr/share/fonts/truetype/ttf-oriya-fonts/lohit_or.ttf -+filename.Lohit_Punjabi=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_pa.ttf -+filename.Lohit_Tamil=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_ta.ttf -+filename.Lohit_Telugu=/usr/share/fonts/truetype/ttf-telugu-fonts/lohit_te.ttf -+filename.LKLUG=/usr/share/fonts/truetype/ttf-sinhala-lklug/lklug.ttf -+ -+filename.LuxiSans-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisr.ttf -+filename.LuxiSans-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisb.ttf -+filename.LuxiSans-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisri.ttf -+filename.LuxiSans-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisbi.ttf -+filename.LuxiMono-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximr.ttf -+filename.LuxiMono-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximb.ttf -+filename.LuxiMono-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximri.ttf -+filename.LuxiMono-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximbi.ttf -+filename.LuxiSerif-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirr.ttf -+filename.LuxiSerif-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirb.ttf -+filename.LuxiSerif-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirri.ttf -+filename.LuxiSerif-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirbi.ttf -+ -+# AWT X11 font paths -+awtfontpath.latin-1=/usr/share/fonts/X11/Type1 -+awtfontpath.umingcn=/usr/share/fonts/truetype/arphic -+awtfontpath.uminghk=/usr/share/fonts/truetype/arphic -+awtfontpath.umingtw=/usr/share/fonts/truetype/arphic -+awtfontpath.shanheisun=/usr/share/fonts/truetype/arphic -+awtfontpath.wqy-zenhei=/usr/share/fonts/truetype/wqy -+awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi -+awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami -+awtfontpath.japanese-vlgothic=/usr/share/fonts/truetype/vlgothic -+awtfontpath.korean-baekmuk=/usr/share/fonts/truetype/baekmuk -+awtfontpath.korean-un=/usr/share/fonts/truetype/unfonts
--- a/patches/icedtea-lcms.patch Sun Apr 18 17:03:04 2010 +0100 +++ b/patches/icedtea-lcms.patch Sun Apr 18 17:04:10 2010 +0100 @@ -1,6 +1,6 @@ -diff -BbruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c ---- oldopenjdk6/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2009-04-24 03:34:31.000000000 -0400 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2009-05-01 10:15:13.000000000 -0400 +diff -Nru openjdk.orig/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c +--- openjdk.orig/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2010-04-06 11:57:21.000000000 +0100 ++++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2010-04-06 17:35:02.000000000 +0100 @@ -689,6 +689,9 @@ GrayTRC = cmsReadICCGamma(hProfile, icSigGrayTRCTag); FromLstarToXYZ(GrayTRC, Shapes1); @@ -39,15 +39,3 @@ if (ColorSpace == CurrentColorSpace) { -@@ -1969,6 +1977,11 @@ - goto ErrorCleanup; - } - -+ if (Transforms[i] == NULL) { -+ cmsSignalError(LCMS_ERRC_ABORTED, "cmsCreateMultiprofileTransform: Invalid profile"); -+ goto ErrorCleanup; -+ } -+ - CurrentColorSpace = ColorSpaceOut; - - }
--- a/patches/icedtea-nss-6763530.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -diff -r 1f83d4e42eda src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java ---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java Mon Aug 31 12:55:15 2009 +0900 -+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java Thu Sep 03 18:47:40 2009 +0100 -@@ -40,6 +40,8 @@ - import sun.security.pkcs11.wrapper.*; - import static sun.security.pkcs11.wrapper.PKCS11Constants.*; - -+import sun.security.util.DerValue; -+ - /** - * EC KeyFactory implemenation. - * -@@ -201,7 +203,14 @@ - - private PublicKey generatePublic(ECPoint point, ECParameterSpec params) throws PKCS11Exception { - byte[] encodedParams = ECParameters.encodeParameters(params); -- byte[] encodedPoint = ECParameters.encodePoint(point, params.getCurve()); -+ DerValue pkECPoint = new DerValue(DerValue.tag_OctetString, -+ ECParameters.encodePoint(point, params.getCurve())); -+ byte[] encodedPoint = null; -+ try { -+ encodedPoint = pkECPoint.toByteArray(); -+ } catch (IOException e) { -+ throw new IllegalArgumentException("Could not DER encode point", e); -+ } - CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { - new CK_ATTRIBUTE(CKA_CLASS, CKO_PUBLIC_KEY), - new CK_ATTRIBUTE(CKA_KEY_TYPE, CKK_EC), -diff -r 1f83d4e42eda src/share/classes/sun/security/pkcs11/P11Key.java ---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11Key.java Mon Aug 31 12:55:15 2009 +0900 -+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11Key.java Thu Sep 03 18:47:40 2009 +0100 -@@ -44,6 +44,8 @@ - import sun.security.pkcs11.wrapper.*; - import static sun.security.pkcs11.wrapper.PKCS11Constants.*; - -+import sun.security.util.DerValue; -+ - /** - * Key implementation classes. - * -@@ -1014,10 +1016,13 @@ - }; - fetchAttributes(attributes); - try { -+ DerValue wECPoint = new DerValue(attributes[0].getByteArray()); -+ if (wECPoint.getTag() != DerValue.tag_OctetString) -+ throw new IOException("Unexpected tag: " + wECPoint.getTag()); - params = P11ECKeyFactory.decodeParameters - (attributes[1].getByteArray()); - w = P11ECKeyFactory.decodePoint -- (attributes[0].getByteArray(), params.getCurve()); -+ (wECPoint.getDataBytes(), params.getCurve()); - } catch (Exception e) { - throw new RuntimeException("Could not parse key values", e); - }
--- a/patches/icedtea-systemtap.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,182 +0,0 @@ -diff -r 945bf7540697 make/linux/makefiles/dtrace.make ---- openjdk/hotspot/make/linux/makefiles/dtrace.make Thu Jan 22 14:42:01 2009 -0800 -+++ openjdk/hotspot/make/linux/makefiles/dtrace.make Mon Feb 02 13:47:34 2009 +0100 -@@ -25,3 +25,7 @@ - # Linux does not build jvm_db - LIBJVM_DB = - -+# But it does have a Systemtap dtrace compatible sys/sdt.h -+CFLAGS += -DDTRACE_ENABLED -+ -+# It doesn't support HAVE_DTRACE_H though. ---- openjdk/hotspot/src/share/vm/prims/jni.cpp 2009-10-13 15:34:52.499809508 +0200 -+++ openjdk/hotspot/src/share/vm/prims/jni.cpp 2009-10-13 15:31:26.117823588 +0200 -@@ -1747,10 +1744,7 @@ - JNI_QUICK_ENTRY(void, jni_Set##Result##Field(JNIEnv *env, jobject obj, jfieldID fieldID, Argument value)) \ - JNIWrapper("Set" XSTR(Result) "Field"); \ - \ -- HS_DTRACE_PROBE_CDECL_N(hotspot_jni, Set##Result##Field__entry, \ -- ( JNIEnv*, jobject, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \ -- HS_DTRACE_PROBE_N(hotspot_jni, Set##Result##Field__entry, \ -- ( env, obj, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \ -+ FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID, value),DTRACE_PROBE3(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID)); \ - \ - oop o = JNIHandles::resolve_non_null(obj); \ - klassOop k = o->klass(); \ -@@ -1924,10 +1918,7 @@ - \ - JNI_ENTRY(void, jni_SetStatic##Result##Field(JNIEnv *env, jclass clazz, jfieldID fieldID, Argument value)) \ - JNIWrapper("SetStatic" XSTR(Result) "Field"); \ -- HS_DTRACE_PROBE_CDECL_N(hotspot_jni, SetStatic##Result##Field__entry,\ -- ( JNIEnv*, jclass, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \ -- HS_DTRACE_PROBE_N(hotspot_jni, SetStatic##Result##Field__entry, \ -- ( env, clazz, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \ -+ FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID, value),DTRACE_PROBE3(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID)); \ - \ - JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \ - assert(id->is_static_field_id(), "invalid static field id"); \ -@@ -2116,7 +2101,7 @@ - DT_RETURN_MARK(GetObjectArrayElement, jobject, (const jobject&)ret); - objArrayOop a = objArrayOop(JNIHandles::resolve_non_null(array)); - if (a->is_within_bounds(index)) { -- jobject ret = JNIHandles::make_local(env, a->obj_at(index)); -+ ret = JNIHandles::make_local(env, a->obj_at(index)); - return ret; - } else { - char buf[jintAsStringSize]; -@@ -2150,14 +2150,14 @@ - - #define DEFINE_NEWSCALARARRAY(Return,Allocator,Result) \ - \ -- DT_RETURN_MARK_DECL_FOR(Result, New##Result##Array, Return);\ -+ DT_RETURN_MARK_DECL(New##Result##Array, Return);\ - \ - JNI_ENTRY(Return, \ - jni_New##Result##Array(JNIEnv *env, jsize len)) \ - JNIWrapper("New" XSTR(Result) "Array"); \ - DTRACE_PROBE2(hotspot_jni, New##Result##Array__entry, env, len);\ - Return ret = NULL;\ -- DT_RETURN_MARK_FOR(Result, New##Result##Array, Return, (const Return&)ret);\ -+ DT_RETURN_MARK(New##Result##Array, Return, (const Return&)ret);\ - \ - oop obj= oopFactory::Allocator(len, CHECK_0); \ - ret = (Return) JNIHandles::make_local(env, obj); \ - -diff -r 945bf7540697 src/share/vm/utilities/dtrace.hpp ---- openjdk/hotspot/src/share/vm/utilities/dtrace.hpp Thu Jan 22 14:42:01 2009 -0800 -+++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp Mon Feb 02 13:47:34 2009 +0100 -@@ -1,5 +1,6 @@ - /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 2009 Red Hat, Inc. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -22,14 +23,14 @@ - * - */ - --#if defined(SOLARIS) && defined(DTRACE_ENABLED) -+#if defined(DTRACE_ENABLED) - - #include <sys/sdt.h> - - #define DTRACE_ONLY(x) x - #define NOT_DTRACE(x) - --#else // ndef SOLARIS || ndef DTRACE_ENABLED -+#else // ndef DTRACE_ENABLED - - #define DTRACE_ONLY(x) - #define NOT_DTRACE(x) x -@@ -40,9 +41,16 @@ - #define DTRACE_PROBE3(a,b,c,d,e) {;} - #define DTRACE_PROBE4(a,b,c,d,e,f) {;} - #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;} -+#define DTRACE_PROBE6(a,b,c,d,e,f,g,h) {;} -+#define DTRACE_PROBE7(a,b,c,d,e,f,g,h,i) {;} -+#define DTRACE_PROBE8(a,b,c,d,e,f,g,h,i,j) {;} -+#define DTRACE_PROBE9(a,b,c,d,e,f,g,h,i,j,k) {;} -+#define DTRACE_PROBE10(a,b,c,d,e,f,g,h,i,j,k,l) {;} - - #endif - -+#if defined(SOLARIS) -+// Solaris dtrace needs actual extern function decls. - #define HS_DTRACE_PROBE_FN(provider,name)\ - __dtrace_##provider##___##name - -@@ -50,6 +58,11 @@ - DTRACE_ONLY(extern "C" void HS_DTRACE_PROBE_FN(provider,name) args) - #define HS_DTRACE_PROBE_CDECL_N(provider,name,args) \ - DTRACE_ONLY(extern void HS_DTRACE_PROBE_FN(provider,name) args) -+#else -+// Systemtap dtrace compatible probes on GNU/Linux don't. -+#define HS_DTRACE_PROBE_DECL_N(provider,name,args) -+#define HS_DTRACE_PROBE_CDECL_N(provider,name,args) -+#endif - - /* Dtrace probe declarations */ - #define HS_DTRACE_PROBE_DECL(provider,name) \ -@@ -88,6 +101,8 @@ - uintptr_t,uintptr_t,uintptr_t)) - - /* Dtrace probe definitions */ -+#if defined(SOLARIS) -+// Solaris dtrace uses actual function calls. - #define HS_DTRACE_PROBE_N(provider,name, args) \ - DTRACE_ONLY(HS_DTRACE_PROBE_FN(provider,name) args) - -@@ -123,3 +138,29 @@ - HS_DTRACE_PROBE_N(provider,name,((uintptr_t)a0,(uintptr_t)a1,(uintptr_t)a2,\ - (uintptr_t)a3,(uintptr_t)a4,(uintptr_t)a5,(uintptr_t)a6,(uintptr_t)a7,\ - (uintptr_t)a8,(uintptr_t)a9)) -+#else -+// Systemtap dtrace compatible probes on GNU/Linux use direct macros. -+#define HS_DTRACE_PROBE(provider,name) HS_DTRACE_PROBE0(provider,name) -+#define HS_DTRACE_PROBE0(provider,name)\ -+ DTRACE_PROBE(provider,name) -+#define HS_DTRACE_PROBE1(provider,name,a0)\ -+ DTRACE_PROBE1(provider,name,a0) -+#define HS_DTRACE_PROBE2(provider,name,a0,a1)\ -+ DTRACE_PROBE2(provider,name,a0,a1) -+#define HS_DTRACE_PROBE3(provider,name,a0,a1,a2)\ -+ DTRACE_PROBE3(provider,name,a0,a1,a2) -+#define HS_DTRACE_PROBE4(provider,name,a0,a1,a2,a3)\ -+ DTRACE_PROBE4(provider,name,a0,a1,a2,a3) -+#define HS_DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4)\ -+ DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4) -+#define HS_DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5)\ -+ DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5) -+#define HS_DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6)\ -+ DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6) -+#define HS_DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)\ -+ DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7) -+#define HS_DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\ -+ DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8) -+#define HS_DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\ -+ DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8) -+#endif ---- openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2009-03-04 14:39:43.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2009-03-04 22:11:37.000000000 +0100 -@@ -2272,16 +2272,16 @@ - FLAG_SET_CMDLINE(bool, DisplayVMOutputToStderr, false); - FLAG_SET_CMDLINE(bool, DisplayVMOutputToStdout, true); - } else if (match_option(option, "-XX:+ExtendedDTraceProbes", &tail)) { --#ifdef SOLARIS -+#ifdef DTRACE_ENABLED - FLAG_SET_CMDLINE(bool, ExtendedDTraceProbes, true); - FLAG_SET_CMDLINE(bool, DTraceMethodProbes, true); - FLAG_SET_CMDLINE(bool, DTraceAllocProbes, true); - FLAG_SET_CMDLINE(bool, DTraceMonitorProbes, true); --#else // ndef SOLARIS -+#else // ndef DTRACE_ENABLED - jio_fprintf(defaultStream::error_stream(), -- "ExtendedDTraceProbes flag is only applicable on Solaris\n"); -+ "ExtendedDTraceProbes flag is only applicable on dtrace enabled builds\n"); - return JNI_EINVAL; --#endif // ndef SOLARIS -+#endif // ndef DTRACE_ENABLED - } else - #ifdef ASSERT - if (match_option(option, "-XX:+FullGCALot", &tail)) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/memory-limits.patch Sun Apr 18 17:04:10 2010 +0100 @@ -0,0 +1,24 @@ +diff -Nru openjdk.orig/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp openjdk/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp +--- openjdk.orig/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp 2009-12-08 23:12:17.000000000 +0000 ++++ openjdk/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp 2010-01-11 20:44:32.000000000 +0000 +@@ -95,7 +95,7 @@ + + // Heap related flags + define_pd_global(uintx,PermSize, ScaleForWordSize(16*M)); +-define_pd_global(uintx,MaxPermSize, ScaleForWordSize(64*M)); ++define_pd_global(uintx,MaxPermSize, ScaleForWordSize(128*M)); + + // Ergonomics related flags + define_pd_global(bool, NeverActAsServerClassMachine, false); +diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp openjdk/hotspot/src/share/vm/runtime/globals.hpp +--- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp 2009-12-08 23:12:17.000000000 +0000 ++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp 2010-01-11 20:45:17.000000000 +0000 +@@ -2809,7 +2809,7 @@ + product(uintx, InitialHeapSize, 0, \ + "Initial heap size (in bytes); zero means OldSize + NewSize") \ + \ +- product(uintx, MaxHeapSize, ScaleForWordSize(96*M), \ ++ product(uintx, MaxHeapSize, ScaleForWordSize(512*M), \ + "Maximum heap size (in bytes)") \ + \ + product(uintx, OldSize, ScaleForWordSize(4*M), \
--- a/patches/openjdk/6822370-reentrantreadwritelock.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -# HG changeset patch -# User dholmes -# Date 1259712624 18000 -# Node ID 49bd3de668dc35ba7cff876422d114a91f35bbd2 -# Parent b6e6e189e1db90e044c24be709bc581e2356a910 -6822370: ReentrantReadWriteLock: threads hung when there are no threads holding onto the lock (Netra x4450) -Summary: This day one bug is caused by missing memory barriers in various Parker::park() paths that can result in lost wakeups and hangs. -Reviewed-by: dice, acorn - -diff -r b6e6e189e1db -r 49bd3de668dc src/os/linux/vm/os_linux.cpp ---- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp Wed Nov 25 19:15:17 2009 -0800 -+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp Tue Dec 01 19:10:24 2009 -0500 -@@ -4656,6 +4656,7 @@ - // Return immediately if a permit is available. - if (_counter > 0) { - _counter = 0 ; -+ OrderAccess::fence(); - return ; - } - -@@ -4698,6 +4699,7 @@ - _counter = 0; - status = pthread_mutex_unlock(_mutex); - assert (status == 0, "invariant") ; -+ OrderAccess::fence(); - return; - } - -@@ -4737,7 +4739,7 @@ - if (jt->handle_special_suspend_equivalent_condition()) { - jt->java_suspend_self(); - } -- -+ OrderAccess::fence(); - } - - void Parker::unpark() { -diff -r b6e6e189e1db -r 49bd3de668dc src/os/solaris/vm/os_solaris.cpp ---- openjdk.orig/hotspot/src/os/solaris/vm/os_solaris.cpp Wed Nov 25 19:15:17 2009 -0800 -+++ openjdk/hotspot/src/os/solaris/vm/os_solaris.cpp Tue Dec 01 19:10:24 2009 -0500 -@@ -5803,6 +5803,7 @@ - // Return immediately if a permit is available. - if (_counter > 0) { - _counter = 0 ; -+ OrderAccess::fence(); - return ; - } - -@@ -5846,6 +5847,7 @@ - _counter = 0; - status = os::Solaris::mutex_unlock(_mutex); - assert (status == 0, "invariant") ; -+ OrderAccess::fence(); - return; - } - -@@ -5891,7 +5893,7 @@ - if (jt->handle_special_suspend_equivalent_condition()) { - jt->java_suspend_self(); - } -- -+ OrderAccess::fence(); - } - - void Parker::unpark() {
--- a/patches/openjdk/6873059-javac-versioning-corba.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -# HG changeset patch -# User andrew -# Date 1250728138 -3600 -# Node ID 8001ba2bf10d8f6f9f26bf3684e9fd06ddb145ba -# Parent 175bd68779546078dbdb6dacd7f0aced79ed22b1 -6873059: Explicitly use -source 6 -target 6 when compiling with the boot jdk javac -Summary: The bootstrap javac currently uses the default source and targets of the boot javac -Reviewed-by: jjg, ohair - -diff -r 175bd6877954 -r 8001ba2bf10d make/common/shared/Defs-java.gmk ---- openjdk.orig/corba/make/common/shared/Defs-java.gmk Fri Aug 14 08:49:25 2009 -0700 -+++ openjdk/corba/make/common/shared/Defs-java.gmk Thu Aug 20 01:28:58 2009 +0100 -@@ -179,7 +179,9 @@ - ifeq ($(COMPILER_WARNINGS_FATAL), true) - BOOT_JAVACFLAGS += -Werror - endif --BOOT_JAVACFLAGS += -encoding ascii -+BOOT_SOURCE_LANGUAGE_VERSION = 6 -+BOOT_TARGET_CLASS_VERSION = 6 -+BOOT_JAVACFLAGS += -encoding ascii -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) - - BOOT_JAVA_CMD = $(BOOTDIR)/bin/java $(JAVA_TOOLS_FLAGS) - BOOT_JAVAC_CMD = $(BOOTDIR)/bin/javac $(JAVAC_JVM_FLAGS) $(BOOT_JAVACFLAGS)
--- a/patches/openjdk/6873059-javac-versioning-jdk.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -diff -Nru openjdk.orig/jdk/make/common/shared/Defs-java.gmk openjdk/jdk/make/common/shared/Defs-java.gmk ---- openjdk.orig/jdk/make/common/shared/Defs-java.gmk 2010-03-29 23:19:08.000000000 +0100 -+++ openjdk/jdk/make/common/shared/Defs-java.gmk 2010-03-29 23:22:38.000000000 +0100 -@@ -186,7 +186,10 @@ - ifeq ($(COMPILER_WARNINGS_FATAL), true) - BOOT_JAVACFLAGS += -Werror - endif --BOOT_JAVACFLAGS += -encoding ascii -+ -+BOOT_SOURCE_LANGUAGE_VERSION = 6 -+BOOT_TARGET_CLASS_VERSION = 6 -+BOOT_JAVACFLAGS += -encoding ascii -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) - - BOOT_JAVACFLAGS += $(NO_PROPRIETARY_API_WARNINGS) -
--- a/patches/openjdk/6879689-hotspot_warning_fix.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -# HG changeset patch -# User andrew -# Date 1252396876 -3600 -# Node ID 5fdbe2cdf565f5d2c5c6bc8686a8eb792903e30e -# Parent 6ab1d6ece8bd7e0fb9bc16c2a1e03ca6b5402426 -6879689: Fix warning about ignored return value when compiling with -O2 -Summary: Store the return value of fwrite and check it matches the size of the array. -Reviewed-by: twisti, dholmes - -diff -r 6ab1d6ece8bd -r 5fdbe2cdf565 src/share/vm/adlc/archDesc.cpp ---- openjdk.orig/hotspot/src/share/vm/adlc/archDesc.cpp Mon Aug 17 15:03:39 2009 -0700 -+++ openjdk/hotspot/src/share/vm/adlc/archDesc.cpp Tue Sep 08 09:01:16 2009 +0100 -@@ -1031,7 +1031,8 @@ - //---------------------------addSUNcopyright------------------------------- - // output SUN copyright info - void ArchDesc::addSunCopyright(char* legal, int size, FILE *fp) { -- fwrite(legal, size, 1, fp); -+ size_t count = fwrite(legal, 1, size, fp); -+ assert(count == (size_t) size, "copyright info truncated"); - fprintf(fp,"\n"); - fprintf(fp,"// Machine Generated File. Do Not Edit!\n"); - fprintf(fp,"\n");
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/6896472-missing_libjsig.patch Sun Apr 18 17:04:10 2010 +0100 @@ -0,0 +1,20 @@ +# HG changeset patch +# User ohair +# Date 1256840222 25200 +# Node ID 8885b22565077236a927e824ef450742e434a230 +# Parent 1602e8848bde3aa1c375390374998bfba46aa7b4 +6896472: Missing libjsig.so causes jdk build failure +Reviewed-by: tbell, kvn, phh + +diff -r 1602e8848bde -r 8885b2256507 make/java/redist/Makefile +--- openjdk.orig/jdk/make/java/redist/Makefile Mon Oct 19 16:31:48 2009 -0700 ++++ openjdk/jdk/make/java/redist/Makefile Thu Oct 29 11:17:02 2009 -0700 +@@ -211,7 +211,7 @@ + $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVM_NAME): $(HOTSPOT_KERNEL_PATH)/$(JVM_NAME) + $(install-file) + +-$(LIB_LOCATION)/$(LIBJSIG_NAME): $(HOTSPOT_SERVER_PATH)/$(LIBJSIG_NAME) ++$(LIB_LOCATION)/$(LIBJSIG_NAME): $(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/$(LIBJSIG_NAME) + $(install-import-file) + + $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME) \
--- a/patches/openjdk/6928623-verbose-langtools.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ - -# HG changeset patch -# User andrew -# Date 1266874633 0 -# Node ID f25efdb55c998759ce2c1d8711011619455beaba -# Parent a3be81d385ee94edb4bffed3436fc548d68423b4 -6928623: Behaviour of VERBOSE=true on langtools build -Summary: VERBOSE=true causes -diagnostics to be passed to ant rather than -debug -Reviewed-by: jjg - ---- openjdk/langtools/make/Makefile Thu Feb 18 15:41:36 2010 -0800 -+++ openjdk/langtools/make/Makefile Mon Feb 22 21:37:13 2010 +0000 -@@ -70,7 +70,7 @@ endif - endif - - ifdef VERBOSE -- ANT_OPTIONS += -verbose -diagnostics -+ ANT_OPTIONS += -verbose -debug - endif - - ifdef JDK_VERSION -
--- a/patches/openjdk/annotation-tests.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5867 +0,0 @@ -# HG changeset patch -# User darcy -# Date 1233028166 28800 -# Node ID f3ad2ee4600b102d50a18d83aa797e187819e072 -# Parent 175b6adf65b31782480878f5a65044b4c97fd7cf -6740185: Move java/lang/annotations tests to open -Reviewed-by: jjg - -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/AnnotationTypeMismatchException/FoundType.java openjdk/jdk/test/java/lang/annotation/AnnotationTypeMismatchException/FoundType.java ---- openjdk.orig/jdk/test/java/lang/annotation/AnnotationTypeMismatchException/FoundType.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/AnnotationTypeMismatchException/FoundType.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,44 @@ -+/* -+ * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/* -+ * @test -+ * @bug 6179014 -+ * @summary AnnotationTypeMismatchException.foundType method shouldn't loop. -+ * @author Scott Seligman -+ * @run main/timeout=30 FoundType -+ */ -+ -+import java.lang.annotation.*; -+ -+public class FoundType { -+ -+ private static final String TYPE = "a.halting.Problem"; -+ -+ public static void main(String[] args) { -+ AnnotationTypeMismatchException ex = -+ new AnnotationTypeMismatchException(null, TYPE); -+ if (!TYPE.equals(ex.foundType())) -+ throw new Error(); -+ } -+} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/A.java openjdk/jdk/test/java/lang/annotation/loaderLeak/A.java ---- openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/A.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/loaderLeak/A.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,28 @@ -+/* -+ * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+public -+@java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) -+@interface A { -+ B b(); -+} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/B.java openjdk/jdk/test/java/lang/annotation/loaderLeak/B.java ---- openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/B.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/loaderLeak/B.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,24 @@ -+/* -+ * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+public @interface B {} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/C.java openjdk/jdk/test/java/lang/annotation/loaderLeak/C.java ---- openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/C.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/loaderLeak/C.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,24 @@ -+/* -+ * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+public @A(b=@B()) class C {} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh openjdk/jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh ---- openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh 2009-02-05 08:45:04.000000000 +0000 -@@ -0,0 +1,84 @@ -+#!/bin/sh -+ -+# Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. -+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+# -+# This code is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License version 2 only, as -+# published by the Free Software Foundation. -+# -+# This code is distributed in the hope that it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+# version 2 for more details (a copy is included in the LICENSE file that -+# accompanied this code). -+# -+# You should have received a copy of the GNU General Public License version -+# 2 along with this work; if not, write to the Free Software Foundation, -+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+# -+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+# CA 95054 USA or visit www.sun.com if you need additional information or -+# have any questions. -+ -+if [ "${TESTSRC}" = "" ] -+then -+ echo "TESTSRC not set. Test cannot execute. Failed." -+ exit 1 -+fi -+echo "TESTSRC=${TESTSRC}" -+if [ "${TESTJAVA}" = "" ] -+then -+ echo "TESTJAVA not set. Test cannot execute. Failed." -+ exit 1 -+fi -+echo "TESTJAVA=${TESTJAVA}" -+if [ "${TESTCLASSES}" = "" ] -+then -+ echo "TESTCLASSES not set. Test cannot execute. Failed." -+ exit 1 -+fi -+echo "TESTCLASSES=${TESTCLASSES}" -+echo "CLASSPATH=${CLASSPATH}" -+ -+# set platform-dependent variables -+OS=`uname -s` -+case "$OS" in -+ SunOS | Linux ) -+ NULL=/dev/null -+ PS=":" -+ FS="/" -+ ;; -+ Windows* ) -+ NULL=NUL -+ PS=";" -+ FS="\\" -+ ;; -+ * ) -+ echo "Unrecognized system!" -+ exit 1; -+ ;; -+esac -+ -+mkdir -p classes -+cp ${TESTSRC}${FS}*.java . -+${TESTJAVA}${FS}bin${FS}javac -d classes A.java B.java C.java -+${TESTJAVA}${FS}bin${FS}javac Main.java -+${TESTJAVA}${FS}bin${FS}java Main -+result=$? -+if [ $result -eq 0 ] -+then -+ echo "Passed 1 of 2" -+else -+ echo "Failed 1 of 2" -+ exit $result -+fi -+${TESTJAVA}${FS}bin${FS}java Main foo -+result=$? -+if [ $result -eq 0 ] -+then -+ echo "Passed 2 of 2" -+else -+ echo "Failed 2 of 2" -+fi -+exit $result -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/Main.java openjdk/jdk/test/java/lang/annotation/loaderLeak/Main.java ---- openjdk.orig/jdk/test/java/lang/annotation/loaderLeak/Main.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/loaderLeak/Main.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,127 @@ -+/* -+ * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/* -+ * @test -+ * @bug 5040740 -+ * @summary annotations cause memory leak -+ * @author gafter -+ * -+ * @run shell LoaderLeak.sh -+ */ -+ -+import java.net.*; -+import java.lang.ref.*; -+import java.util.*; -+import java.io.*; -+ -+public class Main { -+ public static void main(String[] args) throws Exception { -+ for (int i=0; i<100; i++) -+ doTest(args.length != 0); -+ } -+ -+ static void doTest(boolean readAnn) throws Exception { -+ // URL classes = new URL("file://" + System.getProperty("user.dir") + "/classes"); -+ // URL[] path = { classes }; -+ // URLClassLoader loader = new URLClassLoader(path); -+ ClassLoader loader = new SimpleClassLoader(); -+ WeakReference<Class<?>> c = new WeakReference(loader.loadClass("C")); -+ if (c.get() == null) throw new AssertionError(); -+ if (c.get().getClassLoader() != loader) throw new AssertionError(); -+ if (readAnn) System.out.println(c.get().getAnnotations()[0]); -+ if (c.get() == null) throw new AssertionError(); -+ System.gc(); -+ System.gc(); -+ if (c.get() == null) throw new AssertionError(); -+ System.gc(); -+ System.gc(); -+ loader = null; -+ System.gc(); -+ System.gc(); -+ if (c.get() != null) throw new AssertionError(); -+ } -+} -+ -+class SimpleClassLoader extends ClassLoader { -+ private Hashtable classes = new Hashtable(); -+ -+ public SimpleClassLoader() { -+ } -+ private byte getClassImplFromDataBase(String className)[] { -+ byte result[]; -+ try { -+ FileInputStream fi = new FileInputStream("classes/"+className+".class"); -+ result = new byte[fi.available()]; -+ fi.read(result); -+ return result; -+ } catch (Exception e) { -+ -+ /* -+ * If we caught an exception, either the class wasnt found or it -+ * was unreadable by our process. -+ */ -+ return null; -+ } -+ } -+ public Class loadClass(String className) throws ClassNotFoundException { -+ return (loadClass(className, true)); -+ } -+ public synchronized Class loadClass(String className, boolean resolveIt) -+ throws ClassNotFoundException { -+ Class result; -+ byte classData[]; -+ -+ /* Check our local cache of classes */ -+ result = (Class)classes.get(className); -+ if (result != null) { -+ return result; -+ } -+ -+ /* Check with the primordial class loader */ -+ try { -+ result = super.findSystemClass(className); -+ return result; -+ } catch (ClassNotFoundException e) { -+ } -+ -+ /* Try to load it from our repository */ -+ classData = getClassImplFromDataBase(className); -+ if (classData == null) { -+ throw new ClassNotFoundException(); -+ } -+ -+ /* Define it (parse the class file) */ -+ result = defineClass(classData, 0, classData.length); -+ if (result == null) { -+ throw new ClassFormatError(); -+ } -+ -+ if (resolveIt) { -+ resolveClass(result); -+ } -+ -+ classes.put(className, result); -+ return result; -+ } -+} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/Missing/A.java openjdk/jdk/test/java/lang/annotation/Missing/A.java ---- openjdk.orig/jdk/test/java/lang/annotation/Missing/A.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/Missing/A.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,30 @@ -+/* -+ * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/** -+ * Class to have a missing annotation applied for running MissingTest. -+ */ -+@Missing -+@Marker -+public class A { -+} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/Missing/B.java openjdk/jdk/test/java/lang/annotation/Missing/B.java ---- openjdk.orig/jdk/test/java/lang/annotation/Missing/B.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/Missing/B.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,31 @@ -+/* -+ * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/** -+ * Class to have an indirectly missing annotation applied for for -+ * running MisssingTest. -+ */ -+@MissingWrapper(@Missing) -+@Marker -+public class B { -+} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/Missing/C.java openjdk/jdk/test/java/lang/annotation/Missing/C.java ---- openjdk.orig/jdk/test/java/lang/annotation/Missing/C.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/Missing/C.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,31 @@ -+/* -+ * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/** -+ * Class to have a missing annotation applied for running MissingTest. -+ */ -+public class C { -+ public void method1(@Missing @Marker Object param1) { -+ return; -+ } -+} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/Missing/D.java openjdk/jdk/test/java/lang/annotation/Missing/D.java ---- openjdk.orig/jdk/test/java/lang/annotation/Missing/D.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/Missing/D.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,31 @@ -+/* -+ * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/** -+ * Class to have a missing annotation applied for running MissingTest. -+ */ -+public class D { -+ public void method1(@MissingWrapper(@Missing) @Marker Object param1) { -+ return; -+ } -+} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/Missing/Marker.java openjdk/jdk/test/java/lang/annotation/Missing/Marker.java ---- openjdk.orig/jdk/test/java/lang/annotation/Missing/Marker.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/Missing/Marker.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,32 @@ -+/* -+ * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+import java.lang.annotation.Retention; -+import static java.lang.annotation.RetentionPolicy.*; -+ -+/** -+ * A marker annotation. Used so that at least one annotation will be -+ * present on the classes tested by MissingTest. -+ */ -+@Retention(RUNTIME) -+public @interface Marker {} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/Missing/Missing.java openjdk/jdk/test/java/lang/annotation/Missing/Missing.java ---- openjdk.orig/jdk/test/java/lang/annotation/Missing/Missing.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/Missing/Missing.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,32 @@ -+/* -+ * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+import java.lang.annotation.Retention; -+import static java.lang.annotation.RetentionPolicy.*; -+ -+/** -+ * The class file for this annotation type is missing when MissingTest -+ * is run. -+ */ -+@Retention(RUNTIME) -+public @interface Missing {} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/Missing/MissingTest.java openjdk/jdk/test/java/lang/annotation/Missing/MissingTest.java ---- openjdk.orig/jdk/test/java/lang/annotation/Missing/MissingTest.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/Missing/MissingTest.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,135 @@ -+/* -+ * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/* -+ * @test -+ * @bug 6322301 -+ * @summary Verify when missing annotation classes cause exceptions -+ * @author Joseph D. Darcy -+ * @compile MissingTest.java A.java B.java C.java D.java Marker.java Missing.java MissingWrapper.java -+ * @clean Missing -+ * @run main MissingTest -+ */ -+ -+import java.lang.reflect.*; -+ -+/** -+ * This test verifies that a missing annotation class leads to the -+ * expected exceptional behavior; a missing directly applied -+ * annotation is currently ignored but a missing annotation value -+ * inside another annotation throws an exception. -+ * -+ * To be run as intended, the annotation type Missing should *not* be -+ * on the classpath when the test is run; with jtreg, it is deleted by -+ * the @clean directive. -+ */ -+public class MissingTest { -+ /** -+ * For the annotated element argument, get all its annotations and -+ * see whether or not an exception is throw upon reading the -+ * annotations. Additionally, verify at least one annotation is -+ * present. -+ */ -+ private static void testAnnotation(AnnotatedElement element, -+ boolean exceptionExpected) { -+ java.lang.annotation.Annotation[] annotations; -+ try { -+ annotations = element.getAnnotations(); -+ if (exceptionExpected) { -+ System.err.println("Error: Did not get an exception reading annotations on " -+ + element); -+ System.err.println("Annotations found: " -+ + java.util.Arrays.toString(annotations)); -+ throw new RuntimeException(); -+ } -+ if (annotations.length == 0) { -+ System.err.println("Error: no annotations found on " + element); -+ throw new RuntimeException(); -+ } -+ } catch (Throwable t) { -+ if (!exceptionExpected) { -+ System.err.println("Error: Got an unexpected exception reading annotations on " -+ + element); -+ throw new RuntimeException(t); -+ } -+ } -+ } -+ -+ /** -+ * For the annotated element argument, get all its annotations and -+ * see whether or not an exception is throw upon reading the -+ * annotations. Additionally, verify at least one annotation is -+ * present. -+ */ -+ private static void testParameterAnnotation(Method m, -+ boolean exceptionExpected) { -+ java.lang.annotation.Annotation[][] annotationsArray; -+ try { -+ annotationsArray = m.getParameterAnnotations(); -+ if (exceptionExpected) { -+ System.err.println("Error: Did not get an exception reading annotations on method" -+ + m); -+ System.err.println("Annotations found: " -+ + java.util.Arrays.toString(annotationsArray)); -+ throw new RuntimeException(); -+ } -+ if (annotationsArray.length == 0 ) { -+ System.err.println("Error: no parameters for " + m); -+ throw new RuntimeException(); -+ } else { -+ java.lang.annotation.Annotation[] annotations = annotationsArray[0]; -+ if (annotations.length == 0) { -+ System.err.println("Error: no annotations on " + m); -+ throw new RuntimeException(); -+ } -+ } -+ } catch (Throwable t) { -+ if (!exceptionExpected) { -+ System.err.println("Error: Got an unexpected exception reading annotations on " -+ + m); -+ throw new RuntimeException(t); -+ } -+ } -+ } -+ -+ public static void main(String argv[]) throws Exception { -+ // Class A has a directly applied annotation whose class is -+ // missing. -+ testAnnotation(A.class, false); -+ -+ // Class B has a directly applied annotation whose value -+ // includes to an annotation class that is missing. -+ testAnnotation(B.class, true); -+ -+ -+ // Class C has a directly applied parameter annotation whose -+ // class is missing. -+ testParameterAnnotation(C.class.getDeclaredMethod("method1", Object.class), -+ false); -+ -+ // Class D has a directly applied parameter annotation whose value -+ // includes to an annotation class that is missing. -+ testParameterAnnotation(D.class.getDeclaredMethod("method1", Object.class), -+ true); -+ } -+} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/Missing/MissingWrapper.java openjdk/jdk/test/java/lang/annotation/Missing/MissingWrapper.java ---- openjdk.orig/jdk/test/java/lang/annotation/Missing/MissingWrapper.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/Missing/MissingWrapper.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,34 @@ -+/* -+ * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+import java.lang.annotation.Retention; -+import static java.lang.annotation.RetentionPolicy.*; -+ -+/** -+ * Annotation wrapper around an annotation whose class will be missing -+ * when MissingTest is run. -+ */ -+@Retention(RUNTIME) -+public @interface MissingWrapper { -+ Missing value(); -+} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/package-info.java openjdk/jdk/test/java/lang/annotation/package-info.java ---- openjdk.orig/jdk/test/java/lang/annotation/package-info.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/package-info.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,37 @@ -+/* -+ * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/* -+ * @test -+ * @bug 4901290 5037531 -+ * @summary Package annotations -+ * @author gafter -+ * -+ * @compile -source 1.5 package-info.java PackageMain.java -+ * @run main PackageMain -+ */ -+ -+@java.lang.annotation.Documented -+package foo.bar; -+ -+class Baz {} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/PackageMain.java openjdk/jdk/test/java/lang/annotation/PackageMain.java ---- openjdk.orig/jdk/test/java/lang/annotation/PackageMain.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/PackageMain.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,36 @@ -+/* -+ * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+import java.lang.annotation.Documented; -+ -+public class PackageMain { -+ public static void main(String[] args) throws Exception { -+ Class<?> c = Class.forName("foo.bar.Baz"); -+ System.out.println("c=" + c); -+ System.out.println("cl=" + c.getClassLoader()); -+ Package p = c.getPackage(); -+ System.out.println("p=" + p); -+ Documented d = p.getAnnotation(Documented.class); -+ if (d == null) throw new Error(); -+ } -+} -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/RecursiveAnnotation.java openjdk/jdk/test/java/lang/annotation/RecursiveAnnotation.java ---- openjdk.orig/jdk/test/java/lang/annotation/RecursiveAnnotation.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/RecursiveAnnotation.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,44 @@ -+/* -+ * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/* -+ * @test -+ * @bug 5037685 -+ * @summary Under certain circumstances, recursive annotations disappeared -+ * @author Josh Bloch -+ */ -+ -+import java.lang.annotation.*; -+import static java.lang.annotation.RetentionPolicy.*; -+ -+@Rat public class RecursiveAnnotation { -+ public static void main(String[] args) { -+ if (!RecursiveAnnotation.class.isAnnotationPresent(Rat.class)) -+ throw new RuntimeException("RecursiveAnnotation"); -+ -+ if (!Rat.class.isAnnotationPresent(Rat.class)) -+ throw new RuntimeException("Rat"); -+ } -+} -+ -+@Retention(RUNTIME) @Rat @interface Rat { } -diff -Nru openjdk.orig/jdk/test/java/lang/annotation/UnitTest.java openjdk/jdk/test/java/lang/annotation/UnitTest.java ---- openjdk.orig/jdk/test/java/lang/annotation/UnitTest.java 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/jdk/test/java/lang/annotation/UnitTest.java 2009-02-11 00:58:01.000000000 +0000 -@@ -0,0 +1,4983 @@ -+/* -+ * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/* -+ * @test -+ * @bug 4906359 4963461 4965058 4965039 4986770 -+ * @summary Unit test for annotation reading -+ * @author Josh Bloch -+ * @compile -source 1.5 UnitTest.java -+ * @run main UnitTest -+ */ -+ -+import static java.lang.annotation.RetentionPolicy.RUNTIME; -+ -+import java.lang.annotation.*; -+import java.util.*; -+import java.lang.reflect.*; -+import java.io.*; -+ -+public class UnitTest { -+ private static final Class[] X = new Class[0]; -+ private static final Class[] Y = { int.class }; -+ -+ static int numTests = 0; -+ -+ public static void main(String[] args) throws Exception { -+ -+ // *** TESTS ON ANNOTATED METHODS *** -+ -+ // MULTIMEMBER SCALAR TYPES ON METHOD -+ checkScalarTypes(UnitTest.class.getMethod("scalarTypesMethod", X)); -+ checkScalarTypesOverrideDefault(UnitTest.class.getMethod("scalarTypesOverrideDefaultMethod", X)); -+ checkScalarTypesAcceptDefault(UnitTest.class.getMethod("scalarTypesAcceptDefaultMethod", X)); -+ -+ // MULTIMEMBER ARRAY TYPES ON METHOD -+ checkArrayTypes0(UnitTest.class.getMethod("emptyArrayTypesMethod", X)); -+ checkArrayTypes1(UnitTest.class.getMethod("singleElementArrayTypesMethod", X)); -+ checkArrayTypes2(UnitTest.class.getMethod("twoElementArrayTypesMethod", X)); -+ checkArrayTypesAcceptDefault(UnitTest.class.getMethod("arrayTypesAcceptDefaultMethod", X)); -+ checkArrayTypesOverrideDefault(UnitTest.class.getMethod("arrayTypesOverrideDefaultMethod", X)); -+ -+ // MARKER TYPE ON METHOD -+ checkMarker(UnitTest.class.getMethod("markerMethod", X)); -+ -+ // SINGLE-MEMBER SCALAR TYPES ON METHOD -+ checkSingleMemberByte(UnitTest.class.getMethod("SingleMemberByte", X)); -+ checkSingleMemberShort(UnitTest.class.getMethod("SingleMemberShort", X)); -+ checkSingleMemberInt(UnitTest.class.getMethod("SingleMemberInt", X)); -+ checkSingleMemberLong(UnitTest.class.getMethod("SingleMemberLong", X)); -+ checkSingleMemberChar(UnitTest.class.getMethod("SingleMemberChar", X)); -+ checkSingleMemberFloat(UnitTest.class.getMethod("SingleMemberFloat", X)); -+ checkSingleMemberDouble(UnitTest.class.getMethod("SingleMemberDouble", X)); -+ checkSingleMemberBoolean(UnitTest.class.getMethod("SingleMemberBoolean", X)); -+ checkSingleMemberString(UnitTest.class.getMethod("SingleMemberString", X)); -+ checkSingleMemberClass(UnitTest.class.getMethod("SingleMemberClass", X)); -+ checkSingleMemberEnum(UnitTest.class.getMethod("SingleMemberEnum", X)); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE ON METHOD -+ checkSingleMemberByteOvrdDef(UnitTest.class.getMethod("SingleMemberByteOvrdDef", X)); -+ checkSingleMemberShortOvrdDef(UnitTest.class.getMethod("SingleMemberShortOvrdDef", X)); -+ checkSingleMemberIntOvrdDef(UnitTest.class.getMethod("SingleMemberIntOvrdDef", X)); -+ checkSingleMemberLongOvrdDef(UnitTest.class.getMethod("SingleMemberLongOvrdDef", X)); -+ checkSingleMemberCharOvrdDef(UnitTest.class.getMethod("SingleMemberCharOvrdDef", X)); -+ checkSingleMemberFloatOvrdDef(UnitTest.class.getMethod("SingleMemberFloatOvrdDef", X)); -+ checkSingleMemberDoubleOvrdDef(UnitTest.class.getMethod("SingleMemberDoubleOvrdDef", X)); -+ checkSingleMemberBooleanOvrdDef(UnitTest.class.getMethod("SingleMemberBooleanOvrdDef", X)); -+ checkSingleMemberStringOvrdDef(UnitTest.class.getMethod("SingleMemberStringOvrdDef", X)); -+ checkSingleMemberClassOvrdDef(UnitTest.class.getMethod("SingleMemberClassOvrdDef", X)); -+ checkSingleMemberEnumOvrdDef(UnitTest.class.getMethod("SingleMemberEnumOvrdDef", X)); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT ON METHOD -+ checkSingleMemberByteAcceptDef(UnitTest.class.getMethod("SingleMemberByteAcceptDef", X)); -+ checkSingleMemberShortAcceptDef(UnitTest.class.getMethod("SingleMemberShortAcceptDef", X)); -+ checkSingleMemberIntAcceptDef(UnitTest.class.getMethod("SingleMemberIntAcceptDef", X)); -+ checkSingleMemberLongAcceptDef(UnitTest.class.getMethod("SingleMemberLongAcceptDef", X)); -+ checkSingleMemberCharAcceptDef(UnitTest.class.getMethod("SingleMemberCharAcceptDef", X)); -+ checkSingleMemberFloatAcceptDef(UnitTest.class.getMethod("SingleMemberFloatAcceptDef", X)); -+ checkSingleMemberDoubleAcceptDef(UnitTest.class.getMethod("SingleMemberDoubleAcceptDef", X)); -+ checkSingleMemberBooleanAcceptDef(UnitTest.class.getMethod("SingleMemberBooleanAcceptDef", X)); -+ checkSingleMemberStringAcceptDef(UnitTest.class.getMethod("SingleMemberStringAcceptDef", X)); -+ checkSingleMemberClassAcceptDef(UnitTest.class.getMethod("SingleMemberClassAcceptDef", X)); -+ checkSingleMemberEnumAcceptDef(UnitTest.class.getMethod("SingleMemberEnumAcceptDef", X)); -+ -+ // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) ON METHOD -+ checkSingleMemberByteArrEmpty(UnitTest.class.getMethod("SingleMemberByteArrEmpty", X)); -+ checkSingleMemberShortArrEmpty(UnitTest.class.getMethod("SingleMemberShortArrEmpty", X)); -+ checkSingleMemberIntArrEmpty(UnitTest.class.getMethod("SingleMemberIntArrEmpty", X)); -+ checkSingleMemberLongArrEmpty(UnitTest.class.getMethod("SingleMemberLongArrEmpty", X)); -+ checkSingleMemberCharArrEmpty(UnitTest.class.getMethod("SingleMemberCharArrEmpty", X)); -+ checkSingleMemberFloatArrEmpty(UnitTest.class.getMethod("SingleMemberFloatArrEmpty", X)); -+ checkSingleMemberDoubleArrEmpty(UnitTest.class.getMethod("SingleMemberDoubleArrEmpty", X)); -+ checkSingleMemberBooleanArrEmpty(UnitTest.class.getMethod("SingleMemberBooleanArrEmpty", X)); -+ checkSingleMemberStringArrEmpty(UnitTest.class.getMethod("SingleMemberStringArrEmpty", X)); -+ checkSingleMemberClassArrEmpty(UnitTest.class.getMethod("SingleMemberClassArrEmpty", X)); -+ checkSingleMemberEnumArrEmpty(UnitTest.class.getMethod("SingleMemberEnumArrEmpty", X)); -+ -+ // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) ON METHOD -+ checkSingleMemberByteArrOne(UnitTest.class.getMethod("SingleMemberByteArrOne", X)); -+ checkSingleMemberShortArrOne(UnitTest.class.getMethod("SingleMemberShortArrOne", X)); -+ checkSingleMemberIntArrOne(UnitTest.class.getMethod("SingleMemberIntArrOne", X)); -+ checkSingleMemberLongArrOne(UnitTest.class.getMethod("SingleMemberLongArrOne", X)); -+ checkSingleMemberCharArrOne(UnitTest.class.getMethod("SingleMemberCharArrOne", X)); -+ checkSingleMemberFloatArrOne(UnitTest.class.getMethod("SingleMemberFloatArrOne", X)); -+ checkSingleMemberDoubleArrOne(UnitTest.class.getMethod("SingleMemberDoubleArrOne", X)); -+ checkSingleMemberBooleanArrOne(UnitTest.class.getMethod("SingleMemberBooleanArrOne", X)); -+ checkSingleMemberStringArrOne(UnitTest.class.getMethod("SingleMemberStringArrOne", X)); -+ checkSingleMemberClassArrOne(UnitTest.class.getMethod("SingleMemberClassArrOne", X)); -+ checkSingleMemberEnumArrOne(UnitTest.class.getMethod("SingleMemberEnumArrOne", X)); -+ -+ // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) ON METHOD -+ checkSingleMemberByteArrTwo(UnitTest.class.getMethod("SingleMemberByteArrTwo", X)); -+ checkSingleMemberShortArrTwo(UnitTest.class.getMethod("SingleMemberShortArrTwo", X)); -+ checkSingleMemberIntArrTwo(UnitTest.class.getMethod("SingleMemberIntArrTwo", X)); -+ checkSingleMemberLongArrTwo(UnitTest.class.getMethod("SingleMemberLongArrTwo", X)); -+ checkSingleMemberCharArrTwo(UnitTest.class.getMethod("SingleMemberCharArrTwo", X)); -+ checkSingleMemberFloatArrTwo(UnitTest.class.getMethod("SingleMemberFloatArrTwo", X)); -+ checkSingleMemberDoubleArrTwo(UnitTest.class.getMethod("SingleMemberDoubleArrTwo", X)); -+ checkSingleMemberBooleanArrTwo(UnitTest.class.getMethod("SingleMemberBooleanArrTwo", X)); -+ checkSingleMemberStringArrTwo(UnitTest.class.getMethod("SingleMemberStringArrTwo", X)); -+ checkSingleMemberClassArrTwo(UnitTest.class.getMethod("SingleMemberClassArrTwo", X)); -+ checkSingleMemberEnumArrTwo(UnitTest.class.getMethod("SingleMemberEnumArrTwo", X)); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE)ON METHOD -+ checkSingleMemberByteArrOvrdDef(UnitTest.class.getMethod("SingleMemberByteArrOvrdDef", X)); -+ checkSingleMemberShortArrOvrdDef(UnitTest.class.getMethod("SingleMemberShortArrOvrdDef", X)); -+ checkSingleMemberIntArrOvrdDef(UnitTest.class.getMethod("SingleMemberIntArrOvrdDef", X)); -+ checkSingleMemberLongArrOvrdDef(UnitTest.class.getMethod("SingleMemberLongArrOvrdDef", X)); -+ checkSingleMemberCharArrOvrdDef(UnitTest.class.getMethod("SingleMemberCharArrOvrdDef", X)); -+ checkSingleMemberFloatArrOvrdDef(UnitTest.class.getMethod("SingleMemberFloatArrOvrdDef", X)); -+ checkSingleMemberDoubleArrOvrdDef(UnitTest.class.getMethod("SingleMemberDoubleArrOvrdDef", X)); -+ checkSingleMemberBooleanArrOvrdDef(UnitTest.class.getMethod("SingleMemberBooleanArrOvrdDef", X)); -+ checkSingleMemberStringArrOvrdDef(UnitTest.class.getMethod("SingleMemberStringArrOvrdDef", X)); -+ checkSingleMemberClassArrOvrdDef(UnitTest.class.getMethod("SingleMemberClassArrOvrdDef", X)); -+ checkSingleMemberEnumArrOvrdDef(UnitTest.class.getMethod("SingleMemberEnumArrOvrdDef", X)); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT)ON METHOD -+ checkSingleMemberByteArrAcceptDef(UnitTest.class.getMethod("SingleMemberByteArrAcceptDef", X)); -+ checkSingleMemberShortArrAcceptDef(UnitTest.class.getMethod("SingleMemberShortArrAcceptDef", X)); -+ checkSingleMemberIntArrAcceptDef(UnitTest.class.getMethod("SingleMemberIntArrAcceptDef", X)); -+ checkSingleMemberLongArrAcceptDef(UnitTest.class.getMethod("SingleMemberLongArrAcceptDef", X)); -+ checkSingleMemberCharArrAcceptDef(UnitTest.class.getMethod("SingleMemberCharArrAcceptDef", X)); -+ checkSingleMemberFloatArrAcceptDef(UnitTest.class.getMethod("SingleMemberFloatArrAcceptDef", X)); -+ checkSingleMemberDoubleArrAcceptDef(UnitTest.class.getMethod("SingleMemberDoubleArrAcceptDef", X)); -+ checkSingleMemberBooleanArrAcceptDef(UnitTest.class.getMethod("SingleMemberBooleanArrAcceptDef", X)); -+ checkSingleMemberStringArrAcceptDef(UnitTest.class.getMethod("SingleMemberStringArrAcceptDef", X)); -+ checkSingleMemberClassArrAcceptDef(UnitTest.class.getMethod("SingleMemberClassArrAcceptDef", X)); -+ checkSingleMemberEnumArrAcceptDef(UnitTest.class.getMethod("SingleMemberEnumArrAcceptDef", X)); -+ -+ // *** TESTS ON ANNOTATED FIELDS *** -+ -+ // MULTIMEMBER SCALAR TYPES ON FIELD -+ checkScalarTypes(UnitTest.class.getField("scalarTypesField")); -+ checkScalarTypesAcceptDefault(UnitTest.class.getField("scalarTypesAcceptDefaultField")); -+ checkScalarTypesOverrideDefault(UnitTest.class.getField("scalarTypesOverrideDefaultField")); -+ -+ // MULTIMEMBER ARRAY TYPES ON FIELD -+ checkArrayTypes0(UnitTest.class.getField("emptyArrayTypesField")); -+ checkArrayTypes1(UnitTest.class.getField("singleElementArrayTypesField")); -+ checkArrayTypes2(UnitTest.class.getField("twoElementArrayTypesField")); -+ checkArrayTypesAcceptDefault(UnitTest.class.getField("arrayTypesAcceptDefaultField")); -+ checkArrayTypesOverrideDefault(UnitTest.class.getField("arrayTypesOverrideDefaultField")); -+ -+ // MARKER TYPE ON FIELD -+ checkMarker(UnitTest.class.getField("markerField")); -+ -+ // SINGLE-MEMBER SCALAR TYPES ON FIELD -+ checkSingleMemberByte(UnitTest.class.getField("SingleMemberByteField")); -+ checkSingleMemberShort(UnitTest.class.getField("SingleMemberShortField")); -+ checkSingleMemberInt(UnitTest.class.getField("SingleMemberIntField")); -+ checkSingleMemberLong(UnitTest.class.getField("SingleMemberLongField")); -+ checkSingleMemberChar(UnitTest.class.getField("SingleMemberCharField")); -+ checkSingleMemberFloat(UnitTest.class.getField("SingleMemberFloatField")); -+ checkSingleMemberDouble(UnitTest.class.getField("SingleMemberDoubleField")); -+ checkSingleMemberBoolean(UnitTest.class.getField("SingleMemberBooleanField")); -+ checkSingleMemberString(UnitTest.class.getField("SingleMemberStringField")); -+ checkSingleMemberClass(UnitTest.class.getField("SingleMemberClassField")); -+ checkSingleMemberEnum(UnitTest.class.getField("SingleMemberEnumField")); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE ON FIELD -+ checkSingleMemberByteOvrdDef(UnitTest.class.getField("SingleMemberByteOvrdDefField")); -+ checkSingleMemberShortOvrdDef(UnitTest.class.getField("SingleMemberShortOvrdDefField")); -+ checkSingleMemberIntOvrdDef(UnitTest.class.getField("SingleMemberIntOvrdDefField")); -+ checkSingleMemberLongOvrdDef(UnitTest.class.getField("SingleMemberLongOvrdDefField")); -+ checkSingleMemberCharOvrdDef(UnitTest.class.getField("SingleMemberCharOvrdDefField")); -+ checkSingleMemberFloatOvrdDef(UnitTest.class.getField("SingleMemberFloatOvrdDefField")); -+ checkSingleMemberDoubleOvrdDef(UnitTest.class.getField("SingleMemberDoubleOvrdDefField")); -+ checkSingleMemberBooleanOvrdDef(UnitTest.class.getField("SingleMemberBooleanOvrdDefField")); -+ checkSingleMemberStringOvrdDef(UnitTest.class.getField("SingleMemberStringOvrdDefField")); -+ checkSingleMemberClassOvrdDef(UnitTest.class.getField("SingleMemberClassOvrdDefField")); -+ checkSingleMemberEnumOvrdDef(UnitTest.class.getField("SingleMemberEnumOvrdDefField")); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT ON FIELD -+ checkSingleMemberByteAcceptDef(UnitTest.class.getField("SingleMemberByteAcceptDefField")); -+ checkSingleMemberShortAcceptDef(UnitTest.class.getField("SingleMemberShortAcceptDefField")); -+ checkSingleMemberIntAcceptDef(UnitTest.class.getField("SingleMemberIntAcceptDefField")); -+ checkSingleMemberLongAcceptDef(UnitTest.class.getField("SingleMemberLongAcceptDefField")); -+ checkSingleMemberCharAcceptDef(UnitTest.class.getField("SingleMemberCharAcceptDefField")); -+ checkSingleMemberFloatAcceptDef(UnitTest.class.getField("SingleMemberFloatAcceptDefField")); -+ checkSingleMemberDoubleAcceptDef(UnitTest.class.getField("SingleMemberDoubleAcceptDefField")); -+ checkSingleMemberBooleanAcceptDef(UnitTest.class.getField("SingleMemberBooleanAcceptDefField")); -+ checkSingleMemberStringAcceptDef(UnitTest.class.getField("SingleMemberStringAcceptDefField")); -+ checkSingleMemberClassAcceptDef(UnitTest.class.getField("SingleMemberClassAcceptDefField")); -+ checkSingleMemberEnumAcceptDef(UnitTest.class.getField("SingleMemberEnumAcceptDefField")); -+ -+ // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) ON FIELD -+ checkSingleMemberByteArrEmpty(UnitTest.class.getField("SingleMemberByteArrEmptyField")); -+ checkSingleMemberShortArrEmpty(UnitTest.class.getField("SingleMemberShortArrEmptyField")); -+ checkSingleMemberIntArrEmpty(UnitTest.class.getField("SingleMemberIntArrEmptyField")); -+ checkSingleMemberLongArrEmpty(UnitTest.class.getField("SingleMemberLongArrEmptyField")); -+ checkSingleMemberCharArrEmpty(UnitTest.class.getField("SingleMemberCharArrEmptyField")); -+ checkSingleMemberFloatArrEmpty(UnitTest.class.getField("SingleMemberFloatArrEmptyField")); -+ checkSingleMemberDoubleArrEmpty(UnitTest.class.getField("SingleMemberDoubleArrEmptyField")); -+ checkSingleMemberBooleanArrEmpty(UnitTest.class.getField("SingleMemberBooleanArrEmptyField")); -+ checkSingleMemberStringArrEmpty(UnitTest.class.getField("SingleMemberStringArrEmptyField")); -+ checkSingleMemberClassArrEmpty(UnitTest.class.getField("SingleMemberClassArrEmptyField")); -+ checkSingleMemberEnumArrEmpty(UnitTest.class.getField("SingleMemberEnumArrEmptyField")); -+ -+ // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) ON FIELD -+ checkSingleMemberByteArrOne(UnitTest.class.getField("SingleMemberByteArrOneField")); -+ checkSingleMemberShortArrOne(UnitTest.class.getField("SingleMemberShortArrOneField")); -+ checkSingleMemberIntArrOne(UnitTest.class.getField("SingleMemberIntArrOneField")); -+ checkSingleMemberLongArrOne(UnitTest.class.getField("SingleMemberLongArrOneField")); -+ checkSingleMemberCharArrOne(UnitTest.class.getField("SingleMemberCharArrOneField")); -+ checkSingleMemberFloatArrOne(UnitTest.class.getField("SingleMemberFloatArrOneField")); -+ checkSingleMemberDoubleArrOne(UnitTest.class.getField("SingleMemberDoubleArrOneField")); -+ checkSingleMemberBooleanArrOne(UnitTest.class.getField("SingleMemberBooleanArrOneField")); -+ checkSingleMemberStringArrOne(UnitTest.class.getField("SingleMemberStringArrOneField")); -+ checkSingleMemberClassArrOne(UnitTest.class.getField("SingleMemberClassArrOneField")); -+ checkSingleMemberEnumArrOne(UnitTest.class.getField("SingleMemberEnumArrOneField")); -+ -+ // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) ON FIELD -+ checkSingleMemberByteArrTwo(UnitTest.class.getField("SingleMemberByteArrTwoField")); -+ checkSingleMemberShortArrTwo(UnitTest.class.getField("SingleMemberShortArrTwoField")); -+ checkSingleMemberIntArrTwo(UnitTest.class.getField("SingleMemberIntArrTwoField")); -+ checkSingleMemberLongArrTwo(UnitTest.class.getField("SingleMemberLongArrTwoField")); -+ checkSingleMemberCharArrTwo(UnitTest.class.getField("SingleMemberCharArrTwoField")); -+ checkSingleMemberFloatArrTwo(UnitTest.class.getField("SingleMemberFloatArrTwoField")); -+ checkSingleMemberDoubleArrTwo(UnitTest.class.getField("SingleMemberDoubleArrTwoField")); -+ checkSingleMemberBooleanArrTwo(UnitTest.class.getField("SingleMemberBooleanArrTwoField")); -+ checkSingleMemberStringArrTwo(UnitTest.class.getField("SingleMemberStringArrTwoField")); -+ checkSingleMemberClassArrTwo(UnitTest.class.getField("SingleMemberClassArrTwoField")); -+ checkSingleMemberEnumArrTwo(UnitTest.class.getField("SingleMemberEnumArrTwoField")); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE)ON FIELD -+ checkSingleMemberByteArrOvrdDef(UnitTest.class.getField("SingleMemberByteArrOvrdDefField")); -+ checkSingleMemberShortArrOvrdDef(UnitTest.class.getField("SingleMemberShortArrOvrdDefField")); -+ checkSingleMemberIntArrOvrdDef(UnitTest.class.getField("SingleMemberIntArrOvrdDefField")); -+ checkSingleMemberLongArrOvrdDef(UnitTest.class.getField("SingleMemberLongArrOvrdDefField")); -+ checkSingleMemberCharArrOvrdDef(UnitTest.class.getField("SingleMemberCharArrOvrdDefField")); -+ checkSingleMemberFloatArrOvrdDef(UnitTest.class.getField("SingleMemberFloatArrOvrdDefField")); -+ checkSingleMemberDoubleArrOvrdDef(UnitTest.class.getField("SingleMemberDoubleArrOvrdDefField")); -+ checkSingleMemberBooleanArrOvrdDef(UnitTest.class.getField("SingleMemberBooleanArrOvrdDefField")); -+ checkSingleMemberStringArrOvrdDef(UnitTest.class.getField("SingleMemberStringArrOvrdDefField")); -+ checkSingleMemberClassArrOvrdDef(UnitTest.class.getField("SingleMemberClassArrOvrdDefField")); -+ checkSingleMemberEnumArrOvrdDef(UnitTest.class.getField("SingleMemberEnumArrOvrdDefField")); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT)ON FIELD -+ checkSingleMemberByteArrAcceptDef(UnitTest.class.getField("SingleMemberByteArrAcceptDefField")); -+ checkSingleMemberShortArrAcceptDef(UnitTest.class.getField("SingleMemberShortArrAcceptDefField")); -+ checkSingleMemberIntArrAcceptDef(UnitTest.class.getField("SingleMemberIntArrAcceptDefField")); -+ checkSingleMemberLongArrAcceptDef(UnitTest.class.getField("SingleMemberLongArrAcceptDefField")); -+ checkSingleMemberCharArrAcceptDef(UnitTest.class.getField("SingleMemberCharArrAcceptDefField")); -+ checkSingleMemberFloatArrAcceptDef(UnitTest.class.getField("SingleMemberFloatArrAcceptDefField")); -+ checkSingleMemberDoubleArrAcceptDef(UnitTest.class.getField("SingleMemberDoubleArrAcceptDefField")); -+ checkSingleMemberBooleanArrAcceptDef(UnitTest.class.getField("SingleMemberBooleanArrAcceptDefField")); -+ checkSingleMemberStringArrAcceptDef(UnitTest.class.getField("SingleMemberStringArrAcceptDefField")); -+ checkSingleMemberClassArrAcceptDef(UnitTest.class.getField("SingleMemberClassArrAcceptDefField")); -+ checkSingleMemberEnumArrAcceptDef(UnitTest.class.getField("SingleMemberEnumArrAcceptDefField")); -+ -+ // *** TESTS ON ANNOTATED ENUM CONSTS *** -+ -+ // MULTIMEMBER SCALAR TYPES ON ENUM CONST -+ checkScalarTypes(TestType.class.getField("scalarTypesField")); -+ checkScalarTypesAcceptDefault(TestType.class.getField("scalarTypesAcceptDefaultField")); -+ checkScalarTypesOverrideDefault(TestType.class.getField("scalarTypesOverrideDefaultField")); -+ -+ // MULTIMEMBER ARRAY TYPES ON ENUM CONST -+ checkArrayTypes0(TestType.class.getField("emptyArrayTypesField")); -+ checkArrayTypes1(TestType.class.getField("singleElementArrayTypesField")); -+ checkArrayTypes2(TestType.class.getField("twoElementArrayTypesField")); -+ checkArrayTypesAcceptDefault(TestType.class.getField("arrayTypesAcceptDefaultField")); -+ checkArrayTypesOverrideDefault(TestType.class.getField("arrayTypesOverrideDefaultField")); -+ -+ // MARKER TYPE ON CLASS -+ checkMarker(TestType.class.getField("marker")); -+ -+ // SINGLE-MEMBER SCALAR TYPES ON CLASS -+ checkSingleMemberByte(TestType.class.getField("SingleMemberByte")); -+ checkSingleMemberShort(TestType.class.getField("SingleMemberShort")); -+ checkSingleMemberInt(TestType.class.getField("SingleMemberInt")); -+ checkSingleMemberLong(TestType.class.getField("SingleMemberLong")); -+ checkSingleMemberChar(TestType.class.getField("SingleMemberChar")); -+ checkSingleMemberFloat(TestType.class.getField("SingleMemberFloat")); -+ checkSingleMemberDouble(TestType.class.getField("SingleMemberDouble")); -+ checkSingleMemberBoolean(TestType.class.getField("SingleMemberBoolean")); -+ checkSingleMemberString(TestType.class.getField("SingleMemberString")); -+ checkSingleMemberClass(TestType.class.getField("SingleMemberClass")); -+ checkSingleMemberEnum(TestType.class.getField("SingleMemberEnum")); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE ON CLASS -+ checkSingleMemberByteOvrdDef(TestType.class.getField("SingleMemberByteOvrdDef")); -+ checkSingleMemberShortOvrdDef(TestType.class.getField("SingleMemberShortOvrdDef")); -+ checkSingleMemberIntOvrdDef(TestType.class.getField("SingleMemberIntOvrdDef")); -+ checkSingleMemberLongOvrdDef(TestType.class.getField("SingleMemberLongOvrdDef")); -+ checkSingleMemberCharOvrdDef(TestType.class.getField("SingleMemberCharOvrdDef")); -+ checkSingleMemberFloatOvrdDef(TestType.class.getField("SingleMemberFloatOvrdDef")); -+ checkSingleMemberDoubleOvrdDef(TestType.class.getField("SingleMemberDoubleOvrdDef")); -+ checkSingleMemberBooleanOvrdDef(TestType.class.getField("SingleMemberBooleanOvrdDef")); -+ checkSingleMemberStringOvrdDef(TestType.class.getField("SingleMemberStringOvrdDef")); -+ checkSingleMemberClassOvrdDef(TestType.class.getField("SingleMemberClassOvrdDef")); -+ checkSingleMemberEnumOvrdDef(TestType.class.getField("SingleMemberEnumOvrdDef")); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT ON CLASS -+ checkSingleMemberByteAcceptDef(TestType.class.getField("SingleMemberByteAcceptDef")); -+ checkSingleMemberShortAcceptDef(TestType.class.getField("SingleMemberShortAcceptDef")); -+ checkSingleMemberIntAcceptDef(TestType.class.getField("SingleMemberIntAcceptDef")); -+ checkSingleMemberLongAcceptDef(TestType.class.getField("SingleMemberLongAcceptDef")); -+ checkSingleMemberCharAcceptDef(TestType.class.getField("SingleMemberCharAcceptDef")); -+ checkSingleMemberFloatAcceptDef(TestType.class.getField("SingleMemberFloatAcceptDef")); -+ checkSingleMemberDoubleAcceptDef(TestType.class.getField("SingleMemberDoubleAcceptDef")); -+ checkSingleMemberBooleanAcceptDef(TestType.class.getField("SingleMemberBooleanAcceptDef")); -+ checkSingleMemberStringAcceptDef(TestType.class.getField("SingleMemberStringAcceptDef")); -+ checkSingleMemberClassAcceptDef(TestType.class.getField("SingleMemberClassAcceptDef")); -+ checkSingleMemberEnumAcceptDef(TestType.class.getField("SingleMemberEnumAcceptDef")); -+ -+ // SINGLE-MEMBER ARRAY TYPES (TestType.class.getField("EMPTY ARRAY) ON CLASS -+ checkSingleMemberByteArrEmpty(TestType.class.getField("SingleMemberByteArrEmpty")); -+ checkSingleMemberShortArrEmpty(TestType.class.getField("SingleMemberShortArrEmpty")); -+ checkSingleMemberIntArrEmpty(TestType.class.getField("SingleMemberIntArrEmpty")); -+ checkSingleMemberLongArrEmpty(TestType.class.getField("SingleMemberLongArrEmpty")); -+ checkSingleMemberCharArrEmpty(TestType.class.getField("SingleMemberCharArrEmpty")); -+ checkSingleMemberFloatArrEmpty(TestType.class.getField("SingleMemberFloatArrEmpty")); -+ checkSingleMemberDoubleArrEmpty(TestType.class.getField("SingleMemberDoubleArrEmpty")); -+ checkSingleMemberBooleanArrEmpty(TestType.class.getField("SingleMemberBooleanArrEmpty")); -+ checkSingleMemberStringArrEmpty(TestType.class.getField("SingleMemberStringArrEmpty")); -+ checkSingleMemberClassArrEmpty(TestType.class.getField("SingleMemberClassArrEmpty")); -+ checkSingleMemberEnumArrEmpty(TestType.class.getField("SingleMemberEnumArrEmpty")); -+ -+ // SINGLE-MEMBER ARRAY TYPES (TestType.class.getField("ONE-ELEMENT ARRAY) ON CLASS -+ checkSingleMemberByteArrOne(TestType.class.getField("SingleMemberByteArrOne")); -+ checkSingleMemberShortArrOne(TestType.class.getField("SingleMemberShortArrOne")); -+ checkSingleMemberIntArrOne(TestType.class.getField("SingleMemberIntArrOne")); -+ checkSingleMemberLongArrOne(TestType.class.getField("SingleMemberLongArrOne")); -+ checkSingleMemberCharArrOne(TestType.class.getField("SingleMemberCharArrOne")); -+ checkSingleMemberFloatArrOne(TestType.class.getField("SingleMemberFloatArrOne")); -+ checkSingleMemberDoubleArrOne(TestType.class.getField("SingleMemberDoubleArrOne")); -+ checkSingleMemberBooleanArrOne(TestType.class.getField("SingleMemberBooleanArrOne")); -+ checkSingleMemberStringArrOne(TestType.class.getField("SingleMemberStringArrOne")); -+ checkSingleMemberClassArrOne(TestType.class.getField("SingleMemberClassArrOne")); -+ checkSingleMemberEnumArrOne(TestType.class.getField("SingleMemberEnumArrOne")); -+ -+ // SINGLE-MEMBER ARRAY TYPES (TestType.class.getField("TWO-ELEMENT ARRAY) ON CLASS -+ checkSingleMemberByteArrTwo(TestType.class.getField("SingleMemberByteArrTwo")); -+ checkSingleMemberShortArrTwo(TestType.class.getField("SingleMemberShortArrTwo")); -+ checkSingleMemberIntArrTwo(TestType.class.getField("SingleMemberIntArrTwo")); -+ checkSingleMemberLongArrTwo(TestType.class.getField("SingleMemberLongArrTwo")); -+ checkSingleMemberCharArrTwo(TestType.class.getField("SingleMemberCharArrTwo")); -+ checkSingleMemberFloatArrTwo(TestType.class.getField("SingleMemberFloatArrTwo")); -+ checkSingleMemberDoubleArrTwo(TestType.class.getField("SingleMemberDoubleArrTwo")); -+ checkSingleMemberBooleanArrTwo(TestType.class.getField("SingleMemberBooleanArrTwo")); -+ checkSingleMemberStringArrTwo(TestType.class.getField("SingleMemberStringArrTwo")); -+ checkSingleMemberClassArrTwo(TestType.class.getField("SingleMemberClassArrTwo")); -+ checkSingleMemberEnumArrTwo(TestType.class.getField("SingleMemberEnumArrTwo")); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (TestType.class.getField("OVERRIDE)ON CLASS -+ checkSingleMemberByteArrOvrdDef(TestType.class.getField("SingleMemberByteArrOvrdDef")); -+ checkSingleMemberShortArrOvrdDef(TestType.class.getField("SingleMemberShortArrOvrdDef")); -+ checkSingleMemberIntArrOvrdDef(TestType.class.getField("SingleMemberIntArrOvrdDef")); -+ checkSingleMemberLongArrOvrdDef(TestType.class.getField("SingleMemberLongArrOvrdDef")); -+ checkSingleMemberCharArrOvrdDef(TestType.class.getField("SingleMemberCharArrOvrdDef")); -+ checkSingleMemberFloatArrOvrdDef(TestType.class.getField("SingleMemberFloatArrOvrdDef")); -+ checkSingleMemberDoubleArrOvrdDef(TestType.class.getField("SingleMemberDoubleArrOvrdDef")); -+ checkSingleMemberBooleanArrOvrdDef(TestType.class.getField("SingleMemberBooleanArrOvrdDef")); -+ checkSingleMemberStringArrOvrdDef(TestType.class.getField("SingleMemberStringArrOvrdDef")); -+ checkSingleMemberClassArrOvrdDef(TestType.class.getField("SingleMemberClassArrOvrdDef")); -+ checkSingleMemberEnumArrOvrdDef(TestType.class.getField("SingleMemberEnumArrOvrdDef")); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (TestType.class.getField("ACCEPT)ON CLASS -+ checkSingleMemberByteArrAcceptDef(TestType.class.getField("SingleMemberByteArrAcceptDef")); -+ checkSingleMemberShortArrAcceptDef(TestType.class.getField("SingleMemberShortArrAcceptDef")); -+ checkSingleMemberIntArrAcceptDef(TestType.class.getField("SingleMemberIntArrAcceptDef")); -+ checkSingleMemberLongArrAcceptDef(TestType.class.getField("SingleMemberLongArrAcceptDef")); -+ checkSingleMemberCharArrAcceptDef(TestType.class.getField("SingleMemberCharArrAcceptDef")); -+ checkSingleMemberFloatArrAcceptDef(TestType.class.getField("SingleMemberFloatArrAcceptDef")); -+ checkSingleMemberDoubleArrAcceptDef(TestType.class.getField("SingleMemberDoubleArrAcceptDef")); -+ checkSingleMemberBooleanArrAcceptDef(TestType.class.getField("SingleMemberBooleanArrAcceptDef")); -+ checkSingleMemberStringArrAcceptDef(TestType.class.getField("SingleMemberStringArrAcceptDef")); -+ checkSingleMemberClassArrAcceptDef(TestType.class.getField("SingleMemberClassArrAcceptDef")); -+ checkSingleMemberEnumArrAcceptDef(TestType.class.getField("SingleMemberEnumArrAcceptDef")); -+ -+ // *** TESTS ON ANNOTATED CONSTRUCTORS *** -+ -+ // MULTIMEMBER SCALAR TYPES ON CONSTRUCTOR -+ checkScalarTypes(UnitTest.class.getConstructor(new Class[]{Iterator.class})); -+ checkScalarTypesOverrideDefault(UnitTest.class.getConstructor(new Class[]{Map.class})); -+ checkScalarTypesAcceptDefault(UnitTest.class.getConstructor(new Class[]{Set.class})); -+ -+ // MULTIMEMBER ARRAY TYPES ON CONSTRUCTOR -+ checkArrayTypes0(UnitTest.class.getConstructor(new Class[]{List.class})); -+ checkArrayTypes1(UnitTest.class.getConstructor(new Class[]{Collection.class})); -+ checkArrayTypes2(UnitTest.class.getConstructor(new Class[]{SortedSet.class})); -+ checkArrayTypesAcceptDefault(UnitTest.class.getConstructor(new Class[]{SortedMap.class})); -+ checkArrayTypesOverrideDefault(UnitTest.class.getConstructor(new Class[]{RandomAccess.class})); -+ -+ // MARKER TYPE ON CONSTRUCTOR -+ checkMarker(UnitTest.class.getConstructor(new Class[] { })); -+ -+ // SINGLE-MEMBER SCALAR TYPES ON CONSTRUCTOR -+ checkSingleMemberByte(UnitTest.class.getConstructor(new Class[] { byte.class })); -+ checkSingleMemberShort(UnitTest.class.getConstructor(new Class[] { short.class })); -+ checkSingleMemberInt(UnitTest.class.getConstructor(new Class[] { int.class })); -+ checkSingleMemberLong(UnitTest.class.getConstructor(new Class[] { long.class })); -+ checkSingleMemberChar(UnitTest.class.getConstructor(new Class[] { char.class })); -+ checkSingleMemberFloat(UnitTest.class.getConstructor(new Class[] { float.class })); -+ checkSingleMemberDouble(UnitTest.class.getConstructor(new Class[] { double.class })); -+ checkSingleMemberBoolean(UnitTest.class.getConstructor(new Class[] { boolean.class })); -+ checkSingleMemberString(UnitTest.class.getConstructor(new Class[] { String.class })); -+ checkSingleMemberClass(UnitTest.class.getConstructor(new Class[] { Class.class })); -+ checkSingleMemberEnum(UnitTest.class.getConstructor(new Class[] { Enum.class })); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE ON CONSTRUCTOR -+ checkSingleMemberByteOvrdDef(UnitTest.class.getConstructor(new Class[] { byte.class, Set.class })); -+ checkSingleMemberShortOvrdDef(UnitTest.class.getConstructor(new Class[] { short.class, Set.class })); -+ checkSingleMemberIntOvrdDef(UnitTest.class.getConstructor(new Class[] { int.class, Set.class })); -+ checkSingleMemberLongOvrdDef(UnitTest.class.getConstructor(new Class[] { long.class, Set.class })); -+ checkSingleMemberCharOvrdDef(UnitTest.class.getConstructor(new Class[] { char.class, Set.class })); -+ checkSingleMemberFloatOvrdDef(UnitTest.class.getConstructor(new Class[] { float.class, Set.class })); -+ checkSingleMemberDoubleOvrdDef(UnitTest.class.getConstructor(new Class[] { double.class, Set.class })); -+ checkSingleMemberBooleanOvrdDef(UnitTest.class.getConstructor(new Class[] { boolean.class, Set.class })); -+ checkSingleMemberStringOvrdDef(UnitTest.class.getConstructor(new Class[] { String.class, Set.class })); -+ checkSingleMemberClassOvrdDef(UnitTest.class.getConstructor(new Class[] { Class.class, Set.class })); -+ checkSingleMemberEnumOvrdDef(UnitTest.class.getConstructor(new Class[] { Enum.class, Set.class })); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT ON CONSTRUCTOR -+ checkSingleMemberByteAcceptDef(UnitTest.class.getConstructor(new Class[] { byte.class, Map.class })); -+ checkSingleMemberShortAcceptDef(UnitTest.class.getConstructor(new Class[] { short.class, Map.class })); -+ checkSingleMemberIntAcceptDef(UnitTest.class.getConstructor(new Class[] { int.class, Map.class })); -+ checkSingleMemberLongAcceptDef(UnitTest.class.getConstructor(new Class[] { long.class, Map.class })); -+ checkSingleMemberCharAcceptDef(UnitTest.class.getConstructor(new Class[] { char.class, Map.class })); -+ checkSingleMemberFloatAcceptDef(UnitTest.class.getConstructor(new Class[] { float.class, Map.class })); -+ checkSingleMemberDoubleAcceptDef(UnitTest.class.getConstructor(new Class[] { double.class, Map.class })); -+ checkSingleMemberBooleanAcceptDef(UnitTest.class.getConstructor(new Class[] { boolean.class, Map.class })); -+ checkSingleMemberStringAcceptDef(UnitTest.class.getConstructor(new Class[] { String.class, Map.class })); -+ checkSingleMemberClassAcceptDef(UnitTest.class.getConstructor(new Class[] { Class.class, Map.class })); -+ checkSingleMemberEnumAcceptDef(UnitTest.class.getConstructor(new Class[] { Enum.class, Map.class })); -+ -+ // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) ON CONSTRUCTOR -+ checkSingleMemberByteArrEmpty(UnitTest.class.getConstructor(new Class[] { byte[].class })); -+ checkSingleMemberShortArrEmpty(UnitTest.class.getConstructor(new Class[] { short[].class })); -+ checkSingleMemberIntArrEmpty(UnitTest.class.getConstructor(new Class[] { int[].class })); -+ checkSingleMemberLongArrEmpty(UnitTest.class.getConstructor(new Class[] { long[].class })); -+ checkSingleMemberCharArrEmpty(UnitTest.class.getConstructor(new Class[] { char[].class })); -+ checkSingleMemberFloatArrEmpty(UnitTest.class.getConstructor(new Class[] { float[].class })); -+ checkSingleMemberDoubleArrEmpty(UnitTest.class.getConstructor(new Class[] { double[].class })); -+ checkSingleMemberBooleanArrEmpty(UnitTest.class.getConstructor(new Class[] { boolean[].class })); -+ checkSingleMemberStringArrEmpty(UnitTest.class.getConstructor(new Class[] { String[].class })); -+ checkSingleMemberClassArrEmpty(UnitTest.class.getConstructor(new Class[] { Class[].class })); -+ checkSingleMemberEnumArrEmpty(UnitTest.class.getConstructor(new Class[] { Enum[].class })); -+ -+ // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) ON CONSTRUCTOR -+ checkSingleMemberByteArrOne(UnitTest.class.getConstructor(new Class[] { byte[].class, Set.class })); -+ checkSingleMemberShortArrOne(UnitTest.class.getConstructor(new Class[] { short[].class, Set.class })); -+ checkSingleMemberIntArrOne(UnitTest.class.getConstructor(new Class[] { int[].class, Set.class })); -+ checkSingleMemberLongArrOne(UnitTest.class.getConstructor(new Class[] { long[].class, Set.class })); -+ checkSingleMemberCharArrOne(UnitTest.class.getConstructor(new Class[] { char[].class, Set.class })); -+ checkSingleMemberFloatArrOne(UnitTest.class.getConstructor(new Class[] { float[].class, Set.class })); -+ checkSingleMemberDoubleArrOne(UnitTest.class.getConstructor(new Class[] { double[].class, Set.class })); -+ checkSingleMemberBooleanArrOne(UnitTest.class.getConstructor(new Class[] { boolean[].class, Set.class })); -+ checkSingleMemberStringArrOne(UnitTest.class.getConstructor(new Class[] { String[].class, Set.class })); -+ checkSingleMemberClassArrOne(UnitTest.class.getConstructor(new Class[] { Class[].class, Set.class })); -+ checkSingleMemberEnumArrOne(UnitTest.class.getConstructor(new Class[] { Enum[].class, Set.class })); -+ -+ // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) ON CONSTRUCTOR -+ checkSingleMemberByteArrTwo(UnitTest.class.getConstructor(new Class[] { byte[].class, Map.class })); -+ checkSingleMemberShortArrTwo(UnitTest.class.getConstructor(new Class[] { short[].class, Map.class })); -+ checkSingleMemberIntArrTwo(UnitTest.class.getConstructor(new Class[] { int[].class, Map.class })); -+ checkSingleMemberLongArrTwo(UnitTest.class.getConstructor(new Class[] { long[].class, Map.class })); -+ checkSingleMemberCharArrTwo(UnitTest.class.getConstructor(new Class[] { char[].class, Map.class })); -+ checkSingleMemberFloatArrTwo(UnitTest.class.getConstructor(new Class[] { float[].class, Map.class })); -+ checkSingleMemberDoubleArrTwo(UnitTest.class.getConstructor(new Class[] { double[].class, Map.class })); -+ checkSingleMemberBooleanArrTwo(UnitTest.class.getConstructor(new Class[] { boolean[].class, Map.class })); -+ checkSingleMemberStringArrTwo(UnitTest.class.getConstructor(new Class[] { String[].class, Map.class })); -+ checkSingleMemberClassArrTwo(UnitTest.class.getConstructor(new Class[] { Class[].class, Map.class })); -+ checkSingleMemberEnumArrTwo(UnitTest.class.getConstructor(new Class[] { Enum[].class, Map.class })); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE)ON CONSTRUCTOR -+ checkSingleMemberByteArrOvrdDef(UnitTest.class.getConstructor(new Class[] { byte[].class, List.class })); -+ checkSingleMemberShortArrOvrdDef(UnitTest.class.getConstructor(new Class[] { short[].class, List.class })); -+ checkSingleMemberIntArrOvrdDef(UnitTest.class.getConstructor(new Class[] { int[].class, List.class })); -+ checkSingleMemberLongArrOvrdDef(UnitTest.class.getConstructor(new Class[] { long[].class, List.class })); -+ checkSingleMemberCharArrOvrdDef(UnitTest.class.getConstructor(new Class[] { char[].class, List.class })); -+ checkSingleMemberFloatArrOvrdDef(UnitTest.class.getConstructor(new Class[] { float[].class, List.class })); -+ checkSingleMemberDoubleArrOvrdDef(UnitTest.class.getConstructor(new Class[] { double[].class, List.class })); -+ checkSingleMemberBooleanArrOvrdDef(UnitTest.class.getConstructor(new Class[] { boolean[].class, List.class })); -+ checkSingleMemberStringArrOvrdDef(UnitTest.class.getConstructor(new Class[] { String[].class, List.class })); -+ checkSingleMemberClassArrOvrdDef(UnitTest.class.getConstructor(new Class[] { Class[].class, List.class })); -+ checkSingleMemberEnumArrOvrdDef(UnitTest.class.getConstructor(new Class[] { Enum[].class, List.class })); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT)ON CONSTRUCTOR -+ checkSingleMemberByteArrAcceptDef(UnitTest.class.getConstructor(new Class[] { byte[].class, Collection.class })); -+ checkSingleMemberShortArrAcceptDef(UnitTest.class.getConstructor(new Class[] { short[].class, Collection.class })); -+ checkSingleMemberIntArrAcceptDef(UnitTest.class.getConstructor(new Class[] { int[].class, Collection.class })); -+ checkSingleMemberLongArrAcceptDef(UnitTest.class.getConstructor(new Class[] { long[].class, Collection.class })); -+ checkSingleMemberCharArrAcceptDef(UnitTest.class.getConstructor(new Class[] { char[].class, Collection.class })); -+ checkSingleMemberFloatArrAcceptDef(UnitTest.class.getConstructor(new Class[] { float[].class, Collection.class })); -+ checkSingleMemberDoubleArrAcceptDef(UnitTest.class.getConstructor(new Class[] { double[].class, Collection.class })); -+ checkSingleMemberBooleanArrAcceptDef(UnitTest.class.getConstructor(new Class[] { boolean[].class, Collection.class })); -+ checkSingleMemberStringArrAcceptDef(UnitTest.class.getConstructor(new Class[] { String[].class, Collection.class })); -+ checkSingleMemberClassArrAcceptDef(UnitTest.class.getConstructor(new Class[] { Class[].class, Collection.class })); -+ checkSingleMemberEnumArrAcceptDef(UnitTest.class.getConstructor(new Class[] { Enum[].class, Collection.class })); -+ -+ // *** TESTS ON ANNOTATED PARAMETERS *** -+ -+ // MULTIMEMBER SCALAR TYPES ON PARAM -+ checkScalarTypesParam(UnitTest.class.getMethod("scalarTypesParam", Y)); -+ checkScalarTypesOverrideDefaultParam(UnitTest.class.getMethod("scalarTypesOverrideDefaultParam", Y)); -+ checkScalarTypesAcceptDefaultParam(UnitTest.class.getMethod("scalarTypesAcceptDefaultParam", Y)); -+ -+ // MULTIMEMBER ARRAY TYPES ON PARAM -+ checkArrayTypes0Param(UnitTest.class.getMethod("emptyArrayTypesParam", Y)); -+ checkArrayTypes1Param(UnitTest.class.getMethod("singleElementArrayTypesParam", Y)); -+ checkArrayTypes2Param(UnitTest.class.getMethod("twoElementArrayTypesParam", Y)); -+ checkArrayTypesAcceptDefaultParam(UnitTest.class.getMethod("arrayTypesAcceptDefaultParam", Y)); -+ checkArrayTypesOverrideDefaultParam(UnitTest.class.getMethod("arrayTypesOverrideDefaultParam", Y)); -+ -+ // MARKER TYPE ON PARAMETER -+ checkMarkerParam(UnitTest.class.getMethod("markerParam", Y)); -+ -+ // SINGLE-MEMBER SCALAR TYPES ON PARAMETER -+ checkSingleMemberByteParam(UnitTest.class.getMethod("SingleMemberByteParam", Y)); -+ checkSingleMemberShortParam(UnitTest.class.getMethod("SingleMemberShortParam", Y)); -+ checkSingleMemberIntParam(UnitTest.class.getMethod("SingleMemberIntParam", Y)); -+ checkSingleMemberLongParam(UnitTest.class.getMethod("SingleMemberLongParam", Y)); -+ checkSingleMemberCharParam(UnitTest.class.getMethod("SingleMemberCharParam", Y)); -+ checkSingleMemberFloatParam(UnitTest.class.getMethod("SingleMemberFloatParam", Y)); -+ checkSingleMemberDoubleParam(UnitTest.class.getMethod("SingleMemberDoubleParam", Y)); -+ checkSingleMemberBooleanParam(UnitTest.class.getMethod("SingleMemberBooleanParam", Y)); -+ checkSingleMemberStringParam(UnitTest.class.getMethod("SingleMemberStringParam", Y)); -+ checkSingleMemberClassParam(UnitTest.class.getMethod("SingleMemberClassParam", Y)); -+ checkSingleMemberEnumParam(UnitTest.class.getMethod("SingleMemberEnumParam", Y)); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE ON PARAMETER -+ checkSingleMemberByteOvrdDefParam(UnitTest.class.getMethod("SingleMemberByteOvrdDefParam", Y)); -+ checkSingleMemberShortOvrdDefParam(UnitTest.class.getMethod("SingleMemberShortOvrdDefParam", Y)); -+ checkSingleMemberIntOvrdDefParam(UnitTest.class.getMethod("SingleMemberIntOvrdDefParam", Y)); -+ checkSingleMemberLongOvrdDefParam(UnitTest.class.getMethod("SingleMemberLongOvrdDefParam", Y)); -+ checkSingleMemberCharOvrdDefParam(UnitTest.class.getMethod("SingleMemberCharOvrdDefParam", Y)); -+ checkSingleMemberFloatOvrdDefParam(UnitTest.class.getMethod("SingleMemberFloatOvrdDefParam", Y)); -+ checkSingleMemberDoubleOvrdDefParam(UnitTest.class.getMethod("SingleMemberDoubleOvrdDefParam", Y)); -+ checkSingleMemberBooleanOvrdDefParam(UnitTest.class.getMethod("SingleMemberBooleanOvrdDefParam", Y)); -+ checkSingleMemberStringOvrdDefParam(UnitTest.class.getMethod("SingleMemberStringOvrdDefParam", Y)); -+ checkSingleMemberClassOvrdDefParam(UnitTest.class.getMethod("SingleMemberClassOvrdDefParam", Y)); -+ checkSingleMemberEnumOvrdDefParam(UnitTest.class.getMethod("SingleMemberEnumOvrdDefParam", Y)); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT ON PARAMETER -+ checkSingleMemberByteAcceptDefParam(UnitTest.class.getMethod("SingleMemberByteAcceptDefParam", Y)); -+ checkSingleMemberShortAcceptDefParam(UnitTest.class.getMethod("SingleMemberShortAcceptDefParam", Y)); -+ checkSingleMemberIntAcceptDefParam(UnitTest.class.getMethod("SingleMemberIntAcceptDefParam", Y)); -+ checkSingleMemberLongAcceptDefParam(UnitTest.class.getMethod("SingleMemberLongAcceptDefParam", Y)); -+ checkSingleMemberCharAcceptDefParam(UnitTest.class.getMethod("SingleMemberCharAcceptDefParam", Y)); -+ checkSingleMemberFloatAcceptDefParam(UnitTest.class.getMethod("SingleMemberFloatAcceptDefParam", Y)); -+ checkSingleMemberDoubleAcceptDefParam(UnitTest.class.getMethod("SingleMemberDoubleAcceptDefParam", Y)); -+ checkSingleMemberBooleanAcceptDefParam(UnitTest.class.getMethod("SingleMemberBooleanAcceptDefParam", Y)); -+ checkSingleMemberStringAcceptDefParam(UnitTest.class.getMethod("SingleMemberStringAcceptDefParam", Y)); -+ checkSingleMemberClassAcceptDefParam(UnitTest.class.getMethod("SingleMemberClassAcceptDefParam", Y)); -+ checkSingleMemberEnumAcceptDefParam(UnitTest.class.getMethod("SingleMemberEnumAcceptDefParam", Y)); -+ -+ // SINGLE-MEMBER ARRAY TYPES Param(UnitTest.class.getMethod("EMPTY ARRAY) ON PARAMETER -+ checkSingleMemberByteArrEmptyParam(UnitTest.class.getMethod("SingleMemberByteArrEmptyParam", Y)); -+ checkSingleMemberShortArrEmptyParam(UnitTest.class.getMethod("SingleMemberShortArrEmptyParam", Y)); -+ checkSingleMemberIntArrEmptyParam(UnitTest.class.getMethod("SingleMemberIntArrEmptyParam", Y)); -+ checkSingleMemberLongArrEmptyParam(UnitTest.class.getMethod("SingleMemberLongArrEmptyParam", Y)); -+ checkSingleMemberCharArrEmptyParam(UnitTest.class.getMethod("SingleMemberCharArrEmptyParam", Y)); -+ checkSingleMemberFloatArrEmptyParam(UnitTest.class.getMethod("SingleMemberFloatArrEmptyParam", Y)); -+ checkSingleMemberDoubleArrEmptyParam(UnitTest.class.getMethod("SingleMemberDoubleArrEmptyParam", Y)); -+ checkSingleMemberBooleanArrEmptyParam(UnitTest.class.getMethod("SingleMemberBooleanArrEmptyParam", Y)); -+ checkSingleMemberStringArrEmptyParam(UnitTest.class.getMethod("SingleMemberStringArrEmptyParam", Y)); -+ checkSingleMemberClassArrEmptyParam(UnitTest.class.getMethod("SingleMemberClassArrEmptyParam", Y)); -+ checkSingleMemberEnumArrEmptyParam(UnitTest.class.getMethod("SingleMemberEnumArrEmptyParam", Y)); -+ -+ // SINGLE-MEMBER ARRAY TYPES Param(UnitTest.class.getMethod("ONE-ELEMENT ARRAY) ON PARAMETER -+ checkSingleMemberByteArrOneParam(UnitTest.class.getMethod("SingleMemberByteArrOneParam", Y)); -+ checkSingleMemberShortArrOneParam(UnitTest.class.getMethod("SingleMemberShortArrOneParam", Y)); -+ checkSingleMemberIntArrOneParam(UnitTest.class.getMethod("SingleMemberIntArrOneParam", Y)); -+ checkSingleMemberLongArrOneParam(UnitTest.class.getMethod("SingleMemberLongArrOneParam", Y)); -+ checkSingleMemberCharArrOneParam(UnitTest.class.getMethod("SingleMemberCharArrOneParam", Y)); -+ checkSingleMemberFloatArrOneParam(UnitTest.class.getMethod("SingleMemberFloatArrOneParam", Y)); -+ checkSingleMemberDoubleArrOneParam(UnitTest.class.getMethod("SingleMemberDoubleArrOneParam", Y)); -+ checkSingleMemberBooleanArrOneParam(UnitTest.class.getMethod("SingleMemberBooleanArrOneParam", Y)); -+ checkSingleMemberStringArrOneParam(UnitTest.class.getMethod("SingleMemberStringArrOneParam", Y)); -+ checkSingleMemberClassArrOneParam(UnitTest.class.getMethod("SingleMemberClassArrOneParam", Y)); -+ checkSingleMemberEnumArrOneParam(UnitTest.class.getMethod("SingleMemberEnumArrOneParam", Y)); -+ -+ // SINGLE-MEMBER ARRAY TYPES Param(UnitTest.class.getMethod("TWO-ELEMENT ARRAY) ON PARAMETER -+ checkSingleMemberByteArrTwoParam(UnitTest.class.getMethod("SingleMemberByteArrTwoParam", Y)); -+ checkSingleMemberShortArrTwoParam(UnitTest.class.getMethod("SingleMemberShortArrTwoParam", Y)); -+ checkSingleMemberIntArrTwoParam(UnitTest.class.getMethod("SingleMemberIntArrTwoParam", Y)); -+ checkSingleMemberLongArrTwoParam(UnitTest.class.getMethod("SingleMemberLongArrTwoParam", Y)); -+ checkSingleMemberCharArrTwoParam(UnitTest.class.getMethod("SingleMemberCharArrTwoParam", Y)); -+ checkSingleMemberFloatArrTwoParam(UnitTest.class.getMethod("SingleMemberFloatArrTwoParam", Y)); -+ checkSingleMemberDoubleArrTwoParam(UnitTest.class.getMethod("SingleMemberDoubleArrTwoParam", Y)); -+ checkSingleMemberBooleanArrTwoParam(UnitTest.class.getMethod("SingleMemberBooleanArrTwoParam", Y)); -+ checkSingleMemberStringArrTwoParam(UnitTest.class.getMethod("SingleMemberStringArrTwoParam", Y)); -+ checkSingleMemberClassArrTwoParam(UnitTest.class.getMethod("SingleMemberClassArrTwoParam", Y)); -+ checkSingleMemberEnumArrTwoParam(UnitTest.class.getMethod("SingleMemberEnumArrTwoParam", Y)); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT Param(UnitTest.class.getMethod("OVERRIDE)ON PARAMETER -+ checkSingleMemberByteArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberByteArrOvrdDefParam", Y)); -+ checkSingleMemberShortArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberShortArrOvrdDefParam", Y)); -+ checkSingleMemberIntArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberIntArrOvrdDefParam", Y)); -+ checkSingleMemberLongArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberLongArrOvrdDefParam", Y)); -+ checkSingleMemberCharArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberCharArrOvrdDefParam", Y)); -+ checkSingleMemberFloatArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberFloatArrOvrdDefParam", Y)); -+ checkSingleMemberDoubleArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberDoubleArrOvrdDefParam", Y)); -+ checkSingleMemberBooleanArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberBooleanArrOvrdDefParam", Y)); -+ checkSingleMemberStringArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberStringArrOvrdDefParam", Y)); -+ checkSingleMemberClassArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberClassArrOvrdDefParam", Y)); -+ checkSingleMemberEnumArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberEnumArrOvrdDefParam", Y)); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT Param(UnitTest.class.getMethod("ACCEPT)ON PARAMETER -+ checkSingleMemberByteArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberByteArrAcceptDefParam", Y)); -+ checkSingleMemberShortArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberShortArrAcceptDefParam", Y)); -+ checkSingleMemberIntArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberIntArrAcceptDefParam", Y)); -+ checkSingleMemberLongArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberLongArrAcceptDefParam", Y)); -+ checkSingleMemberCharArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberCharArrAcceptDefParam", Y)); -+ checkSingleMemberFloatArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberFloatArrAcceptDefParam", Y)); -+ checkSingleMemberDoubleArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberDoubleArrAcceptDefParam", Y)); -+ checkSingleMemberBooleanArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberBooleanArrAcceptDefParam", Y)); -+ checkSingleMemberStringArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberStringArrAcceptDefParam", Y)); -+ checkSingleMemberClassArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberClassArrAcceptDefParam", Y)); -+ checkSingleMemberEnumArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberEnumArrAcceptDefParam", Y)); -+ -+ // *** TESTS ON ANNOTATED CLASSES *** -+ -+ // MULTIMEMBER SCALAR TYPES ON CLASS -+ checkScalarTypes(scalarTypesClass.class); -+ checkScalarTypesOverrideDefault(scalarTypesOverrideDefaultClass.class); -+ checkScalarTypesAcceptDefault(scalarTypesAcceptDefaultClass.class); -+ -+ // MULTIMEMBER ARRAY TYPES ON CLASS -+ checkArrayTypes0(emptyArrayTypesClass.class); -+ checkArrayTypes1(singleElementArrayTypesClass.class); -+ checkArrayTypes2(twoElementArrayTypesClass.class); -+ checkArrayTypesOverrideDefault(arrayTypesOverrideDefaultClass.class); -+ checkArrayTypesAcceptDefault(arrayTypesAcceptDefaultClass.class); -+ -+ // MARKER TYPE ON CLASS -+ checkMarker(markerClass.class); -+ -+ // SINGLE-MEMBER SCALAR TYPES ON CLASS -+ checkSingleMemberByte(SingleMemberByteClass.class); -+ checkSingleMemberShort(SingleMemberShortClass.class); -+ checkSingleMemberInt(SingleMemberIntClass.class); -+ checkSingleMemberLong(SingleMemberLongClass.class); -+ checkSingleMemberChar(SingleMemberCharClass.class); -+ checkSingleMemberFloat(SingleMemberFloatClass.class); -+ checkSingleMemberDouble(SingleMemberDoubleClass.class); -+ checkSingleMemberBoolean(SingleMemberBooleanClass.class); -+ checkSingleMemberString(SingleMemberStringClass.class); -+ checkSingleMemberClass(SingleMemberClassClass.class); -+ checkSingleMemberEnum(SingleMemberEnumClass.class); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE ON CLASS -+ checkSingleMemberByteOvrdDef(SingleMemberByteOvrdDefClass.class); -+ checkSingleMemberShortOvrdDef(SingleMemberShortOvrdDefClass.class); -+ checkSingleMemberIntOvrdDef(SingleMemberIntOvrdDefClass.class); -+ checkSingleMemberLongOvrdDef(SingleMemberLongOvrdDefClass.class); -+ checkSingleMemberCharOvrdDef(SingleMemberCharOvrdDefClass.class); -+ checkSingleMemberFloatOvrdDef(SingleMemberFloatOvrdDefClass.class); -+ checkSingleMemberDoubleOvrdDef(SingleMemberDoubleOvrdDefClass.class); -+ checkSingleMemberBooleanOvrdDef(SingleMemberBooleanOvrdDefClass.class); -+ checkSingleMemberStringOvrdDef(SingleMemberStringOvrdDefClass.class); -+ checkSingleMemberClassOvrdDef(SingleMemberClassOvrdDefClass.class); -+ checkSingleMemberEnumOvrdDef(SingleMemberEnumOvrdDefClass.class); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT ON CLASS -+ checkSingleMemberByteAcceptDef(SingleMemberByteAcceptDefClass.class); -+ checkSingleMemberShortAcceptDef(SingleMemberShortAcceptDefClass.class); -+ checkSingleMemberIntAcceptDef(SingleMemberIntAcceptDefClass.class); -+ checkSingleMemberLongAcceptDef(SingleMemberLongAcceptDefClass.class); -+ checkSingleMemberCharAcceptDef(SingleMemberCharAcceptDefClass.class); -+ checkSingleMemberFloatAcceptDef(SingleMemberFloatAcceptDefClass.class); -+ checkSingleMemberDoubleAcceptDef(SingleMemberDoubleAcceptDefClass.class); -+ checkSingleMemberBooleanAcceptDef(SingleMemberBooleanAcceptDefClass.class); -+ checkSingleMemberStringAcceptDef(SingleMemberStringAcceptDefClass.class); -+ checkSingleMemberClassAcceptDef(SingleMemberClassAcceptDefClass.class); -+ checkSingleMemberEnumAcceptDef(SingleMemberEnumAcceptDefClass.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) ON CLASS -+ checkSingleMemberByteArrEmpty(SingleMemberByteArrEmptyClass.class); -+ checkSingleMemberShortArrEmpty(SingleMemberShortArrEmptyClass.class); -+ checkSingleMemberIntArrEmpty(SingleMemberIntArrEmptyClass.class); -+ checkSingleMemberLongArrEmpty(SingleMemberLongArrEmptyClass.class); -+ checkSingleMemberCharArrEmpty(SingleMemberCharArrEmptyClass.class); -+ checkSingleMemberFloatArrEmpty(SingleMemberFloatArrEmptyClass.class); -+ checkSingleMemberDoubleArrEmpty(SingleMemberDoubleArrEmptyClass.class); -+ checkSingleMemberBooleanArrEmpty(SingleMemberBooleanArrEmptyClass.class); -+ checkSingleMemberStringArrEmpty(SingleMemberStringArrEmptyClass.class); -+ checkSingleMemberClassArrEmpty(SingleMemberClassArrEmptyClass.class); -+ checkSingleMemberEnumArrEmpty(SingleMemberEnumArrEmptyClass.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) ON CLASS -+ checkSingleMemberByteArrOne(SingleMemberByteArrOneClass.class); -+ checkSingleMemberShortArrOne(SingleMemberShortArrOneClass.class); -+ checkSingleMemberIntArrOne(SingleMemberIntArrOneClass.class); -+ checkSingleMemberLongArrOne(SingleMemberLongArrOneClass.class); -+ checkSingleMemberCharArrOne(SingleMemberCharArrOneClass.class); -+ checkSingleMemberFloatArrOne(SingleMemberFloatArrOneClass.class); -+ checkSingleMemberDoubleArrOne(SingleMemberDoubleArrOneClass.class); -+ checkSingleMemberBooleanArrOne(SingleMemberBooleanArrOneClass.class); -+ checkSingleMemberStringArrOne(SingleMemberStringArrOneClass.class); -+ checkSingleMemberClassArrOne(SingleMemberClassArrOneClass.class); -+ checkSingleMemberEnumArrOne(SingleMemberEnumArrOneClass.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) ON CLASS -+ checkSingleMemberByteArrTwo(SingleMemberByteArrTwoClass.class); -+ checkSingleMemberShortArrTwo(SingleMemberShortArrTwoClass.class); -+ checkSingleMemberIntArrTwo(SingleMemberIntArrTwoClass.class); -+ checkSingleMemberLongArrTwo(SingleMemberLongArrTwoClass.class); -+ checkSingleMemberCharArrTwo(SingleMemberCharArrTwoClass.class); -+ checkSingleMemberFloatArrTwo(SingleMemberFloatArrTwoClass.class); -+ checkSingleMemberDoubleArrTwo(SingleMemberDoubleArrTwoClass.class); -+ checkSingleMemberBooleanArrTwo(SingleMemberBooleanArrTwoClass.class); -+ checkSingleMemberStringArrTwo(SingleMemberStringArrTwoClass.class); -+ checkSingleMemberClassArrTwo(SingleMemberClassArrTwoClass.class); -+ checkSingleMemberEnumArrTwo(SingleMemberEnumArrTwoClass.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE)ON CLASS -+ checkSingleMemberByteArrOvrdDef(SingleMemberByteArrOvrdDefClass.class); -+ checkSingleMemberShortArrOvrdDef(SingleMemberShortArrOvrdDefClass.class); -+ checkSingleMemberIntArrOvrdDef(SingleMemberIntArrOvrdDefClass.class); -+ checkSingleMemberLongArrOvrdDef(SingleMemberLongArrOvrdDefClass.class); -+ checkSingleMemberCharArrOvrdDef(SingleMemberCharArrOvrdDefClass.class); -+ checkSingleMemberFloatArrOvrdDef(SingleMemberFloatArrOvrdDefClass.class); -+ checkSingleMemberDoubleArrOvrdDef(SingleMemberDoubleArrOvrdDefClass.class); -+ checkSingleMemberBooleanArrOvrdDef(SingleMemberBooleanArrOvrdDefClass.class); -+ checkSingleMemberStringArrOvrdDef(SingleMemberStringArrOvrdDefClass.class); -+ checkSingleMemberClassArrOvrdDef(SingleMemberClassArrOvrdDefClass.class); -+ checkSingleMemberEnumArrOvrdDef(SingleMemberEnumArrOvrdDefClass.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT)ON CLASS -+ checkSingleMemberByteArrAcceptDef(SingleMemberByteArrAcceptDefClass.class); -+ checkSingleMemberShortArrAcceptDef(SingleMemberShortArrAcceptDefClass.class); -+ checkSingleMemberIntArrAcceptDef(SingleMemberIntArrAcceptDefClass.class); -+ checkSingleMemberLongArrAcceptDef(SingleMemberLongArrAcceptDefClass.class); -+ checkSingleMemberCharArrAcceptDef(SingleMemberCharArrAcceptDefClass.class); -+ checkSingleMemberFloatArrAcceptDef(SingleMemberFloatArrAcceptDefClass.class); -+ checkSingleMemberDoubleArrAcceptDef(SingleMemberDoubleArrAcceptDefClass.class); -+ checkSingleMemberBooleanArrAcceptDef(SingleMemberBooleanArrAcceptDefClass.class); -+ checkSingleMemberStringArrAcceptDef(SingleMemberStringArrAcceptDefClass.class); -+ checkSingleMemberClassArrAcceptDef(SingleMemberClassArrAcceptDefClass.class); -+ checkSingleMemberEnumArrAcceptDef(SingleMemberEnumArrAcceptDefClass.class); -+ -+ // *** TESTS FOR EQUALS AND HASHCODE - POSITIVE -+ -+ // MULTIMEMBER SCALAR TYPES -+ checkEquals(scalarTypesClass.class, UnitTest.class.getField("scalarTypesField"), -+ ScalarTypes.class); -+ checkEquals(scalarTypesOverrideDefaultClass.class, UnitTest.class.getField("scalarTypesOverrideDefaultField"), -+ ScalarTypesWithDefault.class); -+ checkEquals(scalarTypesAcceptDefaultClass.class, UnitTest.class.getField("scalarTypesAcceptDefaultField"), -+ ScalarTypesWithDefault.class); -+ -+ // MULTIMEMBER ARRAY TYPES -+ checkEquals(emptyArrayTypesClass.class, UnitTest.class.getField("emptyArrayTypesField"), -+ ArrayTypes.class); -+ checkEquals(singleElementArrayTypesClass.class, UnitTest.class.getField("singleElementArrayTypesField"), -+ ArrayTypes.class); -+ checkEquals(twoElementArrayTypesClass.class, UnitTest.class.getField("twoElementArrayTypesField"), -+ ArrayTypes.class); -+ checkEquals(arrayTypesOverrideDefaultClass.class, UnitTest.class.getField("arrayTypesOverrideDefaultField"), -+ ArrayTypesWithDefault.class); -+ checkEquals(arrayTypesAcceptDefaultClass.class, UnitTest.class.getField("arrayTypesAcceptDefaultField"), -+ ArrayTypesWithDefault.class); -+ -+ // MARKER TYPE -+ checkEquals(markerClass.class, UnitTest.class.getField("markerField"), -+ Marker.class); -+ -+ // SINGLE-MEMBER SCALAR TYPES -+ checkEquals(SingleMemberByteClass.class, UnitTest.class.getField("SingleMemberByteField"), -+ SingleMemberByte.class); -+ checkEquals(SingleMemberShortClass.class, UnitTest.class.getField("SingleMemberShortField"), -+ SingleMemberShort.class); -+ checkEquals(SingleMemberIntClass.class, UnitTest.class.getField("SingleMemberIntField"), -+ SingleMemberInt.class); -+ checkEquals(SingleMemberLongClass.class, UnitTest.class.getField("SingleMemberLongField"), -+ SingleMemberLong.class); -+ checkEquals(SingleMemberCharClass.class, UnitTest.class.getField("SingleMemberCharField"), -+ SingleMemberChar.class); -+ checkEquals(SingleMemberFloatClass.class, UnitTest.class.getField("SingleMemberFloatField"), -+ SingleMemberFloat.class); -+ checkEquals(SingleMemberDoubleClass.class, UnitTest.class.getField("SingleMemberDoubleField"), -+ SingleMemberDouble.class); -+ checkEquals(SingleMemberBooleanClass.class, UnitTest.class.getField("SingleMemberBooleanField"), -+ SingleMemberBoolean.class); -+ checkEquals(SingleMemberStringClass.class, UnitTest.class.getField("SingleMemberStringField"), -+ SingleMemberString.class); -+ checkEquals(SingleMemberClassClass.class, UnitTest.class.getField("SingleMemberClassField"), -+ SingleMemberClass.class); -+ checkEquals(SingleMemberEnumClass.class, UnitTest.class.getField("SingleMemberEnumField"), -+ SingleMemberEnum.class); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE -+ checkEquals(SingleMemberByteOvrdDefClass.class, UnitTest.class.getField("SingleMemberByteOvrdDefField"), -+ SingleMemberByteWithDef.class); -+ checkEquals(SingleMemberShortOvrdDefClass.class, UnitTest.class.getField("SingleMemberShortOvrdDefField"), -+ SingleMemberShortWithDef.class); -+ checkEquals(SingleMemberIntOvrdDefClass.class, UnitTest.class.getField("SingleMemberIntOvrdDefField"), -+ SingleMemberIntWithDef.class); -+ checkEquals(SingleMemberLongOvrdDefClass.class, UnitTest.class.getField("SingleMemberLongOvrdDefField"), -+ SingleMemberLongWithDef.class); -+ checkEquals(SingleMemberCharOvrdDefClass.class, UnitTest.class.getField("SingleMemberCharOvrdDefField"), -+ SingleMemberCharWithDef.class); -+ checkEquals(SingleMemberFloatOvrdDefClass.class, UnitTest.class.getField("SingleMemberFloatOvrdDefField"), -+ SingleMemberFloatWithDef.class); -+ checkEquals(SingleMemberDoubleOvrdDefClass.class, UnitTest.class.getField("SingleMemberDoubleOvrdDefField"), -+ SingleMemberDoubleWithDef.class); -+ checkEquals(SingleMemberBooleanOvrdDefClass.class, UnitTest.class.getField("SingleMemberBooleanOvrdDefField"), -+ SingleMemberBooleanWithDef.class); -+ checkEquals(SingleMemberStringOvrdDefClass.class, UnitTest.class.getField("SingleMemberStringOvrdDefField"), -+ SingleMemberStringWithDef.class); -+ checkEquals(SingleMemberClassOvrdDefClass.class, UnitTest.class.getField("SingleMemberClassOvrdDefField"), -+ SingleMemberClassWithDef.class); -+ checkEquals(SingleMemberEnumOvrdDefClass.class, UnitTest.class.getField("SingleMemberEnumOvrdDefField"), -+ SingleMemberEnumWithDef.class); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT -+ checkEquals(SingleMemberByteAcceptDefClass.class, UnitTest.class.getField("SingleMemberByteAcceptDefField"), -+ SingleMemberByteWithDef.class); -+ checkEquals(SingleMemberShortAcceptDefClass.class, UnitTest.class.getField("SingleMemberShortAcceptDefField"), -+ SingleMemberShortWithDef.class); -+ checkEquals(SingleMemberIntAcceptDefClass.class, UnitTest.class.getField("SingleMemberIntAcceptDefField"), -+ SingleMemberIntWithDef.class); -+ checkEquals(SingleMemberLongAcceptDefClass.class, UnitTest.class.getField("SingleMemberLongAcceptDefField"), -+ SingleMemberLongWithDef.class); -+ checkEquals(SingleMemberCharAcceptDefClass.class, UnitTest.class.getField("SingleMemberCharAcceptDefField"), -+ SingleMemberCharWithDef.class); -+ checkEquals(SingleMemberFloatAcceptDefClass.class, UnitTest.class.getField("SingleMemberFloatAcceptDefField"), -+ SingleMemberFloatWithDef.class); -+ checkEquals(SingleMemberDoubleAcceptDefClass.class, UnitTest.class.getField("SingleMemberDoubleAcceptDefField"), -+ SingleMemberDoubleWithDef.class); -+ checkEquals(SingleMemberBooleanAcceptDefClass.class, UnitTest.class.getField("SingleMemberBooleanAcceptDefField"), -+ SingleMemberBooleanWithDef.class); -+ checkEquals(SingleMemberStringAcceptDefClass.class, UnitTest.class.getField("SingleMemberStringAcceptDefField"), -+ SingleMemberStringWithDef.class); -+ checkEquals(SingleMemberClassAcceptDefClass.class, UnitTest.class.getField("SingleMemberClassAcceptDefField"), -+ SingleMemberClassWithDef.class); -+ checkEquals(SingleMemberEnumAcceptDefClass.class, UnitTest.class.getField("SingleMemberEnumAcceptDefField"), -+ SingleMemberEnumWithDef.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) -+ checkEquals(SingleMemberByteArrEmptyClass.class, UnitTest.class.getField("SingleMemberByteArrEmptyField"), -+ SingleMemberByteArray.class); -+ checkEquals(SingleMemberShortArrEmptyClass.class, UnitTest.class.getField("SingleMemberShortArrEmptyField"), -+ SingleMemberShortArray.class); -+ checkEquals(SingleMemberIntArrEmptyClass.class, UnitTest.class.getField("SingleMemberIntArrEmptyField"), -+ SingleMemberIntArray.class); -+ checkEquals(SingleMemberLongArrEmptyClass.class, UnitTest.class.getField("SingleMemberLongArrEmptyField"), -+ SingleMemberLongArray.class); -+ checkEquals(SingleMemberCharArrEmptyClass.class, UnitTest.class.getField("SingleMemberCharArrEmptyField"), -+ SingleMemberCharArray.class); -+ checkEquals(SingleMemberFloatArrEmptyClass.class, UnitTest.class.getField("SingleMemberFloatArrEmptyField"), -+ SingleMemberFloatArray.class); -+ checkEquals(SingleMemberDoubleArrEmptyClass.class, UnitTest.class.getField("SingleMemberDoubleArrEmptyField"), -+ SingleMemberDoubleArray.class); -+ checkEquals(SingleMemberBooleanArrEmptyClass.class, UnitTest.class.getField("SingleMemberBooleanArrEmptyField"), -+ SingleMemberBooleanArray.class); -+ checkEquals(SingleMemberStringArrEmptyClass.class, UnitTest.class.getField("SingleMemberStringArrEmptyField"), -+ SingleMemberStringArray.class); -+ checkEquals(SingleMemberClassArrEmptyClass.class, UnitTest.class.getField("SingleMemberClassArrEmptyField"), -+ SingleMemberClassArray.class); -+ checkEquals(SingleMemberEnumArrEmptyClass.class, UnitTest.class.getField("SingleMemberEnumArrEmptyField"), -+ SingleMemberEnumArray.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) -+ checkEquals(SingleMemberByteArrOneClass.class, UnitTest.class.getField("SingleMemberByteArrOneField"), -+ SingleMemberByteArray.class); -+ checkEquals(SingleMemberShortArrOneClass.class, UnitTest.class.getField("SingleMemberShortArrOneField"), -+ SingleMemberShortArray.class); -+ checkEquals(SingleMemberIntArrOneClass.class, UnitTest.class.getField("SingleMemberIntArrOneField"), -+ SingleMemberIntArray.class); -+ checkEquals(SingleMemberLongArrOneClass.class, UnitTest.class.getField("SingleMemberLongArrOneField"), -+ SingleMemberLongArray.class); -+ checkEquals(SingleMemberCharArrOneClass.class, UnitTest.class.getField("SingleMemberCharArrOneField"), -+ SingleMemberCharArray.class); -+ checkEquals(SingleMemberFloatArrOneClass.class, UnitTest.class.getField("SingleMemberFloatArrOneField"), -+ SingleMemberFloatArray.class); -+ checkEquals(SingleMemberDoubleArrOneClass.class, UnitTest.class.getField("SingleMemberDoubleArrOneField"), -+ SingleMemberDoubleArray.class); -+ checkEquals(SingleMemberBooleanArrOneClass.class, UnitTest.class.getField("SingleMemberBooleanArrOneField"), -+ SingleMemberBooleanArray.class); -+ checkEquals(SingleMemberStringArrOneClass.class, UnitTest.class.getField("SingleMemberStringArrOneField"), -+ SingleMemberStringArray.class); -+ checkEquals(SingleMemberClassArrOneClass.class, UnitTest.class.getField("SingleMemberClassArrOneField"), -+ SingleMemberClassArray.class); -+ checkEquals(SingleMemberEnumArrOneClass.class, UnitTest.class.getField("SingleMemberEnumArrOneField"), -+ SingleMemberEnumArray.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) -+ checkEquals(SingleMemberByteArrTwoClass.class, UnitTest.class.getField("SingleMemberByteArrTwoField"), -+ SingleMemberByteArray.class); -+ checkEquals(SingleMemberShortArrTwoClass.class, UnitTest.class.getField("SingleMemberShortArrTwoField"), -+ SingleMemberShortArray.class); -+ checkEquals(SingleMemberIntArrTwoClass.class, UnitTest.class.getField("SingleMemberIntArrTwoField"), -+ SingleMemberIntArray.class); -+ checkEquals(SingleMemberLongArrTwoClass.class, UnitTest.class.getField("SingleMemberLongArrTwoField"), -+ SingleMemberLongArray.class); -+ checkEquals(SingleMemberCharArrTwoClass.class, UnitTest.class.getField("SingleMemberCharArrTwoField"), -+ SingleMemberCharArray.class); -+ checkEquals(SingleMemberFloatArrTwoClass.class, UnitTest.class.getField("SingleMemberFloatArrTwoField"), -+ SingleMemberFloatArray.class); -+ checkEquals(SingleMemberDoubleArrTwoClass.class, UnitTest.class.getField("SingleMemberDoubleArrTwoField"), -+ SingleMemberDoubleArray.class); -+ checkEquals(SingleMemberBooleanArrTwoClass.class, UnitTest.class.getField("SingleMemberBooleanArrTwoField"), -+ SingleMemberBooleanArray.class); -+ checkEquals(SingleMemberStringArrTwoClass.class, UnitTest.class.getField("SingleMemberStringArrTwoField"), -+ SingleMemberStringArray.class); -+ checkEquals(SingleMemberClassArrTwoClass.class, UnitTest.class.getField("SingleMemberClassArrTwoField"), -+ SingleMemberClassArray.class); -+ checkEquals(SingleMemberEnumArrTwoClass.class, UnitTest.class.getField("SingleMemberEnumArrTwoField"), -+ SingleMemberEnumArray.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE) -+ checkEquals(SingleMemberByteArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberByteArrOvrdDefField"), -+ SingleMemberByteArrayDef.class); -+ checkEquals(SingleMemberShortArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberShortArrOvrdDefField"), -+ SingleMemberShortArrayDef.class); -+ checkEquals(SingleMemberIntArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberIntArrOvrdDefField"), -+ SingleMemberIntArrayDef.class); -+ checkEquals(SingleMemberLongArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberLongArrOvrdDefField"), -+ SingleMemberLongArrayDef.class); -+ checkEquals(SingleMemberCharArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberCharArrOvrdDefField"), -+ SingleMemberCharArrayDef.class); -+ checkEquals(SingleMemberFloatArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberFloatArrOvrdDefField"), -+ SingleMemberFloatArrayDef.class); -+ checkEquals(SingleMemberDoubleArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberDoubleArrOvrdDefField"), -+ SingleMemberDoubleArrayDef.class); -+ checkEquals(SingleMemberBooleanArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberBooleanArrOvrdDefField"), -+ SingleMemberBooleanArrayDef.class); -+ checkEquals(SingleMemberStringArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberStringArrOvrdDefField"), -+ SingleMemberStringArrayDef.class); -+ checkEquals(SingleMemberClassArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberClassArrOvrdDefField"), -+ SingleMemberClassArrayDef.class); -+ checkEquals(SingleMemberEnumArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberEnumArrOvrdDefField"), -+ SingleMemberEnumArrayDef.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT) -+ checkEquals(SingleMemberByteArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberByteArrAcceptDefField"), -+ SingleMemberByteArrayDef.class); -+ checkEquals(SingleMemberShortArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberShortArrAcceptDefField"), -+ SingleMemberShortArrayDef.class); -+ checkEquals(SingleMemberIntArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberIntArrAcceptDefField"), -+ SingleMemberIntArrayDef.class); -+ checkEquals(SingleMemberLongArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberLongArrAcceptDefField"), -+ SingleMemberLongArrayDef.class); -+ checkEquals(SingleMemberCharArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberCharArrAcceptDefField"), -+ SingleMemberCharArrayDef.class); -+ checkEquals(SingleMemberFloatArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberFloatArrAcceptDefField"), -+ SingleMemberFloatArrayDef.class); -+ checkEquals(SingleMemberDoubleArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberDoubleArrAcceptDefField"), -+ SingleMemberDoubleArrayDef.class); -+ checkEquals(SingleMemberBooleanArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberBooleanArrAcceptDefField"), -+ SingleMemberBooleanArrayDef.class); -+ checkEquals(SingleMemberStringArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberStringArrAcceptDefField"), -+ SingleMemberStringArrayDef.class); -+ checkEquals(SingleMemberClassArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberClassArrAcceptDefField"), -+ SingleMemberClassArrayDef.class); -+ checkEquals(SingleMemberEnumArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberEnumArrAcceptDefField"), -+ SingleMemberEnumArrayDef.class); -+ -+ // *** TESTS FOR EQUALS AND HASHCODE - NEGATIVE -+ -+ // MULTIMEMBER SCALAR TYPES -+ checkUnequals(scalarTypesOverrideDefaultClass.class, UnitTest.class.getField("scalarTypesAcceptDefaultField"), -+ ScalarTypesWithDefault.class); -+ checkUnequals(scalarTypesAcceptDefaultClass.class, UnitTest.class.getField("scalarTypesOverrideDefaultField"), -+ ScalarTypesWithDefault.class); -+ -+ // MULTIMEMBER ARRAY TYPES -+ checkUnequals(emptyArrayTypesClass.class, UnitTest.class.getField("singleElementArrayTypesField"), -+ ArrayTypes.class); -+ checkUnequals(singleElementArrayTypesClass.class, UnitTest.class.getField("twoElementArrayTypesField"), -+ ArrayTypes.class); -+ checkUnequals(twoElementArrayTypesClass.class, UnitTest.class.getField("singleElementArrayTypesField"), -+ ArrayTypes.class); -+ checkUnequals(arrayTypesOverrideDefaultClass.class, UnitTest.class.getField("arrayTypesAcceptDefaultField"), -+ ArrayTypesWithDefault.class); -+ checkUnequals(arrayTypesAcceptDefaultClass.class, UnitTest.class.getField("arrayTypesOverrideDefaultField"), -+ ArrayTypesWithDefault.class); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE -+ checkUnequals(SingleMemberByteOvrdDefClass.class, UnitTest.class.getField("SingleMemberByteAcceptDefField"), -+ SingleMemberByteWithDef.class); -+ checkUnequals(SingleMemberShortOvrdDefClass.class, UnitTest.class.getField("SingleMemberShortAcceptDefField"), -+ SingleMemberShortWithDef.class); -+ checkUnequals(SingleMemberIntOvrdDefClass.class, UnitTest.class.getField("SingleMemberIntAcceptDefField"), -+ SingleMemberIntWithDef.class); -+ checkUnequals(SingleMemberLongOvrdDefClass.class, UnitTest.class.getField("SingleMemberLongAcceptDefField"), -+ SingleMemberLongWithDef.class); -+ checkUnequals(SingleMemberCharOvrdDefClass.class, UnitTest.class.getField("SingleMemberCharAcceptDefField"), -+ SingleMemberCharWithDef.class); -+ checkUnequals(SingleMemberFloatOvrdDefClass.class, UnitTest.class.getField("SingleMemberFloatAcceptDefField"), -+ SingleMemberFloatWithDef.class); -+ checkUnequals(SingleMemberDoubleOvrdDefClass.class, UnitTest.class.getField("SingleMemberDoubleAcceptDefField"), -+ SingleMemberDoubleWithDef.class); -+ checkUnequals(SingleMemberBooleanOvrdDefClass.class, UnitTest.class.getField("SingleMemberBooleanAcceptDefField"), -+ SingleMemberBooleanWithDef.class); -+ checkUnequals(SingleMemberStringOvrdDefClass.class, UnitTest.class.getField("SingleMemberStringAcceptDefField"), -+ SingleMemberStringWithDef.class); -+ checkUnequals(SingleMemberClassOvrdDefClass.class, UnitTest.class.getField("SingleMemberClassAcceptDefField"), -+ SingleMemberClassWithDef.class); -+ checkUnequals(SingleMemberEnumOvrdDefClass.class, UnitTest.class.getField("SingleMemberEnumAcceptDefField"), -+ SingleMemberEnumWithDef.class); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT -+ checkUnequals(SingleMemberByteAcceptDefClass.class, UnitTest.class.getField("SingleMemberByteOvrdDefField"), -+ SingleMemberByteWithDef.class); -+ checkUnequals(SingleMemberShortAcceptDefClass.class, UnitTest.class.getField("SingleMemberShortOvrdDefField"), -+ SingleMemberShortWithDef.class); -+ checkUnequals(SingleMemberIntAcceptDefClass.class, UnitTest.class.getField("SingleMemberIntOvrdDefField"), -+ SingleMemberIntWithDef.class); -+ checkUnequals(SingleMemberLongAcceptDefClass.class, UnitTest.class.getField("SingleMemberLongOvrdDefField"), -+ SingleMemberLongWithDef.class); -+ checkUnequals(SingleMemberCharAcceptDefClass.class, UnitTest.class.getField("SingleMemberCharOvrdDefField"), -+ SingleMemberCharWithDef.class); -+ checkUnequals(SingleMemberFloatAcceptDefClass.class, UnitTest.class.getField("SingleMemberFloatOvrdDefField"), -+ SingleMemberFloatWithDef.class); -+ checkUnequals(SingleMemberDoubleAcceptDefClass.class, UnitTest.class.getField("SingleMemberDoubleOvrdDefField"), -+ SingleMemberDoubleWithDef.class); -+ checkUnequals(SingleMemberBooleanAcceptDefClass.class, UnitTest.class.getField("SingleMemberBooleanOvrdDefField"), -+ SingleMemberBooleanWithDef.class); -+ checkUnequals(SingleMemberStringAcceptDefClass.class, UnitTest.class.getField("SingleMemberStringOvrdDefField"), -+ SingleMemberStringWithDef.class); -+ checkUnequals(SingleMemberClassAcceptDefClass.class, UnitTest.class.getField("SingleMemberClassOvrdDefField"), -+ SingleMemberClassWithDef.class); -+ checkUnequals(SingleMemberEnumAcceptDefClass.class, UnitTest.class.getField("SingleMemberEnumOvrdDefField"), -+ SingleMemberEnumWithDef.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) -+ checkUnequals(SingleMemberByteArrEmptyClass.class, UnitTest.class.getField("SingleMemberByteArrOneField"), -+ SingleMemberByteArray.class); -+ checkUnequals(SingleMemberShortArrEmptyClass.class, UnitTest.class.getField("SingleMemberShortArrOneField"), -+ SingleMemberShortArray.class); -+ checkUnequals(SingleMemberIntArrEmptyClass.class, UnitTest.class.getField("SingleMemberIntArrOneField"), -+ SingleMemberIntArray.class); -+ checkUnequals(SingleMemberLongArrEmptyClass.class, UnitTest.class.getField("SingleMemberLongArrOneField"), -+ SingleMemberLongArray.class); -+ checkUnequals(SingleMemberCharArrEmptyClass.class, UnitTest.class.getField("SingleMemberCharArrOneField"), -+ SingleMemberCharArray.class); -+ checkUnequals(SingleMemberFloatArrEmptyClass.class, UnitTest.class.getField("SingleMemberFloatArrOneField"), -+ SingleMemberFloatArray.class); -+ checkUnequals(SingleMemberDoubleArrEmptyClass.class, UnitTest.class.getField("SingleMemberDoubleArrOneField"), -+ SingleMemberDoubleArray.class); -+ checkUnequals(SingleMemberBooleanArrEmptyClass.class, UnitTest.class.getField("SingleMemberBooleanArrOneField"), -+ SingleMemberBooleanArray.class); -+ checkUnequals(SingleMemberStringArrEmptyClass.class, UnitTest.class.getField("SingleMemberStringArrOneField"), -+ SingleMemberStringArray.class); -+ checkUnequals(SingleMemberClassArrEmptyClass.class, UnitTest.class.getField("SingleMemberClassArrOneField"), -+ SingleMemberClassArray.class); -+ checkUnequals(SingleMemberEnumArrEmptyClass.class, UnitTest.class.getField("SingleMemberEnumArrOneField"), -+ SingleMemberEnumArray.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) -+ checkUnequals(SingleMemberByteArrOneClass.class, UnitTest.class.getField("SingleMemberByteArrTwoField"), -+ SingleMemberByteArray.class); -+ checkUnequals(SingleMemberShortArrOneClass.class, UnitTest.class.getField("SingleMemberShortArrTwoField"), -+ SingleMemberShortArray.class); -+ checkUnequals(SingleMemberIntArrOneClass.class, UnitTest.class.getField("SingleMemberIntArrTwoField"), -+ SingleMemberIntArray.class); -+ checkUnequals(SingleMemberLongArrOneClass.class, UnitTest.class.getField("SingleMemberLongArrTwoField"), -+ SingleMemberLongArray.class); -+ checkUnequals(SingleMemberCharArrOneClass.class, UnitTest.class.getField("SingleMemberCharArrTwoField"), -+ SingleMemberCharArray.class); -+ checkUnequals(SingleMemberFloatArrOneClass.class, UnitTest.class.getField("SingleMemberFloatArrTwoField"), -+ SingleMemberFloatArray.class); -+ checkUnequals(SingleMemberDoubleArrOneClass.class, UnitTest.class.getField("SingleMemberDoubleArrTwoField"), -+ SingleMemberDoubleArray.class); -+ checkUnequals(SingleMemberBooleanArrOneClass.class, UnitTest.class.getField("SingleMemberBooleanArrTwoField"), -+ SingleMemberBooleanArray.class); -+ checkUnequals(SingleMemberStringArrOneClass.class, UnitTest.class.getField("SingleMemberStringArrTwoField"), -+ SingleMemberStringArray.class); -+ checkUnequals(SingleMemberClassArrOneClass.class, UnitTest.class.getField("SingleMemberClassArrTwoField"), -+ SingleMemberClassArray.class); -+ checkUnequals(SingleMemberEnumArrOneClass.class, UnitTest.class.getField("SingleMemberEnumArrTwoField"), -+ SingleMemberEnumArray.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) -+ checkUnequals(SingleMemberByteArrTwoClass.class, UnitTest.class.getField("SingleMemberByteArrOneField"), -+ SingleMemberByteArray.class); -+ checkUnequals(SingleMemberShortArrTwoClass.class, UnitTest.class.getField("SingleMemberShortArrOneField"), -+ SingleMemberShortArray.class); -+ checkUnequals(SingleMemberIntArrTwoClass.class, UnitTest.class.getField("SingleMemberIntArrOneField"), -+ SingleMemberIntArray.class); -+ checkUnequals(SingleMemberLongArrTwoClass.class, UnitTest.class.getField("SingleMemberLongArrOneField"), -+ SingleMemberLongArray.class); -+ checkUnequals(SingleMemberCharArrTwoClass.class, UnitTest.class.getField("SingleMemberCharArrOneField"), -+ SingleMemberCharArray.class); -+ checkUnequals(SingleMemberFloatArrTwoClass.class, UnitTest.class.getField("SingleMemberFloatArrOneField"), -+ SingleMemberFloatArray.class); -+ checkUnequals(SingleMemberDoubleArrTwoClass.class, UnitTest.class.getField("SingleMemberDoubleArrOneField"), -+ SingleMemberDoubleArray.class); -+ checkUnequals(SingleMemberBooleanArrTwoClass.class, UnitTest.class.getField("SingleMemberBooleanArrOneField"), -+ SingleMemberBooleanArray.class); -+ checkUnequals(SingleMemberStringArrTwoClass.class, UnitTest.class.getField("SingleMemberStringArrOneField"), -+ SingleMemberStringArray.class); -+ checkUnequals(SingleMemberClassArrTwoClass.class, UnitTest.class.getField("SingleMemberClassArrOneField"), -+ SingleMemberClassArray.class); -+ checkUnequals(SingleMemberEnumArrTwoClass.class, UnitTest.class.getField("SingleMemberEnumArrOneField"), -+ SingleMemberEnumArray.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE) -+ checkUnequals(SingleMemberByteArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberByteArrAcceptDefField"), -+ SingleMemberByteArrayDef.class); -+ checkUnequals(SingleMemberShortArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberShortArrAcceptDefField"), -+ SingleMemberShortArrayDef.class); -+ checkUnequals(SingleMemberIntArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberIntArrAcceptDefField"), -+ SingleMemberIntArrayDef.class); -+ checkUnequals(SingleMemberLongArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberLongArrAcceptDefField"), -+ SingleMemberLongArrayDef.class); -+ checkUnequals(SingleMemberCharArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberCharArrAcceptDefField"), -+ SingleMemberCharArrayDef.class); -+ checkUnequals(SingleMemberFloatArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberFloatArrAcceptDefField"), -+ SingleMemberFloatArrayDef.class); -+ checkUnequals(SingleMemberDoubleArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberDoubleArrAcceptDefField"), -+ SingleMemberDoubleArrayDef.class); -+ checkUnequals(SingleMemberBooleanArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberBooleanArrAcceptDefField"), -+ SingleMemberBooleanArrayDef.class); -+ checkUnequals(SingleMemberStringArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberStringArrAcceptDefField"), -+ SingleMemberStringArrayDef.class); -+ checkUnequals(SingleMemberClassArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberClassArrAcceptDefField"), -+ SingleMemberClassArrayDef.class); -+ checkUnequals(SingleMemberEnumArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberEnumArrAcceptDefField"), -+ SingleMemberEnumArrayDef.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT) -+ checkUnequals(SingleMemberByteArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberByteArrOvrdDefField"), -+ SingleMemberByteArrayDef.class); -+ checkUnequals(SingleMemberShortArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberShortArrOvrdDefField"), -+ SingleMemberShortArrayDef.class); -+ checkUnequals(SingleMemberIntArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberIntArrOvrdDefField"), -+ SingleMemberIntArrayDef.class); -+ checkUnequals(SingleMemberLongArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberLongArrOvrdDefField"), -+ SingleMemberLongArrayDef.class); -+ checkUnequals(SingleMemberCharArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberCharArrOvrdDefField"), -+ SingleMemberCharArrayDef.class); -+ checkUnequals(SingleMemberFloatArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberFloatArrOvrdDefField"), -+ SingleMemberFloatArrayDef.class); -+ checkUnequals(SingleMemberDoubleArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberDoubleArrOvrdDefField"), -+ SingleMemberDoubleArrayDef.class); -+ checkUnequals(SingleMemberBooleanArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberBooleanArrOvrdDefField"), -+ SingleMemberBooleanArrayDef.class); -+ checkUnequals(SingleMemberStringArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberStringArrOvrdDefField"), -+ SingleMemberStringArrayDef.class); -+ checkUnequals(SingleMemberClassArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberClassArrOvrdDefField"), -+ SingleMemberClassArrayDef.class); -+ checkUnequals(SingleMemberEnumArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberEnumArrOvrdDefField"), -+ SingleMemberEnumArrayDef.class); -+ -+ // *** TESTS FOR SERIALIZATION AND DESERIALIZATION -+ -+ // MULTIMEMBER SCALAR TYPES -+ checkSerialization(scalarTypesClass.class, ScalarTypes.class); -+ checkSerialization(scalarTypesOverrideDefaultClass.class, ScalarTypesWithDefault.class); -+ checkSerialization(scalarTypesAcceptDefaultClass.class, ScalarTypesWithDefault.class); -+ -+ // MULTIMEMBER ARRAY TYPES -+ checkSerialization(emptyArrayTypesClass.class, ArrayTypes.class); -+ checkSerialization(singleElementArrayTypesClass.class, ArrayTypes.class); -+ checkSerialization(twoElementArrayTypesClass.class, ArrayTypes.class); -+ checkSerialization(arrayTypesOverrideDefaultClass.class, ArrayTypesWithDefault.class); -+ checkSerialization(arrayTypesAcceptDefaultClass.class, ArrayTypesWithDefault.class); -+ -+ // MARKER TYPE -+ checkSerialization(markerClass.class, Marker.class); -+ -+ // SINGLE-MEMBER SCALAR TYPES -+ checkSerialization(SingleMemberByteClass.class, SingleMemberByte.class); -+ checkSerialization(SingleMemberShortClass.class, SingleMemberShort.class); -+ checkSerialization(SingleMemberIntClass.class, SingleMemberInt.class); -+ checkSerialization(SingleMemberLongClass.class, SingleMemberLong.class); -+ checkSerialization(SingleMemberCharClass.class, SingleMemberChar.class); -+ checkSerialization(SingleMemberFloatClass.class, SingleMemberFloat.class); -+ checkSerialization(SingleMemberDoubleClass.class, SingleMemberDouble.class); -+ checkSerialization(SingleMemberBooleanClass.class, SingleMemberBoolean.class); -+ checkSerialization(SingleMemberStringClass.class, SingleMemberString.class); -+ checkSerialization(SingleMemberClassClass.class, SingleMemberClass.class); -+ checkSerialization(SingleMemberEnumClass.class, SingleMemberEnum.class); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE -+ checkSerialization(SingleMemberByteOvrdDefClass.class, SingleMemberByteWithDef.class); -+ checkSerialization(SingleMemberShortOvrdDefClass.class, SingleMemberShortWithDef.class); -+ checkSerialization(SingleMemberIntOvrdDefClass.class, SingleMemberIntWithDef.class); -+ checkSerialization(SingleMemberLongOvrdDefClass.class, SingleMemberLongWithDef.class); -+ checkSerialization(SingleMemberCharOvrdDefClass.class, SingleMemberCharWithDef.class); -+ checkSerialization(SingleMemberFloatOvrdDefClass.class, SingleMemberFloatWithDef.class); -+ checkSerialization(SingleMemberDoubleOvrdDefClass.class, SingleMemberDoubleWithDef.class); -+ checkSerialization(SingleMemberBooleanOvrdDefClass.class, SingleMemberBooleanWithDef.class); -+ checkSerialization(SingleMemberStringOvrdDefClass.class, SingleMemberStringWithDef.class); -+ checkSerialization(SingleMemberClassOvrdDefClass.class, SingleMemberClassWithDef.class); -+ checkSerialization(SingleMemberEnumOvrdDefClass.class, SingleMemberEnumWithDef.class); -+ -+ // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT -+ checkSerialization(SingleMemberByteAcceptDefClass.class, SingleMemberByteWithDef.class); -+ checkSerialization(SingleMemberShortAcceptDefClass.class, SingleMemberShortWithDef.class); -+ checkSerialization(SingleMemberIntAcceptDefClass.class, SingleMemberIntWithDef.class); -+ checkSerialization(SingleMemberLongAcceptDefClass.class, SingleMemberLongWithDef.class); -+ checkSerialization(SingleMemberCharAcceptDefClass.class, SingleMemberCharWithDef.class); -+ checkSerialization(SingleMemberFloatAcceptDefClass.class, SingleMemberFloatWithDef.class); -+ checkSerialization(SingleMemberDoubleAcceptDefClass.class, SingleMemberDoubleWithDef.class); -+ checkSerialization(SingleMemberBooleanAcceptDefClass.class, SingleMemberBooleanWithDef.class); -+ checkSerialization(SingleMemberStringAcceptDefClass.class, SingleMemberStringWithDef.class); -+ checkSerialization(SingleMemberClassAcceptDefClass.class, SingleMemberClassWithDef.class); -+ checkSerialization(SingleMemberEnumAcceptDefClass.class, SingleMemberEnumWithDef.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) -+ checkSerialization(SingleMemberByteArrEmptyClass.class, SingleMemberByteArray.class); -+ checkSerialization(SingleMemberShortArrEmptyClass.class, SingleMemberShortArray.class); -+ checkSerialization(SingleMemberIntArrEmptyClass.class, SingleMemberIntArray.class); -+ checkSerialization(SingleMemberLongArrEmptyClass.class, SingleMemberLongArray.class); -+ checkSerialization(SingleMemberCharArrEmptyClass.class, SingleMemberCharArray.class); -+ checkSerialization(SingleMemberFloatArrEmptyClass.class, SingleMemberFloatArray.class); -+ checkSerialization(SingleMemberDoubleArrEmptyClass.class, SingleMemberDoubleArray.class); -+ checkSerialization(SingleMemberBooleanArrEmptyClass.class, SingleMemberBooleanArray.class); -+ checkSerialization(SingleMemberStringArrEmptyClass.class, SingleMemberStringArray.class); -+ checkSerialization(SingleMemberClassArrEmptyClass.class, SingleMemberClassArray.class); -+ checkSerialization(SingleMemberEnumArrEmptyClass.class, SingleMemberEnumArray.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) -+ checkSerialization(SingleMemberByteArrOneClass.class, SingleMemberByteArray.class); -+ checkSerialization(SingleMemberShortArrOneClass.class, SingleMemberShortArray.class); -+ checkSerialization(SingleMemberIntArrOneClass.class, SingleMemberIntArray.class); -+ checkSerialization(SingleMemberLongArrOneClass.class, SingleMemberLongArray.class); -+ checkSerialization(SingleMemberCharArrOneClass.class, SingleMemberCharArray.class); -+ checkSerialization(SingleMemberFloatArrOneClass.class, SingleMemberFloatArray.class); -+ checkSerialization(SingleMemberDoubleArrOneClass.class, SingleMemberDoubleArray.class); -+ checkSerialization(SingleMemberBooleanArrOneClass.class, SingleMemberBooleanArray.class); -+ checkSerialization(SingleMemberStringArrOneClass.class, SingleMemberStringArray.class); -+ checkSerialization(SingleMemberClassArrOneClass.class, SingleMemberClassArray.class); -+ checkSerialization(SingleMemberEnumArrOneClass.class, SingleMemberEnumArray.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) -+ checkSerialization(SingleMemberByteArrTwoClass.class, SingleMemberByteArray.class); -+ checkSerialization(SingleMemberShortArrTwoClass.class, SingleMemberShortArray.class); -+ checkSerialization(SingleMemberIntArrTwoClass.class, SingleMemberIntArray.class); -+ checkSerialization(SingleMemberLongArrTwoClass.class, SingleMemberLongArray.class); -+ checkSerialization(SingleMemberCharArrTwoClass.class, SingleMemberCharArray.class); -+ checkSerialization(SingleMemberFloatArrTwoClass.class, SingleMemberFloatArray.class); -+ checkSerialization(SingleMemberDoubleArrTwoClass.class, SingleMemberDoubleArray.class); -+ checkSerialization(SingleMemberBooleanArrTwoClass.class, SingleMemberBooleanArray.class); -+ checkSerialization(SingleMemberStringArrTwoClass.class, SingleMemberStringArray.class); -+ checkSerialization(SingleMemberClassArrTwoClass.class, SingleMemberClassArray.class); -+ checkSerialization(SingleMemberEnumArrTwoClass.class, SingleMemberEnumArray.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE) -+ checkSerialization(SingleMemberByteArrOvrdDefClass.class, SingleMemberByteArrayDef.class); -+ checkSerialization(SingleMemberShortArrOvrdDefClass.class, SingleMemberShortArrayDef.class); -+ checkSerialization(SingleMemberIntArrOvrdDefClass.class, SingleMemberIntArrayDef.class); -+ checkSerialization(SingleMemberLongArrOvrdDefClass.class, SingleMemberLongArrayDef.class); -+ checkSerialization(SingleMemberCharArrOvrdDefClass.class, SingleMemberCharArrayDef.class); -+ checkSerialization(SingleMemberFloatArrOvrdDefClass.class, SingleMemberFloatArrayDef.class); -+ checkSerialization(SingleMemberDoubleArrOvrdDefClass.class, SingleMemberDoubleArrayDef.class); -+ checkSerialization(SingleMemberBooleanArrOvrdDefClass.class, SingleMemberBooleanArrayDef.class); -+ checkSerialization(SingleMemberStringArrOvrdDefClass.class, SingleMemberStringArrayDef.class); -+ checkSerialization(SingleMemberClassArrOvrdDefClass.class, SingleMemberClassArrayDef.class); -+ checkSerialization(SingleMemberEnumArrOvrdDefClass.class, SingleMemberEnumArrayDef.class); -+ -+ // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT) -+ checkSerialization(SingleMemberByteArrAcceptDefClass.class, SingleMemberByteArrayDef.class); -+ checkSerialization(SingleMemberShortArrAcceptDefClass.class, SingleMemberShortArrayDef.class); -+ checkSerialization(SingleMemberIntArrAcceptDefClass.class, SingleMemberIntArrayDef.class); -+ checkSerialization(SingleMemberLongArrAcceptDefClass.class, SingleMemberLongArrayDef.class); -+ checkSerialization(SingleMemberCharArrAcceptDefClass.class, SingleMemberCharArrayDef.class); -+ checkSerialization(SingleMemberFloatArrAcceptDefClass.class, SingleMemberFloatArrayDef.class); -+ checkSerialization(SingleMemberDoubleArrAcceptDefClass.class, SingleMemberDoubleArrayDef.class); -+ checkSerialization(SingleMemberBooleanArrAcceptDefClass.class, SingleMemberBooleanArrayDef.class); -+ checkSerialization(SingleMemberStringArrAcceptDefClass.class, SingleMemberStringArrayDef.class); -+ checkSerialization(SingleMemberClassArrAcceptDefClass.class, SingleMemberClassArrayDef.class); -+ checkSerialization(SingleMemberEnumArrAcceptDefClass.class, SingleMemberEnumArrayDef.class); -+ -+ // *** TESTS FOR ANNOTATION INHERITANCE AND ENUMERATING DECLARED ANNOTATIONS -+ -+ // Inheritance tests -+ checkInheritence(Grandpa.class, true, true); -+ checkInheritence(Dad.class, true, false); -+ checkInheritence(Son.class, true, true); -+ -+ // Declared annotations tests -+ checkDeclaredAnnotations(Grandpa.class, true, true); -+ checkDeclaredAnnotations(Dad.class, false, false); -+ checkDeclaredAnnotations(Son.class, false, true); -+ -+ // Generate summary -+ System.out.println("\n" + numTests + " tests completed"); -+ if (failCount != 0) -+ throw new Exception("Failure count: " + failCount); -+ else -+ System.out.println("Success."); -+ } -+ -+ static int failCount = 0; -+ -+ private static void fail(String test) { -+ System.out.println("Failure: " + test); -+ failCount++; -+ } -+ -+ // ANNOTATION-VERIFICATION METHODS -+ -+ // Scalar multi-member -+ -+ static void checkScalarTypes(AnnotatedElement e) { -+ try { -+ checkScalarTypes(e.getAnnotation(ScalarTypes.class), e); -+ } catch(Throwable t) { -+ fail("ScalarTypes " + e + ": " + t); -+ t.printStackTrace(); -+ } -+ } -+ -+ static void checkScalarTypes(ScalarTypes st, AnnotatedElement e) throws Exception { -+ numTests++; -+ if (!(st.b() == 1 && -+ st.s() == 2 && -+ st.i() == 3 && -+ st.l() == 4L && -+ st.c() == '5' && -+ st.f() == 6.0f && -+ st.d() == 7.0 && -+ st.bool() == true && -+ st.str().equals("custom") && -+ st.cls() == Map.class && -+ st.e() == Stooge.MOE && -+ st.a().x() == 1 && st.a().y() == 2)) -+ fail("ScalarTypes" + e); -+ } -+ -+ static void checkScalarTypesOverrideDefault(AnnotatedElement e) { -+ try { -+ checkScalarTypesOverrideDefault(e.getAnnotation(ScalarTypesWithDefault.class), e); -+ } catch(Throwable t) { -+ fail("ScalarTypesOverrideDefaults" + e + ": " + t); -+ } -+ } -+ -+ static void checkScalarTypesOverrideDefault(ScalarTypesWithDefault st, AnnotatedElement e) { -+ numTests++; -+ if (!(st.b() == 1 && -+ st.s() == 2 && -+ st.i() == 3 && -+ st.l() == 4L && -+ st.c() == '5' && -+ st.f() == 6.0f && -+ st.d() == 7.0 && -+ st.bool() == true && -+ st.str().equals("custom") && -+ st.cls() == Map.class && -+ st.e() == Stooge.MOE)) -+ fail("ScalarTypesOverrideDefaults" + e); -+ } -+ -+ static void checkScalarTypesAcceptDefault(AnnotatedElement e) { -+ try { -+ checkScalarTypesAcceptDefault(e.getAnnotation(ScalarTypesWithDefault.class), e); -+ } catch(Throwable t) { -+ fail("ScalarTypesAcceptDefaults" + e + ": " + t); -+ } -+ } -+ -+ static void checkScalarTypesAcceptDefault(ScalarTypesWithDefault st, AnnotatedElement e) { -+ numTests++; -+ if (!(st.b() == 11 && -+ st.s() == 12 && -+ st.i() == 13 && -+ st.l() == 14L && -+ st.c() == 'V' && -+ st.f() == 16.0f && -+ st.d() == 17.0 && -+ st.bool() == false && -+ st.str().equals("default") && -+ st.cls() == Class.class && -+ st.e() == Stooge.LARRY && -+ st.a().x() == 11 && st.a().y() == 12)) -+ fail("ScalarTypesAcceptDefaults" + e); -+ } -+ -+ // Array multi-member -+ -+ static void checkArrayTypes0(AnnotatedElement e) { -+ try { -+ checkArrayTypes0(e.getAnnotation(ArrayTypes.class), e); -+ } catch(Throwable t) { -+ fail("ArrayTypes(Empty)" + e + ": " + t); -+ } -+ } -+ -+ static void checkArrayTypes0(ArrayTypes at, AnnotatedElement e) { -+ numTests++; -+ if (!(at.b().length == 0 && -+ at.s().length == 0 && -+ at.i().length == 0 && -+ at.l().length == 0 && -+ at.c().length == 0 && -+ at.f().length == 0 && -+ at.d().length == 0 && -+ at.bool().length == 0 && -+ at.str().length == 0 && -+ at.cls().length == 0 && -+ at.e().length == 0 && -+ at.a().length == 0)) { -+ fail("ArrayTypes(Empty)" + e); -+ } -+ } -+ -+ static void checkArrayTypes1(AnnotatedElement e) { -+ try { -+ checkArrayTypes1(e.getAnnotation(ArrayTypes.class), e); -+ } catch(Throwable t) { -+ fail("ArrayTypes(One element)" + e + ": " + t); -+ } -+ } -+ -+ static void checkArrayTypes1(ArrayTypes at, AnnotatedElement e) { -+ numTests++; -+ if (!(at.b()[0] == 1 && -+ at.s()[0] == 2 && -+ at.i()[0] == 3 && -+ at.l()[0] == 4L && -+ at.c()[0] == '5' && -+ at.f()[0] == 6.0f && -+ at.d()[0] == 7.0 && -+ at.bool()[0] == true && -+ at.str()[0].equals("custom") && -+ at.cls()[0] == Map.class && -+ at.e()[0] == Stooge.MOE && -+ at.a()[0].x() == 1 && at.a()[0].y() == 2 && -+ -+ at.b().length==1 && at.s().length==1 && at.i().length==1 && -+ at.l().length==1 && at.c().length==1 && at.d().length==1 && -+ at.bool().length==1 && at.str().length==1 && -+ at.cls().length==1 && at.cls().length==1 && at.a().length==1)) -+ fail("ArrayTypes(One element)" + e); -+ } -+ -+ static void checkArrayTypes2(AnnotatedElement e) { -+ try { -+ checkArrayTypes2(e.getAnnotation(ArrayTypes.class), e); -+ } catch(Throwable t) { -+ fail("ArrayTypes(Two element)" + e + ": " + t); -+ } -+ } -+ -+ static void checkArrayTypes2(ArrayTypes at, AnnotatedElement e) { -+ numTests++; -+ if (!(at.b()[0] == 1 && at.b()[1] == 2 && -+ at.s()[0] == 2 && at.s()[1] == 3 && -+ at.i()[0] == 3 && at.i()[1] == 4 && -+ at.l()[0] == 4L && at.l()[1] == 5L && -+ at.c()[0] == '5' && at.c()[1] == '6' && -+ at.f()[0] == 6.0f && at.f()[1] == 7.0f && -+ at.d()[0] == 7.0 && at.d()[1] == 8.0 && -+ at.bool()[0] == true && at.bool()[1] == false && -+ at.str()[0].equals("custom") && at.str()[1].equals("paint") && -+ at.cls()[0] == Map.class && at.cls()[1] == Set.class && -+ at.e()[0] == Stooge.MOE && at.e()[1] == Stooge.CURLY && -+ at.a()[0].x() == 1 && at.a()[0].y() == 2 && at.a()[1].x() == 3 && at.a()[1].y() == 4 && -+ -+ at.b().length==2 && at.s().length==2 && at.i().length==2 && -+ at.l().length==2 && at.c().length==2 && at.d().length==2 && -+ at.bool().length==2 && at.str().length==2 && -+ at.cls().length==2 && at.cls().length==2 && at.a().length==2)) -+ fail("ArrayTypes(Two element)" + e); -+ } -+ -+ static void checkArrayTypesOverrideDefault(AnnotatedElement e) { -+ try { -+ checkArrayTypesOverrideDefault(e.getAnnotation(ArrayTypesWithDefault.class), e); -+ } catch(Throwable t) { -+ fail("ArrayTypesOverrideDefault" + e + ": " + t); -+ } -+ } -+ -+ static void checkArrayTypesOverrideDefault(ArrayTypesWithDefault at, AnnotatedElement e) { -+ numTests++; -+ if (!(at.b()[0] == 1 && -+ at.s()[0] == 2 && -+ at.i()[0] == 3 && -+ at.l()[0] == 4L && -+ at.c()[0] == '5' && -+ at.f()[0] == 6.0f && -+ at.d()[0] == 7.0 && -+ at.bool()[0] == true && -+ at.str()[0].equals("custom") && -+ at.cls()[0] == Map.class && -+ at.e()[0] == Stooge.MOE && -+ at.a()[0].x() == 1 && at.a()[0].y() == 2 && -+ -+ at.b().length==1 && at.s().length==1 && at.i().length==1 && -+ at.l().length==1 && at.c().length==1 && at.d().length==1 && -+ at.bool().length==1 && at.str().length==1 && -+ at.cls().length==1 && at.cls().length==1)) -+ fail("ArrayTypesOverrideDefault" + e); -+ } -+ -+ static void checkArrayTypesAcceptDefault(AnnotatedElement e) { -+ try { -+ checkArrayTypesAcceptDefault(e.getAnnotation(ArrayTypesWithDefault.class), e); -+ } catch(Throwable t) { -+ fail("ArrayTypesAcceptDefault" + e + ": " + t); -+ } -+ } -+ -+ static void checkArrayTypesAcceptDefault(ArrayTypesWithDefault at, AnnotatedElement e) { -+ numTests++; -+ if (!(at.b()[0] == 11 && -+ at.s()[0] == 12 && -+ at.i()[0] == 13 && -+ at.l()[0] == 14L && -+ at.c()[0] == 'V' && -+ at.f()[0] == 16.0f && -+ at.d()[0] == 17.0 && -+ at.bool()[0] == false && -+ at.str()[0].equals("default") && -+ at.cls()[0] == Class.class && -+ at.e()[0] == Stooge.LARRY && -+ at.a()[0].x() == 11 && at.a()[0].y() == 12 && -+ -+ at.b().length==1 && at.s().length==1 && at.i().length==1 && -+ at.l().length==1 && at.c().length==1 && at.d().length==1 && -+ at.bool().length==1 && at.str().length==1 && -+ at.cls().length==1 && at.cls().length==1)) -+ fail("ArrayTypesAcceptDefault" + e); -+ } -+ -+ // Scalar multi-member for parameters -+ -+ static void checkScalarTypesParam(Method m) { -+ try { -+ checkScalarTypes((ScalarTypes) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("ScalarTypes" + m + ": " + t); -+ } -+ } -+ -+ static void checkScalarTypesOverrideDefaultParam(Method m) { -+ try { -+ checkScalarTypesOverrideDefault((ScalarTypesWithDefault) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("ScalarTypesOverrideDefaults" + m + ": " + t); -+ } -+ } -+ -+ static void checkScalarTypesAcceptDefaultParam(Method m) { -+ try { -+ checkScalarTypesAcceptDefault((ScalarTypesWithDefault) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("ScalarTypesAcceptDefaults" + m + ": " + t); -+ } -+ } -+ -+ // Array multi-member for parameters -+ -+ static void checkArrayTypes0Param(Method m) { -+ try { -+ checkArrayTypes0((ArrayTypes) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("ArrayTypes(Empty)" + m + ": " + t); -+ } -+ } -+ -+ static void checkArrayTypes1Param(Method m) { -+ try { -+ checkArrayTypes1((ArrayTypes) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("ArrayTypes(One Element)" + m + ": " + t); -+ } -+ } -+ -+ static void checkArrayTypes2Param(Method m) { -+ try { -+ checkArrayTypes2((ArrayTypes) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("ArrayTypes(Two Elements)" + m + ": " + t); -+ } -+ } -+ -+ static void checkArrayTypesOverrideDefaultParam(Method m) { -+ try { -+ checkArrayTypesOverrideDefault((ArrayTypesWithDefault) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("ArrayTypesOverrideDefault" + m + ": " + t); -+ } -+ } -+ -+ static void checkArrayTypesAcceptDefaultParam(Method m) { -+ try { -+ checkArrayTypesAcceptDefault((ArrayTypesWithDefault) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("ArrayTypesAcceptDefault" + m + ": " + t); -+ } -+ } -+ -+ // marker type on parameter -+ static void checkMarkerParam(Method m) { -+ try { -+ checkMarker((Marker) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("Marker" + m + ": " + t); -+ } -+ } -+ -+ // single-member scalar types on parameter -+ static void checkSingleMemberByteParam(Method m) { -+ try { -+ checkSingleMemberByte((SingleMemberByte) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberByte" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortParam(Method m) { -+ try { -+ checkSingleMemberShort((SingleMemberShort) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberShort" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntParam(Method m) { -+ try { -+ checkSingleMemberInt((SingleMemberInt) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberInt" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongParam(Method m) { -+ try { -+ checkSingleMemberLong((SingleMemberLong) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberLong" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharParam(Method m) { -+ try { -+ checkSingleMemberChar((SingleMemberChar) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberChar" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatParam(Method m) { -+ try { -+ checkSingleMemberFloat((SingleMemberFloat) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberFloat" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleParam(Method m) { -+ try { -+ checkSingleMemberDouble((SingleMemberDouble) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberDouble" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanParam(Method m) { -+ try { -+ checkSingleMemberBoolean((SingleMemberBoolean) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberBoolean" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringParam(Method m) { -+ try { -+ checkSingleMemberString((SingleMemberString) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberString" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassParam(Method m) { -+ try { -+ checkSingleMemberClass((SingleMemberClass) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberClass" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumParam(Method m) { -+ try { -+ checkSingleMemberEnum((SingleMemberEnum) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberEnum" + m + ": " + t); -+ } -+ } -+ -+ // single-member scalar types with default-override on parameter -+ static void checkSingleMemberByteOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberByteOvrdDef((SingleMemberByteWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberByteOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberShortOvrdDef((SingleMemberShortWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberShortOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberIntOvrdDef((SingleMemberIntWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberIntOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberLongOvrdDef((SingleMemberLongWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberLongOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberCharOvrdDef((SingleMemberCharWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberCharOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberFloatOvrdDef((SingleMemberFloatWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberDoubleOvrdDef((SingleMemberDoubleWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberBooleanOvrdDef((SingleMemberBooleanWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberStringOvrdDef((SingleMemberStringWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberStringOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberClassOvrdDef((SingleMemberClassWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberClassOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberEnumOvrdDef((SingleMemberEnumWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ // single-member scalar types with default-accept on PARAMETER -+ static void checkSingleMemberByteAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberByteAcceptDef((SingleMemberByteWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberByteAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberShortAcceptDef((SingleMemberShortWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberShortAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberIntAcceptDef((SingleMemberIntWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberIntAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberLongAcceptDef((SingleMemberLongWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberLongAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberCharAcceptDef((SingleMemberCharWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberCharAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberFloatAcceptDef((SingleMemberFloatWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberDoubleAcceptDef((SingleMemberDoubleWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberBooleanAcceptDef((SingleMemberBooleanWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberStringAcceptDef((SingleMemberStringWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberStringAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberClassAcceptDef((SingleMemberClassWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberClassAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberEnumAcceptDef((SingleMemberEnumWithDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ // single-member array types (empty array) parameter -+ static void checkSingleMemberByteArrEmptyParam(Method m) { -+ try { -+ checkSingleMemberByteArrEmpty((SingleMemberByteArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberByteArrEmpty" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortArrEmptyParam(Method m) { -+ try { -+ checkSingleMemberShortArrEmpty((SingleMemberShortArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberShortArrEmpty" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntArrEmptyParam(Method m) { -+ try { -+ checkSingleMemberIntArrEmpty((SingleMemberIntArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberIntArrEmpty" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongArrEmptyParam(Method m) { -+ try { -+ checkSingleMemberLongArrEmpty((SingleMemberLongArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberLongArrEmpty" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharArrEmptyParam(Method m) { -+ try { -+ checkSingleMemberCharArrEmpty((SingleMemberCharArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberCharArrEmpty" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatArrEmptyParam(Method m) { -+ try { -+ checkSingleMemberFloatArrEmpty((SingleMemberFloatArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatArrEmpty" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleArrEmptyParam(Method m) { -+ try { -+ checkSingleMemberDoubleArrEmpty((SingleMemberDoubleArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleArrEmpty" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanArrEmptyParam(Method m) { -+ try { -+ checkSingleMemberBooleanArrEmpty((SingleMemberBooleanArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanArrEmpty" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringArrEmptyParam(Method m) { -+ try { -+ checkSingleMemberStringArrEmpty((SingleMemberStringArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberStringArrEmpty" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassArrEmptyParam(Method m) { -+ try { -+ checkSingleMemberClassArrEmpty((SingleMemberClassArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberClassArrEmpty" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumArrEmptyParam(Method m) { -+ try { -+ checkSingleMemberEnumArrEmpty((SingleMemberEnumArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumArrEmpty" + m + ": " + t); -+ } -+ } -+ -+ // single-member array types (one-element array) on parameter -+ static void checkSingleMemberByteArrOneParam(Method m) { -+ try { -+ checkSingleMemberByteArrOne((SingleMemberByteArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberByteArrOne" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortArrOneParam(Method m) { -+ try { -+ checkSingleMemberShortArrOne((SingleMemberShortArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberShortArrOne" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntArrOneParam(Method m) { -+ try { -+ checkSingleMemberIntArrOne((SingleMemberIntArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberIntArrOne" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongArrOneParam(Method m) { -+ try { -+ checkSingleMemberLongArrOne((SingleMemberLongArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberLongArrOne" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharArrOneParam(Method m) { -+ try { -+ checkSingleMemberCharArrOne((SingleMemberCharArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberCharArrOne" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatArrOneParam(Method m) { -+ try { -+ checkSingleMemberFloatArrOne((SingleMemberFloatArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatArrOne" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleArrOneParam(Method m) { -+ try { -+ checkSingleMemberDoubleArrOne((SingleMemberDoubleArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleArrOne" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanArrOneParam(Method m) { -+ try { -+ checkSingleMemberBooleanArrOne((SingleMemberBooleanArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanArrOne" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringArrOneParam(Method m) { -+ try { -+ checkSingleMemberStringArrOne((SingleMemberStringArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberStringArrOne" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassArrOneParam(Method m) { -+ try { -+ checkSingleMemberClassArrOne((SingleMemberClassArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberClassArrOne" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumArrOneParam(Method m) { -+ try { -+ checkSingleMemberEnumArrOne((SingleMemberEnumArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumArrOne" + m + ": " + t); -+ } -+ } -+ -+ // single-member array types (two-element array) on parameter -+ static void checkSingleMemberByteArrTwoParam(Method m) { -+ try { -+ checkSingleMemberByteArrTwo((SingleMemberByteArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberByteArrTwo" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortArrTwoParam(Method m) { -+ try { -+ checkSingleMemberShortArrTwo((SingleMemberShortArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberShortArrTwo" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntArrTwoParam(Method m) { -+ try { -+ checkSingleMemberIntArrTwo((SingleMemberIntArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberIntArrTwo" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongArrTwoParam(Method m) { -+ try { -+ checkSingleMemberLongArrTwo((SingleMemberLongArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberLongArrTwo" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharArrTwoParam(Method m) { -+ try { -+ checkSingleMemberCharArrTwo((SingleMemberCharArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberCharArrTwo" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatArrTwoParam(Method m) { -+ try { -+ checkSingleMemberFloatArrTwo((SingleMemberFloatArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatArrTwo" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleArrTwoParam(Method m) { -+ try { -+ checkSingleMemberDoubleArrTwo((SingleMemberDoubleArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleArrTwo" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanArrTwoParam(Method m) { -+ try { -+ checkSingleMemberBooleanArrTwo((SingleMemberBooleanArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanArrTwo" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringArrTwoParam(Method m) { -+ try { -+ checkSingleMemberStringArrTwo((SingleMemberStringArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberStringArrTwo" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassArrTwoParam(Method m) { -+ try { -+ checkSingleMemberClassArrTwo((SingleMemberClassArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberClassArrTwo" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumArrTwoParam(Method m) { -+ try { -+ checkSingleMemberEnumArrTwo((SingleMemberEnumArray) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumArrTwo" + m + ": " + t); -+ } -+ } -+ -+ // single-member array types with default (override)on parameter -+ static void checkSingleMemberByteArrOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberByteArrOvrdDef((SingleMemberByteArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberByteArrOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortArrOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberShortArrOvrdDef((SingleMemberShortArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberShortArrOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntArrOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberIntArrOvrdDef((SingleMemberIntArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberIntArrOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongArrOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberLongArrOvrdDef((SingleMemberLongArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberLongArrOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharArrOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberCharArrOvrdDef((SingleMemberCharArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberCharArrOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatArrOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberFloatArrOvrdDef((SingleMemberFloatArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatArrOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleArrOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberDoubleArrOvrdDef((SingleMemberDoubleArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleArrOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanArrOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberBooleanArrOvrdDef((SingleMemberBooleanArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanArrOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringArrOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberStringArrOvrdDef((SingleMemberStringArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberStringArrOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassArrOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberClassArrOvrdDef((SingleMemberClassArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberClassArrOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumArrOvrdDefParam(Method m) { -+ try { -+ checkSingleMemberEnumArrOvrdDef((SingleMemberEnumArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumArrOvrdDef" + m + ": " + t); -+ } -+ } -+ -+ // single-member array types with default (accept)on parameter -+ static void checkSingleMemberByteArrAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberByteArrAcceptDef((SingleMemberByteArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberByteArrAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortArrAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberShortArrAcceptDef((SingleMemberShortArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberShortArrAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntArrAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberIntArrAcceptDef((SingleMemberIntArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberIntArrAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongArrAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberLongArrAcceptDef((SingleMemberLongArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberLongArrAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharArrAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberCharArrAcceptDef((SingleMemberCharArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberCharArrAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatArrAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberFloatArrAcceptDef((SingleMemberFloatArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatArrAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleArrAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberDoubleArrAcceptDef((SingleMemberDoubleArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleArrAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanArrAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberBooleanArrAcceptDef((SingleMemberBooleanArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanArrAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringArrAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberStringArrAcceptDef((SingleMemberStringArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberStringArrAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassArrAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberClassArrAcceptDef((SingleMemberClassArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberClassArrAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumArrAcceptDefParam(Method m) { -+ try { -+ checkSingleMemberEnumArrAcceptDef((SingleMemberEnumArrayDef) m.getParameterAnnotations()[0][0], m); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumArrAcceptDef" + m + ": " + t); -+ } -+ } -+ -+ // Marker -+ static void checkMarker(AnnotatedElement e) { -+ checkMarker(e.getAnnotation(Marker.class), e); -+ } -+ static void checkMarker(Marker m, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (m == null) fail("Marker " + e); -+ } catch(Throwable t) { -+ fail("Marker " + e + ": " + t); -+ } -+ } -+ -+ // Single-member -+ -+ static void checkSingleMemberByte(AnnotatedElement e) { -+ checkSingleMemberByte(e.getAnnotation(SingleMemberByte.class), e); -+ } -+ static void checkSingleMemberByte(SingleMemberByte a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 1) fail("SingleMemberByte " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberByte " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShort(AnnotatedElement e) { -+ checkSingleMemberShort(e.getAnnotation(SingleMemberShort.class), e); -+ } -+ static void checkSingleMemberShort(SingleMemberShort a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 2) fail("SingleMemberShort " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberShort " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberInt(AnnotatedElement e) { -+ checkSingleMemberInt(e.getAnnotation(SingleMemberInt.class), e); -+ } -+ static void checkSingleMemberInt(SingleMemberInt a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 3) fail("SingleMemberInt " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberInt " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLong(AnnotatedElement e) { -+ checkSingleMemberLong(e.getAnnotation(SingleMemberLong.class), e); -+ } -+ static void checkSingleMemberLong(SingleMemberLong a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 4L) fail("SingleMemberLong " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberLong " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberChar(AnnotatedElement e) { -+ checkSingleMemberChar(e.getAnnotation(SingleMemberChar.class), e); -+ } -+ static void checkSingleMemberChar(SingleMemberChar a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != '5') fail("SingleMemberChar " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberChar " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloat(AnnotatedElement e) { -+ checkSingleMemberFloat(e.getAnnotation(SingleMemberFloat.class), e); -+ } -+ static void checkSingleMemberFloat(SingleMemberFloat a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 6.0f) fail("SingleMemberFloat " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberFloat " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDouble(AnnotatedElement e) { -+ checkSingleMemberDouble(e.getAnnotation(SingleMemberDouble.class), e); -+ } -+ static void checkSingleMemberDouble(SingleMemberDouble a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 7.0) fail("SingleMemberDouble " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberDouble " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBoolean(AnnotatedElement e) { -+ checkSingleMemberBoolean(e.getAnnotation(SingleMemberBoolean.class), e); -+ } -+ static void checkSingleMemberBoolean(SingleMemberBoolean a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (!a.value()) fail("SingleMemberBoolean " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberBoolean " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberString(AnnotatedElement e) { -+ checkSingleMemberString(e.getAnnotation(SingleMemberString.class), e); -+ } -+ static void checkSingleMemberString(SingleMemberString a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (!(a.value().equals("custom"))) fail("SingleMemberString " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberString " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClass(AnnotatedElement e) { -+ checkSingleMemberClass(e.getAnnotation(SingleMemberClass.class), e); -+ } -+ static void checkSingleMemberClass(SingleMemberClass a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != Map.class) fail("SingleMemberClass " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberClass " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnum(AnnotatedElement e) { -+ checkSingleMemberEnum(e.getAnnotation(SingleMemberEnum.class), e); -+ } -+ static void checkSingleMemberEnum(SingleMemberEnum a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != Stooge.MOE) fail("SingleMemberEnum " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberEnum " + e + ": " + t); -+ } -+ } -+ -+ // Single-member with default (Override) -+ -+ static void checkSingleMemberByteOvrdDef(AnnotatedElement e) { -+ checkSingleMemberByteOvrdDef(e.getAnnotation(SingleMemberByteWithDef.class), e); -+ } -+ static void checkSingleMemberByteOvrdDef(SingleMemberByteWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 1) fail("SingleMemberByteOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberByteOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortOvrdDef(AnnotatedElement e) { -+ checkSingleMemberShortOvrdDef(e.getAnnotation(SingleMemberShortWithDef.class), e); -+ } -+ static void checkSingleMemberShortOvrdDef(SingleMemberShortWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 2) fail("SingleMemberShortOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberShortOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntOvrdDef(AnnotatedElement e) { -+ checkSingleMemberIntOvrdDef(e.getAnnotation(SingleMemberIntWithDef.class), e); -+ } -+ static void checkSingleMemberIntOvrdDef(SingleMemberIntWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 3) fail("SingleMemberIntOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberIntOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongOvrdDef(AnnotatedElement e) { -+ checkSingleMemberLongOvrdDef(e.getAnnotation(SingleMemberLongWithDef.class), e); -+ } -+ static void checkSingleMemberLongOvrdDef(SingleMemberLongWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 4L) fail("SingleMemberLongOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberLongOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharOvrdDef(AnnotatedElement e) { -+ checkSingleMemberCharOvrdDef(e.getAnnotation(SingleMemberCharWithDef.class), e); -+ } -+ static void checkSingleMemberCharOvrdDef(SingleMemberCharWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != '5') fail("SingleMemberCharOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberCharOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatOvrdDef(AnnotatedElement e) { -+ checkSingleMemberFloatOvrdDef(e.getAnnotation(SingleMemberFloatWithDef.class), e); -+ } -+ static void checkSingleMemberFloatOvrdDef(SingleMemberFloatWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 6.0f) fail("SingleMemberFloatOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleOvrdDef(AnnotatedElement e) { -+ checkSingleMemberDoubleOvrdDef(e.getAnnotation(SingleMemberDoubleWithDef.class), e); -+ } -+ static void checkSingleMemberDoubleOvrdDef(SingleMemberDoubleWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 7.0) fail("SingleMemberDoubleOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanOvrdDef(AnnotatedElement e) { -+ checkSingleMemberBooleanOvrdDef(e.getAnnotation(SingleMemberBooleanWithDef.class), e); -+ } -+ static void checkSingleMemberBooleanOvrdDef(SingleMemberBooleanWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (!a.value()) fail("SingleMemberBooleanOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringOvrdDef(AnnotatedElement e) { -+ checkSingleMemberStringOvrdDef(e.getAnnotation(SingleMemberStringWithDef.class), e); -+ } -+ static void checkSingleMemberStringOvrdDef(SingleMemberStringWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (!(a.value().equals("custom"))) fail("SingleMemberStringOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberStringOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassOvrdDef(AnnotatedElement e) { -+ checkSingleMemberClassOvrdDef(e.getAnnotation(SingleMemberClassWithDef.class), e); -+ } -+ static void checkSingleMemberClassOvrdDef(SingleMemberClassWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != Map.class) fail("SingleMemberClassOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberClassOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumOvrdDef(AnnotatedElement e) { -+ checkSingleMemberEnumOvrdDef(e.getAnnotation(SingleMemberEnumWithDef.class), e); -+ } -+ static void checkSingleMemberEnumOvrdDef(SingleMemberEnumWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != Stooge.MOE) fail("SingleMemberEnumOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ // Single-member with default (Accept) -+ -+ static void checkSingleMemberByteAcceptDef(AnnotatedElement e) { -+ checkSingleMemberByteAcceptDef(e.getAnnotation(SingleMemberByteWithDef.class), e); -+ } -+ static void checkSingleMemberByteAcceptDef(SingleMemberByteWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 11) fail("SingleMemberByteAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberByteAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortAcceptDef(AnnotatedElement e) { -+ checkSingleMemberShortAcceptDef(e.getAnnotation(SingleMemberShortWithDef.class), e); -+ } -+ static void checkSingleMemberShortAcceptDef(SingleMemberShortWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 12) fail("SingleMemberShortAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberShortAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntAcceptDef(AnnotatedElement e) { -+ checkSingleMemberIntAcceptDef(e.getAnnotation(SingleMemberIntWithDef.class), e); -+ } -+ static void checkSingleMemberIntAcceptDef(SingleMemberIntWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 13) fail("SingleMemberIntAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberIntAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongAcceptDef(AnnotatedElement e) { -+ checkSingleMemberLongAcceptDef(e.getAnnotation(SingleMemberLongWithDef.class), e); -+ } -+ static void checkSingleMemberLongAcceptDef(SingleMemberLongWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 14L) fail("SingleMemberLongAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberLongAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharAcceptDef(AnnotatedElement e) { -+ checkSingleMemberCharAcceptDef(e.getAnnotation(SingleMemberCharWithDef.class), e); -+ } -+ static void checkSingleMemberCharAcceptDef(SingleMemberCharWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 'V') fail("SingleMemberCharAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberCharAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatAcceptDef(AnnotatedElement e) { -+ checkSingleMemberFloatAcceptDef(e.getAnnotation(SingleMemberFloatWithDef.class), e); -+ } -+ static void checkSingleMemberFloatAcceptDef(SingleMemberFloatWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 16.0f) fail("SingleMemberFloatAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleAcceptDef(AnnotatedElement e) { -+ checkSingleMemberDoubleAcceptDef(e.getAnnotation(SingleMemberDoubleWithDef.class), e); -+ } -+ static void checkSingleMemberDoubleAcceptDef(SingleMemberDoubleWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != 17.0) fail("SingleMemberDoubleAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanAcceptDef(AnnotatedElement e) { -+ checkSingleMemberBooleanAcceptDef(e.getAnnotation(SingleMemberBooleanWithDef.class), e); -+ } -+ static void checkSingleMemberBooleanAcceptDef(SingleMemberBooleanWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value()) fail("SingleMemberBooleanAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringAcceptDef(AnnotatedElement e) { -+ checkSingleMemberStringAcceptDef(e.getAnnotation(SingleMemberStringWithDef.class), e); -+ } -+ static void checkSingleMemberStringAcceptDef(SingleMemberStringWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (!(a.value().equals("default"))) fail("SingleMemberStringAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberStringAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassAcceptDef(AnnotatedElement e) { -+ checkSingleMemberClassAcceptDef(e.getAnnotation(SingleMemberClassWithDef.class), e); -+ } -+ static void checkSingleMemberClassAcceptDef(SingleMemberClassWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != Class.class) fail("SingleMemberClassAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberClassAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumAcceptDef(AnnotatedElement e) { -+ checkSingleMemberEnumAcceptDef(e.getAnnotation(SingleMemberEnumWithDef.class), e); -+ } -+ static void checkSingleMemberEnumAcceptDef(SingleMemberEnumWithDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value() != Stooge.LARRY) fail("SingleMemberEnumAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ // Single member array (empty array) -+ static void checkSingleMemberByteArrEmpty(AnnotatedElement e) { -+ checkSingleMemberByteArrEmpty(e.getAnnotation(SingleMemberByteArray.class), e); -+ } -+ static void checkSingleMemberByteArrEmpty(SingleMemberByteArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 0) fail("SingleMemberByteArrEmpty " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberByteArrEmpty " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortArrEmpty(AnnotatedElement e) { -+ checkSingleMemberShortArrEmpty(e.getAnnotation(SingleMemberShortArray.class), e); -+ } -+ static void checkSingleMemberShortArrEmpty(SingleMemberShortArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 0) fail("SingleMemberShortArrEmpty " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberShortArrEmpty " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntArrEmpty(AnnotatedElement e) { -+ checkSingleMemberIntArrEmpty(e.getAnnotation(SingleMemberIntArray.class), e); -+ } -+ static void checkSingleMemberIntArrEmpty(SingleMemberIntArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 0) fail("SingleMemberIntArrEmpty " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberIntArrEmpty " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongArrEmpty(AnnotatedElement e) { -+ checkSingleMemberLongArrEmpty(e.getAnnotation(SingleMemberLongArray.class), e); -+ } -+ static void checkSingleMemberLongArrEmpty(SingleMemberLongArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 0) fail("SingleMemberLongArrEmpty " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberLongArrEmpty " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharArrEmpty(AnnotatedElement e) { -+ checkSingleMemberCharArrEmpty(e.getAnnotation(SingleMemberCharArray.class), e); -+ } -+ static void checkSingleMemberCharArrEmpty(SingleMemberCharArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 0) fail("SingleMemberCharArrEmpty " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberCharArrEmpty " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatArrEmpty(AnnotatedElement e) { -+ checkSingleMemberFloatArrEmpty(e.getAnnotation(SingleMemberFloatArray.class), e); -+ } -+ static void checkSingleMemberFloatArrEmpty(SingleMemberFloatArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 0) fail("SingleMemberFloatArrEmpty " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatArrEmpty " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleArrEmpty(AnnotatedElement e) { -+ checkSingleMemberDoubleArrEmpty(e.getAnnotation(SingleMemberDoubleArray.class), e); -+ } -+ static void checkSingleMemberDoubleArrEmpty(SingleMemberDoubleArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 0) fail("SingleMemberDoubleArrEmpty " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleArrEmpty " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanArrEmpty(AnnotatedElement e) { -+ checkSingleMemberBooleanArrEmpty(e.getAnnotation(SingleMemberBooleanArray.class), e); -+ } -+ static void checkSingleMemberBooleanArrEmpty(SingleMemberBooleanArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 0) fail("SingleMemberBooleanArrEmpty " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanArrEmpty " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringArrEmpty(AnnotatedElement e) { -+ checkSingleMemberStringArrEmpty(e.getAnnotation(SingleMemberStringArray.class), e); -+ } -+ static void checkSingleMemberStringArrEmpty(SingleMemberStringArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 0) fail("SingleMemberStringArrEmpty " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberStringArrEmpty " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassArrEmpty(AnnotatedElement e) { -+ checkSingleMemberClassArrEmpty(e.getAnnotation(SingleMemberClassArray.class), e); -+ } -+ static void checkSingleMemberClassArrEmpty(SingleMemberClassArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 0) fail("SingleMemberClassArrEmpty " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberClassArrEmpty " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumArrEmpty(AnnotatedElement e) { -+ checkSingleMemberEnumArrEmpty(e.getAnnotation(SingleMemberEnumArray.class), e); -+ } -+ static void checkSingleMemberEnumArrEmpty(SingleMemberEnumArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 0) fail("SingleMemberEnumArrEmpty " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumArrEmpty " + e + ": " + t); -+ } -+ } -+ -+ // Single member array (one element array) -+ static void checkSingleMemberByteArrOne(AnnotatedElement e) { -+ checkSingleMemberByteArrOne(e.getAnnotation(SingleMemberByteArray.class), e); -+ } -+ static void checkSingleMemberByteArrOne(SingleMemberByteArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != (byte)1) -+ fail("SingleMemberByteArrOne " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberByteArrOne " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortArrOne(AnnotatedElement e) { -+ checkSingleMemberShortArrOne(e.getAnnotation(SingleMemberShortArray.class), e); -+ } -+ static void checkSingleMemberShortArrOne(SingleMemberShortArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != (short)2) -+ fail("SingleMemberShortArrOne " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberShortArrOne " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntArrOne(AnnotatedElement e) { -+ checkSingleMemberIntArrOne(e.getAnnotation(SingleMemberIntArray.class), e); -+ } -+ static void checkSingleMemberIntArrOne(SingleMemberIntArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != 3) -+ fail("SingleMemberIntArrOne " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberIntArrOne " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongArrOne(AnnotatedElement e) { -+ checkSingleMemberLongArrOne(e.getAnnotation(SingleMemberLongArray.class), e); -+ } -+ static void checkSingleMemberLongArrOne(SingleMemberLongArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != 4L) -+ fail("SingleMemberLongArrOne " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberLongArrOne " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharArrOne(AnnotatedElement e) { -+ checkSingleMemberCharArrOne(e.getAnnotation(SingleMemberCharArray.class), e); -+ } -+ static void checkSingleMemberCharArrOne(SingleMemberCharArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != '5') -+ fail("SingleMemberCharArrOne " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberCharArrOne " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatArrOne(AnnotatedElement e) { -+ checkSingleMemberFloatArrOne(e.getAnnotation(SingleMemberFloatArray.class), e); -+ } -+ static void checkSingleMemberFloatArrOne(SingleMemberFloatArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != 6.0f) -+ fail("SingleMemberFloatArrOne " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatArrOne " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleArrOne(AnnotatedElement e) { -+ checkSingleMemberDoubleArrOne(e.getAnnotation(SingleMemberDoubleArray.class), e); -+ } -+ static void checkSingleMemberDoubleArrOne(SingleMemberDoubleArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != 7.0) -+ fail("SingleMemberDoubleArrOne " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleArrOne " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanArrOne(AnnotatedElement e) { -+ checkSingleMemberBooleanArrOne(e.getAnnotation(SingleMemberBooleanArray.class), e); -+ } -+ static void checkSingleMemberBooleanArrOne(SingleMemberBooleanArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || !a.value()[0]) -+ fail("SingleMemberBooleanArrOne " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanArrOne " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringArrOne(AnnotatedElement e) { -+ checkSingleMemberStringArrOne(e.getAnnotation(SingleMemberStringArray.class), e); -+ } -+ static void checkSingleMemberStringArrOne(SingleMemberStringArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || !(a.value()[0].equals("custom"))) -+ fail("SingleMemberStringArrOne " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberStringArrOne " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassArrOne(AnnotatedElement e) { -+ checkSingleMemberClassArrOne(e.getAnnotation(SingleMemberClassArray.class), e); -+ } -+ static void checkSingleMemberClassArrOne(SingleMemberClassArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != Map.class) -+ fail("SingleMemberClassArrOne " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberClassArrOne " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumArrOne(AnnotatedElement e) { -+ checkSingleMemberEnumArrOne(e.getAnnotation(SingleMemberEnumArray.class), e); -+ } -+ static void checkSingleMemberEnumArrOne(SingleMemberEnumArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != Stooge.MOE) -+ fail("SingleMemberEnumArrOne " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumArrOne " + e + ": " + t); -+ } -+ } -+ -+ // Single member array (two element array) -+ static void checkSingleMemberByteArrTwo(AnnotatedElement e) { -+ checkSingleMemberByteArrTwo(e.getAnnotation(SingleMemberByteArray.class), e); -+ } -+ static void checkSingleMemberByteArrTwo(SingleMemberByteArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 2 || a.value()[0] != (byte)1 || a.value()[1] != (byte)2) -+ fail("SingleMemberByteArrTwo " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberByteArrTwo " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortArrTwo(AnnotatedElement e) { -+ checkSingleMemberShortArrTwo(e.getAnnotation(SingleMemberShortArray.class), e); -+ } -+ static void checkSingleMemberShortArrTwo(SingleMemberShortArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 2 || a.value()[0] != (short)2 || a.value()[1] != (short)3) -+ fail("SingleMemberShortArrTwo " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberShortArrTwo " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntArrTwo(AnnotatedElement e) { -+ checkSingleMemberIntArrTwo(e.getAnnotation(SingleMemberIntArray.class), e); -+ } -+ static void checkSingleMemberIntArrTwo(SingleMemberIntArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 2 || a.value()[0] != 3 || a.value()[1] != 4) -+ fail("SingleMemberIntArrTwo " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberIntArrTwo " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongArrTwo(AnnotatedElement e) { -+ checkSingleMemberLongArrTwo(e.getAnnotation(SingleMemberLongArray.class), e); -+ } -+ static void checkSingleMemberLongArrTwo(SingleMemberLongArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 2 || a.value()[0] != 4L || a.value()[1] != 5L) -+ fail("SingleMemberLongArrTwo " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberLongArrTwo " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharArrTwo(AnnotatedElement e) { -+ checkSingleMemberCharArrTwo(e.getAnnotation(SingleMemberCharArray.class), e); -+ } -+ static void checkSingleMemberCharArrTwo(SingleMemberCharArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 2 || a.value()[0] != '5' || a.value()[1] != '6') -+ fail("SingleMemberCharArrTwo " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberCharArrTwo " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatArrTwo(AnnotatedElement e) { -+ checkSingleMemberFloatArrTwo(e.getAnnotation(SingleMemberFloatArray.class), e); -+ } -+ static void checkSingleMemberFloatArrTwo(SingleMemberFloatArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 2 || a.value()[0] != 6.0f || a.value()[1] != 7.0f) -+ fail("SingleMemberFloatArrTwo " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatArrTwo " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleArrTwo(AnnotatedElement e) { -+ checkSingleMemberDoubleArrTwo(e.getAnnotation(SingleMemberDoubleArray.class), e); -+ } -+ static void checkSingleMemberDoubleArrTwo(SingleMemberDoubleArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 2 || a.value()[0] != 7.0 || a.value()[1] != 8.0) -+ fail("SingleMemberDoubleArrTwo " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleArrTwo " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanArrTwo(AnnotatedElement e) { -+ checkSingleMemberBooleanArrTwo(e.getAnnotation(SingleMemberBooleanArray.class), e); -+ } -+ static void checkSingleMemberBooleanArrTwo(SingleMemberBooleanArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 2 || !a.value()[0] || a.value()[1]) -+ fail("SingleMemberBooleanArrTwo " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanArrTwo " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringArrTwo(AnnotatedElement e) { -+ checkSingleMemberStringArrTwo(e.getAnnotation(SingleMemberStringArray.class), e); -+ } -+ static void checkSingleMemberStringArrTwo(SingleMemberStringArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 2 || !(a.value()[0].equals("custom")) || !(a.value()[1].equals("paint"))) -+ fail("SingleMemberStringArrTwo " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberStringArrTwo " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassArrTwo(AnnotatedElement e) { -+ checkSingleMemberClassArrTwo(e.getAnnotation(SingleMemberClassArray.class), e); -+ } -+ static void checkSingleMemberClassArrTwo(SingleMemberClassArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 2 || a.value()[0] != Map.class || a.value()[1] != Set.class) -+ fail("SingleMemberClassArrTwo " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberClassArrTwo " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumArrTwo(AnnotatedElement e) { -+ checkSingleMemberEnumArrTwo(e.getAnnotation(SingleMemberEnumArray.class), e); -+ } -+ static void checkSingleMemberEnumArrTwo(SingleMemberEnumArray a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 2 || a.value()[0] != Stooge.MOE || a.value()[1] != Stooge.CURLY) -+ fail("SingleMemberEnumArrTwo " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumArrTwo " + e + ": " + t); -+ } -+ } -+ -+ // Single member array with default (override) -+ static void checkSingleMemberByteArrOvrdDef(AnnotatedElement e) { -+ checkSingleMemberByteArrOvrdDef(e.getAnnotation(SingleMemberByteArrayDef.class), e); -+ } -+ static void checkSingleMemberByteArrOvrdDef(SingleMemberByteArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != (byte)1) -+ fail("SingleMemberByteArrOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberByteArrOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortArrOvrdDef(AnnotatedElement e) { -+ checkSingleMemberShortArrOvrdDef(e.getAnnotation(SingleMemberShortArrayDef.class), e); -+ } -+ static void checkSingleMemberShortArrOvrdDef(SingleMemberShortArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != (short)2) -+ fail("SingleMemberShortArrOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberShortArrOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntArrOvrdDef(AnnotatedElement e) { -+ checkSingleMemberIntArrOvrdDef(e.getAnnotation(SingleMemberIntArrayDef.class), e); -+ } -+ static void checkSingleMemberIntArrOvrdDef(SingleMemberIntArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != 3) -+ fail("SingleMemberIntArrOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberIntArrOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongArrOvrdDef(AnnotatedElement e) { -+ checkSingleMemberLongArrOvrdDef(e.getAnnotation(SingleMemberLongArrayDef.class), e); -+ } -+ static void checkSingleMemberLongArrOvrdDef(SingleMemberLongArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != 4L) -+ fail("SingleMemberLongArrOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberLongArrOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharArrOvrdDef(AnnotatedElement e) { -+ checkSingleMemberCharArrOvrdDef(e.getAnnotation(SingleMemberCharArrayDef.class), e); -+ } -+ static void checkSingleMemberCharArrOvrdDef(SingleMemberCharArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != '5') -+ fail("SingleMemberCharArrOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberCharArrOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatArrOvrdDef(AnnotatedElement e) { -+ checkSingleMemberFloatArrOvrdDef(e.getAnnotation(SingleMemberFloatArrayDef.class), e); -+ } -+ static void checkSingleMemberFloatArrOvrdDef(SingleMemberFloatArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != 6.0f) -+ fail("SingleMemberFloatArrOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatArrOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleArrOvrdDef(AnnotatedElement e) { -+ checkSingleMemberDoubleArrOvrdDef(e.getAnnotation(SingleMemberDoubleArrayDef.class), e); -+ } -+ static void checkSingleMemberDoubleArrOvrdDef(SingleMemberDoubleArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != 7.0) -+ fail("SingleMemberDoubleArrOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleArrOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanArrOvrdDef(AnnotatedElement e) { -+ checkSingleMemberBooleanArrOvrdDef(e.getAnnotation(SingleMemberBooleanArrayDef.class), e); -+ } -+ static void checkSingleMemberBooleanArrOvrdDef(SingleMemberBooleanArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || !a.value()[0]) -+ fail("SingleMemberBooleanArrOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanArrOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringArrOvrdDef(AnnotatedElement e) { -+ checkSingleMemberStringArrOvrdDef(e.getAnnotation(SingleMemberStringArrayDef.class), e); -+ } -+ static void checkSingleMemberStringArrOvrdDef(SingleMemberStringArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || !(a.value()[0].equals("custom"))) -+ fail("SingleMemberStringArrOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberStringArrOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassArrOvrdDef(AnnotatedElement e) { -+ checkSingleMemberClassArrOvrdDef(e.getAnnotation(SingleMemberClassArrayDef.class), e); -+ } -+ static void checkSingleMemberClassArrOvrdDef(SingleMemberClassArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != Map.class) -+ fail("SingleMemberClassArrOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberClassArrOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumArrOvrdDef(AnnotatedElement e) { -+ checkSingleMemberEnumArrOvrdDef(e.getAnnotation(SingleMemberEnumArrayDef.class), e); -+ } -+ static void checkSingleMemberEnumArrOvrdDef(SingleMemberEnumArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != Stooge.MOE) -+ fail("SingleMemberEnumArrOvrdDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumArrOvrdDef " + e + ": " + t); -+ } -+ } -+ -+ // Single member array with default (accept) -+ static void checkSingleMemberByteArrAcceptDef(AnnotatedElement e) { -+ checkSingleMemberByteArrAcceptDef(e.getAnnotation(SingleMemberByteArrayDef.class), e); -+ } -+ static void checkSingleMemberByteArrAcceptDef(SingleMemberByteArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != (byte)11) -+ fail("SingleMemberByteArrAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberByteArrAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberShortArrAcceptDef(AnnotatedElement e) { -+ checkSingleMemberShortArrAcceptDef(e.getAnnotation(SingleMemberShortArrayDef.class), e); -+ } -+ static void checkSingleMemberShortArrAcceptDef(SingleMemberShortArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != (short)12) -+ fail("SingleMemberShortArrAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberShortArrAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberIntArrAcceptDef(AnnotatedElement e) { -+ checkSingleMemberIntArrAcceptDef(e.getAnnotation(SingleMemberIntArrayDef.class), e); -+ } -+ static void checkSingleMemberIntArrAcceptDef(SingleMemberIntArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != 13) -+ fail("SingleMemberIntArrAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberIntArrAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberLongArrAcceptDef(AnnotatedElement e) { -+ checkSingleMemberLongArrAcceptDef(e.getAnnotation(SingleMemberLongArrayDef.class), e); -+ } -+ static void checkSingleMemberLongArrAcceptDef(SingleMemberLongArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != 14L) -+ fail("SingleMemberLongArrAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberLongArrAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberCharArrAcceptDef(AnnotatedElement e) { -+ checkSingleMemberCharArrAcceptDef(e.getAnnotation(SingleMemberCharArrayDef.class), e); -+ } -+ static void checkSingleMemberCharArrAcceptDef(SingleMemberCharArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != 'V') -+ fail("SingleMemberCharArrAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberCharArrAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberFloatArrAcceptDef(AnnotatedElement e) { -+ checkSingleMemberFloatArrAcceptDef(e.getAnnotation(SingleMemberFloatArrayDef.class), e); -+ } -+ static void checkSingleMemberFloatArrAcceptDef(SingleMemberFloatArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != 16.0f) -+ fail("SingleMemberFloatArrAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberFloatArrAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberDoubleArrAcceptDef(AnnotatedElement e) { -+ checkSingleMemberDoubleArrAcceptDef(e.getAnnotation(SingleMemberDoubleArrayDef.class), e); -+ } -+ static void checkSingleMemberDoubleArrAcceptDef(SingleMemberDoubleArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != 17.0) -+ fail("SingleMemberDoubleArrAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberDoubleArrAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberBooleanArrAcceptDef(AnnotatedElement e) { -+ checkSingleMemberBooleanArrAcceptDef(e.getAnnotation(SingleMemberBooleanArrayDef.class), e); -+ } -+ static void checkSingleMemberBooleanArrAcceptDef(SingleMemberBooleanArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0]) -+ fail("SingleMemberBooleanArrAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberBooleanArrAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberStringArrAcceptDef(AnnotatedElement e) { -+ checkSingleMemberStringArrAcceptDef(e.getAnnotation(SingleMemberStringArrayDef.class), e); -+ } -+ static void checkSingleMemberStringArrAcceptDef(SingleMemberStringArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || !(a.value()[0].equals("default"))) -+ fail("SingleMemberStringArrAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberStringArrAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberClassArrAcceptDef(AnnotatedElement e) { -+ checkSingleMemberClassArrAcceptDef(e.getAnnotation(SingleMemberClassArrayDef.class), e); -+ } -+ static void checkSingleMemberClassArrAcceptDef(SingleMemberClassArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != Class.class) -+ fail("SingleMemberClassArrAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberClassArrAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ static void checkSingleMemberEnumArrAcceptDef(AnnotatedElement e) { -+ checkSingleMemberEnumArrAcceptDef(e.getAnnotation(SingleMemberEnumArrayDef.class), e); -+ } -+ static void checkSingleMemberEnumArrAcceptDef(SingleMemberEnumArrayDef a, AnnotatedElement e) { -+ numTests++; -+ try { -+ if (a.value().length != 1 || a.value()[0] != Stooge.LARRY) -+ fail("SingleMemberEnumArrAcceptDef " + e + " = " + a.value()); -+ } catch(Throwable t) { -+ fail("SingleMemberEnumArrAcceptDef " + e + ": " + t); -+ } -+ } -+ -+ // Verfification methods for equals/hashCode/serialization -+ -+ static <T extends Annotation> void checkEquals(AnnotatedElement e1, AnnotatedElement e2, Class<T> annoType) { -+ numTests++; -+ T a1 = e1.getAnnotation(annoType); -+ T a2 = e2.getAnnotation(annoType); -+ try { -+ if (!a1.equals(a2)) -+ fail(a1 + " != " + a2); -+ if (a1.hashCode() != a2.hashCode()) -+ fail(a1 + ".hashCode() [" + a1.hashCode() + "] != " + a2 + " .hashCode()["+ a2.hashCode()+"]"); -+ if (!(a1.toString().equals(a2.toString()))) -+ fail(a1 + ".toString() != " + a2 + ".toString()"); -+ } catch(Throwable t) { -+ fail(a1 + " == " + a2 + ": " + t); -+ } -+ } -+ -+ static <T extends Annotation> void checkUnequals(AnnotatedElement e1, AnnotatedElement e2, Class<T> annoType) { -+ numTests++; -+ T a1 = e1.getAnnotation(annoType); -+ T a2 = e2.getAnnotation(annoType); -+ try { -+ if (a1.equals(a2)) -+ fail(a1 + " == " + a2); -+ if (a1.hashCode() == a2.hashCode()) -+ fail(a1 + ".hashCode() [" + a1.hashCode() + "] == " + a2 + " .hashCode()[" + a2.hashCode() + "]"); -+ if (a1.toString().equals(a2.toString())) -+ fail(a1 + ".toString() == " + a2 + ".toString()"); -+ } catch(Throwable t) { -+ fail(a1 + " != " + a2 + ": " + t); -+ } -+ } -+ -+ // Verfification method for serialization/deserialization -+ -+ static <T extends Annotation> void checkSerialization(AnnotatedElement e, Class<T> annoType) { -+ numTests++; -+ T a1 = e.getAnnotation(annoType); -+ Object a2 = deepCopy(a1); -+ try { -+ if (!a1.equals(a2)) -+ fail("Serialization: " + a1 + " != " + a2); -+ if (a1.hashCode() != a2.hashCode()) -+ fail("Serialization: " + a1 + ".hashCode() [" + a1.hashCode() + "] != " + a2 + " .hashCode()["+a2.hashCode()+"]"); -+ if (!(a1.toString().equals(a2.toString()))) -+ fail("Serialization: " + a1 + ".toString() != " + a2 + ".toString()"); -+ } catch(Throwable t) { -+ fail("Serialization: " + a1 + " == " + a2 + ": " + t); -+ } -+ } -+ -+ private static Object deepCopy(Object original) { -+ try { -+ ByteArrayOutputStream bos = new ByteArrayOutputStream(); -+ ObjectOutputStream oos = new ObjectOutputStream(bos); -+ oos.writeObject(original); -+ oos.flush(); -+ ByteArrayInputStream bin = new ByteArrayInputStream( -+ bos.toByteArray()); -+ ObjectInputStream ois = new ObjectInputStream(bin); -+ return ois.readObject(); -+ } catch(Exception e) { -+ throw new IllegalArgumentException(e); -+ } -+ } -+ -+ // Verification method for inheritance test -+ static void checkInheritence(AnnotatedElement e, boolean shouldHaveFoo, boolean shouldHaveBar) { -+ numTests++; -+ try { -+ boolean hasFoo = e.isAnnotationPresent(Foo.class); -+ boolean hasBar = e.isAnnotationPresent(Bar.class); -+ if (hasFoo != shouldHaveFoo || hasBar != shouldHaveBar) -+ fail("Inheritance(1): " + e +" - Foo: " + hasFoo + ", Bar: " + hasBar); -+ -+ // Now test getAnnotations -+ hasFoo = hasBar = false; -+ Annotation[] allAnnotations = e.getAnnotations(); -+ for (Annotation a : allAnnotations) { -+ if (a instanceof Foo) -+ hasFoo = true; -+ else if (a instanceof Bar) -+ hasBar = true; -+ } -+ if (hasFoo != shouldHaveFoo ||hasBar != shouldHaveBar) -+ fail("Inheritance(2): " + e +" - Foo: " + hasFoo + ", Bar: " + hasBar); -+ } catch(Throwable t) { -+ fail("Inheritance: " + e +": " + t); -+ } -+ } -+ -+ // Verification method for declared annotations test -+ static void checkDeclaredAnnotations(AnnotatedElement e, boolean shouldHaveFoo, boolean shouldHaveBar) { -+ numTests++; -+ try { -+ boolean hasFoo = false; -+ boolean hasBar = false; -+ Annotation[] declaredAnnotations = e.getDeclaredAnnotations(); -+ for (Annotation a : declaredAnnotations) { -+ if (a instanceof Foo) -+ hasFoo = true; -+ else if (a instanceof Bar) -+ hasBar = true; -+ } -+ if (hasFoo != shouldHaveFoo ||hasBar != shouldHaveBar) -+ fail("Declared annotations: " + e +" - Foo: " + hasFoo + ", Bar: " + hasBar); -+ } catch(Throwable t) { -+ fail("Declared annotations: " + e +": " + t); -+ } -+ } -+ -+ -+ // ANNOTATED METHODS -+ -+ @ScalarTypes ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = @Point(x = 1, y = 2) -+ ) -+ public void scalarTypesMethod() { } -+ -+ @ScalarTypesWithDefault ( ) -+ public void scalarTypesAcceptDefaultMethod() { } -+ -+ @ScalarTypesWithDefault ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE -+ ) -+ public void scalarTypesOverrideDefaultMethod() { } -+ -+ @ArrayTypes ( -+ b = { }, -+ s = { }, -+ i = { }, -+ l = { }, -+ c = { }, -+ f = { }, -+ d = { }, -+ bool = { }, -+ str = { }, -+ cls = { }, -+ e = { }, -+ a = { } -+ ) -+ public void emptyArrayTypesMethod() { } -+ -+ @ArrayTypes ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = { @Point(x = 1, y = 2) } -+ ) -+ public void singleElementArrayTypesMethod() { } -+ -+ @ArrayTypes ( -+ b = { 1, 2 }, -+ s = { 2, 3 }, -+ i = { 3, 4 }, -+ l = { 4L, 5L }, -+ c = { '5', '6' }, -+ f = { 6.0f, 7.0f }, -+ d = { 7.0, 8.0 }, -+ bool = { true, false }, -+ str = { "custom", "paint" }, -+ cls = { Map.class, Set.class }, -+ e = { Stooge.MOE, Stooge.CURLY }, -+ a = { @Point(x = 1, y = 2), @Point(x = 3, y = 4) } -+ ) -+ public void twoElementArrayTypesMethod() { } -+ -+ @ArrayTypesWithDefault ( -+ ) -+ public void arrayTypesAcceptDefaultMethod() { } -+ -+ @ArrayTypesWithDefault ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = { @Point(x = 1, y = 2) } -+ ) -+ public void arrayTypesOverrideDefaultMethod() { } -+ -+ // Marker -+ @Marker public void markerMethod() { } -+ -+ // Single-member (shorthand) -+ @SingleMemberByte(1) public void SingleMemberByte() {} -+ @SingleMemberShort(2) public void SingleMemberShort() {} -+ @SingleMemberInt(3) public void SingleMemberInt() {} -+ @SingleMemberLong(4L) public void SingleMemberLong() {} -+ @SingleMemberChar('5') public void SingleMemberChar() {} -+ @SingleMemberFloat(6.0f) public void SingleMemberFloat() {} -+ @SingleMemberDouble(7.0) public void SingleMemberDouble() {} -+ @SingleMemberBoolean(true) public void SingleMemberBoolean() {} -+ @SingleMemberString("custom") public void SingleMemberString() {} -+ @SingleMemberClass(Map.class) public void SingleMemberClass() {} -+ @SingleMemberEnum(Stooge.MOE) public void SingleMemberEnum() {} -+ -+ // Single-member with default (Override) -+ @SingleMemberByteWithDef(1) public void SingleMemberByteOvrdDef() {} -+ @SingleMemberShortWithDef(2) public void SingleMemberShortOvrdDef() {} -+ @SingleMemberIntWithDef(3) public void SingleMemberIntOvrdDef() {} -+ @SingleMemberLongWithDef(4L) public void SingleMemberLongOvrdDef() {} -+ @SingleMemberCharWithDef('5') public void SingleMemberCharOvrdDef() {} -+ @SingleMemberFloatWithDef(6.0f) public void SingleMemberFloatOvrdDef() {} -+ @SingleMemberDoubleWithDef(7.0) public void SingleMemberDoubleOvrdDef() {} -+ @SingleMemberBooleanWithDef(true) public void SingleMemberBooleanOvrdDef() {} -+ @SingleMemberStringWithDef("custom") public void SingleMemberStringOvrdDef() {} -+ @SingleMemberClassWithDef(Map.class) public void SingleMemberClassOvrdDef() {} -+ @SingleMemberEnumWithDef(Stooge.MOE) public void SingleMemberEnumOvrdDef() {} -+ -+ // Single-member with default (Accept) -+ @SingleMemberByteWithDef public void SingleMemberByteAcceptDef() {} -+ @SingleMemberShortWithDef public void SingleMemberShortAcceptDef() {} -+ @SingleMemberIntWithDef public void SingleMemberIntAcceptDef() {} -+ @SingleMemberLongWithDef public void SingleMemberLongAcceptDef() {} -+ @SingleMemberCharWithDef public void SingleMemberCharAcceptDef() {} -+ @SingleMemberFloatWithDef public void SingleMemberFloatAcceptDef() {} -+ @SingleMemberDoubleWithDef public void SingleMemberDoubleAcceptDef() {} -+ @SingleMemberBooleanWithDef public void SingleMemberBooleanAcceptDef() {} -+ @SingleMemberStringWithDef public void SingleMemberStringAcceptDef() {} -+ @SingleMemberClassWithDef public void SingleMemberClassAcceptDef() {} -+ @SingleMemberEnumWithDef public void SingleMemberEnumAcceptDef() {} -+ -+ // Single member array (empty array) -+ @SingleMemberByteArray({}) public void SingleMemberByteArrEmpty() {} -+ @SingleMemberShortArray({}) public void SingleMemberShortArrEmpty() {} -+ @SingleMemberIntArray({}) public void SingleMemberIntArrEmpty() {} -+ @SingleMemberLongArray({}) public void SingleMemberLongArrEmpty() {} -+ @SingleMemberCharArray({}) public void SingleMemberCharArrEmpty() {} -+ @SingleMemberFloatArray({}) public void SingleMemberFloatArrEmpty() {} -+ @SingleMemberDoubleArray({}) public void SingleMemberDoubleArrEmpty() {} -+ @SingleMemberBooleanArray({})public void SingleMemberBooleanArrEmpty() {} -+ @SingleMemberStringArray({}) public void SingleMemberStringArrEmpty() {} -+ @SingleMemberClassArray({}) public void SingleMemberClassArrEmpty() {} -+ @SingleMemberEnumArray({}) public void SingleMemberEnumArrEmpty() {} -+ -+ // Single member array (one-element shorthand) -+ @SingleMemberByteArray(1) public void SingleMemberByteArrOne() {} -+ @SingleMemberShortArray(2) public void SingleMemberShortArrOne() {} -+ @SingleMemberIntArray(3) public void SingleMemberIntArrOne() {} -+ @SingleMemberLongArray(4L) public void SingleMemberLongArrOne() {} -+ @SingleMemberCharArray('5') public void SingleMemberCharArrOne() {} -+ @SingleMemberFloatArray(6.0f) public void SingleMemberFloatArrOne() {} -+ @SingleMemberDoubleArray(7.0) public void SingleMemberDoubleArrOne() {} -+ @SingleMemberBooleanArray(true) public void SingleMemberBooleanArrOne() {} -+ @SingleMemberStringArray("custom") public void SingleMemberStringArrOne() {} -+ @SingleMemberClassArray(Map.class) public void SingleMemberClassArrOne() {} -+ @SingleMemberEnumArray(Stooge.MOE) public void SingleMemberEnumArrOne() {} -+ -+ // Single member array (two elements) -+ @SingleMemberByteArray({1, 2}) public void SingleMemberByteArrTwo() {} -+ @SingleMemberShortArray({2, 3}) public void SingleMemberShortArrTwo() {} -+ @SingleMemberIntArray({3, 4}) public void SingleMemberIntArrTwo() {} -+ @SingleMemberLongArray({4L, 5L}) public void SingleMemberLongArrTwo() {} -+ @SingleMemberCharArray({'5', '6'}) public void SingleMemberCharArrTwo() {} -+ @SingleMemberFloatArray({6.0f, 7.0f}) public void SingleMemberFloatArrTwo() {} -+ @SingleMemberDoubleArray({7.0, 8.0}) public void SingleMemberDoubleArrTwo() {} -+ @SingleMemberBooleanArray({true, false}) public void SingleMemberBooleanArrTwo(){} -+ @SingleMemberStringArray({"custom", "paint"}) public void SingleMemberStringArrTwo(){} -+ @SingleMemberClassArray({Map.class, Set.class}) public void SingleMemberClassArrTwo() {} -+ @SingleMemberEnumArray({Stooge.MOE, Stooge.CURLY}) public void SingleMemberEnumArrTwo() {} -+ -+ // Single member array with default (override) -+ @SingleMemberByteArrayDef(1) public void SingleMemberByteArrOvrdDef() {} -+ @SingleMemberShortArrayDef(2) public void SingleMemberShortArrOvrdDef() {} -+ @SingleMemberIntArrayDef(3) public void SingleMemberIntArrOvrdDef() {} -+ @SingleMemberLongArrayDef(4L) public void SingleMemberLongArrOvrdDef() {} -+ @SingleMemberCharArrayDef('5') public void SingleMemberCharArrOvrdDef() {} -+ @SingleMemberFloatArrayDef(6.0f) public void SingleMemberFloatArrOvrdDef() {} -+ @SingleMemberDoubleArrayDef(7.0) public void SingleMemberDoubleArrOvrdDef() {} -+ @SingleMemberBooleanArrayDef(true) public void SingleMemberBooleanArrOvrdDef(){} -+ @SingleMemberStringArrayDef("custom") public void SingleMemberStringArrOvrdDef() {} -+ @SingleMemberClassArrayDef(Map.class) public void SingleMemberClassArrOvrdDef() {} -+ @SingleMemberEnumArrayDef(Stooge.MOE) public void SingleMemberEnumArrOvrdDef() {} -+ -+ // Single member array with default - accept -+ @SingleMemberByteArrayDef public void SingleMemberByteArrAcceptDef() {} -+ @SingleMemberShortArrayDef public void SingleMemberShortArrAcceptDef() {} -+ @SingleMemberIntArrayDef public void SingleMemberIntArrAcceptDef() {} -+ @SingleMemberLongArrayDef public void SingleMemberLongArrAcceptDef() {} -+ @SingleMemberCharArrayDef public void SingleMemberCharArrAcceptDef() {} -+ @SingleMemberFloatArrayDef public void SingleMemberFloatArrAcceptDef() {} -+ @SingleMemberDoubleArrayDef public void SingleMemberDoubleArrAcceptDef() {} -+ @SingleMemberBooleanArrayDef public void SingleMemberBooleanArrAcceptDef() {} -+ @SingleMemberStringArrayDef public void SingleMemberStringArrAcceptDef() {} -+ @SingleMemberClassArrayDef public void SingleMemberClassArrAcceptDef() {} -+ @SingleMemberEnumArrayDef public void SingleMemberEnumArrAcceptDef() {} -+ -+ // ANNOTATED FIELDS -+ @ScalarTypes ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = @Point(x = 1, y = 2) -+ ) -+ public int scalarTypesField; -+ -+ @ScalarTypesWithDefault ( ) -+ public int scalarTypesAcceptDefaultField; -+ -+ @ScalarTypesWithDefault ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE -+ ) -+ public int scalarTypesOverrideDefaultField; -+ -+ @ArrayTypes ( -+ b = { }, -+ s = { }, -+ i = { }, -+ l = { }, -+ c = { }, -+ f = { }, -+ d = { }, -+ bool = { }, -+ str = { }, -+ cls = { }, -+ e = { }, -+ a = { } -+ ) -+ public int emptyArrayTypesField; -+ -+ @ArrayTypes ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = { @Point(x = 1, y = 2) } -+ ) -+ public int singleElementArrayTypesField; -+ -+ @ArrayTypes ( -+ b = { 1, 2 }, -+ s = { 2, 3 }, -+ i = { 3, 4 }, -+ l = { 4L, 5L }, -+ c = { '5', '6' }, -+ f = { 6.0f, 7.0f }, -+ d = { 7.0, 8.0 }, -+ bool = { true, false }, -+ str = { "custom", "paint" }, -+ cls = { Map.class, Set.class }, -+ e = { Stooge.MOE, Stooge.CURLY }, -+ a = { @Point(x = 1, y = 2), @Point(x = 3, y = 4) } -+ ) -+ public int twoElementArrayTypesField; -+ -+ @ArrayTypesWithDefault ( ) -+ public int arrayTypesAcceptDefaultField; -+ -+ @ArrayTypesWithDefault ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = { @Point(x = 1, y = 2) } -+ ) -+ public int arrayTypesOverrideDefaultField; -+ -+ @Marker public int markerField; -+ -+ // Single-member (shorthand) -+ @SingleMemberByte(1) public int SingleMemberByteField; -+ @SingleMemberShort(2) public int SingleMemberShortField; -+ @SingleMemberInt(3) public int SingleMemberIntField; -+ @SingleMemberLong(4L) public int SingleMemberLongField; -+ @SingleMemberChar('5') public int SingleMemberCharField; -+ @SingleMemberFloat(6.0f) public int SingleMemberFloatField; -+ @SingleMemberDouble(7.0) public int SingleMemberDoubleField; -+ @SingleMemberBoolean(true) public int SingleMemberBooleanField; -+ @SingleMemberString("custom") public int SingleMemberStringField; -+ @SingleMemberClass(Map.class) public int SingleMemberClassField; -+ @SingleMemberEnum(Stooge.MOE) public int SingleMemberEnumField; -+ -+ // Single-member with default (Override) -+ @SingleMemberByteWithDef(1) public int SingleMemberByteOvrdDefField; -+ @SingleMemberShortWithDef(2) public int SingleMemberShortOvrdDefField; -+ @SingleMemberIntWithDef(3) public int SingleMemberIntOvrdDefField; -+ @SingleMemberLongWithDef(4L) public int SingleMemberLongOvrdDefField; -+ @SingleMemberCharWithDef('5') public int SingleMemberCharOvrdDefField; -+ @SingleMemberFloatWithDef(6.0f) public int SingleMemberFloatOvrdDefField; -+ @SingleMemberDoubleWithDef(7.0) public int SingleMemberDoubleOvrdDefField; -+ @SingleMemberBooleanWithDef(true) public int SingleMemberBooleanOvrdDefField; -+ @SingleMemberStringWithDef("custom") public int SingleMemberStringOvrdDefField; -+ @SingleMemberClassWithDef(Map.class) public int SingleMemberClassOvrdDefField; -+ @SingleMemberEnumWithDef(Stooge.MOE) public int SingleMemberEnumOvrdDefField; -+ -+ // Single-member with default (Accept) -+ @SingleMemberByteWithDef public int SingleMemberByteAcceptDefField; -+ @SingleMemberShortWithDef public int SingleMemberShortAcceptDefField; -+ @SingleMemberIntWithDef public int SingleMemberIntAcceptDefField; -+ @SingleMemberLongWithDef public int SingleMemberLongAcceptDefField; -+ @SingleMemberCharWithDef public int SingleMemberCharAcceptDefField; -+ @SingleMemberFloatWithDef public int SingleMemberFloatAcceptDefField; -+ @SingleMemberDoubleWithDef public int SingleMemberDoubleAcceptDefField; -+ @SingleMemberBooleanWithDef public int SingleMemberBooleanAcceptDefField; -+ @SingleMemberStringWithDef public int SingleMemberStringAcceptDefField; -+ @SingleMemberClassWithDef public int SingleMemberClassAcceptDefField; -+ @SingleMemberEnumWithDef public int SingleMemberEnumAcceptDefField; -+ -+ // Single member array (empty array) -+ @SingleMemberByteArray({}) public int SingleMemberByteArrEmptyField; -+ @SingleMemberShortArray({}) public int SingleMemberShortArrEmptyField; -+ @SingleMemberIntArray({}) public int SingleMemberIntArrEmptyField; -+ @SingleMemberLongArray({}) public int SingleMemberLongArrEmptyField; -+ @SingleMemberCharArray({}) public int SingleMemberCharArrEmptyField; -+ @SingleMemberFloatArray({}) public int SingleMemberFloatArrEmptyField; -+ @SingleMemberDoubleArray({}) public int SingleMemberDoubleArrEmptyField; -+ @SingleMemberBooleanArray({})public int SingleMemberBooleanArrEmptyField; -+ @SingleMemberStringArray({}) public int SingleMemberStringArrEmptyField; -+ @SingleMemberClassArray({}) public int SingleMemberClassArrEmptyField; -+ @SingleMemberEnumArray({}) public int SingleMemberEnumArrEmptyField; -+ -+ // Single member array (one-element shorthand) -+ @SingleMemberByteArray(1) public int SingleMemberByteArrOneField; -+ @SingleMemberShortArray(2) public int SingleMemberShortArrOneField; -+ @SingleMemberIntArray(3) public int SingleMemberIntArrOneField; -+ @SingleMemberLongArray(4L) public int SingleMemberLongArrOneField; -+ @SingleMemberCharArray('5') public int SingleMemberCharArrOneField; -+ @SingleMemberFloatArray(6.0f) public int SingleMemberFloatArrOneField; -+ @SingleMemberDoubleArray(7.0) public int SingleMemberDoubleArrOneField; -+ @SingleMemberBooleanArray(true) public int SingleMemberBooleanArrOneField; -+ @SingleMemberStringArray("custom") public int SingleMemberStringArrOneField; -+ @SingleMemberClassArray(Map.class) public int SingleMemberClassArrOneField; -+ @SingleMemberEnumArray(Stooge.MOE) public int SingleMemberEnumArrOneField; -+ -+ // Single member array (two elements) -+ @SingleMemberByteArray({1, 2}) public int SingleMemberByteArrTwoField; -+ @SingleMemberShortArray({2, 3}) public int SingleMemberShortArrTwoField; -+ @SingleMemberIntArray({3, 4}) public int SingleMemberIntArrTwoField; -+ @SingleMemberLongArray({4L, 5L}) public int SingleMemberLongArrTwoField; -+ @SingleMemberCharArray({'5', '6'}) public int SingleMemberCharArrTwoField; -+ @SingleMemberFloatArray({6.0f, 7.0f}) public int SingleMemberFloatArrTwoField; -+ @SingleMemberDoubleArray({7.0, 8.0}) public int SingleMemberDoubleArrTwoField; -+ @SingleMemberBooleanArray({true,false}) public int SingleMemberBooleanArrTwoField; -+ @SingleMemberStringArray({"custom", "paint"}) public int SingleMemberStringArrTwoField; -+ @SingleMemberClassArray({Map.class, Set.class}) public int SingleMemberClassArrTwoField; -+ @SingleMemberEnumArray({Stooge.MOE, Stooge.CURLY}) public int SingleMemberEnumArrTwoField; -+ -+ // Single member array with default (override) -+ @SingleMemberByteArrayDef(1) public int SingleMemberByteArrOvrdDefField; -+ @SingleMemberShortArrayDef(2) public int SingleMemberShortArrOvrdDefField; -+ @SingleMemberIntArrayDef(3) public int SingleMemberIntArrOvrdDefField; -+ @SingleMemberLongArrayDef(4L) public int SingleMemberLongArrOvrdDefField; -+ @SingleMemberCharArrayDef('5') public int SingleMemberCharArrOvrdDefField; -+ @SingleMemberFloatArrayDef(6.0f) public int SingleMemberFloatArrOvrdDefField; -+ @SingleMemberDoubleArrayDef(7.0) public int SingleMemberDoubleArrOvrdDefField; -+ @SingleMemberBooleanArrayDef(true) public int SingleMemberBooleanArrOvrdDefField; -+ @SingleMemberStringArrayDef("custom") public int SingleMemberStringArrOvrdDefField; -+ @SingleMemberClassArrayDef(Map.class) public int SingleMemberClassArrOvrdDefField; -+ @SingleMemberEnumArrayDef(Stooge.MOE) public int SingleMemberEnumArrOvrdDefField; -+ -+ // Single member array with default - accept -+ @SingleMemberByteArrayDef public int SingleMemberByteArrAcceptDefField; -+ @SingleMemberShortArrayDef public int SingleMemberShortArrAcceptDefField; -+ @SingleMemberIntArrayDef public int SingleMemberIntArrAcceptDefField; -+ @SingleMemberLongArrayDef public int SingleMemberLongArrAcceptDefField; -+ @SingleMemberCharArrayDef public int SingleMemberCharArrAcceptDefField; -+ @SingleMemberFloatArrayDef public int SingleMemberFloatArrAcceptDefField; -+ @SingleMemberDoubleArrayDef public int SingleMemberDoubleArrAcceptDefField; -+ @SingleMemberBooleanArrayDef public int SingleMemberBooleanArrAcceptDefField; -+ @SingleMemberStringArrayDef public int SingleMemberStringArrAcceptDefField; -+ @SingleMemberClassArrayDef public int SingleMemberClassArrAcceptDefField; -+ @SingleMemberEnumArrayDef public int SingleMemberEnumArrAcceptDefField; -+ -+ // ANNOTATED ENUM CONSTANTS -+ enum TestType { -+ @ScalarTypes ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = @Point(x = 1, y = 2) -+ ) -+ scalarTypesField, -+ -+ @ScalarTypesWithDefault ( ) -+ scalarTypesAcceptDefaultField, -+ -+ @ScalarTypesWithDefault ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE -+ ) -+ scalarTypesOverrideDefaultField, -+ -+ @ArrayTypes ( -+ b = { }, -+ s = { }, -+ i = { }, -+ l = { }, -+ c = { }, -+ f = { }, -+ d = { }, -+ bool = { }, -+ str = { }, -+ cls = { }, -+ e = { }, -+ a = { } -+ ) -+ emptyArrayTypesField, -+ -+ @ArrayTypes ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = @Point(x = 1, y = 2) -+ ) -+ singleElementArrayTypesField, -+ -+ @ArrayTypes ( -+ b = { 1, 2 }, -+ s = { 2, 3 }, -+ i = { 3, 4 }, -+ l = { 4L, 5L }, -+ c = { '5', '6' }, -+ f = { 6.0f, 7.0f }, -+ d = { 7.0, 8.0 }, -+ bool = { true, false }, -+ str = { "custom", "paint" }, -+ cls = { Map.class, Set.class }, -+ e = { Stooge.MOE, Stooge.CURLY }, -+ a = { @Point(x = 1, y = 2), @Point(x = 3, y = 4) } -+ ) -+ twoElementArrayTypesField, -+ -+ @ArrayTypesWithDefault ( ) -+ arrayTypesAcceptDefaultField, -+ -+ @ArrayTypesWithDefault ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = { @Point(x = 1, y = 2) } -+ ) -+ arrayTypesOverrideDefaultField, -+ -+ // marker -+ @Marker marker, -+ -+ // Single-member (shorthand) -+ @SingleMemberByte(1) SingleMemberByte, -+ @SingleMemberShort(2) SingleMemberShort, -+ @SingleMemberInt(3) SingleMemberInt, -+ @SingleMemberLong(4L) SingleMemberLong, -+ @SingleMemberChar('5') SingleMemberChar, -+ @SingleMemberFloat(6.0f) SingleMemberFloat, -+ @SingleMemberDouble(7.0) SingleMemberDouble, -+ @SingleMemberBoolean(true) SingleMemberBoolean, -+ @SingleMemberString("custom") SingleMemberString, -+ @SingleMemberClass(Map.class) SingleMemberClass, -+ @SingleMemberEnum(Stooge.MOE) SingleMemberEnum, -+ -+ // Single-member with default (Override) -+ @SingleMemberByteWithDef(1) SingleMemberByteOvrdDef, -+ @SingleMemberShortWithDef(2) SingleMemberShortOvrdDef, -+ @SingleMemberIntWithDef(3) SingleMemberIntOvrdDef, -+ @SingleMemberLongWithDef(4L) SingleMemberLongOvrdDef, -+ @SingleMemberCharWithDef('5') SingleMemberCharOvrdDef, -+ @SingleMemberFloatWithDef(6.0f) SingleMemberFloatOvrdDef, -+ @SingleMemberDoubleWithDef(7.0) SingleMemberDoubleOvrdDef, -+ @SingleMemberBooleanWithDef(true) SingleMemberBooleanOvrdDef, -+ @SingleMemberStringWithDef("custom") SingleMemberStringOvrdDef, -+ @SingleMemberClassWithDef(Map.class) SingleMemberClassOvrdDef, -+ @SingleMemberEnumWithDef(Stooge.MOE) SingleMemberEnumOvrdDef, -+ -+ // Single-member with default (Accept) -+ @SingleMemberByteWithDef SingleMemberByteAcceptDef, -+ @SingleMemberShortWithDef SingleMemberShortAcceptDef, -+ @SingleMemberIntWithDef SingleMemberIntAcceptDef, -+ @SingleMemberLongWithDef SingleMemberLongAcceptDef, -+ @SingleMemberCharWithDef SingleMemberCharAcceptDef, -+ @SingleMemberFloatWithDef SingleMemberFloatAcceptDef, -+ @SingleMemberDoubleWithDef SingleMemberDoubleAcceptDef, -+ @SingleMemberBooleanWithDef SingleMemberBooleanAcceptDef, -+ @SingleMemberStringWithDef SingleMemberStringAcceptDef, -+ @SingleMemberClassWithDef SingleMemberClassAcceptDef, -+ @SingleMemberEnumWithDef SingleMemberEnumAcceptDef, -+ -+ // Single member array (empty array) -+ @SingleMemberByteArray({}) SingleMemberByteArrEmpty, -+ @SingleMemberShortArray({}) SingleMemberShortArrEmpty, -+ @SingleMemberIntArray({}) SingleMemberIntArrEmpty, -+ @SingleMemberLongArray({}) SingleMemberLongArrEmpty, -+ @SingleMemberCharArray({}) SingleMemberCharArrEmpty, -+ @SingleMemberFloatArray({}) SingleMemberFloatArrEmpty, -+ @SingleMemberDoubleArray({}) SingleMemberDoubleArrEmpty, -+ @SingleMemberBooleanArray({})SingleMemberBooleanArrEmpty, -+ @SingleMemberStringArray({}) SingleMemberStringArrEmpty, -+ @SingleMemberClassArray({}) SingleMemberClassArrEmpty, -+ @SingleMemberEnumArray({}) SingleMemberEnumArrEmpty, -+ -+ // Single member array (one-element shorthand) -+ @SingleMemberByteArray(1) SingleMemberByteArrOne, -+ @SingleMemberShortArray(2) SingleMemberShortArrOne, -+ @SingleMemberIntArray(3) SingleMemberIntArrOne, -+ @SingleMemberLongArray(4L) SingleMemberLongArrOne, -+ @SingleMemberCharArray('5') SingleMemberCharArrOne, -+ @SingleMemberFloatArray(6.0f) SingleMemberFloatArrOne, -+ @SingleMemberDoubleArray(7.0) SingleMemberDoubleArrOne, -+ @SingleMemberBooleanArray(true) SingleMemberBooleanArrOne, -+ @SingleMemberStringArray("custom") SingleMemberStringArrOne, -+ @SingleMemberClassArray(Map.class) SingleMemberClassArrOne, -+ @SingleMemberEnumArray(Stooge.MOE) SingleMemberEnumArrOne, -+ -+ // Single member array (two elements) -+ @SingleMemberByteArray({1, 2}) SingleMemberByteArrTwo, -+ @SingleMemberShortArray({2, 3}) SingleMemberShortArrTwo, -+ @SingleMemberIntArray({3, 4}) SingleMemberIntArrTwo, -+ @SingleMemberLongArray({4L, 5L}) SingleMemberLongArrTwo, -+ @SingleMemberCharArray({'5', '6'}) SingleMemberCharArrTwo, -+ @SingleMemberFloatArray({6.0f, 7.0f}) SingleMemberFloatArrTwo, -+ @SingleMemberDoubleArray({7.0, 8.0}) SingleMemberDoubleArrTwo, -+ @SingleMemberBooleanArray({true,false}) SingleMemberBooleanArrTwo, -+ @SingleMemberStringArray({"custom", "paint"}) SingleMemberStringArrTwo, -+ @SingleMemberClassArray({Map.class, Set.class}) SingleMemberClassArrTwo, -+ @SingleMemberEnumArray({Stooge.MOE, Stooge.CURLY}) SingleMemberEnumArrTwo, -+ -+ // Single member array with default (override) -+ @SingleMemberByteArrayDef(1) SingleMemberByteArrOvrdDef, -+ @SingleMemberShortArrayDef(2) SingleMemberShortArrOvrdDef, -+ @SingleMemberIntArrayDef(3) SingleMemberIntArrOvrdDef, -+ @SingleMemberLongArrayDef(4L) SingleMemberLongArrOvrdDef, -+ @SingleMemberCharArrayDef('5') SingleMemberCharArrOvrdDef, -+ @SingleMemberFloatArrayDef(6.0f) SingleMemberFloatArrOvrdDef, -+ @SingleMemberDoubleArrayDef(7.0) SingleMemberDoubleArrOvrdDef, -+ @SingleMemberBooleanArrayDef(true) SingleMemberBooleanArrOvrdDef, -+ @SingleMemberStringArrayDef("custom") SingleMemberStringArrOvrdDef, -+ @SingleMemberClassArrayDef(Map.class) SingleMemberClassArrOvrdDef, -+ @SingleMemberEnumArrayDef(Stooge.MOE) SingleMemberEnumArrOvrdDef, -+ -+ // Single member array with default - accept -+ @SingleMemberByteArrayDef SingleMemberByteArrAcceptDef, -+ @SingleMemberShortArrayDef SingleMemberShortArrAcceptDef, -+ @SingleMemberIntArrayDef SingleMemberIntArrAcceptDef, -+ @SingleMemberLongArrayDef SingleMemberLongArrAcceptDef, -+ @SingleMemberCharArrayDef SingleMemberCharArrAcceptDef, -+ @SingleMemberFloatArrayDef SingleMemberFloatArrAcceptDef, -+ @SingleMemberDoubleArrayDef SingleMemberDoubleArrAcceptDef, -+ @SingleMemberBooleanArrayDef SingleMemberBooleanArrAcceptDef, -+ @SingleMemberStringArrayDef SingleMemberStringArrAcceptDef, -+ @SingleMemberClassArrayDef SingleMemberClassArrAcceptDef, -+ @SingleMemberEnumArrayDef SingleMemberEnumArrAcceptDef, -+ } -+ -+ // ANNOTATED CONSTRUCTORS -+ -+ @ScalarTypes ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = @Point(x = 1, y = 2) -+ ) -+ public UnitTest(Iterator it) { } // scalar types -+ -+ @ScalarTypesWithDefault ( ) -+ public UnitTest(Set s) { } // scalarTypesAcceptDefault -+ -+ @ScalarTypesWithDefault ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE -+ ) -+ public UnitTest(Map s) { } // scalarTypesOverrideDefault -+ -+ @ArrayTypes ( -+ b = { }, -+ s = { }, -+ i = { }, -+ l = { }, -+ c = { }, -+ f = { }, -+ d = { }, -+ bool = { }, -+ str = { }, -+ cls = { }, -+ e = { }, -+ a = { } -+ ) -+ public UnitTest(List l){ } // emptyArrayTypes -+ -+ @ArrayTypes ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = @Point(x = 1, y = 2) -+ ) -+ public UnitTest(Collection c) { } // singleElementArrayTypes -+ -+ @ArrayTypes ( -+ b = { 1, 2 }, -+ s = { 2, 3 }, -+ i = { 3, 4 }, -+ l = { 4L, 5L }, -+ c = { '5', '6' }, -+ f = { 6.0f, 7.0f }, -+ d = { 7.0, 8.0 }, -+ bool = { true, false }, -+ str = { "custom", "paint" }, -+ cls = { Map.class, Set.class }, -+ e = { Stooge.MOE, Stooge.CURLY }, -+ a = { @Point(x = 1, y = 2), @Point(x = 3, y = 4) } -+ ) -+ public UnitTest(SortedSet ss) { } // twoElementArrayTypes -+ -+ @ArrayTypesWithDefault ( ) -+ public UnitTest(SortedMap sm) { } // arrayTypesAcceptDefault -+ -+ @ArrayTypesWithDefault ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = { @Point(x = 1, y = 2) } -+ ) -+ public UnitTest(RandomAccess r) { } // arrayTypesOverrideDefault -+ -+ // Marker -+ @Marker public UnitTest() { } // marker -+ -+ // Single-member (shorthand) -+ @SingleMemberByte(1) public UnitTest(byte b) { } -+ @SingleMemberShort(2) public UnitTest(short s) { } -+ @SingleMemberInt(3) public UnitTest(int i) { } -+ @SingleMemberLong(4L) public UnitTest(long l) { } -+ @SingleMemberChar('5') public UnitTest(char c) { } -+ @SingleMemberFloat(6.0f) public UnitTest(float f) { } -+ @SingleMemberDouble(7.0) public UnitTest(double d) { } -+ @SingleMemberBoolean(true) public UnitTest(boolean b) { } -+ @SingleMemberString("custom") public UnitTest(String s) { } -+ @SingleMemberClass(Map.class) public UnitTest(Class c) { } -+ @SingleMemberEnum(Stooge.MOE) public UnitTest(Enum e) { } -+ -+ // Single-member with default (Override) -+ @SingleMemberByteWithDef(1) public UnitTest(byte b, Set s) { } -+ @SingleMemberShortWithDef(2) public UnitTest(short s, Set x) { } -+ @SingleMemberIntWithDef(3) public UnitTest(int i, Set s) { } -+ @SingleMemberLongWithDef(4L) public UnitTest(long l, Set s) { } -+ @SingleMemberCharWithDef('5') public UnitTest(char c, Set s) { } -+ @SingleMemberFloatWithDef(6.0f) public UnitTest(float f, Set s) { } -+ @SingleMemberDoubleWithDef(7.0) public UnitTest(double d, Set s) { } -+ @SingleMemberBooleanWithDef(true) public UnitTest(boolean b, Set s) { } -+ @SingleMemberStringWithDef("custom") public UnitTest(String s, Set x) { } -+ @SingleMemberClassWithDef(Map.class) public UnitTest(Class c, Set s) { } -+ @SingleMemberEnumWithDef(Stooge.MOE) public UnitTest(Enum e, Set s) { } -+ -+ // Single-member with default (Accept) -+ @SingleMemberByteWithDef public UnitTest(byte b, Map m) { } -+ @SingleMemberShortWithDef public UnitTest(short s, Map m) { } -+ @SingleMemberIntWithDef public UnitTest(int i, Map m) { } -+ @SingleMemberLongWithDef public UnitTest(long l, Map m) { } -+ @SingleMemberCharWithDef public UnitTest(char c, Map m) { } -+ @SingleMemberFloatWithDef public UnitTest(float f, Map m) { } -+ @SingleMemberDoubleWithDef public UnitTest(double d, Map m) { } -+ @SingleMemberBooleanWithDef public UnitTest(boolean b, Map m) { } -+ @SingleMemberStringWithDef public UnitTest(String s, Map m) { } -+ @SingleMemberClassWithDef public UnitTest(Class c, Map m) { } -+ @SingleMemberEnumWithDef public UnitTest(Enum e, Map m) { } -+ -+ // Single member array (empty array) -+ @SingleMemberByteArray({}) public UnitTest(byte[] b) { } -+ @SingleMemberShortArray({}) public UnitTest(short[] s) { } -+ @SingleMemberIntArray({}) public UnitTest(int[] i) { } -+ @SingleMemberLongArray({}) public UnitTest(long[] l) { } -+ @SingleMemberCharArray({}) public UnitTest(char[] c) { } -+ @SingleMemberFloatArray({}) public UnitTest(float[] f) { } -+ @SingleMemberDoubleArray({}) public UnitTest(double[] d) { } -+ @SingleMemberBooleanArray({})public UnitTest(boolean[] b) { } -+ @SingleMemberStringArray({}) public UnitTest(String[] s) { } -+ @SingleMemberClassArray({}) public UnitTest(Class[] c) { } -+ @SingleMemberEnumArray({}) public UnitTest(Enum[] e) { } -+ -+ // Single member array (one-element shorthand) -+ @SingleMemberByteArray(1) public UnitTest(byte[] b, Set s) { } -+ @SingleMemberShortArray(2) public UnitTest(short[] s, Set x) { } -+ @SingleMemberIntArray(3) public UnitTest(int[] i, Set s) { } -+ @SingleMemberLongArray(4L) public UnitTest(long[] l, Set s) { } -+ @SingleMemberCharArray('5') public UnitTest(char[] c, Set s) { } -+ @SingleMemberFloatArray(6.0f) public UnitTest(float[] f, Set s) { } -+ @SingleMemberDoubleArray(7.0) public UnitTest(double[] d, Set s) { } -+ @SingleMemberBooleanArray(true) public UnitTest(boolean[] b, Set s) { } -+ @SingleMemberStringArray("custom") public UnitTest(String[] s, Set x) { } -+ @SingleMemberClassArray(Map.class) public UnitTest(Class[] c, Set s) { } -+ @SingleMemberEnumArray(Stooge.MOE) public UnitTest(Enum[] e, Set s) { } -+ -+ // Single member array (two elements) -+ @SingleMemberByteArray({1, 2}) public UnitTest(byte[] b, Map m) { } -+ @SingleMemberShortArray({2, 3}) public UnitTest(short[] s, Map m) { } -+ @SingleMemberIntArray({3, 4}) public UnitTest(int[] i, Map m) { } -+ @SingleMemberLongArray({4L, 5L}) public UnitTest(long[] l, Map m) { } -+ @SingleMemberCharArray({'5', '6'}) public UnitTest(char[] c, Map m) { } -+ @SingleMemberFloatArray({6.0f, 7.0f}) public UnitTest(float[] f, Map m) { } -+ @SingleMemberDoubleArray({7.0, 8.0}) public UnitTest(double[] d, Map m) { } -+ @SingleMemberBooleanArray({true, false}) public UnitTest(boolean[] b, Map m) { } -+ @SingleMemberStringArray({"custom", "paint"}) public UnitTest(String[] s, Map m) { } -+ @SingleMemberClassArray({Map.class,Set.class}) public UnitTest(Class[] c, Map m) { } -+ @SingleMemberEnumArray({Stooge.MOE, Stooge.CURLY}) public UnitTest(Enum[] e, Map m) { } -+ -+ -+ // Single member array with default (override) -+ @SingleMemberByteArrayDef(1) public UnitTest(byte[] b, List l) { } -+ @SingleMemberShortArrayDef(2) public UnitTest(short[] s, List l) { } -+ @SingleMemberIntArrayDef(3) public UnitTest(int[] i, List l) { } -+ @SingleMemberLongArrayDef(4L) public UnitTest(long[] l, List x) { } -+ @SingleMemberCharArrayDef('5') public UnitTest(char[] c, List l) { } -+ @SingleMemberFloatArrayDef(6.0f) public UnitTest(float[] f, List l) { } -+ @SingleMemberDoubleArrayDef(7.0) public UnitTest(double[] d, List l) { } -+ @SingleMemberBooleanArrayDef(true) public UnitTest(boolean[] b, List l) { } -+ @SingleMemberStringArrayDef("custom") public UnitTest(String[] s, List l) { } -+ @SingleMemberClassArrayDef(Map.class) public UnitTest(Class[] c, List l) { } -+ @SingleMemberEnumArrayDef(Stooge.MOE) public UnitTest(Enum[] e, List l) { } -+ -+ // Single member array with default - accept -+ @SingleMemberByteArrayDef public UnitTest(byte[] b, Collection c) { } -+ @SingleMemberShortArrayDef public UnitTest(short[] s, Collection c) { } -+ @SingleMemberIntArrayDef public UnitTest(int[] i, Collection c) { } -+ @SingleMemberLongArrayDef public UnitTest(long[] l, Collection c) { } -+ @SingleMemberCharArrayDef public UnitTest(char[] c, Collection x) { } -+ @SingleMemberFloatArrayDef public UnitTest(float[] f, Collection c) { } -+ @SingleMemberDoubleArrayDef public UnitTest(double[] d, Collection c) { } -+ @SingleMemberBooleanArrayDef public UnitTest(boolean[] b, Collection c) { } -+ @SingleMemberStringArrayDef public UnitTest(String[] s, Collection c) { } -+ @SingleMemberClassArrayDef public UnitTest(Class[] c, Collection x) { } -+ @SingleMemberEnumArrayDef public UnitTest(Enum[] e, Collection c) { } -+ -+ // ANNOTATED PARAMETERS -+ -+ public void scalarTypesParam( -+ @ScalarTypes ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = @Point(x = 1, y = 2) -+ ) -+ int x) { } -+ -+ -+ public void scalarTypesAcceptDefaultParam( -+ @ScalarTypesWithDefault int x) { } -+ -+ public void scalarTypesOverrideDefaultParam( -+ @ScalarTypesWithDefault ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE -+ ) -+ int x) { } -+ -+ public void emptyArrayTypesParam( -+ @ArrayTypes ( -+ b = { }, -+ s = { }, -+ i = { }, -+ l = { }, -+ c = { }, -+ f = { }, -+ d = { }, -+ bool = { }, -+ str = { }, -+ cls = { }, -+ e = { }, -+ a = { } -+ ) -+ int x) { } -+ -+ public void singleElementArrayTypesParam( -+ @ArrayTypes ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = @Point(x = 1, y = 2) -+ ) -+ int x) { } -+ -+ public void twoElementArrayTypesParam( -+ @ArrayTypes ( -+ b = { 1, 2 }, -+ s = { 2, 3 }, -+ i = { 3, 4 }, -+ l = { 4L, 5L }, -+ c = { '5', '6' }, -+ f = { 6.0f, 7.0f }, -+ d = { 7.0, 8.0 }, -+ bool = { true, false }, -+ str = { "custom", "paint" }, -+ cls = { Map.class, Set.class }, -+ e = { Stooge.MOE, Stooge.CURLY }, -+ a = { @Point(x = 1, y = 2), @Point(x = 3, y = 4) } -+ ) -+ int x) { } -+ -+ public void arrayTypesAcceptDefaultParam( -+ @ArrayTypesWithDefault -+ int x) { } -+ -+ public void arrayTypesOverrideDefaultParam( -+ @ArrayTypesWithDefault ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = { @Point(x = 1, y = 2) } -+ ) -+ int x) { } -+ -+ // Marker -+ public void markerParam(@Marker int x) { } -+ -+ // Single-member (shorthand) -+ public void SingleMemberByteParam(@SingleMemberByte(1) int x) {} -+ public void SingleMemberShortParam(@SingleMemberShort(2) int x) {} -+ public void SingleMemberIntParam(@SingleMemberInt(3) int x) {} -+ public void SingleMemberLongParam(@SingleMemberLong(4L) int x) {} -+ public void SingleMemberCharParam(@SingleMemberChar('5') int x) {} -+ public void SingleMemberFloatParam(@SingleMemberFloat(6.0f) int x) {} -+ public void SingleMemberDoubleParam(@SingleMemberDouble(7.0) int x) {} -+ public void SingleMemberBooleanParam(@SingleMemberBoolean(true) int x) {} -+ public void SingleMemberStringParam(@SingleMemberString("custom") int x) {} -+ public void SingleMemberClassParam(@SingleMemberClass(Map.class) int x) {} -+ public void SingleMemberEnumParam(@SingleMemberEnum(Stooge.MOE) int x) {} -+ -+ // Single-member with default (Override) -+ public void SingleMemberByteOvrdDefParam(@SingleMemberByteWithDef(1) int x) {} -+ public void SingleMemberShortOvrdDefParam(@SingleMemberShortWithDef(2) int x) {} -+ public void SingleMemberIntOvrdDefParam(@SingleMemberIntWithDef(3) int x) {} -+ public void SingleMemberLongOvrdDefParam(@SingleMemberLongWithDef(4L) int x) {} -+ public void SingleMemberCharOvrdDefParam(@SingleMemberCharWithDef('5') int x) {} -+ public void SingleMemberFloatOvrdDefParam(@SingleMemberFloatWithDef(6.0f) int x) {} -+ public void SingleMemberDoubleOvrdDefParam(@SingleMemberDoubleWithDef(7.0) int x) {} -+ public void SingleMemberBooleanOvrdDefParam(@SingleMemberBooleanWithDef(true) int x) {} -+ public void SingleMemberStringOvrdDefParam(@SingleMemberStringWithDef("custom") int x) {} -+ public void SingleMemberClassOvrdDefParam(@SingleMemberClassWithDef(Map.class) int x) {} -+ public void SingleMemberEnumOvrdDefParam(@SingleMemberEnumWithDef(Stooge.MOE) int x) {} -+ -+ // Single-member with default (Accept) -+ public void SingleMemberByteAcceptDefParam(@SingleMemberByteWithDef int x) {} -+ public void SingleMemberShortAcceptDefParam(@SingleMemberShortWithDef int x) {} -+ public void SingleMemberIntAcceptDefParam(@SingleMemberIntWithDef int x) {} -+ public void SingleMemberLongAcceptDefParam(@SingleMemberLongWithDef int x) {} -+ public void SingleMemberCharAcceptDefParam(@SingleMemberCharWithDef int x) {} -+ public void SingleMemberFloatAcceptDefParam(@SingleMemberFloatWithDef int x) {} -+ public void SingleMemberDoubleAcceptDefParam(@SingleMemberDoubleWithDef int x) {} -+ public void SingleMemberBooleanAcceptDefParam(@SingleMemberBooleanWithDef int x){} -+ public void SingleMemberStringAcceptDefParam(@SingleMemberStringWithDef int x) {} -+ public void SingleMemberClassAcceptDefParam(@SingleMemberClassWithDef int x) {} -+ public void SingleMemberEnumAcceptDefParam(@SingleMemberEnumWithDef int x) {} -+ -+ // Single member array (empty array) -+ public void SingleMemberByteArrEmptyParam(@SingleMemberByteArray({}) int x) {} -+ public void SingleMemberShortArrEmptyParam(@SingleMemberShortArray({}) int x) {} -+ public void SingleMemberIntArrEmptyParam(@SingleMemberIntArray({}) int x) {} -+ public void SingleMemberLongArrEmptyParam(@SingleMemberLongArray({}) int x) {} -+ public void SingleMemberCharArrEmptyParam(@SingleMemberCharArray({}) int x) {} -+ public void SingleMemberFloatArrEmptyParam(@SingleMemberFloatArray({}) int x) {} -+ public void SingleMemberDoubleArrEmptyParam(@SingleMemberDoubleArray({}) int x) {} -+ public void SingleMemberBooleanArrEmptyParam(@SingleMemberBooleanArray({}) int x) {} -+ public void SingleMemberStringArrEmptyParam(@SingleMemberStringArray({}) int x) {} -+ public void SingleMemberClassArrEmptyParam(@SingleMemberClassArray({}) int x) {} -+ public void SingleMemberEnumArrEmptyParam(@SingleMemberEnumArray({}) int x) {} -+ -+ // Single member array (one-element shorthand) -+ public void SingleMemberByteArrOneParam(@SingleMemberByteArray(1) int x) {} -+ public void SingleMemberShortArrOneParam(@SingleMemberShortArray(2) int x) {} -+ public void SingleMemberIntArrOneParam(@SingleMemberIntArray(3) int x) {} -+ public void SingleMemberLongArrOneParam(@SingleMemberLongArray(4L) int x) {} -+ public void SingleMemberCharArrOneParam(@SingleMemberCharArray('5') int x) {} -+ public void SingleMemberFloatArrOneParam(@SingleMemberFloatArray(6.0f) int x) {} -+ public void SingleMemberDoubleArrOneParam(@SingleMemberDoubleArray(7.0) int x) {} -+ public void SingleMemberBooleanArrOneParam(@SingleMemberBooleanArray(true) int x) {} -+ public void SingleMemberStringArrOneParam(@SingleMemberStringArray("custom") int x) {} -+ public void SingleMemberClassArrOneParam(@SingleMemberClassArray(Map.class) int x) {} -+ public void SingleMemberEnumArrOneParam(@SingleMemberEnumArray(Stooge.MOE) int x) {} -+ -+ // Single member array (two elements) -+ public void SingleMemberByteArrTwoParam(@SingleMemberByteArray({1, 2}) int x) {} -+ public void SingleMemberShortArrTwoParam(@SingleMemberShortArray({2, 3}) int x) {} -+ public void SingleMemberIntArrTwoParam(@SingleMemberIntArray({3, 4}) int x) {} -+ public void SingleMemberLongArrTwoParam(@SingleMemberLongArray({4L, 5L}) int x) {} -+ public void SingleMemberCharArrTwoParam(@SingleMemberCharArray({'5', '6'}) int x) {} -+ public void SingleMemberFloatArrTwoParam(@SingleMemberFloatArray({6.0f, 7.0f}) int x) {} -+ public void SingleMemberDoubleArrTwoParam(@SingleMemberDoubleArray({7.0, 8.0}) int x) {} -+ public void SingleMemberBooleanArrTwoParam(@SingleMemberBooleanArray({true, false}) int x){} -+ public void SingleMemberStringArrTwoParam(@SingleMemberStringArray({"custom", "paint"}) int x) {} -+ public void SingleMemberClassArrTwoParam(@SingleMemberClassArray({Map.class, Set.class}) int x) {} -+ public void SingleMemberEnumArrTwoParam(@SingleMemberEnumArray({Stooge.MOE, Stooge.CURLY}) int x) {} -+ -+ // Single member array with default (override) -+ public void SingleMemberByteArrOvrdDefParam(@SingleMemberByteArrayDef(1) int x) {} -+ public void SingleMemberShortArrOvrdDefParam(@SingleMemberShortArrayDef(2) int x) {} -+ public void SingleMemberIntArrOvrdDefParam(@SingleMemberIntArrayDef(3) int x) {} -+ public void SingleMemberLongArrOvrdDefParam(@SingleMemberLongArrayDef(4L) int x) {} -+ public void SingleMemberCharArrOvrdDefParam(@SingleMemberCharArrayDef('5') int x) {} -+ public void SingleMemberFloatArrOvrdDefParam(@SingleMemberFloatArrayDef(6.0f) int x) {} -+ public void SingleMemberDoubleArrOvrdDefParam(@SingleMemberDoubleArrayDef(7.0) int x) {} -+ public void SingleMemberBooleanArrOvrdDefParam(@SingleMemberBooleanArrayDef(true) int x){} -+ public void SingleMemberStringArrOvrdDefParam(@SingleMemberStringArrayDef("custom") int x) {} -+ public void SingleMemberClassArrOvrdDefParam(@SingleMemberClassArrayDef(Map.class) int x) {} -+ public void SingleMemberEnumArrOvrdDefParam(@SingleMemberEnumArrayDef(Stooge.MOE) int x) {} -+ -+ // Single member array with default - accept -+ public void SingleMemberByteArrAcceptDefParam(@SingleMemberByteArrayDef int x) {} -+ public void SingleMemberShortArrAcceptDefParam(@SingleMemberShortArrayDef int x) {} -+ public void SingleMemberIntArrAcceptDefParam(@SingleMemberIntArrayDef int x) {} -+ public void SingleMemberLongArrAcceptDefParam(@SingleMemberLongArrayDef int x) {} -+ public void SingleMemberCharArrAcceptDefParam(@SingleMemberCharArrayDef int x) {} -+ public void SingleMemberFloatArrAcceptDefParam(@SingleMemberFloatArrayDef int x) {} -+ public void SingleMemberDoubleArrAcceptDefParam(@SingleMemberDoubleArrayDef int x) {} -+ public void SingleMemberBooleanArrAcceptDefParam(@SingleMemberBooleanArrayDef int x){} -+ public void SingleMemberStringArrAcceptDefParam(@SingleMemberStringArrayDef int x) {} -+ public void SingleMemberClassArrAcceptDefParam(@SingleMemberClassArrayDef int x) {} -+ public void SingleMemberEnumArrAcceptDefParam(@SingleMemberEnumArrayDef int x) {} -+} -+ -+// Helper types -+ -+enum Stooge { LARRY, MOE, CURLY } -+ -+@Target({}) @interface Point { int x(); int y(); } -+ -+// ANNOTATION TYPES -+ -+@Retention(RUNTIME) @interface ScalarTypes { -+ byte b(); -+ short s(); -+ int i(); -+ long l(); -+ char c(); -+ float f(); -+ double d(); -+ boolean bool(); -+ String str(); -+ Class cls(); -+ Stooge e(); -+ Point a(); -+} -+ -+@Retention(RUNTIME) @interface ScalarTypesWithDefault { -+ byte b() default 11; -+ short s() default 12; -+ int i() default 13; -+ long l() default 14; -+ char c() default 'V'; -+ float f() default 16.0f; -+ double d() default 17.0; -+ boolean bool() default false; -+ String str() default "default"; -+ Class cls() default Class.class; -+ Stooge e() default Stooge.LARRY; -+ Point a() default @Point(x = 11, y = 12); -+} -+ -+@Retention(RUNTIME) @interface ArrayTypes { -+ byte[] b(); -+ short[] s(); -+ int[] i(); -+ long[] l(); -+ char[] c(); -+ float[] f(); -+ double[] d(); -+ boolean[] bool(); -+ String[] str(); -+ Class[] cls(); -+ Stooge[] e(); -+ Point[] a(); -+} -+ -+@Retention(RUNTIME) @interface ArrayTypesWithDefault { -+ byte[] b() default { 11 }; -+ short[] s() default { 12 }; -+ int[] i() default { 13 }; -+ long[] l() default { 14L }; -+ char[] c() default { 'V' }; -+ float[] f() default { 16.0f }; -+ double[] d() default { 17.0 }; -+ boolean[] bool() default { false }; -+ String[] str() default { "default" }; -+ Class[] cls() default { Class.class }; -+ Stooge[] e() default { Stooge.LARRY }; -+ Point[] a() default { @Point(x = 11, y = 12) }; -+} -+ -+@Retention(RUNTIME) @interface Marker { } -+ -+@Retention(RUNTIME) @interface SingleMemberByte { byte value(); } -+@Retention(RUNTIME) @interface SingleMemberShort { short value(); } -+@Retention(RUNTIME) @interface SingleMemberInt { int value(); } -+@Retention(RUNTIME) @interface SingleMemberLong { long value(); } -+@Retention(RUNTIME) @interface SingleMemberChar { char value(); } -+@Retention(RUNTIME) @interface SingleMemberFloat { float value(); } -+@Retention(RUNTIME) @interface SingleMemberDouble { double value(); } -+@Retention(RUNTIME) @interface SingleMemberBoolean { boolean value(); } -+@Retention(RUNTIME) @interface SingleMemberString { String value(); } -+@Retention(RUNTIME) @interface SingleMemberClass { Class value(); } -+@Retention(RUNTIME) @interface SingleMemberEnum { Stooge value(); } -+ -+@Retention(RUNTIME) @interface SingleMemberByteWithDef { byte value() default 11; } -+@Retention(RUNTIME) @interface SingleMemberShortWithDef { short value() default 12; } -+@Retention(RUNTIME) @interface SingleMemberIntWithDef { int value() default 13; } -+@Retention(RUNTIME) @interface SingleMemberLongWithDef { long value() default 14; } -+@Retention(RUNTIME) @interface SingleMemberCharWithDef { char value() default 'V'; } -+@Retention(RUNTIME) @interface SingleMemberFloatWithDef { float value() default 16.0f; } -+@Retention(RUNTIME) @interface SingleMemberDoubleWithDef { double value() default 17.0; } -+@Retention(RUNTIME) @interface SingleMemberBooleanWithDef { boolean value() default false; } -+@Retention(RUNTIME) @interface SingleMemberStringWithDef { String value() default "default"; } -+@Retention(RUNTIME) @interface SingleMemberClassWithDef { Class value() default Class.class; } -+@Retention(RUNTIME) @interface SingleMemberEnumWithDef { Stooge value() default Stooge.LARRY; } -+ -+@Retention(RUNTIME) @interface SingleMemberByteArray { byte[] value(); } -+@Retention(RUNTIME) @interface SingleMemberShortArray { short[] value(); } -+@Retention(RUNTIME) @interface SingleMemberIntArray { int[] value(); } -+@Retention(RUNTIME) @interface SingleMemberLongArray { long[] value(); } -+@Retention(RUNTIME) @interface SingleMemberCharArray { char[] value(); } -+@Retention(RUNTIME) @interface SingleMemberFloatArray { float[] value(); } -+@Retention(RUNTIME) @interface SingleMemberDoubleArray { double[] value(); } -+@Retention(RUNTIME) @interface SingleMemberBooleanArray { boolean[] value(); } -+@Retention(RUNTIME) @interface SingleMemberStringArray { String[] value(); } -+@Retention(RUNTIME) @interface SingleMemberClassArray { Class[] value(); } -+@Retention(RUNTIME) @interface SingleMemberEnumArray { Stooge[] value(); } -+ -+@Retention(RUNTIME) @interface SingleMemberByteArrayDef { byte[] value() default { 11 }; } -+@Retention(RUNTIME) @interface SingleMemberShortArrayDef { short[] value() default { 12 }; } -+@Retention(RUNTIME) @interface SingleMemberIntArrayDef { int[] value() default { 13 }; } -+@Retention(RUNTIME) @interface SingleMemberLongArrayDef { long[] value() default { 14 }; } -+@Retention(RUNTIME) @interface SingleMemberCharArrayDef { char[] value() default { 'V' }; } -+@Retention(RUNTIME) @interface SingleMemberFloatArrayDef { float[] value() default { 16.0f };} -+@Retention(RUNTIME) @interface SingleMemberDoubleArrayDef { double[] value() default { 17.0 }; } -+@Retention(RUNTIME) @interface SingleMemberBooleanArrayDef { boolean[] value() default { false };} -+@Retention(RUNTIME) @interface SingleMemberStringArrayDef { -+ String[] value() default {"default"}; -+} -+@Retention(RUNTIME) @interface SingleMemberClassArrayDef { -+ Class[] value() default {Class.class}; -+} -+@Retention(RUNTIME) @interface SingleMemberEnumArrayDef { -+ Stooge[] value() default {Stooge.LARRY}; -+} -+ -+// Annotation types for inheritance and declared-annotations tests -+@Inherited @Retention(RUNTIME) @interface Foo { } -+ @Retention(RUNTIME) @interface Bar { } -+ -+ -+ // ANNOTATED CLASSES -+ -+ @ScalarTypes ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = @Point(x = 1, y = 2) -+ ) -+ class scalarTypesClass { } -+ -+ @ScalarTypesWithDefault ( ) -+ class scalarTypesAcceptDefaultClass { } -+ -+ @ScalarTypesWithDefault ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE -+ ) -+ class scalarTypesOverrideDefaultClass { } -+ -+ @ArrayTypes ( -+ b = { }, -+ s = { }, -+ i = { }, -+ l = { }, -+ c = { }, -+ f = { }, -+ d = { }, -+ bool = { }, -+ str = { }, -+ cls = { }, -+ e = { }, -+ a = { } -+ ) -+ class emptyArrayTypesClass { } -+ -+ @ArrayTypes ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = @Point(x = 1, y = 2) -+ ) -+ class singleElementArrayTypesClass { } -+ -+ @ArrayTypes ( -+ b = { 1, 2 }, -+ s = { 2, 3 }, -+ i = { 3, 4 }, -+ l = { 4L, 5L }, -+ c = { '5', '6' }, -+ f = { 6.0f, 7.0f }, -+ d = { 7.0, 8.0 }, -+ bool = { true, false }, -+ str = { "custom", "paint" }, -+ cls = { Map.class, Set.class }, -+ e = { Stooge.MOE, Stooge.CURLY }, -+ a = { @Point(x = 1, y = 2), @Point(x = 3, y = 4) } -+ ) -+ class twoElementArrayTypesClass { } -+ -+ @ArrayTypesWithDefault ( -+ ) -+ class arrayTypesAcceptDefaultClass { } -+ -+ @ArrayTypesWithDefault ( -+ b = 1, -+ s = 2, -+ i = 3, -+ l = 4L, -+ c = '5', -+ f = 6.0f, -+ d = 7.0, -+ bool = true, -+ str = "custom", -+ cls = Map.class, -+ e = Stooge.MOE, -+ a = { @Point(x = 1, y = 2) } -+ ) -+ class arrayTypesOverrideDefaultClass { } -+ -+ @Marker class markerClass { } -+ -+ // Single-member (shorthand) -+ @SingleMemberByte(1) class SingleMemberByteClass { } -+ @SingleMemberShort(2) class SingleMemberShortClass { } -+ @SingleMemberInt(3) class SingleMemberIntClass { } -+ @SingleMemberLong(4L) class SingleMemberLongClass { } -+ @SingleMemberChar('5') class SingleMemberCharClass { } -+ @SingleMemberFloat(6.0f) class SingleMemberFloatClass { } -+ @SingleMemberDouble(7.0) class SingleMemberDoubleClass { } -+ @SingleMemberBoolean(true) class SingleMemberBooleanClass { } -+ @SingleMemberString("custom") class SingleMemberStringClass { } -+ @SingleMemberClass(Map.class) class SingleMemberClassClass { } -+ @SingleMemberEnum(Stooge.MOE) class SingleMemberEnumClass { } -+ -+ // Single-member with default (Override) -+ @SingleMemberByteWithDef(1) class SingleMemberByteOvrdDefClass { } -+ @SingleMemberShortWithDef(2) class SingleMemberShortOvrdDefClass { } -+ @SingleMemberIntWithDef(3) class SingleMemberIntOvrdDefClass { } -+ @SingleMemberLongWithDef(4L) class SingleMemberLongOvrdDefClass { } -+ @SingleMemberCharWithDef('5') class SingleMemberCharOvrdDefClass { } -+ @SingleMemberFloatWithDef(6.0f) class SingleMemberFloatOvrdDefClass { } -+ @SingleMemberDoubleWithDef(7.0) class SingleMemberDoubleOvrdDefClass { } -+ @SingleMemberBooleanWithDef(true) class SingleMemberBooleanOvrdDefClass { } -+ @SingleMemberStringWithDef("custom") class SingleMemberStringOvrdDefClass { } -+ @SingleMemberClassWithDef(Map.class) class SingleMemberClassOvrdDefClass { } -+ @SingleMemberEnumWithDef(Stooge.MOE) class SingleMemberEnumOvrdDefClass { } -+ -+ // Single-member with default (Accept) -+ @SingleMemberByteWithDef class SingleMemberByteAcceptDefClass { } -+ @SingleMemberShortWithDef class SingleMemberShortAcceptDefClass { } -+ @SingleMemberIntWithDef class SingleMemberIntAcceptDefClass { } -+ @SingleMemberLongWithDef class SingleMemberLongAcceptDefClass { } -+ @SingleMemberCharWithDef class SingleMemberCharAcceptDefClass { } -+ @SingleMemberFloatWithDef class SingleMemberFloatAcceptDefClass { } -+ @SingleMemberDoubleWithDef class SingleMemberDoubleAcceptDefClass { } -+ @SingleMemberBooleanWithDef class SingleMemberBooleanAcceptDefClass { } -+ @SingleMemberStringWithDef class SingleMemberStringAcceptDefClass { } -+ @SingleMemberClassWithDef class SingleMemberClassAcceptDefClass { } -+ @SingleMemberEnumWithDef class SingleMemberEnumAcceptDefClass { } -+ -+ // Single member array (empty array) -+ @SingleMemberByteArray({}) class SingleMemberByteArrEmptyClass { } -+ @SingleMemberShortArray({}) class SingleMemberShortArrEmptyClass { } -+ @SingleMemberIntArray({}) class SingleMemberIntArrEmptyClass { } -+ @SingleMemberLongArray({}) class SingleMemberLongArrEmptyClass { } -+ @SingleMemberCharArray({}) class SingleMemberCharArrEmptyClass { } -+ @SingleMemberFloatArray({}) class SingleMemberFloatArrEmptyClass { } -+ @SingleMemberDoubleArray({}) class SingleMemberDoubleArrEmptyClass { } -+ @SingleMemberBooleanArray({})class SingleMemberBooleanArrEmptyClass { } -+ @SingleMemberStringArray({}) class SingleMemberStringArrEmptyClass { } -+ @SingleMemberClassArray({}) class SingleMemberClassArrEmptyClass { } -+ @SingleMemberEnumArray({}) class SingleMemberEnumArrEmptyClass { } -+ -+ // Single member array (one-element shorthand) -+ @SingleMemberByteArray(1) class SingleMemberByteArrOneClass { } -+ @SingleMemberShortArray(2) class SingleMemberShortArrOneClass { } -+ @SingleMemberIntArray(3) class SingleMemberIntArrOneClass { } -+ @SingleMemberLongArray(4L) class SingleMemberLongArrOneClass { } -+ @SingleMemberCharArray('5') class SingleMemberCharArrOneClass { } -+ @SingleMemberFloatArray(6.0f) class SingleMemberFloatArrOneClass { } -+ @SingleMemberDoubleArray(7.0) class SingleMemberDoubleArrOneClass { } -+ @SingleMemberBooleanArray(true) class SingleMemberBooleanArrOneClass { } -+ @SingleMemberStringArray("custom") class SingleMemberStringArrOneClass { } -+ @SingleMemberClassArray(Map.class) class SingleMemberClassArrOneClass { } -+ @SingleMemberEnumArray(Stooge.MOE) class SingleMemberEnumArrOneClass { } -+ -+ // Single member array (two elements) -+ @SingleMemberByteArray({1, 2}) class SingleMemberByteArrTwoClass { } -+ @SingleMemberShortArray({2, 3}) class SingleMemberShortArrTwoClass { } -+ @SingleMemberIntArray({3, 4}) class SingleMemberIntArrTwoClass { } -+ @SingleMemberLongArray({4L, 5L}) class SingleMemberLongArrTwoClass { } -+ @SingleMemberCharArray({'5', '6'}) class SingleMemberCharArrTwoClass { } -+ @SingleMemberFloatArray({6.0f, 7.0f}) class SingleMemberFloatArrTwoClass { } -+ @SingleMemberDoubleArray({7.0, 8.0}) class SingleMemberDoubleArrTwoClass { } -+ @SingleMemberBooleanArray({true,false}) class SingleMemberBooleanArrTwoClass { } -+ @SingleMemberStringArray({"custom", "paint"}) class SingleMemberStringArrTwoClass { } -+ @SingleMemberClassArray({Map.class, Set.class}) class SingleMemberClassArrTwoClass { } -+ @SingleMemberEnumArray({Stooge.MOE, Stooge.CURLY}) class SingleMemberEnumArrTwoClass { } -+ -+ // Single member array with default (override) -+ @SingleMemberByteArrayDef(1) class SingleMemberByteArrOvrdDefClass { } -+ @SingleMemberShortArrayDef(2) class SingleMemberShortArrOvrdDefClass { } -+ @SingleMemberIntArrayDef(3) class SingleMemberIntArrOvrdDefClass { } -+ @SingleMemberLongArrayDef(4L) class SingleMemberLongArrOvrdDefClass { } -+ @SingleMemberCharArrayDef('5') class SingleMemberCharArrOvrdDefClass { } -+ @SingleMemberFloatArrayDef(6.0f) class SingleMemberFloatArrOvrdDefClass { } -+ @SingleMemberDoubleArrayDef(7.0) class SingleMemberDoubleArrOvrdDefClass { } -+ @SingleMemberBooleanArrayDef(true) class SingleMemberBooleanArrOvrdDefClass { } -+ @SingleMemberStringArrayDef("custom") class SingleMemberStringArrOvrdDefClass { } -+ @SingleMemberClassArrayDef(Map.class) class SingleMemberClassArrOvrdDefClass { } -+ @SingleMemberEnumArrayDef(Stooge.MOE) class SingleMemberEnumArrOvrdDefClass { } -+ -+ // Single member array with default - accept -+ @SingleMemberByteArrayDef class SingleMemberByteArrAcceptDefClass { } -+ @SingleMemberShortArrayDef class SingleMemberShortArrAcceptDefClass { } -+ @SingleMemberIntArrayDef class SingleMemberIntArrAcceptDefClass { } -+ @SingleMemberLongArrayDef class SingleMemberLongArrAcceptDefClass { } -+ @SingleMemberCharArrayDef class SingleMemberCharArrAcceptDefClass { } -+ @SingleMemberFloatArrayDef class SingleMemberFloatArrAcceptDefClass { } -+ @SingleMemberDoubleArrayDef class SingleMemberDoubleArrAcceptDefClass { } -+ @SingleMemberBooleanArrayDef class SingleMemberBooleanArrAcceptDefClass { } -+ @SingleMemberStringArrayDef class SingleMemberStringArrAcceptDefClass { } -+ @SingleMemberClassArrayDef class SingleMemberClassArrAcceptDefClass { } -+ @SingleMemberEnumArrayDef class SingleMemberEnumArrAcceptDefClass { } -+ -+ // Annotated classes for inheritance and declared-annotations tests -+ @Foo @Bar class Grandpa { } -+ class Dad extends Grandpa { } -+ @Bar class Son extends Dad { }
--- a/patches/openjdk/bidi-tests.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,295 +0,0 @@ - -# HG changeset patch -# User peytoia -# Date 1224218043 -32400 -# Node ID 8ea49fa4c2f761eeb67711ba2fa5482cb3b0347c -# Parent 244f62312fec34c292e082ba3bb9c76aef30858e -6759521: Move Bidi test programs from closed to open. -Reviewed-by: okutsu - ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ openjdk/jdk/test/java/text/Bidi/BidiBug.java Fri Oct 17 13:34:03 2008 +0900 -@@ -0,0 +1,41 @@ -+/* -+ * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/* -+ * @test -+ * @bug 4827312 -+ * @summary verify that argument validity check is not fooled by overflow -+ */ -+public class BidiBug { -+ public static void main(String[] args) { -+ try { -+ byte buff[] = new byte[3000]; -+ java.text.Bidi bidi = new java.text.Bidi(new char[20],10,buff,Integer.MAX_VALUE-3,4,1); -+ } -+ catch (IllegalArgumentException e) { -+ System.out.println(e); -+ return; // success -+ } -+ throw new RuntimeException("didn't throw error, though we didn't crash either"); -+ } -+} ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ openjdk/jdk/test/java/text/Bidi/BidiEmbeddingTest.java Fri Oct 17 13:34:03 2008 +0900 -@@ -0,0 +1,132 @@ -+/* -+ * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/* -+ * @test -+ * @bug 4396492 4396496 4778510 -+ * @summary verify that the embedding values processed by the bidi code use negative values to -+ * indicate overrides, rather than using bit 7. Also tests Bidi without loading awt classes to -+ * confirm that Bidi can be used without awt. Verify that embedding level 0 is properly mapped -+ * to the base embedding level. -+ */ -+ -+import java.awt.Color; -+import java.awt.Frame; -+import java.awt.font.TextAttribute; -+import java.text.AttributedString; -+import java.text.Bidi; -+ -+public class BidiEmbeddingTest { -+ public static void main(String[] args) { -+ // to regress embedding test against old fix, call with an arg. A window will pop -+ // up causing awt lib to be loaded so the vm won't die with the unsatisfied link error. -+ if (args.length > 0) { -+ Frame f = new Frame(); -+ f.setSize(300, 300); -+ f.setBackground(Color.white); -+ f.show(); -+ } -+ -+ test1(); -+ test2(); -+ } -+ -+ static void test1() { -+ String target = "BACK WARDS"; -+ String str = "If this text is >" + target + "< the test passed."; -+ int start = str.indexOf(target); -+ int limit = start + target.length(); -+ -+ System.out.println("start: " + start + " limit: " + limit); -+ -+ AttributedString astr = new AttributedString(str); -+ astr.addAttribute(TextAttribute.BIDI_EMBEDDING, -+ new Integer(-1), -+ start, -+ limit); -+ -+ Bidi bidi = new Bidi(astr.getIterator()); -+ -+ for (int i = 0; i < bidi.getRunCount(); ++i) { -+ System.out.println("run " + i + -+ " from " + bidi.getRunStart(i) + -+ " to " + bidi.getRunLimit(i) + -+ " at level " + bidi.getRunLevel(i)); -+ } -+ -+ System.out.println(bidi); -+ -+ byte[] embs = new byte[str.length() + 3]; -+ for (int i = start + 1; i < limit + 1; ++i) { -+ embs[i] = -1; -+ } -+ -+ Bidi bidi2 = new Bidi(str.toCharArray(), 0, embs, 1, str.length(), Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT); -+ for (int i = 0; i < bidi2.getRunCount(); ++i) { -+ System.out.println("run " + i + -+ " from " + bidi2.getRunStart(i) + -+ " to " + bidi2.getRunLimit(i) + -+ " at level " + bidi2.getRunLevel(i)); -+ } -+ -+ System.out.println(bidi2); -+ -+ if (bidi.getRunCount() != 3 || bidi2.getRunCount() != 3) { -+ throw new Error("Bidi run count incorrect"); -+ } -+ } -+ -+ // make sure BIDI_EMBEDDING values of 0 are mapped to base run direction, instead of flagging an error. -+ static void test2() { -+ String target = "BACK WARDS"; -+ String str = "If this text is >" + target + "< the test passed."; -+ int length = str.length(); -+ int start = str.indexOf(target); -+ int limit = start + target.length(); -+ -+ System.out.println("start: " + start + " limit: " + limit); -+ -+ AttributedString astr = new AttributedString(str); -+ astr.addAttribute(TextAttribute.RUN_DIRECTION, TextAttribute.RUN_DIRECTION_RTL); -+ -+ astr.addAttribute(TextAttribute.BIDI_EMBEDDING, -+ new Integer(-3), -+ start, -+ limit); -+ -+ Bidi bidi = new Bidi(astr.getIterator()); -+ -+ for (int i = 0; i < bidi.getRunCount(); ++i) { -+ System.out.println("run " + i + -+ " from " + bidi.getRunStart(i) + -+ " to " + bidi.getRunLimit(i) + -+ " at level " + bidi.getRunLevel(i)); -+ } -+ -+ System.out.println(bidi); -+ -+ if (bidi.getRunCount() != 6) { // runs of spaces and angles at embedding bound,s and final period, each get level 1 -+ throw new Error("Bidi embedding processing failed"); -+ } -+ } -+} ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ openjdk/jdk/test/java/text/Bidi/BidiSurrogateTest.java Fri Oct 17 13:34:03 2008 +0900 -@@ -0,0 +1,103 @@ -+/* -+ * Copyright (c) 2008 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+/* -+ * @test -+ * @bug 4888843 -+ * @summary verify that surrogate pairs representing codepoints with R or AL directionality -+ * and correctly recognized and reordered. -+ */ -+ -+import java.text.Bidi; -+ -+public class BidiSurrogateTest { -+ private static final String RTLS = new String(Character.toChars(0x10800)); // surrogate code point with R directionality -+ private static final String LTRS = new String(Character.toChars(0x107ff)); // surrogate code point with L directionality -+ private static final String LRE = "\u202a"; -+ private static final String RLE = "\u202b"; -+ private static final String PDF = "\u202c"; -+ -+ -+ public static void main(String[] args) { -+ new BidiSurrogateTest().test(); -+ } -+ -+ void test() { -+ test0(); -+ test1(); -+ } -+ -+ void test0() { -+ // test unpaired surrogates - should have L directionality -+ testRequiresBidi("\ud800", false); // unpaired lead surrogate -+ testRequiresBidi("\udc00", false); // unpaired trail surrogate -+ testRequiresBidi("\udc00\ud800", false); // out of order surrogates -+ testRequiresBidi("a\udc00b\ud800c", false); // out of order surrogates split -+ testRequiresBidi(LTRS, false); // supplementary with L -+ testRequiresBidi(RTLS, true); // supplementary with R -+ testRequiresBidi("a" + RTLS + "b", true); // R supplementary in LTR text -+ testRequiresBidi(LTRS + RTLS, true); // R supplementary in LTR supplementary text -+ testRequiresBidi(LRE, false); // LRE lone embedding -+ testRequiresBidi(RLE, true); // RLE lone embedding -+ testRequiresBidi(PDF, false); // PDF lone pop embedding -+ } -+ -+ void testRequiresBidi(String string, boolean requiresBidi) { -+ char[] text = string.toCharArray(); -+ if (Bidi.requiresBidi(text, 0, text.length) != requiresBidi) { -+ throw new RuntimeException("testRequiresBidi failed with '" + string + "', " + requiresBidi); -+ } -+ } -+ -+ void test1() { -+ // test that strings with surrogate runs process surrogate directionality ok -+ testBidi("This is a string with " + LTRS + " in it.", false); -+ testBidi("This is a string with \ud800 in it.", false); -+ testBidi("This is a string with \u0640 in it.", 22, 1); -+ testBidi(RTLS, true); -+ testBidi("This is a string with " + RTLS + RTLS + RTLS + " in it.", 22, 6); -+ } -+ -+ void testBidi(String string, boolean directionIsRTL) { -+ Bidi bidi = new Bidi(string, Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT); -+ if (bidi.isMixed()) { -+ throw new RuntimeException("bidi is mixed"); -+ } -+ if (bidi.isRightToLeft() != directionIsRTL) { -+ throw new RuntimeException("bidi is not " + (directionIsRTL ? "rtl" : "ltr")); -+ } -+ } -+ -+ void testBidi(String string, int rtlstart, int rtllength) { -+ Bidi bidi = new Bidi(string, Bidi.DIRECTION_DEFAULT_LEFT_TO_RIGHT); -+ for (int i = 0; i < bidi.getRunCount(); ++i) { -+ if ((bidi.getRunLevel(i) & 1) != 0) { -+ if (bidi.getRunStart(i) != rtlstart || -+ bidi.getRunLimit(i) != rtlstart + rtllength) { -+ throw new RuntimeException("first rtl run didn't match " + rtlstart + ", " + rtllength); -+ } -+ break; -+ } -+ } -+ } -+} -
--- a/patches/security/20100330/6633872.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,443 +0,0 @@ ---- openjdk.orig/jdk/src/share/classes/java/security/ProtectionDomain.java Mon Mar 15 10:28:30 2010 -+++ openjdk/jdk/src/share/classes/java/security/ProtectionDomain.java Mon Mar 15 10:28:30 2010 -@@ -1,5 +1,5 @@ - /* -- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -25,9 +25,15 @@ - - package java.security; - -+import java.util.ArrayList; -+import java.util.Collections; - import java.util.Enumeration; - import java.util.List; --import java.util.ArrayList; -+import java.util.Map; -+import java.util.WeakHashMap; -+import sun.misc.JavaSecurityProtectionDomainAccess; -+import static sun.misc.JavaSecurityProtectionDomainAccess.ProtectionDomainCache; -+import sun.misc.SharedSecrets; - import sun.security.util.Debug; - import sun.security.util.SecurityConstants; - -@@ -72,6 +78,11 @@ - or dynamic (via a policy refresh) */ - private boolean staticPermissions; - -+ /* -+ * An object used as a key when the ProtectionDomain is stored in a Map. -+ */ -+ final Key key = new Key(); -+ - private static final Debug debug = Debug.getInstance("domain"); - - /** -@@ -238,7 +249,7 @@ - /** - * Convert a ProtectionDomain to a String. - */ -- public String toString() { -+ @Override public String toString() { - String pals = "<no principals>"; - if (principals != null && principals.length > 0) { - StringBuilder palBuf = new StringBuilder("(principals "); -@@ -396,4 +407,29 @@ - - return mergedPerms; - } -+ -+ /** -+ * Used for storing ProtectionDomains as keys in a Map. -+ */ -+ final class Key {} -+ -+ static { -+ SharedSecrets.setJavaSecurityProtectionDomainAccess( -+ new JavaSecurityProtectionDomainAccess() { -+ public ProtectionDomainCache getProtectionDomainCache() { -+ return new ProtectionDomainCache() { -+ private final Map<Key, PermissionCollection> map = -+ Collections.synchronizedMap -+ (new WeakHashMap<Key, PermissionCollection>()); -+ public void put(ProtectionDomain pd, -+ PermissionCollection pc) { -+ map.put((pd == null ? null : pd.key), pc); -+ } -+ public PermissionCollection get(ProtectionDomain pd) { -+ return pd == null ? map.get(null) : map.get(pd.key); -+ } -+ }; -+ } -+ }); -+ } - } ---- openjdk.orig/jdk/src/share/classes/java/security/Policy.java Mon Mar 15 10:28:30 2010 -+++ openjdk/jdk/src/share/classes/java/security/Policy.java Mon Mar 15 10:28:30 2010 -@@ -1,5 +1,5 @@ - /* -- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -28,22 +28,19 @@ - - import java.io.*; - import java.lang.RuntimePermission; -+import java.lang.reflect.*; - import java.net.MalformedURLException; - import java.net.URL; - import java.util.Enumeration; - import java.util.Hashtable; --import java.util.Vector; --import java.util.StringTokenizer; - import java.util.PropertyPermission; -- --import java.lang.reflect.*; -- -+import java.util.StringTokenizer; -+import java.util.Vector; - import java.util.WeakHashMap; --import sun.security.util.Debug; - import sun.security.jca.GetInstance; -+import sun.security.util.Debug; - import sun.security.util.SecurityConstants; - -- - /** - * A Policy object is responsible for determining whether code executing - * in the Java runtime environment has permission to perform a -@@ -113,8 +110,8 @@ - - private static final Debug debug = Debug.getInstance("policy"); - -- // Cache mapping ProtectionDomain to PermissionCollection -- private WeakHashMap<ProtectionDomain, PermissionCollection> pdMapping; -+ // Cache mapping ProtectionDomain.Key to PermissionCollection -+ private WeakHashMap<ProtectionDomain.Key, PermissionCollection> pdMapping; - - /** package private for AccessControlContext */ - static boolean isSet() -@@ -307,7 +304,7 @@ - synchronized (p) { - if (p.pdMapping == null) { - p.pdMapping = -- new WeakHashMap<ProtectionDomain, PermissionCollection>(); -+ new WeakHashMap<ProtectionDomain.Key, PermissionCollection>(); - } - } - -@@ -323,7 +320,7 @@ - - synchronized (p.pdMapping) { - // cache of pd to permissions -- p.pdMapping.put(policyDomain, policyPerms); -+ p.pdMapping.put(policyDomain.key, policyPerms); - } - } - return; -@@ -638,7 +635,7 @@ - } - - synchronized (pdMapping) { -- pc = pdMapping.get(domain); -+ pc = pdMapping.get(domain.key); - } - - if (pc != null) { -@@ -697,7 +694,7 @@ - } - - synchronized (pdMapping) { -- pc = pdMapping.get(domain); -+ pc = pdMapping.get(domain.key); - } - - if (pc != null) { -@@ -711,7 +708,7 @@ - - synchronized (pdMapping) { - // cache it -- pdMapping.put(domain, pc); -+ pdMapping.put(domain.key, pc); - } - - return pc.implies(permission); -@@ -747,21 +744,25 @@ - this.params = params; - } - -- public String getType() { return type; } -+ @Override public String getType() { return type; } - -- public Policy.Parameters getParameters() { return params; } -+ @Override public Policy.Parameters getParameters() { return params; } - -- public Provider getProvider() { return p; } -+ @Override public Provider getProvider() { return p; } - -+ @Override - public PermissionCollection getPermissions(CodeSource codesource) { - return spi.engineGetPermissions(codesource); - } -+ @Override - public PermissionCollection getPermissions(ProtectionDomain domain) { - return spi.engineGetPermissions(domain); - } -+ @Override - public boolean implies(ProtectionDomain domain, Permission perm) { - return spi.engineImplies(domain, perm); - } -+ @Override - public void refresh() { - spi.engineRefresh(); - } -@@ -803,7 +804,7 @@ - * @exception SecurityException - if this PermissionCollection object - * has been marked readonly - */ -- public void add(Permission permission) { -+ @Override public void add(Permission permission) { - perms.add(permission); - } - -@@ -816,7 +817,7 @@ - * @return true if "permission" is implied by the permissions in - * the collection, false if not. - */ -- public boolean implies(Permission permission) { -+ @Override public boolean implies(Permission permission) { - return perms.implies(permission); - } - -@@ -826,7 +827,7 @@ - * - * @return an enumeration of all the Permissions. - */ -- public Enumeration<Permission> elements() { -+ @Override public Enumeration<Permission> elements() { - return perms.elements(); - } - } ---- openjdk.orig/jdk/src/share/classes/sun/misc/SharedSecrets.java Mon Mar 15 10:28:31 2010 -+++ openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java Mon Mar 15 10:28:30 2010 -@@ -1,5 +1,5 @@ - /* -- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -47,6 +47,7 @@ - private static JavaIODeleteOnExitAccess javaIODeleteOnExitAccess; - private static JavaNetAccess javaNetAccess; - private static JavaIOFileDescriptorAccess javaIOFileDescriptorAccess; -+ private static JavaSecurityProtectionDomainAccess javaSecurityProtectionDomainAccess; - - public static JavaUtilJarAccess javaUtilJarAccess() { - if (javaUtilJarAccess == null) { -@@ -110,4 +111,16 @@ - return javaIOFileDescriptorAccess; - } - -+ public static void setJavaSecurityProtectionDomainAccess -+ (JavaSecurityProtectionDomainAccess jspda) { -+ javaSecurityProtectionDomainAccess = jspda; -+ } -+ -+ public static JavaSecurityProtectionDomainAccess -+ getJavaSecurityProtectionDomainAccess() { -+ if (javaSecurityProtectionDomainAccess == null) -+ unsafe.ensureClassInitialized(java.security.ProtectionDomain.class); -+ -+ return javaSecurityProtectionDomainAccess; -+ } - } ---- /dev/null Mon Mar 15 10:28:31 2010 -+++ openjdk/jdk/src/share/classes/sun/misc/JavaSecurityProtectionDomainAccess.java Mon Mar 15 10:28:31 2010 -@@ -0,0 +1,40 @@ -+/* -+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. Sun designates this -+ * particular file as subject to the "Classpath" exception as provided -+ * by Sun in the LICENSE file that accompanied this code. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+package sun.misc; -+ -+import java.security.PermissionCollection; -+import java.security.ProtectionDomain; -+ -+public interface JavaSecurityProtectionDomainAccess { -+ interface ProtectionDomainCache { -+ void put(ProtectionDomain pd, PermissionCollection pc); -+ PermissionCollection get(ProtectionDomain pd); -+ } -+ /** -+ * Returns the ProtectionDomainCache. -+ */ -+ ProtectionDomainCache getProtectionDomainCache(); -+} ---- openjdk.orig/jdk/src/share/classes/sun/security/provider/PolicyFile.java Mon Mar 15 10:28:31 2010 -+++ openjdk/jdk/src/share/classes/sun/security/provider/PolicyFile.java Mon Mar 15 10:28:31 2010 -@@ -1,5 +1,5 @@ - /* -- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -66,6 +66,9 @@ - import javax.sound.sampled.AudioPermission; - import javax.net.ssl.SSLPermission; - */ -+import sun.misc.JavaSecurityProtectionDomainAccess; -+import static sun.misc.JavaSecurityProtectionDomainAccess.ProtectionDomainCache; -+import sun.misc.SharedSecrets; - import sun.security.util.Password; - import sun.security.util.PolicyUtil; - import sun.security.util.PropertyExpander; -@@ -1108,7 +1111,7 @@ - /** - * Refreshes the policy object by re-reading all the policy files. - */ -- public void refresh() { -+ @Override public void refresh() { - init(url); - } - -@@ -1125,9 +1128,10 @@ - * - * @see java.security.ProtectionDomain - */ -+ @Override - public boolean implies(ProtectionDomain pd, Permission p) { - PolicyInfo pi = policyInfo.get(); -- Map<ProtectionDomain, PermissionCollection> pdMap = pi.getPdMapping(); -+ ProtectionDomainCache pdMap = pi.getPdMapping(); - - PermissionCollection pc = pdMap.get(pd); - -@@ -1173,6 +1177,7 @@ - * @return the Permissions granted to the provided - * <code>ProtectionDomain</code>. - */ -+ @Override - public PermissionCollection getPermissions(ProtectionDomain domain) { - Permissions perms = new Permissions(); - -@@ -1208,6 +1213,7 @@ - * - * @return the set of permissions according to the policy. - */ -+ @Override - public PermissionCollection getPermissions(CodeSource codesource) { - return getPermissions(new Permissions(), codesource); - } -@@ -2200,7 +2206,7 @@ - return codesource; - } - -- public String toString(){ -+ @Override public String toString(){ - StringBuilder sb = new StringBuilder(); - sb.append(ResourcesMgr.getString("(")); - sb.append(getCodeSource()); -@@ -2336,7 +2342,7 @@ - * - * @return false. - */ -- public boolean implies(Permission p) { -+ @Override public boolean implies(Permission p) { - return false; - } - -@@ -2353,7 +2359,7 @@ - * type (class) name, permission name, actions, and - * certificates as this object. - */ -- public boolean equals(Object obj) { -+ @Override public boolean equals(Object obj) { - if (obj == this) - return true; - -@@ -2401,7 +2407,7 @@ - * - * @return a hash code value for this object. - */ -- public int hashCode() { -+ @Override public int hashCode() { - int hash = type.hashCode(); - if (name != null) - hash ^= name.hashCode(); -@@ -2420,7 +2426,7 @@ - * - * @return the empty string "". - */ -- public String getActions() { -+ @Override public String getActions() { - return ""; - } - -@@ -2447,7 +2453,7 @@ - * - * @return information about this SelfPermission. - */ -- public String toString() { -+ @Override public String toString() { - return "(SelfPermission " + type + " " + name + " " + actions + ")"; - } - } -@@ -2469,7 +2475,7 @@ - final Map aliasMapping; - - // Maps ProtectionDomain to PermissionCollection -- private final Map<ProtectionDomain, PermissionCollection>[] pdMapping; -+ private final ProtectionDomainCache[] pdMapping; - private java.util.Random random; - - PolicyInfo(int numCaches) { -@@ -2478,16 +2484,17 @@ - Collections.synchronizedList(new ArrayList<PolicyEntry>(2)); - aliasMapping = Collections.synchronizedMap(new HashMap(11)); - -- pdMapping = new Map[numCaches]; -+ pdMapping = new ProtectionDomainCache[numCaches]; -+ JavaSecurityProtectionDomainAccess jspda -+ = SharedSecrets.getJavaSecurityProtectionDomainAccess(); - for (int i = 0; i < numCaches; i++) { -- pdMapping[i] = Collections.synchronizedMap -- (new WeakHashMap<ProtectionDomain, PermissionCollection>()); -+ pdMapping[i] = jspda.getProtectionDomainCache(); - } - if (numCaches > 1) { - random = new java.util.Random(); - } - } -- Map<ProtectionDomain, PermissionCollection> getPdMapping() { -+ ProtectionDomainCache getPdMapping() { - if (pdMapping.length == 1) { - return pdMapping[0]; - } else {
--- a/patches/security/20100330/6639665.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ ---- openjdk.orig/jdk/src/share/classes/java/lang/ThreadGroup.java Tue Nov 17 07:38:44 2009 -+++ openjdk/jdk/src/share/classes/java/lang/ThreadGroup.java Tue Nov 17 07:38:44 2009 -@@ -38,7 +38,7 @@ - */ - public - class ThreadGroup implements Thread.UncaughtExceptionHandler { -- ThreadGroup parent; -+ private final ThreadGroup parent; - String name; - int maxPriority; - boolean destroyed; -@@ -59,6 +59,7 @@ - private ThreadGroup() { // called from C code - this.name = "system"; - this.maxPriority = Thread.MAX_PRIORITY; -+ this.parent = null; - } - - /** -@@ -96,10 +97,10 @@ - * @since JDK1.0 - */ - public ThreadGroup(ThreadGroup parent, String name) { -- if (parent == null) { -- throw new NullPointerException(); -- } -- parent.checkAccess(); -+ this(checkParentAccess(parent), parent, name); -+ } -+ -+ private ThreadGroup(Void unused, ThreadGroup parent, String name) { - this.name = name; - this.maxPriority = parent.maxPriority; - this.daemon = parent.daemon; -@@ -108,6 +109,16 @@ - parent.add(this); - } - -+ /* -+ * @throws NullPointerException if the parent argument is {@code null} -+ * @throws SecurityException if the current thread cannot create a -+ * thread in the specified thread group. -+ */ -+ private static Void checkParentAccess(ThreadGroup parent) { -+ parent.checkAccess(); -+ return null; -+ } -+ - /** - * Returns the name of this thread group. - *
--- a/patches/security/20100330/6736390.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ ---- openjdk.orig/jdk/src/share/classes/java/io/File.java Mon Mar 15 18:39:19 2010 -+++ openjdk/jdk/src/share/classes/java/io/File.java Mon Mar 15 18:39:18 2010 -@@ -1936,11 +1936,12 @@ - private synchronized void readObject(java.io.ObjectInputStream s) - throws IOException, ClassNotFoundException - { -- s.defaultReadObject(); -+ ObjectInputStream.GetField fields = s.readFields(); -+ String pathField = (String)fields.get("path", null); - char sep = s.readChar(); // read the previous separator char - if (sep != separatorChar) -- this.path = this.path.replace(sep, separatorChar); -- this.path = fs.normalize(this.path); -+ pathField = pathField.replace(sep, separatorChar); -+ this.path = fs.normalize(pathField); - this.prefixLength = fs.prefixLength(this.path); - } -
--- a/patches/security/20100330/6745393.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1233 +0,0 @@ ---- openjdk.orig/jdk/src/share/classes/java/util/zip/Deflater.java Tue Nov 24 12:11:14 2009 -+++ openjdk/jdk/src/share/classes/java/util/zip/Deflater.java Tue Nov 24 12:11:13 2009 -@@ -1,5 +1,5 @@ - /* -- * Copyright 1996-2006 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -71,7 +71,8 @@ - */ - public - class Deflater { -- private long strm; -+ -+ private final ZStreamRef zsRef; - private byte[] buf = new byte[0]; - private int off, len; - private int level, strategy; -@@ -137,7 +138,7 @@ - public Deflater(int level, boolean nowrap) { - this.level = level; - this.strategy = DEFAULT_STRATEGY; -- strm = init(level, DEFAULT_STRATEGY, nowrap); -+ this.zsRef = new ZStreamRef(init(level, DEFAULT_STRATEGY, nowrap)); - } - - /** -@@ -165,7 +166,7 @@ - * @param len the length of the data - * @see Deflater#needsInput - */ -- public synchronized void setInput(byte[] b, int off, int len) { -+ public void setInput(byte[] b, int off, int len) { - if (b== null) { - throw new NullPointerException(); - } -@@ -172,9 +173,11 @@ - if (off < 0 || len < 0 || off > b.length - len) { - throw new ArrayIndexOutOfBoundsException(); - } -- this.buf = b; -- this.off = off; -- this.len = len; -+ synchronized (zsRef) { -+ this.buf = b; -+ this.off = off; -+ this.len = len; -+ } - } - - /** -@@ -199,14 +202,17 @@ - * @see Inflater#inflate - * @see Inflater#getAdler - */ -- public synchronized void setDictionary(byte[] b, int off, int len) { -- if (strm == 0 || b == null) { -+ public void setDictionary(byte[] b, int off, int len) { -+ if (b == null) { - throw new NullPointerException(); - } - if (off < 0 || len < 0 || off > b.length - len) { - throw new ArrayIndexOutOfBoundsException(); - } -- setDictionary(strm, b, off, len); -+ synchronized (zsRef) { -+ ensureOpen(); -+ setDictionary(zsRef.address(), b, off, len); -+ } - } - - /** -@@ -229,7 +235,7 @@ - * @exception IllegalArgumentException if the compression strategy is - * invalid - */ -- public synchronized void setStrategy(int strategy) { -+ public void setStrategy(int strategy) { - switch (strategy) { - case DEFAULT_STRATEGY: - case FILTERED: -@@ -238,9 +244,11 @@ - default: - throw new IllegalArgumentException(); - } -- if (this.strategy != strategy) { -- this.strategy = strategy; -- setParams = true; -+ synchronized (zsRef) { -+ if (this.strategy != strategy) { -+ this.strategy = strategy; -+ setParams = true; -+ } - } - } - -@@ -249,13 +257,15 @@ - * @param level the new compression level (0-9) - * @exception IllegalArgumentException if the compression level is invalid - */ -- public synchronized void setLevel(int level) { -+ public void setLevel(int level) { - if ((level < 0 || level > 9) && level != DEFAULT_COMPRESSION) { - throw new IllegalArgumentException("invalid compression level"); - } -- if (this.level != level) { -- this.level = level; -- setParams = true; -+ synchronized (zsRef) { -+ if (this.level != level) { -+ this.level = level; -+ setParams = true; -+ } - } - } - -@@ -273,8 +283,10 @@ - * When called, indicates that compression should end with the current - * contents of the input buffer. - */ -- public synchronized void finish() { -- finish = true; -+ public void finish() { -+ synchronized (zsRef) { -+ finish = true; -+ } - } - - /** -@@ -283,8 +295,10 @@ - * @return true if the end of the compressed data output stream has - * been reached - */ -- public synchronized boolean finished() { -- return finished; -+ public boolean finished() { -+ synchronized (zsRef) { -+ return finished; -+ } - } - - /** -@@ -297,7 +311,7 @@ - * @param len the maximum number of bytes of compressed data - * @return the actual number of bytes of compressed data - */ -- public synchronized int deflate(byte[] b, int off, int len) { -+ public int deflate(byte[] b, int off, int len) { - if (b == null) { - throw new NullPointerException(); - } -@@ -304,7 +318,9 @@ - if (off < 0 || len < 0 || off > b.length - len) { - throw new ArrayIndexOutOfBoundsException(); - } -- return deflateBytes(b, off, len); -+ synchronized (zsRef) { -+ return deflateBytes(zsRef.address(), b, off, len); -+ } - } - - /** -@@ -323,9 +339,11 @@ - * Returns the ADLER-32 value of the uncompressed data. - * @return the ADLER-32 value of the uncompressed data - */ -- public synchronized int getAdler() { -- ensureOpen(); -- return getAdler(strm); -+ public int getAdler() { -+ synchronized (zsRef) { -+ ensureOpen(); -+ return getAdler(zsRef.address()); -+ } - } - - /** -@@ -347,9 +365,11 @@ - * @return the total (non-negative) number of uncompressed bytes input so far - * @since 1.5 - */ -- public synchronized long getBytesRead() { -- ensureOpen(); -- return getBytesRead(strm); -+ public long getBytesRead() { -+ synchronized (zsRef) { -+ ensureOpen(); -+ return getBytesRead(zsRef.address()); -+ } - } - - /** -@@ -371,9 +391,11 @@ - * @return the total (non-negative) number of compressed bytes output so far - * @since 1.5 - */ -- public synchronized long getBytesWritten() { -- ensureOpen(); -- return getBytesWritten(strm); -+ public long getBytesWritten() { -+ synchronized (zsRef) { -+ ensureOpen(); -+ return getBytesWritten(zsRef.address()); -+ } - } - - /** -@@ -380,12 +402,14 @@ - * Resets deflater so that a new set of input data can be processed. - * Keeps current compression level and strategy settings. - */ -- public synchronized void reset() { -- ensureOpen(); -- reset(strm); -- finish = false; -- finished = false; -- off = len = 0; -+ public void reset() { -+ synchronized (zsRef) { -+ ensureOpen(); -+ reset(zsRef.address()); -+ finish = false; -+ finished = false; -+ off = len = 0; -+ } - } - - /** -@@ -395,11 +419,14 @@ - * finalize() method. Once this method is called, the behavior - * of the Deflater object is undefined. - */ -- public synchronized void end() { -- if (strm != 0) { -- end(strm); -- strm = 0; -- buf = null; -+ public void end() { -+ synchronized (zsRef) { -+ long addr = zsRef.address(); -+ zsRef.clear(); -+ if (addr != 0) { -+ end(addr); -+ buf = null; -+ } - } - } - -@@ -411,18 +438,19 @@ - } - - private void ensureOpen() { -- if (strm == 0) -- throw new NullPointerException(); -+ assert Thread.holdsLock(zsRef); -+ if (zsRef.address() == 0) -+ throw new NullPointerException("Deflater has been closed"); - } - - private static native void initIDs(); - private native static long init(int level, int strategy, boolean nowrap); -- private native static void setDictionary(long strm, byte[] b, int off, -+ private native static void setDictionary(long addr, byte[] b, int off, - int len); -- private native int deflateBytes(byte[] b, int off, int len); -- private native static int getAdler(long strm); -- private native static long getBytesRead(long strm); -- private native static long getBytesWritten(long strm); -- private native static void reset(long strm); -- private native static void end(long strm); -+ private native int deflateBytes(long addr, byte[] b, int off, int len); -+ private native static int getAdler(long addr); -+ private native static long getBytesRead(long addr); -+ private native static long getBytesWritten(long addr); -+ private native static void reset(long addr); -+ private native static void end(long addr); - } ---- openjdk.orig/jdk/src/share/classes/java/util/zip/Inflater.java Tue Nov 24 12:11:26 2009 -+++ openjdk/jdk/src/share/classes/java/util/zip/Inflater.java Tue Nov 24 12:11:25 2009 -@@ -1,5 +1,5 @@ - /* -- * Copyright 1996-2006 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -72,12 +72,14 @@ - */ - public - class Inflater { -- private long strm; -- private byte[] buf = new byte[0]; -+ private final ZStreamRef zsRef; -+ private byte[] buf = emptyBuf; - private int off, len; - private boolean finished; - private boolean needDict; - -+ private static byte[] emptyBuf = new byte[0]; -+ - static { - /* Zip library is loaded from System.initializeSystemClass */ - initIDs(); -@@ -95,7 +97,7 @@ - * @param nowrap if true then support GZIP compatible compression - */ - public Inflater(boolean nowrap) { -- strm = init(nowrap); -+ zsRef = new ZStreamRef(init(nowrap)); - } - - /** -@@ -114,7 +116,7 @@ - * @param len the length of the input data - * @see Inflater#needsInput - */ -- public synchronized void setInput(byte[] b, int off, int len) { -+ public void setInput(byte[] b, int off, int len) { - if (b == null) { - throw new NullPointerException(); - } -@@ -121,9 +123,11 @@ - if (off < 0 || len < 0 || off > b.length - len) { - throw new ArrayIndexOutOfBoundsException(); - } -- this.buf = b; -- this.off = off; -- this.len = len; -+ synchronized (zsRef) { -+ this.buf = b; -+ this.off = off; -+ this.len = len; -+ } - } - - /** -@@ -148,15 +152,18 @@ - * @see Inflater#needsDictionary - * @see Inflater#getAdler - */ -- public synchronized void setDictionary(byte[] b, int off, int len) { -- if (strm == 0 || b == null) { -+ public void setDictionary(byte[] b, int off, int len) { -+ if (b == null) { - throw new NullPointerException(); - } - if (off < 0 || len < 0 || off > b.length - len) { - throw new ArrayIndexOutOfBoundsException(); - } -- setDictionary(strm, b, off, len); -- needDict = false; -+ synchronized (zsRef) { -+ ensureOpen(); -+ setDictionary(zsRef.address(), b, off, len); -+ needDict = false; -+ } - } - - /** -@@ -178,8 +185,10 @@ - * buffer after decompression has finished. - * @return the total number of bytes remaining in the input buffer - */ -- public synchronized int getRemaining() { -- return len; -+ public int getRemaining() { -+ synchronized (zsRef) { -+ return len; -+ } - } - - /** -@@ -188,8 +197,10 @@ - * to provide more input. - * @return true if no data remains in the input buffer - */ -- public synchronized boolean needsInput() { -- return len <= 0; -+ public boolean needsInput() { -+ synchronized (zsRef) { -+ return len <= 0; -+ } - } - - /** -@@ -197,8 +208,10 @@ - * @return true if a preset dictionary is needed for decompression - * @see Inflater#setDictionary - */ -- public synchronized boolean needsDictionary() { -- return needDict; -+ public boolean needsDictionary() { -+ synchronized (zsRef) { -+ return needDict; -+ } - } - - /** -@@ -207,8 +220,10 @@ - * @return true if the end of the compressed data stream has been - * reached - */ -- public synchronized boolean finished() { -- return finished; -+ public boolean finished() { -+ synchronized (zsRef) { -+ return finished; -+ } - } - - /** -@@ -226,7 +241,7 @@ - * @see Inflater#needsInput - * @see Inflater#needsDictionary - */ -- public synchronized int inflate(byte[] b, int off, int len) -+ public int inflate(byte[] b, int off, int len) - throws DataFormatException - { - if (b == null) { -@@ -235,7 +250,10 @@ - if (off < 0 || len < 0 || off > b.length - len) { - throw new ArrayIndexOutOfBoundsException(); - } -- return inflateBytes(b, off, len); -+ synchronized (zsRef) { -+ ensureOpen(); -+ return inflateBytes(zsRef.address(), b, off, len); -+ } - } - - /** -@@ -259,9 +277,11 @@ - * Returns the ADLER-32 value of the uncompressed data. - * @return the ADLER-32 value of the uncompressed data - */ -- public synchronized int getAdler() { -- ensureOpen(); -- return getAdler(strm); -+ public int getAdler() { -+ synchronized (zsRef) { -+ ensureOpen(); -+ return getAdler(zsRef.address()); -+ } - } - - /** -@@ -283,9 +303,11 @@ - * @return the total (non-negative) number of compressed bytes input so far - * @since 1.5 - */ -- public synchronized long getBytesRead() { -- ensureOpen(); -- return getBytesRead(strm); -+ public long getBytesRead() { -+ synchronized (zsRef) { -+ ensureOpen(); -+ return getBytesRead(zsRef.address()); -+ } - } - - /** -@@ -307,20 +329,25 @@ - * @return the total (non-negative) number of uncompressed bytes output so far - * @since 1.5 - */ -- public synchronized long getBytesWritten() { -- ensureOpen(); -- return getBytesWritten(strm); -+ public long getBytesWritten() { -+ synchronized (zsRef) { -+ ensureOpen(); -+ return getBytesWritten(zsRef.address()); -+ } - } - - /** - * Resets inflater so that a new set of input data can be processed. - */ -- public synchronized void reset() { -- ensureOpen(); -- reset(strm); -- finished = false; -- needDict = false; -- off = len = 0; -+ public void reset() { -+ synchronized (zsRef) { -+ ensureOpen(); -+ reset(zsRef.address()); -+ buf = emptyBuf; -+ finished = false; -+ needDict = false; -+ off = len = 0; -+ } - } - - /** -@@ -330,11 +357,14 @@ - * method. Once this method is called, the behavior of the Inflater - * object is undefined. - */ -- public synchronized void end() { -- if (strm != 0) { -- end(strm); -- strm = 0; -- buf = null; -+ public void end() { -+ synchronized (zsRef) { -+ long addr = zsRef.address(); -+ zsRef.clear(); -+ if (addr != 0) { -+ end(addr); -+ buf = null; -+ } - } - } - -@@ -346,19 +376,24 @@ - } - - private void ensureOpen () { -- if (strm == 0) -- throw new NullPointerException(); -+ assert Thread.holdsLock(zsRef); -+ if (zsRef.address() == 0) -+ throw new NullPointerException("Inflater has been closed"); - } - -+ private static class NativeStrm { -+ long strm; -+ } -+ - private native static void initIDs(); - private native static long init(boolean nowrap); -- private native static void setDictionary(long strm, byte[] b, int off, -+ private native static void setDictionary(long addr, byte[] b, int off, - int len); -- private native int inflateBytes(byte[] b, int off, int len) -+ private native int inflateBytes(long addr, byte[] b, int off, int len) - throws DataFormatException; -- private native static int getAdler(long strm); -- private native static long getBytesRead(long strm); -- private native static long getBytesWritten(long strm); -- private native static void reset(long strm); -- private native static void end(long strm); -+ private native static int getAdler(long addr); -+ private native static long getBytesRead(long addr); -+ private native static long getBytesWritten(long addr); -+ private native static void reset(long addr); -+ private native static void end(long addr); - } ---- /dev/null Tue Nov 24 12:11:34 2009 -+++ openjdk/jdk/src/share/classes/java/util/zip/ZStreamRef.java Tue Nov 24 12:11:33 2009 -@@ -0,0 +1,46 @@ -+/* -+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. Sun designates this -+ * particular file as subject to the "Classpath" exception as provided -+ * by Sun in the LICENSE file that accompanied this code. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+package java.util.zip; -+ -+/** -+ * A reference to the native zlib's z_stream structure. -+ */ -+ -+class ZStreamRef { -+ -+ private long address; -+ ZStreamRef (long address) { -+ this.address = address; -+ } -+ -+ long address() { -+ return address; -+ } -+ -+ void clear() { -+ address = 0; -+ } -+} ---- openjdk.orig/jdk/src/share/native/java/util/zip/Deflater.c Tue Nov 24 12:11:38 2009 -+++ openjdk/jdk/src/share/native/java/util/zip/Deflater.c Tue Nov 24 12:11:37 2009 -@@ -1,5 +1,5 @@ - /* -- * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -38,7 +38,6 @@ - - #define DEF_MEM_LEVEL 8 - --static jfieldID strmID; - static jfieldID levelID; - static jfieldID strategyID; - static jfieldID setParamsID; -@@ -49,7 +48,6 @@ - JNIEXPORT void JNICALL - Java_java_util_zip_Deflater_initIDs(JNIEnv *env, jclass cls) - { -- strmID = (*env)->GetFieldID(env, cls, "strm", "J"); - levelID = (*env)->GetFieldID(env, cls, "level", "I"); - strategyID = (*env)->GetFieldID(env, cls, "strategy", "I"); - setParamsID = (*env)->GetFieldID(env, cls, "setParams", "Z"); -@@ -62,40 +60,40 @@ - - JNIEXPORT jlong JNICALL - Java_java_util_zip_Deflater_init(JNIEnv *env, jclass cls, jint level, -- jint strategy, jboolean nowrap) -+ jint strategy, jboolean nowrap) - { - z_stream *strm = calloc(1, sizeof(z_stream)); - - if (strm == 0) { -- JNU_ThrowOutOfMemoryError(env, 0); -- return jlong_zero; -+ JNU_ThrowOutOfMemoryError(env, 0); -+ return jlong_zero; - } else { -- char *msg; -- switch (deflateInit2(strm, level, Z_DEFLATED, -- nowrap ? -MAX_WBITS : MAX_WBITS, -- DEF_MEM_LEVEL, strategy)) { -- case Z_OK: -- return ptr_to_jlong(strm); -- case Z_MEM_ERROR: -- free(strm); -- JNU_ThrowOutOfMemoryError(env, 0); -- return jlong_zero; -- case Z_STREAM_ERROR: -- free(strm); -- JNU_ThrowIllegalArgumentException(env, 0); -- return jlong_zero; -- default: -- msg = strm->msg; -- free(strm); -- JNU_ThrowInternalError(env, msg); -- return jlong_zero; -- } -+ char *msg; -+ switch (deflateInit2(strm, level, Z_DEFLATED, -+ nowrap ? -MAX_WBITS : MAX_WBITS, -+ DEF_MEM_LEVEL, strategy)) { -+ case Z_OK: -+ return ptr_to_jlong(strm); -+ case Z_MEM_ERROR: -+ free(strm); -+ JNU_ThrowOutOfMemoryError(env, 0); -+ return jlong_zero; -+ case Z_STREAM_ERROR: -+ free(strm); -+ JNU_ThrowIllegalArgumentException(env, 0); -+ return jlong_zero; -+ default: -+ msg = strm->msg; -+ free(strm); -+ JNU_ThrowInternalError(env, msg); -+ return jlong_zero; -+ } - } - } - - JNIEXPORT void JNICALL --Java_java_util_zip_Deflater_setDictionary(JNIEnv *env, jclass cls, jlong strm, -- jarray b, jint off, jint len) -+Java_java_util_zip_Deflater_setDictionary(JNIEnv *env, jclass cls, jlong addr, -+ jarray b, jint off, jint len) - { - Bytef *buf = (*env)->GetPrimitiveArrayCritical(env, b, 0); - int res; -@@ -102,156 +100,155 @@ - if (buf == 0) {/* out of memory */ - return; - } -- res = deflateSetDictionary((z_stream *)jlong_to_ptr(strm), buf + off, len); -+ res = deflateSetDictionary((z_stream *)jlong_to_ptr(addr), buf + off, len); - (*env)->ReleasePrimitiveArrayCritical(env, b, buf, 0); - switch (res) { - case Z_OK: -- break; -+ break; - case Z_STREAM_ERROR: -- JNU_ThrowIllegalArgumentException(env, 0); -- break; -+ JNU_ThrowIllegalArgumentException(env, 0); -+ break; - default: -- JNU_ThrowInternalError(env, ((z_stream *)jlong_to_ptr(strm))->msg); -- break; -+ JNU_ThrowInternalError(env, ((z_stream *)jlong_to_ptr(addr))->msg); -+ break; - } - } - - JNIEXPORT jint JNICALL --Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this, -- jarray b, jint off, jint len) -+Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this, jlong addr, -+ jarray b, jint off, jint len) - { -- z_stream *strm = jlong_to_ptr((*env)->GetLongField(env, this, strmID)); -+ z_stream *strm = jlong_to_ptr(addr); - -- if (strm == 0) { -- JNU_ThrowNullPointerException(env, 0); -- return 0; -- } else { -- jarray this_buf = (*env)->GetObjectField(env, this, bufID); -- jint this_off = (*env)->GetIntField(env, this, offID); -- jint this_len = (*env)->GetIntField(env, this, lenID); -- jbyte *in_buf; -- jbyte *out_buf; -- int res; -- if ((*env)->GetBooleanField(env, this, setParamsID)) { -- int level = (*env)->GetIntField(env, this, levelID); -- int strategy = (*env)->GetIntField(env, this, strategyID); -+ jarray this_buf = (*env)->GetObjectField(env, this, bufID); -+ jint this_off = (*env)->GetIntField(env, this, offID); -+ jint this_len = (*env)->GetIntField(env, this, lenID); -+ jbyte *in_buf; -+ jbyte *out_buf; -+ int res; -+ if ((*env)->GetBooleanField(env, this, setParamsID)) { -+ int level = (*env)->GetIntField(env, this, levelID); -+ int strategy = (*env)->GetIntField(env, this, strategyID); - -- in_buf = (jbyte *) malloc(this_len); -- if (in_buf == 0) { -- return 0; -- } -- (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf); -+ in_buf = (jbyte *) malloc(this_len); -+ if (in_buf == 0) { -+ JNU_ThrowOutOfMemoryError(env, 0); -+ return 0; -+ } -+ (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf); - -- out_buf = (jbyte *) malloc(len); -- if (out_buf == 0) { -- free(in_buf); -- return 0; -- } -+ out_buf = (jbyte *) malloc(len); -+ if (out_buf == 0) { -+ free(in_buf); -+ JNU_ThrowOutOfMemoryError(env, 0); -+ return 0; -+ } - -- strm->next_in = (Bytef *) in_buf; -- strm->next_out = (Bytef *) out_buf; -- strm->avail_in = this_len; -- strm->avail_out = len; -- res = deflateParams(strm, level, strategy); -+ strm->next_in = (Bytef *) in_buf; -+ strm->next_out = (Bytef *) out_buf; -+ strm->avail_in = this_len; -+ strm->avail_out = len; -+ res = deflateParams(strm, level, strategy); - -- if (res == Z_OK) { -- (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf); -- } -- free(out_buf); -- free(in_buf); -+ if (res == Z_OK) { -+ (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf); -+ } -+ free(out_buf); -+ free(in_buf); - -- switch (res) { -- case Z_OK: -- (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE); -- this_off += this_len - strm->avail_in; -- (*env)->SetIntField(env, this, offID, this_off); -- (*env)->SetIntField(env, this, lenID, strm->avail_in); -- return len - strm->avail_out; -- case Z_BUF_ERROR: -- (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE); -- return 0; -- default: -- JNU_ThrowInternalError(env, strm->msg); -- return 0; -- } -- } else { -- jboolean finish = (*env)->GetBooleanField(env, this, finishID); -+ switch (res) { -+ case Z_OK: -+ (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE); -+ this_off += this_len - strm->avail_in; -+ (*env)->SetIntField(env, this, offID, this_off); -+ (*env)->SetIntField(env, this, lenID, strm->avail_in); -+ return len - strm->avail_out; -+ case Z_BUF_ERROR: -+ (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE); -+ return 0; -+ default: -+ JNU_ThrowInternalError(env, strm->msg); -+ return 0; -+ } -+ } else { -+ jboolean finish = (*env)->GetBooleanField(env, this, finishID); - -- in_buf = (jbyte *) malloc(this_len); -- if (in_buf == 0) { -- return 0; -- } -- (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf); -+ in_buf = (jbyte *) malloc(this_len); -+ if (in_buf == 0) { -+ JNU_ThrowOutOfMemoryError(env, 0); -+ return 0; -+ } -+ (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf); - -- out_buf = (jbyte *) malloc(len); -- if (out_buf == 0) { -- free(in_buf); -- return 0; -- } -+ out_buf = (jbyte *) malloc(len); -+ if (out_buf == 0) { -+ free(in_buf); -+ JNU_ThrowOutOfMemoryError(env, 0); -+ return 0; -+ } - -- strm->next_in = (Bytef *) in_buf; -- strm->next_out = (Bytef *) out_buf; -- strm->avail_in = this_len; -- strm->avail_out = len; -- res = deflate(strm, finish ? Z_FINISH : Z_NO_FLUSH); -+ strm->next_in = (Bytef *) in_buf; -+ strm->next_out = (Bytef *) out_buf; -+ strm->avail_in = this_len; -+ strm->avail_out = len; -+ res = deflate(strm, finish ? Z_FINISH : Z_NO_FLUSH); - -- if (res == Z_STREAM_END || res == Z_OK) { -- (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf); -- } -- free(out_buf); -- free(in_buf); -+ if (res == Z_STREAM_END || res == Z_OK) { -+ (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf); -+ } -+ free(out_buf); -+ free(in_buf); - -- switch (res) { -- case Z_STREAM_END: -- (*env)->SetBooleanField(env, this, finishedID, JNI_TRUE); -- /* fall through */ -- case Z_OK: -- this_off += this_len - strm->avail_in; -- (*env)->SetIntField(env, this, offID, this_off); -- (*env)->SetIntField(env, this, lenID, strm->avail_in); -- return len - strm->avail_out; -- case Z_BUF_ERROR: -- return 0; -- default: -- JNU_ThrowInternalError(env, strm->msg); -- return 0; -- } -- } -+ switch (res) { -+ case Z_STREAM_END: -+ (*env)->SetBooleanField(env, this, finishedID, JNI_TRUE); -+ /* fall through */ -+ case Z_OK: -+ this_off += this_len - strm->avail_in; -+ (*env)->SetIntField(env, this, offID, this_off); -+ (*env)->SetIntField(env, this, lenID, strm->avail_in); -+ return len - strm->avail_out; -+ case Z_BUF_ERROR: -+ return 0; -+ default: -+ JNU_ThrowInternalError(env, strm->msg); -+ return 0; -+ } - } - } - - JNIEXPORT jint JNICALL --Java_java_util_zip_Deflater_getAdler(JNIEnv *env, jclass cls, jlong strm) -+Java_java_util_zip_Deflater_getAdler(JNIEnv *env, jclass cls, jlong addr) - { -- return ((z_stream *)jlong_to_ptr(strm))->adler; -+ return ((z_stream *)jlong_to_ptr(addr))->adler; - } - - JNIEXPORT jlong JNICALL --Java_java_util_zip_Deflater_getBytesRead(JNIEnv *env, jclass cls, jlong strm) -+Java_java_util_zip_Deflater_getBytesRead(JNIEnv *env, jclass cls, jlong addr) - { -- return ((z_stream *)jlong_to_ptr(strm))->total_in; -+ return ((z_stream *)jlong_to_ptr(addr))->total_in; - } - - JNIEXPORT jlong JNICALL --Java_java_util_zip_Deflater_getBytesWritten(JNIEnv *env, jclass cls, jlong strm) -+Java_java_util_zip_Deflater_getBytesWritten(JNIEnv *env, jclass cls, jlong addr) - { -- return ((z_stream *)jlong_to_ptr(strm))->total_out; -+ return ((z_stream *)jlong_to_ptr(addr))->total_out; - } - - JNIEXPORT void JNICALL --Java_java_util_zip_Deflater_reset(JNIEnv *env, jclass cls, jlong strm) -+Java_java_util_zip_Deflater_reset(JNIEnv *env, jclass cls, jlong addr) - { -- if (deflateReset((z_stream *)jlong_to_ptr(strm)) != Z_OK) { -- JNU_ThrowInternalError(env, 0); -+ if (deflateReset((z_stream *)jlong_to_ptr(addr)) != Z_OK) { -+ JNU_ThrowInternalError(env, 0); - } - } - - JNIEXPORT void JNICALL --Java_java_util_zip_Deflater_end(JNIEnv *env, jclass cls, jlong strm) -+Java_java_util_zip_Deflater_end(JNIEnv *env, jclass cls, jlong addr) - { -- if (deflateEnd((z_stream *)jlong_to_ptr(strm)) == Z_STREAM_ERROR) { -- JNU_ThrowInternalError(env, 0); -+ if (deflateEnd((z_stream *)jlong_to_ptr(addr)) == Z_STREAM_ERROR) { -+ JNU_ThrowInternalError(env, 0); - } else { -- free((z_stream *)jlong_to_ptr(strm)); -+ free((z_stream *)jlong_to_ptr(addr)); - } - } ---- openjdk.orig/jdk/src/share/native/java/util/zip/Inflater.c Tue Nov 24 12:11:47 2009 -+++ openjdk/jdk/src/share/native/java/util/zip/Inflater.c Tue Nov 24 12:11:45 2009 -@@ -1,5 +1,5 @@ - /* -- * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -39,9 +39,8 @@ - #include "java_util_zip_Inflater.h" - - #define ThrowDataFormatException(env, msg) \ -- JNU_ThrowByName(env, "java/util/zip/DataFormatException", msg) -+ JNU_ThrowByName(env, "java/util/zip/DataFormatException", msg) - --static jfieldID strmID; - static jfieldID needDictID; - static jfieldID finishedID; - static jfieldID bufID, offID, lenID; -@@ -49,7 +48,6 @@ - JNIEXPORT void JNICALL - Java_java_util_zip_Inflater_initIDs(JNIEnv *env, jclass cls) - { -- strmID = (*env)->GetFieldID(env, cls, "strm", "J"); - needDictID = (*env)->GetFieldID(env, cls, "needDict", "Z"); - finishedID = (*env)->GetFieldID(env, cls, "finished", "Z"); - bufID = (*env)->GetFieldID(env, cls, "buf", "[B"); -@@ -63,153 +61,151 @@ - z_stream *strm = calloc(1, sizeof(z_stream)); - - if (strm == 0) { -- JNU_ThrowOutOfMemoryError(env, 0); -- return jlong_zero; -+ JNU_ThrowOutOfMemoryError(env, 0); -+ return jlong_zero; - } else { -- char *msg; -- switch (inflateInit2(strm, nowrap ? -MAX_WBITS : MAX_WBITS)) { -- case Z_OK: -- return ptr_to_jlong(strm); -- case Z_MEM_ERROR: -- free(strm); -- JNU_ThrowOutOfMemoryError(env, 0); -- return jlong_zero; -- default: -- msg = strm->msg; -- free(strm); -- JNU_ThrowInternalError(env, msg); -- return jlong_zero; -- } -+ char *msg; -+ switch (inflateInit2(strm, nowrap ? -MAX_WBITS : MAX_WBITS)) { -+ case Z_OK: -+ return ptr_to_jlong(strm); -+ case Z_MEM_ERROR: -+ free(strm); -+ JNU_ThrowOutOfMemoryError(env, 0); -+ return jlong_zero; -+ default: -+ msg = strm->msg; -+ free(strm); -+ JNU_ThrowInternalError(env, msg); -+ return jlong_zero; -+ } - } - } - - JNIEXPORT void JNICALL --Java_java_util_zip_Inflater_setDictionary(JNIEnv *env, jclass cls, jlong strm, -- jarray b, jint off, jint len) -+Java_java_util_zip_Inflater_setDictionary(JNIEnv *env, jclass cls, jlong addr, -+ jarray b, jint off, jint len) - { - Bytef *buf = (*env)->GetPrimitiveArrayCritical(env, b, 0); - int res; - if (buf == 0) /* out of memory */ - return; -- res = inflateSetDictionary(jlong_to_ptr(strm), buf + off, len); -+ res = inflateSetDictionary(jlong_to_ptr(addr), buf + off, len); - (*env)->ReleasePrimitiveArrayCritical(env, b, buf, 0); - switch (res) { - case Z_OK: -- break; -+ break; - case Z_STREAM_ERROR: - case Z_DATA_ERROR: -- JNU_ThrowIllegalArgumentException(env, ((z_stream *)jlong_to_ptr(strm))->msg); -- break; -+ JNU_ThrowIllegalArgumentException(env, ((z_stream *)jlong_to_ptr(addr))->msg); -+ break; - default: -- JNU_ThrowInternalError(env, ((z_stream *)jlong_to_ptr(strm))->msg); -- break; -+ JNU_ThrowInternalError(env, ((z_stream *)jlong_to_ptr(addr))->msg); -+ break; - } - } - - JNIEXPORT jint JNICALL --Java_java_util_zip_Inflater_inflateBytes(JNIEnv *env, jobject this, -- jarray b, jint off, jint len) -+Java_java_util_zip_Inflater_inflateBytes(JNIEnv *env, jobject this, jlong addr, -+ jarray b, jint off, jint len) - { -- z_stream *strm = jlong_to_ptr((*env)->GetLongField(env, this, strmID)); -+ z_stream *strm = jlong_to_ptr(addr); - -- if (strm == 0) { -- JNU_ThrowNullPointerException(env, 0); -- return 0; -- } else { -- jarray this_buf = (jarray)(*env)->GetObjectField(env, this, bufID); -- jint this_off = (*env)->GetIntField(env, this, offID); -- jint this_len = (*env)->GetIntField(env, this, lenID); -- jbyte *in_buf; -- jbyte *out_buf; -- int ret; -+ jarray this_buf = (jarray)(*env)->GetObjectField(env, this, bufID); -+ jint this_off = (*env)->GetIntField(env, this, offID); -+ jint this_len = (*env)->GetIntField(env, this, lenID); -+ jbyte *in_buf; -+ jbyte *out_buf; -+ int ret; - -- in_buf = (jbyte *) malloc(this_len); -- if (in_buf == 0) { -- return 0; -- } -- (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf); -+ in_buf = (jbyte *) malloc(this_len); -+ if (in_buf == 0) { -+ JNU_ThrowOutOfMemoryError(env, 0); -+ return 0; -+ } -+ (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf); - -- out_buf = (jbyte *) malloc(len); -- if (out_buf == 0) { -- free(in_buf); -- return 0; -- } -+ out_buf = (jbyte *) malloc(len); -+ if (out_buf == 0) { -+ free(in_buf); -+ JNU_ThrowOutOfMemoryError(env, 0); -+ return 0; -+ } - -- strm->next_in = (Bytef *) in_buf; -- strm->next_out = (Bytef *) out_buf; -- strm->avail_in = this_len; -- strm->avail_out = len; -- ret = inflate(strm, Z_PARTIAL_FLUSH); -+ strm->next_in = (Bytef *) in_buf; -+ strm->next_out = (Bytef *) out_buf; -+ strm->avail_in = this_len; -+ strm->avail_out = len; -+ ret = inflate(strm, Z_PARTIAL_FLUSH); - -- if (ret == Z_STREAM_END || ret == Z_OK) { -- (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf); -- } -- free(out_buf); -- free(in_buf); -+ if (ret == Z_STREAM_END || ret == Z_OK) { -+ (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf); -+ } -+ free(out_buf); -+ free(in_buf); - -- switch (ret) { -- case Z_STREAM_END: -- (*env)->SetBooleanField(env, this, finishedID, JNI_TRUE); -- /* fall through */ -- case Z_OK: -- this_off += this_len - strm->avail_in; -- (*env)->SetIntField(env, this, offID, this_off); -- (*env)->SetIntField(env, this, lenID, strm->avail_in); -- return len - strm->avail_out; -- case Z_NEED_DICT: -- (*env)->SetBooleanField(env, this, needDictID, JNI_TRUE); -- /* Might have consumed some input here! */ -- this_off += this_len - strm->avail_in; -- (*env)->SetIntField(env, this, offID, this_off); -- (*env)->SetIntField(env, this, lenID, strm->avail_in); -- return 0; -- case Z_BUF_ERROR: -- return 0; -- case Z_DATA_ERROR: -- ThrowDataFormatException(env, strm->msg); -- return 0; -- case Z_MEM_ERROR: -- JNU_ThrowOutOfMemoryError(env, 0); -- return 0; -- default: -- JNU_ThrowInternalError(env, strm->msg); -- return 0; -- } -+ switch (ret) { -+ case Z_STREAM_END: -+ (*env)->SetBooleanField(env, this, finishedID, JNI_TRUE); -+ /* fall through */ -+ case Z_OK: -+ this_off += this_len - strm->avail_in; -+ (*env)->SetIntField(env, this, offID, this_off); -+ (*env)->SetIntField(env, this, lenID, strm->avail_in); -+ return len - strm->avail_out; -+ case Z_NEED_DICT: -+ (*env)->SetBooleanField(env, this, needDictID, JNI_TRUE); -+ /* Might have consumed some input here! */ -+ this_off += this_len - strm->avail_in; -+ (*env)->SetIntField(env, this, offID, this_off); -+ (*env)->SetIntField(env, this, lenID, strm->avail_in); -+ return 0; -+ case Z_BUF_ERROR: -+ return 0; -+ case Z_DATA_ERROR: -+ ThrowDataFormatException(env, strm->msg); -+ return 0; -+ case Z_MEM_ERROR: -+ JNU_ThrowOutOfMemoryError(env, 0); -+ return 0; -+ default: -+ JNU_ThrowInternalError(env, strm->msg); -+ return 0; - } - } - - JNIEXPORT jint JNICALL --Java_java_util_zip_Inflater_getAdler(JNIEnv *env, jclass cls, jlong strm) -+Java_java_util_zip_Inflater_getAdler(JNIEnv *env, jclass cls, jlong addr) - { -- return ((z_stream *)jlong_to_ptr(strm))->adler; -+ return ((z_stream *)jlong_to_ptr(addr))->adler; - } - - JNIEXPORT jlong JNICALL --Java_java_util_zip_Inflater_getBytesRead(JNIEnv *env, jclass cls, jlong strm) -+Java_java_util_zip_Inflater_getBytesRead(JNIEnv *env, jclass cls, jlong addr) - { -- return ((z_stream *)jlong_to_ptr(strm))->total_in; -+ return ((z_stream *)jlong_to_ptr(addr))->total_in; - } - - JNIEXPORT jlong JNICALL --Java_java_util_zip_Inflater_getBytesWritten(JNIEnv *env, jclass cls, jlong strm) -+Java_java_util_zip_Inflater_getBytesWritten(JNIEnv *env, jclass cls, jlong addr) - { -- return ((z_stream *)jlong_to_ptr(strm))->total_out; -+ return ((z_stream *)jlong_to_ptr(addr))->total_out; - } - - JNIEXPORT void JNICALL --Java_java_util_zip_Inflater_reset(JNIEnv *env, jclass cls, jlong strm) -+Java_java_util_zip_Inflater_reset(JNIEnv *env, jclass cls, jlong addr) - { -- if (inflateReset(jlong_to_ptr(strm)) != Z_OK) { -- JNU_ThrowInternalError(env, 0); -+ if (inflateReset(jlong_to_ptr(addr)) != Z_OK) { -+ JNU_ThrowInternalError(env, 0); - } - } - - JNIEXPORT void JNICALL --Java_java_util_zip_Inflater_end(JNIEnv *env, jclass cls, jlong strm) -+Java_java_util_zip_Inflater_end(JNIEnv *env, jclass cls, jlong addr) - { -- if (inflateEnd(jlong_to_ptr(strm)) == Z_STREAM_ERROR) { -- JNU_ThrowInternalError(env, 0); -+ if (inflateEnd(jlong_to_ptr(addr)) == Z_STREAM_ERROR) { -+ JNU_ThrowInternalError(env, 0); - } else { -- free(jlong_to_ptr(strm)); -+ free(jlong_to_ptr(addr)); - } - } -+
--- a/patches/security/20100330/6887703.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ ---- openjdk.orig/jdk/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java Fri Mar 5 12:31:35 2010 -+++ openjdk/jdk/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java Fri Mar 5 12:31:33 2010 -@@ -57,6 +57,7 @@ - import sun.awt.SunToolkit; - import sun.awt.datatransfer.DataTransferer; - import sun.awt.datatransfer.ToolkitThreadBlockedHandler; -+import sun.security.util.SecurityConstants; - - /** - * <p> -@@ -216,6 +217,17 @@ - throws UnsupportedFlavorException, IOException, - InvalidDnDOperationException - { -+ SecurityManager sm = System.getSecurityManager(); -+ try { -+ if (!dropComplete && sm != null) { -+ sm.checkSystemClipboardAccess(); -+ } -+ } catch (Exception e) { -+ Thread currentThread = Thread.currentThread(); -+ currentThread.getUncaughtExceptionHandler().uncaughtException(currentThread, e); -+ return null; -+ } -+ - Long lFormat = null; - Transferable localTransferable = local; -
--- a/patches/security/20100330/6888149.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ ---- openjdk.orig/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java Tue Nov 17 14:10:36 2009 -+++ openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java Tue Nov 17 14:10:35 2009 -@@ -57,7 +57,7 @@ - private long rawIndex(int i) { - if (i < 0 || i >= array.length) - throw new IndexOutOfBoundsException("index " + i); -- return base + i * scale; -+ return base + (long) i * scale; - } - - /** ---- openjdk.orig/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java Tue Nov 17 14:10:38 2009 -+++ openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java Tue Nov 17 14:10:37 2009 -@@ -56,7 +56,7 @@ - private long rawIndex(int i) { - if (i < 0 || i >= array.length) - throw new IndexOutOfBoundsException("index " + i); -- return base + i * scale; -+ return base + (long) i * scale; - } - - /** ---- openjdk.orig/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java Tue Nov 17 14:10:40 2009 -+++ openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java Tue Nov 17 14:10:39 2009 -@@ -57,7 +57,7 @@ - private long rawIndex(int i) { - if (i < 0 || i >= array.length) - throw new IndexOutOfBoundsException("index " + i); -- return base + i * scale; -+ return base + (long) i * scale; - } - - /**
--- a/patches/security/20100330/6892265.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -# HG changeset patch -# User kvn -# Date 1259879213 28800 -# Node ID 75e095764f403b7425e30711b00cc038554a1ae9 -# Parent 324e583cecd8d5886f99f759a19fd2776793c053 -6892265: System.arraycopy unable to reference elements beyond Integer.MAX_VALUE bytes -Summary: Use size_t type cast to widen int values in typeArrayKlass::copy_array(). -Reviewed-by: never, jcoomes - -diff --gitopenjdk.orig/hotspot/src/share/vm/oops/typeArrayKlass.cpp openjdk/hotspot/src/share/vm/oops/typeArrayKlass.cpp ----openjdk.orig/hotspot/src/share/vm/oops/typeArrayKlass.cpp -+++ openjdk/hotspot/src/share/vm/oops/typeArrayKlass.cpp -@@ -124,16 +124,16 @@ void typeArrayKlass::copy_array(arrayOop - || (((unsigned int) length + (unsigned int) dst_pos) > (unsigned int) d->length()) ) { - THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException()); - } -+ // Check zero copy -+ if (length == 0) -+ return; - - // This is an attempt to make the copy_array fast. -- // NB: memmove takes care of overlapping memory segments. -- // Potential problem: memmove is not guaranteed to be word atomic -- // Revisit in Merlin - int l2es = log2_element_size(); - int ihs = array_header_in_bytes() / wordSize; -- char* src = (char*) ((oop*)s + ihs) + (src_pos << l2es); -- char* dst = (char*) ((oop*)d + ihs) + (dst_pos << l2es); -- memmove(dst, src, length << l2es); -+ char* src = (char*) ((oop*)s + ihs) + ((size_t)src_pos << l2es); -+ char* dst = (char*) ((oop*)d + ihs) + ((size_t)dst_pos << l2es); -+ Copy::conjoint_memory_atomic(src, dst, (size_t)length << l2es); - } - -
--- a/patches/security/20100330/6893947.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ ---- openjdk.orig/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Mon Nov 30 08:24:30 2009 -+++ openjdk/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Mon Nov 30 08:24:30 2009 -@@ -1264,6 +1264,7 @@ - * - * @return a String representation of this object. - **/ -+ @Override - public String toString() { - return super.toString() + ": connectionId=" + connectionId; - } -@@ -1517,6 +1518,21 @@ - } - } - -+ private static class SetCcl implements PrivilegedExceptionAction<ClassLoader> { -+ private final ClassLoader classLoader; -+ -+ SetCcl(ClassLoader classLoader) { -+ this.classLoader = classLoader; -+ } -+ -+ public ClassLoader run() { -+ Thread currentThread = Thread.currentThread(); -+ ClassLoader old = currentThread.getContextClassLoader(); -+ currentThread.setContextClassLoader(classLoader); -+ return old; -+ } -+ } -+ - private static <T> T unwrap(final MarshalledObject mo, - final ClassLoader cl, - final Class<T> wrappedClass) -@@ -1525,22 +1541,14 @@ - return null; - } - try { -- return AccessController.doPrivileged( -- new PrivilegedExceptionAction<T>() { -- public T run() -- throws IOException { -- final ClassLoader old = -- Thread.currentThread().getContextClassLoader(); -- Thread.currentThread().setContextClassLoader(cl); -- try { -- return wrappedClass.cast(mo.get()); -- } catch (ClassNotFoundException cnfe) { -- throw new UnmarshalException(cnfe.toString(), cnfe); -- } finally { -- Thread.currentThread().setContextClassLoader(old); -- } -- } -- }); -+ final ClassLoader old = AccessController.doPrivileged(new SetCcl(cl)); -+ try { -+ return wrappedClass.cast(mo.get()); -+ } catch (ClassNotFoundException cnfe) { -+ throw new UnmarshalException(cnfe.toString(), cnfe); -+ } finally { -+ AccessController.doPrivileged(new SetCcl(old)); -+ } - } catch (PrivilegedActionException pe) { - Exception e = extractException(pe); - if (e instanceof IOException) { -@@ -1564,14 +1572,14 @@ - return null; - } - try { -- return AccessController.doPrivileged( -- new PrivilegedExceptionAction<T>() { -- public T run() -- throws IOException { -- return unwrap(mo, new OrderClassLoaders(cl1, cl2), -- wrappedClass); -- } -- }); -+ ClassLoader orderCL = AccessController.doPrivileged( -+ new PrivilegedExceptionAction<ClassLoader>() { -+ public ClassLoader run() throws Exception { -+ return new OrderClassLoaders(cl1, cl2); -+ } -+ } -+ ); -+ return unwrap(mo, orderCL, wrappedClass); - } catch (PrivilegedActionException pe) { - Exception e = extractException(pe); - if (e instanceof IOException) {
--- a/patches/security/20100330/6893954.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,248 +0,0 @@ -diff -Nru openjdk.orig/jdk/src/share/classes/java/net/DatagramSocket.java openjdk/jdk/src/share/classes/java/net/DatagramSocket.java ---- openjdk.orig/jdk/src/share/classes/java/net/DatagramSocket.java 2009-04-24 08:34:06.000000000 +0100 -+++ openjdk/jdk/src/share/classes/java/net/DatagramSocket.java 2010-03-30 20:52:25.000000000 +0100 -@@ -117,6 +117,7 @@ - if (address == null) { - throw new IllegalArgumentException("connect: null address"); - } -+ checkAddress (address, "connect"); - if (isClosed()) - return; - SecurityManager security = System.getSecurityManager(); -@@ -361,13 +362,15 @@ - InetSocketAddress epoint = (InetSocketAddress) addr; - if (epoint.isUnresolved()) - throw new SocketException("Unresolved address"); -+ InetAddress iaddr = epoint.getAddress(); -+ int port = epoint.getPort(); -+ checkAddress(iaddr, "bind"); - SecurityManager sec = System.getSecurityManager(); - if (sec != null) { -- sec.checkListen(epoint.getPort()); -+ sec.checkListen(port); - } - try { -- getImpl().bind(epoint.getPort(), -- epoint.getAddress()); -+ getImpl().bind(port, iaddr); - } catch (SocketException e) { - getImpl().close(); - throw e; -@@ -375,6 +378,15 @@ - bound = true; - } - -+ void checkAddress (InetAddress addr, String op) { -+ if (addr == null) { -+ return; -+ } -+ if (!(addr instanceof Inet4Address || addr instanceof Inet6Address)) { -+ throw new IllegalArgumentException(op + ": invalid address type"); -+ } -+ } -+ - /** - * Connects the socket to a remote address for this socket. When a - * socket is connected to a remote address, packets may only be -@@ -580,6 +592,7 @@ - synchronized (p) { - if (isClosed()) - throw new SocketException("Socket is closed"); -+ checkAddress (p.getAddress(), "send"); - if (connectState == ST_NOT_CONNECTED) { - // check the address is ok wiht the security manager on every send. - SecurityManager security = System.getSecurityManager(); -diff -Nru openjdk.orig/jdk/src/share/classes/java/net/InetAddress.java openjdk/jdk/src/share/classes/java/net/InetAddress.java ---- openjdk.orig/jdk/src/share/classes/java/net/InetAddress.java 2009-04-24 08:34:06.000000000 +0100 -+++ openjdk/jdk/src/share/classes/java/net/InetAddress.java 2010-03-30 20:52:25.000000000 +0100 -@@ -35,6 +35,7 @@ - import java.security.AccessController; - import java.io.ObjectStreamException; - import java.io.IOException; -+import java.io.ObjectInputStream; - import sun.security.action.*; - import sun.net.InetAddressCachePolicy; - import sun.net.util.IPAddressUtil; -@@ -1491,6 +1492,23 @@ - - return impl; - } -+ -+ private void readObjectNoData (ObjectInputStream s) throws -+ IOException, ClassNotFoundException { -+ if (getClass().getClassLoader() != null) { -+ throw new SecurityException ("invalid address type"); -+ } -+ } -+ -+ private void readObject (ObjectInputStream s) throws -+ IOException, ClassNotFoundException { -+ s.defaultReadObject (); -+ if (getClass().getClassLoader() != null) { -+ hostName = null; -+ address = 0; -+ throw new SecurityException ("invalid address type"); -+ } -+ } - } - - /* -diff -Nru openjdk.orig/jdk/src/share/classes/java/net/MulticastSocket.java openjdk/jdk/src/share/classes/java/net/MulticastSocket.java ---- openjdk.orig/jdk/src/share/classes/java/net/MulticastSocket.java 2009-04-24 08:34:06.000000000 +0100 -+++ openjdk/jdk/src/share/classes/java/net/MulticastSocket.java 2010-03-30 20:52:25.000000000 +0100 -@@ -287,6 +287,7 @@ - throw new SocketException("Socket is closed"); - } - -+ checkAddress(mcastaddr, "joinGroup"); - SecurityManager security = System.getSecurityManager(); - if (security != null) { - security.checkMulticast(mcastaddr); -@@ -321,6 +322,7 @@ - throw new SocketException("Socket is closed"); - } - -+ checkAddress(mcastaddr, "leaveGroup"); - SecurityManager security = System.getSecurityManager(); - if (security != null) { - security.checkMulticast(mcastaddr); -@@ -368,6 +370,7 @@ - if (oldImpl) - throw new UnsupportedOperationException(); - -+ checkAddress(((InetSocketAddress)mcastaddr).getAddress(), "joinGroup"); - SecurityManager security = System.getSecurityManager(); - if (security != null) { - security.checkMulticast(((InetSocketAddress)mcastaddr).getAddress()); -@@ -414,6 +417,7 @@ - if (oldImpl) - throw new UnsupportedOperationException(); - -+ checkAddress(((InetSocketAddress)mcastaddr).getAddress(), "leaveGroup"); - SecurityManager security = System.getSecurityManager(); - if (security != null) { - security.checkMulticast(((InetSocketAddress)mcastaddr).getAddress()); -@@ -439,6 +443,7 @@ - if (isClosed()) { - throw new SocketException("Socket is closed"); - } -+ checkAddress(inf, "setInterface"); - synchronized (infLock) { - getImpl().setOption(SocketOptions.IP_MULTICAST_IF, inf); - infAddress = inf; -@@ -630,6 +635,7 @@ - throws IOException { - if (isClosed()) - throw new SocketException("Socket is closed"); -+ checkAddress(p.getAddress(), "send"); - synchronized(ttlLock) { - synchronized(p) { - if (connectState == ST_NOT_CONNECTED) { -diff -Nru openjdk.orig/jdk/src/share/classes/java/net/NetworkInterface.java openjdk/jdk/src/share/classes/java/net/NetworkInterface.java ---- openjdk.orig/jdk/src/share/classes/java/net/NetworkInterface.java 2010-03-30 20:51:15.000000000 +0100 -+++ openjdk/jdk/src/share/classes/java/net/NetworkInterface.java 2010-03-30 20:52:25.000000000 +0100 -@@ -278,8 +278,12 @@ - * If the specified address is <tt>null</tt>. - */ - public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException { -- if (addr == null) -+ if (addr == null) { - throw new NullPointerException(); -+ } -+ if (!(addr instanceof Inet4Address || addr instanceof Inet6Address)) { -+ throw new IllegalArgumentException ("invalid address type"); -+ } - return getByInetAddress0(addr); - } - -diff -Nru openjdk.orig/jdk/src/share/classes/java/net/Socket.java openjdk/jdk/src/share/classes/java/net/Socket.java ---- openjdk.orig/jdk/src/share/classes/java/net/Socket.java 2010-03-30 20:50:59.000000000 +0100 -+++ openjdk/jdk/src/share/classes/java/net/Socket.java 2010-03-30 20:53:20.000000000 +0100 -@@ -122,6 +122,9 @@ - if (p.type() == Proxy.Type.SOCKS) { - SecurityManager security = System.getSecurityManager(); - InetSocketAddress epoint = (InetSocketAddress) p.address(); -+ if (epoint.getAddress() != null) { -+ checkAddress (epoint.getAddress(), "Socket"); -+ } - if (security != null) { - if (epoint.isUnresolved()) - epoint = new InetSocketAddress(epoint.getHostName(), epoint.getPort()); -@@ -526,15 +529,16 @@ - throw new IllegalArgumentException("Unsupported address type"); - - InetSocketAddress epoint = (InetSocketAddress) endpoint; -+ InetAddress addr = epoint.getAddress (); -+ int port = epoint.getPort(); -+ checkAddress(addr, "connect"); - - SecurityManager security = System.getSecurityManager(); - if (security != null) { - if (epoint.isUnresolved()) -- security.checkConnect(epoint.getHostName(), -- epoint.getPort()); -+ security.checkConnect(epoint.getHostName(), port); - else -- security.checkConnect(epoint.getAddress().getHostAddress(), -- epoint.getPort()); -+ security.checkConnect(addr.getHostAddress(), port); - } - if (!created) - createImpl(true); -@@ -542,10 +546,9 @@ - impl.connect(epoint, timeout); - else if (timeout == 0) { - if (epoint.isUnresolved()) -- impl.connect(epoint.getAddress().getHostName(), -- epoint.getPort()); -+ impl.connect(addr.getHostName(), port); - else -- impl.connect(epoint.getAddress(), epoint.getPort()); -+ impl.connect(addr, port); - } else - throw new UnsupportedOperationException("SocketImpl.connect(addr, timeout)"); - connected = true; -@@ -582,14 +585,25 @@ - InetSocketAddress epoint = (InetSocketAddress) bindpoint; - if (epoint != null && epoint.isUnresolved()) - throw new SocketException("Unresolved address"); -- if (bindpoint == null) -- getImpl().bind(InetAddress.anyLocalAddress(), 0); -- else -- getImpl().bind(epoint.getAddress(), -- epoint.getPort()); -+ if (epoint == null) { -+ epoint = new InetSocketAddress(0); -+ } -+ InetAddress addr = epoint.getAddress(); -+ int port = epoint.getPort(); -+ checkAddress (addr, "bind"); -+ getImpl().bind (addr, port); - bound = true; - } - -+ private void checkAddress (InetAddress addr, String op) { -+ if (addr == null) { -+ return; -+ } -+ if (!(addr instanceof Inet4Address || addr instanceof Inet6Address)) { -+ throw new IllegalArgumentException(op + ": invalid address type"); -+ } -+ } -+ - /** - * set the flags after an accept() call. - */ -diff -Nru openjdk.orig/jdk/src/share/classes/sun/nio/ch/Net.java openjdk/jdk/src/share/classes/sun/nio/ch/Net.java ---- openjdk.orig/jdk/src/share/classes/sun/nio/ch/Net.java 2010-03-30 20:51:15.000000000 +0100 -+++ openjdk/jdk/src/share/classes/sun/nio/ch/Net.java 2010-03-30 20:52:25.000000000 +0100 -@@ -55,6 +55,9 @@ - InetSocketAddress isa = (InetSocketAddress)sa; - if (isa.isUnresolved()) - throw new UnresolvedAddressException(); // ## needs arg -+ InetAddress addr = isa.getAddress(); -+ if (!(addr instanceof Inet4Address || addr instanceof Inet6Address)) -+ throw new IllegalArgumentException("Invalid address type"); - return isa; - } -
--- a/patches/security/20100330/6894807.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -diff -Nru openjdk.orig/hotspot/src/share/vm/opto/cfgnode.cpp openjdk/hotspot/src/share/vm/opto/cfgnode.cpp ---- openjdk.orig/hotspot/src/share/vm/opto/cfgnode.cpp 2009-05-15 00:36:38.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/opto/cfgnode.cpp 2010-03-30 21:03:55.000000000 +0100 -@@ -956,6 +956,7 @@ - } - if( jtkp && ttkp ) { - if( jtkp->is_loaded() && jtkp->klass()->is_interface() && -+ !jtkp->klass_is_exact() && // Keep exact interface klass (6894807) - ttkp->is_loaded() && !ttkp->klass()->is_interface() ) { - assert(ft == ttkp->cast_to_ptr_type(jtkp->ptr()) || - ft->isa_narrowoop() && ft->make_ptr() == ttkp->cast_to_ptr_type(jtkp->ptr()), ""); -diff -Nru openjdk.orig/hotspot/src/share/vm/opto/type.cpp openjdk/hotspot/src/share/vm/opto/type.cpp ---- openjdk.orig/hotspot/src/share/vm/opto/type.cpp 2009-05-15 00:36:38.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/opto/type.cpp 2010-03-30 21:02:58.000000000 +0100 -@@ -2501,10 +2501,12 @@ - ftip->is_loaded() && ftip->klass()->is_interface() && - ktip->is_loaded() && !ktip->klass()->is_interface()) { - // Happens in a CTW of rt.jar, 320-341, no extra flags -+ assert(!ftip->klass_is_exact(), "interface could not be exact"); - return ktip->cast_to_ptr_type(ftip->ptr()); - } - if (ftkp != NULL && ktkp != NULL && - ftkp->is_loaded() && ftkp->klass()->is_interface() && -+ !ftkp->klass_is_exact() && // Keep exact interface klass - ktkp->is_loaded() && !ktkp->klass()->is_interface()) { - // Happens in a CTW of rt.jar, 320-341, no extra flags - return ktkp->cast_to_ptr_type(ftkp->ptr());
--- a/patches/security/20100330/6898622.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ ---- openjdk.orig/jdk/src/share/classes/sun/security/util/ObjectIdentifier.java Mon Nov 23 19:00:45 2009 -+++ openjdk/jdk/src/share/classes/sun/security/util/ObjectIdentifier.java Mon Nov 23 19:00:44 2009 -@@ -1,5 +1,5 @@ - /* -- * Copyright 1996-2006 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -323,6 +323,10 @@ - for (i = 0, retval = 0; i < 4; i++) { - retval <<= 7; - tmp = in.getByte (); -+ if (i == 0 && tmp == 0x80) { // First byte is 0x80, BER -+ throw new IOException ("ObjectIdentifier() -- " + -+ "sub component starts with 0x80"); -+ } - retval |= (tmp & 0x07f); - if ((tmp & 0x080) == 0) - return retval;
--- a/patches/security/20100330/6898739.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,437 +0,0 @@ -diff -Nru openjdk.orig/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java openjdk/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java ---- openjdk.orig/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java 2009-04-24 08:34:23.000000000 +0100 -+++ openjdk/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java 2010-03-30 21:08:50.000000000 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -96,13 +96,17 @@ - * Constructors - */ - ClientHandshaker(SSLSocketImpl socket, SSLContextImpl context, -- ProtocolList enabledProtocols) { -+ ProtocolList enabledProtocols, -+ ProtocolVersion activeProtocolVersion) { - super(socket, context, enabledProtocols, true, true); -+ this.activeProtocolVersion = activeProtocolVersion; - } - - ClientHandshaker(SSLEngineImpl engine, SSLContextImpl context, -- ProtocolList enabledProtocols) { -+ ProtocolList enabledProtocols, -+ ProtocolVersion activeProtocolVersion) { - super(engine, context, enabledProtocols, true, true); -+ this.activeProtocolVersion = activeProtocolVersion; - } - - /* -@@ -250,7 +254,42 @@ - // sent the "client hello" but the server's not seen it. - // - if (state < HandshakeMessage.ht_client_hello) { -- kickstart(); -+ if (!renegotiable) { // renegotiation is not allowed. -+ if (activeProtocolVersion.v >= ProtocolVersion.TLS10.v) { -+ // response with a no_negotiation warning, -+ warningSE(Alerts.alert_no_negotiation); -+ -+ // invalidate the handshake so that the caller can -+ // dispose this object. -+ invalidated = true; -+ -+ // If there is still unread block in the handshake -+ // input stream, it would be truncated with the disposal -+ // and the next handshake message will become incomplete. -+ // -+ // However, according to SSL/TLS specifications, no more -+ // handshake message could immediately follow ClientHello -+ // or HelloRequest. But in case of any improper messages, -+ // we'd better check to ensure there is no remaining bytes -+ // in the handshake input stream. -+ if (input.available() > 0) { -+ fatalSE(Alerts.alert_unexpected_message, -+ "HelloRequest followed by an unexpected " + -+ "handshake message"); -+ } -+ -+ } else { -+ // For SSLv3, send the handshake_failure fatal error. -+ // Note that SSLv3 does not define a no_negotiation alert -+ // like TLSv1. However we cannot ignore the message -+ // simply, otherwise the other side was waiting for a -+ // response that would never come. -+ fatalSE(Alerts.alert_handshake_failure, -+ "renegotiation is not allowed"); -+ } -+ } else { -+ kickstart(); -+ } - } - } - -diff -Nru openjdk.orig/jdk/src/share/classes/sun/security/ssl/Handshaker.java openjdk/jdk/src/share/classes/sun/security/ssl/Handshaker.java ---- openjdk.orig/jdk/src/share/classes/sun/security/ssl/Handshaker.java 2010-03-30 21:05:58.000000000 +0100 -+++ openjdk/jdk/src/share/classes/sun/security/ssl/Handshaker.java 2010-03-30 21:08:50.000000000 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -61,9 +61,12 @@ - */ - abstract class Handshaker { - -- // current protocol version -+ // protocol version being established using this Handshaker - ProtocolVersion protocolVersion; - -+ // the currently active protocol version during a renegotiation -+ ProtocolVersion activeProtocolVersion; -+ - // list of enabled protocols - ProtocolList enabledProtocols; - -@@ -125,6 +128,13 @@ - /* Class and subclass dynamic debugging support */ - static final Debug debug = Debug.getInstance("ssl"); - -+ // By default, disable the unsafe legacy session renegotiation -+ static final boolean renegotiable = Debug.getBooleanProperty( -+ "sun.security.ssl.allowUnsafeRenegotiation", false); -+ -+ // need to dispose the object when it is invalidated -+ boolean invalidated; -+ - Handshaker(SSLSocketImpl c, SSLContextImpl context, - ProtocolList enabledProtocols, boolean needCertVerify, - boolean isClient) { -@@ -145,6 +155,7 @@ - this.sslContext = context; - this.isClient = isClient; - enableNewSession = true; -+ invalidated = false; - - setCipherSuite(CipherSuite.C_NULL); - -@@ -490,7 +501,9 @@ - */ - void processLoop() throws IOException { - -- while (input.available() > 0) { -+ // need to read off 4 bytes at least to get the handshake -+ // message type and length. -+ while (input.available() >= 4) { - byte messageType; - int messageLen; - -diff -Nru openjdk.orig/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java openjdk/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java ---- openjdk.orig/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java 2009-04-24 08:34:24.000000000 +0100 -+++ openjdk/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java 2010-03-30 21:08:50.000000000 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -74,6 +74,9 @@ - // flag to check for clientCertificateVerify message - private boolean needClientVerify = false; - -+ // indicate a renegotiation handshaking -+ private boolean isRenegotiation = false; -+ - /* - * For exportable ciphersuites using non-exportable key sizes, we use - * ephemeral RSA keys. We could also do anonymous RSA in the same way -@@ -101,20 +104,28 @@ - * Constructor ... use the keys found in the auth context. - */ - ServerHandshaker(SSLSocketImpl socket, SSLContextImpl context, -- ProtocolList enabledProtocols, byte clientAuth) { -+ ProtocolList enabledProtocols, byte clientAuth, -+ boolean isRenegotiation, ProtocolVersion activeProtocolVersion) { -+ - super(socket, context, enabledProtocols, - (clientAuth != SSLEngineImpl.clauth_none), false); - doClientAuth = clientAuth; -+ this.isRenegotiation = isRenegotiation; -+ this.activeProtocolVersion = activeProtocolVersion; - } - - /* - * Constructor ... use the keys found in the auth context. - */ - ServerHandshaker(SSLEngineImpl engine, SSLContextImpl context, -- ProtocolList enabledProtocols, byte clientAuth) { -+ ProtocolList enabledProtocols, byte clientAuth, -+ boolean isRenegotiation, ProtocolVersion activeProtocolVersion) { -+ - super(engine, context, enabledProtocols, - (clientAuth != SSLEngineImpl.clauth_none), false); - doClientAuth = clientAuth; -+ this.isRenegotiation = isRenegotiation; -+ this.activeProtocolVersion = activeProtocolVersion; - } - - /* -@@ -262,6 +273,45 @@ - if (debug != null && Debug.isOn("handshake")) { - mesg.print(System.out); - } -+ -+ // if it is a renegotiation request and renegotiation is not allowed -+ if (isRenegotiation && !renegotiable) { -+ if (activeProtocolVersion.v >= ProtocolVersion.TLS10.v) { -+ // response with a no_negotiation warning, -+ warningSE(Alerts.alert_no_negotiation); -+ -+ // invalidate the handshake so that the caller can -+ // dispose this object. -+ invalidated = true; -+ -+ // If there is still unread block in the handshake -+ // input stream, it would be truncated with the disposal -+ // and the next handshake message will become incomplete. -+ // -+ // However, according to SSL/TLS specifications, no more -+ // handshake message could immediately follow ClientHello -+ // or HelloRequest. But in case of any improper messages, -+ // we'd better check to ensure there is no remaining bytes -+ // in the handshake input stream. -+ if (input.available() > 0) { -+ fatalSE(Alerts.alert_unexpected_message, -+ "ClientHello followed by an unexpected " + -+ "handshake message"); -+ -+ } -+ -+ return; -+ } else { -+ // For SSLv3, send the handshake_failure fatal error. -+ // Note that SSLv3 does not define a no_negotiation alert -+ // like TLSv1. However we cannot ignore the message -+ // simply, otherwise the other side was waiting for a -+ // response that would never come. -+ fatalSE(Alerts.alert_handshake_failure, -+ "renegotiation is not allowed"); -+ } -+ } -+ - /* - * Always make sure this entire record has been digested before we - * start emitting output, to ensure correct digesting order. -diff -Nru openjdk.orig/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java openjdk/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java ---- openjdk.orig/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java 2009-04-24 08:34:24.000000000 +0100 -+++ openjdk/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java 2010-03-30 21:08:50.000000000 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -433,11 +433,12 @@ - connectionState = cs_RENEGOTIATE; - } - if (roleIsServer) { -- handshaker = new ServerHandshaker -- (this, sslContext, enabledProtocols, doClientAuth); -+ handshaker = new ServerHandshaker(this, sslContext, -+ enabledProtocols, doClientAuth, -+ connectionState == cs_RENEGOTIATE, protocolVersion); - } else { -- handshaker = new ClientHandshaker -- (this, sslContext, enabledProtocols); -+ handshaker = new ClientHandshaker(this, sslContext, -+ enabledProtocols, protocolVersion); - } - handshaker.enabledCipherSuites = enabledCipherSuites; - handshaker.setEnableSessionCreation(enableSessionCreation); -@@ -622,6 +623,10 @@ - break; - - case cs_DATA: -+ if (!Handshaker.renegotiable) { -+ throw new SSLHandshakeException("renegotiation is not allowed"); -+ } -+ - // initialize the handshaker, move to cs_RENEGOTIATE - initHandshaker(); - break; -@@ -949,7 +954,13 @@ - handshaker.process_record(inputRecord, expectingFinished); - expectingFinished = false; - -- if (handshaker.isDone()) { -+ if (handshaker.invalidated) { -+ handshaker = null; -+ // if state is cs_RENEGOTIATE, revert it to cs_DATA -+ if (connectionState == cs_RENEGOTIATE) { -+ connectionState = cs_DATA; -+ } -+ } else if (handshaker.isDone()) { - sess = handshaker.getSession(); - if (!writer.hasOutboundData()) { - hsStatus = HandshakeStatus.FINISHED; -diff -Nru openjdk.orig/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java openjdk/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java ---- openjdk.orig/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java 2009-04-24 08:34:24.000000000 +0100 -+++ openjdk/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java 2010-03-30 21:09:09.000000000 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -904,7 +904,13 @@ - handshaker.process_record(r, expectingFinished); - expectingFinished = false; - -- if (handshaker.isDone()) { -+ if (handshaker.invalidated) { -+ handshaker = null; -+ // if state is cs_RENEGOTIATE, revert it to cs_DATA -+ if (connectionState == cs_RENEGOTIATE) { -+ connectionState = cs_DATA; -+ } -+ } else if (handshaker.isDone()) { - sess = handshaker.getSession(); - handshaker = null; - connectionState = cs_DATA; -@@ -922,6 +928,7 @@ - t.start(); - } - } -+ - if (needAppData || connectionState != cs_DATA) { - continue; - } else { -@@ -1080,11 +1087,12 @@ - connectionState = cs_RENEGOTIATE; - } - if (roleIsServer) { -- handshaker = new ServerHandshaker -- (this, sslContext, enabledProtocols, doClientAuth); -+ handshaker = new ServerHandshaker(this, sslContext, -+ enabledProtocols, doClientAuth, -+ connectionState == cs_RENEGOTIATE, protocolVersion); - } else { -- handshaker = new ClientHandshaker -- (this, sslContext, enabledProtocols); -+ handshaker = new ClientHandshaker(this, sslContext, -+ enabledProtocols, protocolVersion); - } - handshaker.enabledCipherSuites = enabledCipherSuites; - handshaker.setEnableSessionCreation(enableSessionCreation); -@@ -1189,6 +1197,10 @@ - break; - - case cs_DATA: -+ if (!Handshaker.renegotiable) { -+ throw new SSLHandshakeException("renegotiation is not allowed"); -+ } -+ - // initialize the handshaker, move to cs_RENEGOTIATE - initHandshaker(); - break; -diff -Nru openjdk.orig/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java openjdk/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java ---- openjdk.orig/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java 2009-04-24 08:34:50.000000000 +0100 -+++ openjdk/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java 2010-03-30 21:08:50.000000000 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -25,6 +25,8 @@ - * @test - * @bug 4403428 - * @summary Invalidating JSSE session on server causes SSLProtocolException -+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please -+ * reenable when safe renegotiation is implemented. - * @author Brad Wetmore - */ - -diff -Nru openjdk.orig/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java openjdk/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java ---- openjdk.orig/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java 2009-04-24 08:34:51.000000000 +0100 -+++ openjdk/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java 2010-03-30 21:08:51.000000000 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -26,6 +26,8 @@ - * @bug 4280338 - * @summary "Unsupported SSL message version" SSLProtocolException - * w/SSL_RSA_WITH_NULL_MD5 -+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please -+ * reenable when safe renegotiation is implemented. - * - * @author Ram Marti - * @author Brad Wetmore -diff -Nru openjdk.orig/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java openjdk/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java ---- openjdk.orig/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java 2009-04-24 08:34:51.000000000 +0100 -+++ openjdk/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java 2010-03-30 21:08:51.000000000 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -25,6 +25,8 @@ - * @test - * @bug 4948079 - * @summary SSLEngineResult needs updating [none yet] -+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please -+ * reenable when safe renegotiation is implemented. - * - * This is a simple hack to test a bunch of conditions and check - * their return codes. -diff -Nru openjdk.orig/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java openjdk/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java ---- openjdk.orig/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java 2009-04-24 08:34:51.000000000 +0100 -+++ openjdk/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java 2010-03-30 21:08:51.000000000 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -26,6 +26,8 @@ - * @bug 4495742 - * @summary Add non-blocking SSL/TLS functionality, usable with any - * I/O abstraction -+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please -+ * reenable when safe renegotiation is implemented. - * - * This is a bit hacky, meant to test various conditions. The main - * thing I wanted to do with this was to do buffer reads/writes -diff -Nru openjdk.orig/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java openjdk/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java ---- openjdk.orig/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java 2009-04-24 08:34:51.000000000 +0100 -+++ openjdk/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java 2010-03-30 21:08:51.000000000 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -25,6 +25,8 @@ - * @test - * @bug 4495742 - * @summary Demonstrate SSLEngine switch from no client auth to client auth. -+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please -+ * reenable when safe renegotiation is implemented. - * - * @author Brad R. Wetmore - */
--- a/patches/security/20100330/6899653.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -diff -Nru openjdk.orig/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c ---- openjdk.orig/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2009-04-24 08:34:31.000000000 +0100 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2010-03-30 21:21:47.000000000 +0100 -@@ -1433,6 +1433,9 @@ - - // If is in memory, the LUT is already there, so throw a copy - if (Icc -> TagPtrs[n]) { -+ if (!_cmsValidateLUT((LPLUT) Icc ->TagPtrs[n])) { -+ return NULL; -+ } - - return cmsDupLUT((LPLUT) Icc ->TagPtrs[n]); - } -diff -Nru openjdk.orig/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c ---- openjdk.orig/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2010-03-30 21:18:36.000000000 +0100 -+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2010-03-30 21:21:13.000000000 +0100 -@@ -1982,6 +1982,10 @@ - goto ErrorCleanup; - } - -+ if (Transforms[i] == NULL) { -+ cmsSignalError(LCMS_ERRC_ABORTED, "cmsCreateMultiprofileTransform: unable to create transform"); -+ goto ErrorCleanup; -+ } - CurrentColorSpace = ColorSpaceOut; - - }
--- a/patches/security/20100330/6902299.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,104 +0,0 @@ ---- openjdk.orig/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.cpp Tue Feb 16 13:34:13 2010 -+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.cpp Tue Feb 16 13:34:12 2010 -@@ -40,7 +40,7 @@ - - void bytes::malloc(size_t len_) { - len = len_; -- ptr = NEW(byte, len_+1); // add trailing zero byte always -+ ptr = NEW(byte, add_size(len_, 1)); // add trailing zero byte always - if (ptr == null) { - // set ptr to some victim memory, to ease escape - set(dummy, sizeof(dummy)-1); -@@ -56,7 +56,7 @@ - return; - } - byte* oldptr = ptr; -- ptr = (len_ >= PSIZE_MAX) ? null : (byte*)::realloc(ptr, len_+1); -+ ptr = (len_ >= PSIZE_MAX) ? null : (byte*)::realloc(ptr, add_size(len_, 1)); - if (ptr != null) { - mtrace('r', oldptr, 0); - mtrace('m', ptr, len_+1); ---- openjdk.orig/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp Tue Feb 16 13:34:15 2010 -+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp Tue Feb 16 13:34:14 2010 -@@ -488,7 +488,7 @@ - - maybe_inline - void unpacker::saveTo(bytes& b, byte* ptr, size_t len) { -- b.ptr = U_NEW(byte, len+1); -+ b.ptr = U_NEW(byte, add_size(len,1)); - if (aborting()) { - b.len = 0; - return; -@@ -675,7 +675,7 @@ - if (archive_size < header_size_1) { - abort("too much read-ahead"); // somehow we pre-fetched too much? - return; -- } -+ } - input.set(U_NEW(byte, add_size(header_size_0, archive_size, C_SLOP)), - (size_t) header_size_0 + archive_size); - CHECK; -@@ -1129,7 +1129,7 @@ - *fillp = 0; // bigbuf must contain a well-formed Utf8 string - int length = fillp - bigbuf.ptr; - bytes& value = cpMap[i].value.b; -- value.set(U_NEW(byte, length+1), length); -+ value.set(U_NEW(byte, add_size(length,1)), length); - value.copyFrom(bigbuf.ptr, length); - CHECK; - // Index all Utf8 strings -@@ -1601,7 +1601,7 @@ - return no_bands; - } else { - int nb = bs_limit - bs_base; -- band** res = U_NEW(band*, nb+1); -+ band** res = U_NEW(band*, add_size(nb, 1)); - CHECK_(no_bands); - for (int i = 0; i < nb; i++) { - band* b = (band*) band_stack.get(bs_base + i); -@@ -1710,7 +1710,7 @@ - } - // save away the case labels - int ntags = band_stack.length() - case_base; -- int* tags = U_NEW(int, 1+ntags); -+ int* tags = U_NEW(int, add_size(ntags, 1)); - CHECK_(lp); - k_case.le_casetags = tags; - *tags++ = ntags; -@@ -3115,8 +3115,8 @@ - int* field_counts = T_NEW(int, nclasses); - int* method_counts = T_NEW(int, nclasses); - cpindex* all_indexes = U_NEW(cpindex, nclasses*2); -- entry** field_ix = U_NEW(entry*, nfields+nclasses); -- entry** method_ix = U_NEW(entry*, nmethods+nclasses); -+ entry** field_ix = U_NEW(entry*, add_size(nfields, nclasses)); -+ entry** method_ix = U_NEW(entry*, add_size(nmethods, nclasses)); - - for (j = 0; j < nfields; j++) { - entry& f = fields[j]; -@@ -4104,7 +4104,7 @@ - } - const char* suffix = ".java"; - int len = prefix.len + strlen(suffix); -- bytes name; name.set(T_NEW(byte, len + 1), len); -+ bytes name; name.set(T_NEW(byte, add_size(len, 1)), len); - name.strcat(prefix).strcat(suffix); - ref = cp.ensureUtf8(name); - } -@@ -4619,7 +4619,7 @@ - bytes& prefix = cur_class->ref(0)->value.b; - const char* suffix = ".class"; - int len = prefix.len + strlen(suffix); -- bytes name; name.set(T_NEW(byte, len + 1), len); -+ bytes name; name.set(T_NEW(byte, add_size(len, 1)), len); - cur_file.name = name.strcat(prefix).strcat(suffix).strval(); - } - } else { -@@ -4686,6 +4686,7 @@ - input.ensureSize(fleft); - } - rplimit = rp = input.base(); -+ CHECK; - input.setLimit(rp + fleft); - if (!ensure_input(fleft)) - abort("EOF reading resource file");
--- a/patches/security/20100330/6904691.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,166 +0,0 @@ ---- openjdk.orig/jdk/src/share/classes/java/beans/EventHandler.java 2009-12-18 16:45:11.534864100 +0300 -+++ openjdk/jdk/src/share/classes/java/beans/EventHandler.java 2009-12-18 16:45:10.832864100 +0300 -@@ -1,5 +1,5 @@ - /* -- * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -32,7 +32,6 @@ - import java.security.AccessController; - import java.security.PrivilegedAction; - --import java.util.EventObject; - import sun.reflect.misc.MethodUtil; - - /** -@@ -279,9 +278,9 @@ - public class EventHandler implements InvocationHandler { - private Object target; - private String action; -- private String eventPropertyName; -- private String listenerMethodName; -- private AccessControlContext acc; -+ private final String eventPropertyName; -+ private final String listenerMethodName; -+ private final AccessControlContext acc = AccessController.getContext(); - - /** - * Creates a new <code>EventHandler</code> object; -@@ -309,7 +308,6 @@ - * @see #getListenerMethodName - */ - public EventHandler(Object target, String action, String eventPropertyName, String listenerMethodName) { -- this.acc = AccessController.getContext(); - this.target = target; - this.action = action; - if (target == null) { -@@ -421,7 +419,11 @@ - * @see EventHandler - */ - public Object invoke(final Object proxy, final Method method, final Object[] arguments) { -- return AccessController.doPrivileged(new PrivilegedAction() { -+ AccessControlContext acc = this.acc; -+ if (acc == null && null != System.getSecurityManager()) { -+ throw new SecurityException("AccessControlContext is not set"); -+ } -+ return AccessController.doPrivileged(new PrivilegedAction<Object>() { - public Object run() { - return invokeInternal(proxy, method, arguments); - } -@@ -481,7 +483,10 @@ - throw new RuntimeException(ex); - } - catch (InvocationTargetException ex) { -- throw new RuntimeException(ex.getTargetException()); -+ Throwable th = ex.getTargetException(); -+ throw (th instanceof RuntimeException) -+ ? (RuntimeException) th -+ : new RuntimeException(th); - } - } - return null; ---- openjdk.orig/jdk/src/share/classes/java/beans/Statement.java 2009-12-18 16:45:17.431864100 +0300 -+++ openjdk/jdk/src/share/classes/java/beans/Statement.java 2009-12-18 16:45:16.779864100 +0300 -@@ -1,5 +1,5 @@ - /* -- * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -29,6 +29,10 @@ - import java.lang.reflect.Constructor; - import java.lang.reflect.InvocationTargetException; - import java.lang.reflect.Method; -+import java.security.AccessControlContext; -+import java.security.AccessController; -+import java.security.PrivilegedActionException; -+import java.security.PrivilegedExceptionAction; - - import com.sun.beans.finder.ClassFinder; - import sun.reflect.misc.MethodUtil; -@@ -61,9 +65,10 @@ - } - }; - -- Object target; -- String methodName; -- Object[] arguments; -+ private final AccessControlContext acc = AccessController.getContext(); -+ private final Object target; -+ private final String methodName; -+ private final Object[] arguments; - - /** - * Creates a new <code>Statement</code> object with a <code>target</code>, -@@ -141,6 +146,27 @@ - } - - Object invoke() throws Exception { -+ AccessControlContext acc = this.acc; -+ if (acc == null && null != System.getSecurityManager()) { -+ throw new SecurityException("AccessControlContext is not set"); -+ } -+ try { -+ return AccessController.doPrivileged( -+ new PrivilegedExceptionAction<Object>() { -+ public Object run() -+ throws Exception { -+ return invokeInternal(); -+ } -+ }, -+ acc -+ ); -+ } -+ catch (PrivilegedActionException exception) { -+ throw exception.getException(); -+ } -+ } -+ -+ private Object invokeInternal() throws Exception { - Object target = getTarget(); - String methodName = getMethodName(); - ---- openjdk.orig/jdk/test/java/beans/EventHandler/Test6277246.java 2009-12-18 16:45:23.345864100 +0300 -+++ openjdk/jdk/test/java/beans/EventHandler/Test6277246.java 2009-12-18 16:45:22.586864100 +0300 -@@ -1,5 +1,5 @@ - /* -- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -49,10 +49,10 @@ - catch (NoSuchMethodException exception) { - throw new Error("unexpected exception", exception); - } -+ catch (SecurityException exception) { -+ // expected security exception -+ } - catch (RuntimeException exception) { -- if (exception.getCause() instanceof SecurityException) { -- return; // expected security exception -- } - throw new Error("unexpected exception", exception); - } - } ---- openjdk.orig/jdk/test/java/beans/EventHandler/Test6277266.java 2009-12-18 16:45:29.225864100 +0300 -+++ openjdk/jdk/test/java/beans/EventHandler/Test6277266.java 2009-12-18 16:45:28.557864100 +0300 -@@ -1,5 +1,5 @@ - /* -- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. -+ * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -51,7 +51,7 @@ - ); - throw new Error("SecurityException expected"); - } catch (InvocationTargetException exception) { -- if (exception.getCause().getCause() instanceof SecurityException){ -+ if (exception.getCause() instanceof SecurityException){ - return; // expected security exception - } - throw new Error("unexpected exception", exception);
--- a/patches/security/20100330/6909597.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ ---- openjdk.orig/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2009-12-23 19:18:23.132000000 +0300 -+++ openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2009-12-23 19:18:22.515000000 +0300 -@@ -258,6 +258,7 @@ - - typedef struct pixelBufferStruct { - jobject hpixelObject; // Usually a DataBuffer bank as a byte array -+ unsigned int byteBufferLength; - union pixptr { - INT32 *ip; // Pinned buffer pointer, as 32-bit ints - unsigned char *bp; // Pinned buffer pointer, as bytes -@@ -270,6 +271,7 @@ - */ - static void initPixelBuffer(pixelBufferPtr pb) { - pb->hpixelObject = NULL; -+ pb->byteBufferLength = 0; - pb->buf.ip = NULL; - } - -@@ -279,13 +281,13 @@ - */ - static int setPixelBuffer(JNIEnv *env, pixelBufferPtr pb, jobject obj) { - pb->hpixelObject = (*env)->NewGlobalRef(env, obj); -- - if (pb->hpixelObject == NULL) { - JNU_ThrowByName( env, - "java/lang/OutOfMemoryError", - "Setting Pixel Buffer"); - return NOT_OK; - } -+ pb->byteBufferLength = (*env)->GetArrayLength(env, pb->hpixelObject); - return OK; - } - -@@ -302,6 +304,7 @@ - unpinPixelBuffer(env, pb); - (*env)->DeleteGlobalRef(env, pb->hpixelObject); - pb->hpixelObject = NULL; -+ pb->byteBufferLength = 0; - } - } - -@@ -1806,6 +1809,7 @@ - boolean orderedBands = TRUE; - imageIODataPtr data = (imageIODataPtr) ptr; - j_decompress_ptr cinfo; -+ unsigned int numBytes; - - /* verify the inputs */ - -@@ -2030,15 +2034,22 @@ - // scanline buffer into the raster. - in = scanLinePtr + (sourceXStart * cinfo->num_components); - if (pixelLimit > in) { -- memcpy(out, in, pixelLimit - in); -+ numBytes = pixelLimit - in; -+ if (numBytes > data->pixelBuf.byteBufferLength) { -+ numBytes = data->pixelBuf.byteBufferLength; -+ } -+ memcpy(out, in, numBytes); - } - } else { -+ numBytes = numBands; - for (in = scanLinePtr+sourceXStart*cinfo->num_components; -- in < pixelLimit; -+ in < pixelLimit && -+ numBytes <= data->pixelBuf.byteBufferLength; - in += pixelStride) { - for (i = 0; i < numBands; i++) { - *out++ = *(in+bands[i]); - } -+ numBytes += numBands; - } - } -
--- a/patches/security/20100330/6910590.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ ---- openjdk.orig/jdk/src/share/classes/java/lang/ProcessBuilder.java Tue Jan 12 12:31:35 2010 -+++ openjdk/jdk/src/share/classes/java/lang/ProcessBuilder.java Tue Jan 12 12:31:34 2010 -@@ -451,6 +451,7 @@ - // Must convert to array first -- a malicious user-supplied - // list might try to circumvent the security check. - String[] cmdarray = command.toArray(new String[command.size()]); -+ cmdarray = cmdarray.clone(); - for (String arg : cmdarray) - if (arg == null) - throw new NullPointerException();
--- a/patches/security/20100330/6914823.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ ---- openjdk.orig/jdk/src/share/classes/sun/awt/image/ImageRepresentation.java 2010-02-17 13:30:02.571000000 +0300 -+++ openjdk/jdk/src/share/classes/sun/awt/image/ImageRepresentation.java 2010-02-17 13:30:02.197000000 +0300 -@@ -333,10 +333,10 @@ - hints = h; - } - -- public native void setICMpixels(int x, int y, int w, int h, int[] lut, -+ private native void setICMpixels(int x, int y, int w, int h, int[] lut, - byte[] pix, int off, int scansize, - IntegerComponentRaster ict); -- public native int setDiffICM(int x, int y, int w, int h, int[] lut, -+ private native int setDiffICM(int x, int y, int w, int h, int[] lut, - int transPix, int numLut, IndexColorModel icm, - byte[] pix, int off, int scansize, - ByteComponentRaster bct, int chanOff); -@@ -361,6 +361,64 @@ - } - createBufferedImage(); - } -+ -+ if (w <= 0 || h <= 0) { -+ return; -+ } -+ -+ int biWidth = biRaster.getWidth(); -+ int biHeight = biRaster.getHeight(); -+ -+ int x1 = x+w; // Overflow protection below -+ int y1 = y+h; // Overflow protection below -+ if (x < 0) { -+ off -= x; -+ x = 0; -+ } else if (x1 < 0) { -+ x1 = biWidth; // Must be overflow -+ } -+ if (y < 0) { -+ off -= y*scansize; -+ y = 0; -+ } else if (y1 < 0) { -+ y1 = biHeight; // Must be overflow -+ } -+ if (x1 > biWidth) { -+ x1 = biWidth; -+ } -+ if (y1 > biHeight) { -+ y1 = biHeight; -+ } -+ if (x >= x1 || y >= y1) { -+ return; -+ } -+ // x,y,x1,y1 are all >= 0, so w,h must be >= 0 -+ w = x1-x; -+ h = y1-y; -+ // off is first pixel read so it must be in bounds -+ if (off < 0 || off >= pix.length) { -+ // They overflowed their own array -+ throw new ArrayIndexOutOfBoundsException("Data offset out of bounds."); -+ } -+ // pix.length and off are >= 0 so remainder >= 0 -+ int remainder = pix.length - off; -+ if (remainder < w) { -+ // They overflowed their own array -+ throw new ArrayIndexOutOfBoundsException("Data array is too short."); -+ } -+ int num; -+ if (scansize < 0) { -+ num = (off / -scansize) + 1; -+ } else if (scansize > 0) { -+ num = ((remainder-w) / scansize) + 1; -+ } else { -+ num = h; -+ } -+ if (h > num) { -+ // They overflowed their own array. -+ throw new ArrayIndexOutOfBoundsException("Data array is too short."); -+ } -+ - if (isSameCM && (cmodel != model) && (srcLUT != null) && - (model instanceof IndexColorModel) && - (biRaster instanceof ByteComponentRaster))
--- a/patches/security/20100330/6914866.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,118 +0,0 @@ ---- openjdk.orig/jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c 2010-02-17 13:09:00.023000000 +0300 -+++ openjdk/jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c 2010-02-17 13:08:58.601000000 +0300 -@@ -2216,7 +2216,8 @@ - int dataType = BYTE_DATA_TYPE; - int width; - int height; -- int size = rasterP->width * rasterP->height * rasterP->numBands; -+ int dataSize; -+ int offset; - - *dataPP = NULL; - -@@ -2269,6 +2270,22 @@ - #endif - switch (rasterP->type) { - case sun_awt_image_IntegerComponentRaster_TYPE_INT_8BIT_SAMPLES: -+ if (!((rasterP->chanOffsets[0] == 0 || SAFE_TO_ALLOC_2(rasterP->chanOffsets[0], 4)) && -+ SAFE_TO_ALLOC_2(width, 4) && -+ SAFE_TO_ALLOC_3(height, rasterP->scanlineStride, 4))) -+ { -+ return -1; -+ } -+ offset = 4 * rasterP->chanOffsets[0]; -+ dataSize = 4 * (*env)->GetArrayLength(env, rasterP->jdata); -+ -+ if (offset < 0 || offset >= dataSize || -+ width > rasterP->scanlineStride || -+ height * rasterP->scanlineStride * 4 > dataSize - offset) -+ { -+ // raster data buffer is too short -+ return -1; -+ } - dataP = (void *) (*env)->GetPrimitiveArrayCritical(env, rasterP->jdata, - NULL); - if (dataP == NULL) { -@@ -2277,11 +2294,25 @@ - *mlibImagePP = (*sMlibSysFns.createStructFP)(MLIB_BYTE, 4, - width, height, - rasterP->scanlineStride*4, -- (unsigned char *)dataP -- + rasterP->chanOffsets[0]*4); -+ (unsigned char *)dataP + offset); - *dataPP = dataP; - return 0; - case sun_awt_image_IntegerComponentRaster_TYPE_BYTE_SAMPLES: -+ if (!(SAFE_TO_ALLOC_2(width, rasterP->numBands) && -+ SAFE_TO_ALLOC_2(height, rasterP->scanlineStride))) -+ { -+ return -1; -+ } -+ offset = rasterP->chanOffsets[0]; -+ dataSize = (*env)->GetArrayLength(env, rasterP->jdata); -+ -+ if (offset < 0 || offset >= dataSize || -+ width * rasterP->numBands > rasterP->scanlineStride || -+ height * rasterP->scanlineStride > dataSize - offset) -+ { -+ // raster data buffer is too short -+ return -1; -+ } - dataP = (void *) (*env)->GetPrimitiveArrayCritical(env, rasterP->jdata, - NULL); - if (dataP == NULL) { -@@ -2290,11 +2321,26 @@ - *mlibImagePP = (*sMlibSysFns.createStructFP)(MLIB_BYTE, rasterP->numBands, - width, height, - rasterP->scanlineStride, -- (unsigned char *)dataP -- + rasterP->chanOffsets[0]); -+ (unsigned char *)dataP + offset); - *dataPP = dataP; - return 0; - case sun_awt_image_IntegerComponentRaster_TYPE_USHORT_SAMPLES: -+ if (!((rasterP->chanOffsets[0] == 0 || SAFE_TO_ALLOC_2(rasterP->chanOffsets[0], 2)) && -+ SAFE_TO_ALLOC_3(width, rasterP->numBands, 2) && -+ SAFE_TO_ALLOC_3(height, rasterP->scanlineStride, 2))) -+ { -+ return -1; -+ } -+ offset = rasterP->chanOffsets[0] * 2; -+ dataSize = 2 * (*env)->GetArrayLength(env, rasterP->jdata); -+ -+ if (offset < 0 || offset >= dataSize || -+ width * rasterP->numBands > rasterP->scanlineStride || -+ height * rasterP->scanlineStride * 2 > dataSize - offset) -+ { -+ // raster data buffer is too short -+ return -1; -+ } - dataP = (void *) (*env)->GetPrimitiveArrayCritical(env, rasterP->jdata, - NULL); - if (dataP == NULL) { -@@ -2304,8 +2350,7 @@ - rasterP->numBands, - width, height, - rasterP->scanlineStride*2, -- (unsigned char *)dataP -- + rasterP->chanOffsets[0]*2); -+ (unsigned char *)dataP + offset); - *dataPP = dataP; - return 0; - ---- openjdk.orig/jdk/src/share/native/sun/awt/medialib/safe_alloc.h 2010-02-17 13:09:12.672000000 +0300 -+++ openjdk/jdk/src/share/native/sun/awt/medialib/safe_alloc.h 2010-02-17 13:09:11.501000000 +0300 -@@ -35,11 +35,11 @@ - */ - #define SAFE_TO_ALLOC_2(c, sz) \ - (((c) > 0) && ((sz) > 0) && \ -- ((0xffffffffu / ((juint)(c))) > (sz))) -+ ((0xffffffffu / ((juint)(c))) > ((juint)(sz)))) - - #define SAFE_TO_ALLOC_3(w, h, sz) \ - (((w) > 0) && ((h) > 0) && ((sz) > 0) && \ -- (((0xffffffffu / ((juint)(w))) / ((juint)(h))) > (sz))) -+ (((0xffffffffu / ((juint)(w))) / ((juint)(h))) > ((juint)(sz)))) - - - #endif // __SAFE_ALLOC_H__
--- a/patches/security/20100330/6932480.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -# HG changeset patch -# User acorn -# Date 1268677738 14400 -# Node ID 77940ab6c3558ccc1b859a2e28cb0db440d9f5b6 -# Parent 9d4986fcac2a07806ffed8a33184da149f76719b -6932480: Crash in CompilerThread/Parser. Unloaded array klass? -Summary: Restore code deleted in 6626217 -Reviewed-by: asaha, kevinw - -diff --git openjdk.orig/hotspot/src/share/vm/ci/ciEnv.cpp openjdk/hotspot/src/share/vm/ci/ciEnv.cpp ---- openjdk.orig/hotspot/src/share/vm/ci/ciEnv.cpp -+++ openjdk/hotspot/src/share/vm/ci/ciEnv.cpp -@@ -343,6 +343,30 @@ ciKlass* ciEnv::get_klass_by_name_impl(c - found_klass = - SystemDictionary::find_instance_or_array_klass(sym, loader, domain, - KILL_COMPILE_ON_FATAL_(fail_type)); -+ } -+ -+ // If we fail to find an array klass, look again for its element type. -+ // The element type may be available either locally or via constraints. -+ // In either case, if we can find the element type in the system dictionary, -+ // we must build an array type around it. The CI requires array klasses -+ // to be loaded if their element klasses are loaded, except when memory -+ // is exhausted. -+ if (sym->byte_at(0) == '[' && -+ (sym->byte_at(1) == '[' || sym->byte_at(1) == 'L')) { -+ // We have an unloaded array. -+ // Build it on the fly if the element class exists. -+ symbolOop elem_sym = oopFactory::new_symbol(sym->as_utf8()+1, -+ sym->utf8_length()-1, -+ KILL_COMPILE_ON_FATAL_(fail_type)); -+ // Get element ciKlass recursively. -+ ciKlass* elem_klass = -+ get_klass_by_name_impl(accessing_klass, -+ get_object(elem_sym)->as_symbol(), -+ require_local); -+ if (elem_klass != NULL && elem_klass->is_loaded()) { -+ // Now make an array for it -+ return ciObjArrayKlass::make_impl(elem_klass); -+ } - } - - if (found_klass != NULL) {
--- a/patches/security/20100330/hotspot/hs16/6626217.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,160 +0,0 @@ -diff -Nru openjdk.orig/hotspot/src/share/vm/ci/ciEnv.cpp openjdk/hotspot/src/share/vm/ci/ciEnv.cpp ---- openjdk.orig/hotspot/src/share/vm/ci/ciEnv.cpp 2009-12-08 23:12:17.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/ci/ciEnv.cpp 2010-03-31 00:13:28.000000000 +0100 -@@ -398,30 +398,6 @@ - return get_object(found_klass)->as_klass(); - } - -- // If we fail to find an array klass, look again for its element type. -- // The element type may be available either locally or via constraints. -- // In either case, if we can find the element type in the system dictionary, -- // we must build an array type around it. The CI requires array klasses -- // to be loaded if their element klasses are loaded, except when memory -- // is exhausted. -- if (sym->byte_at(0) == '[' && -- (sym->byte_at(1) == '[' || sym->byte_at(1) == 'L')) { -- // We have an unloaded array. -- // Build it on the fly if the element class exists. -- symbolOop elem_sym = oopFactory::new_symbol(sym->as_utf8()+1, -- sym->utf8_length()-1, -- KILL_COMPILE_ON_FATAL_(fail_type)); -- // Get element ciKlass recursively. -- ciKlass* elem_klass = -- get_klass_by_name_impl(accessing_klass, -- get_object(elem_sym)->as_symbol(), -- require_local); -- if (elem_klass != NULL && elem_klass->is_loaded()) { -- // Now make an array for it -- return ciObjArrayKlass::make_impl(elem_klass); -- } -- } -- - if (require_local) return NULL; - // Not yet loaded into the VM, or not governed by loader constraints. - // Make a CI representative for it. -diff -Nru openjdk.orig/hotspot/src/share/vm/classfile/loaderConstraints.cpp openjdk/hotspot/src/share/vm/classfile/loaderConstraints.cpp ---- openjdk.orig/hotspot/src/share/vm/classfile/loaderConstraints.cpp 2009-12-08 23:12:17.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/classfile/loaderConstraints.cpp 2010-03-31 00:12:35.000000000 +0100 -@@ -335,32 +335,6 @@ - } - - --klassOop LoaderConstraintTable::find_constrained_elem_klass(symbolHandle name, -- symbolHandle elem_name, -- Handle loader, -- TRAPS) { -- LoaderConstraintEntry *p = *(find_loader_constraint(name, loader)); -- if (p != NULL) { -- assert(p->klass() == NULL, "Expecting null array klass"); -- -- // The array name has a constraint, but it will not have a class. Check -- // each loader for an associated elem -- for (int i = 0; i < p->num_loaders(); i++) { -- Handle no_protection_domain; -- -- klassOop k = SystemDictionary::find(elem_name, p->loader(i), no_protection_domain, THREAD); -- if (k != NULL) { -- // Return the first elem klass found. -- return k; -- } -- } -- } -- -- // No constraints, or else no klass loaded yet. -- return NULL; --} -- -- - void LoaderConstraintTable::ensure_loader_constraint_capacity( - LoaderConstraintEntry *p, - int nfree) { -diff -Nru openjdk.orig/hotspot/src/share/vm/classfile/loaderConstraints.hpp openjdk/hotspot/src/share/vm/classfile/loaderConstraints.hpp ---- openjdk.orig/hotspot/src/share/vm/classfile/loaderConstraints.hpp 2009-12-08 23:12:17.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/classfile/loaderConstraints.hpp 2010-03-31 00:12:35.000000000 +0100 -@@ -66,9 +66,6 @@ - // bool is_method, TRAPS) - - klassOop find_constrained_klass(symbolHandle name, Handle loader); -- klassOop find_constrained_elem_klass(symbolHandle name, symbolHandle elem_name, -- Handle loader, TRAPS); -- - - // Class loader constraints - -diff -Nru openjdk.orig/hotspot/src/share/vm/classfile/systemDictionary.cpp openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp ---- openjdk.orig/hotspot/src/share/vm/classfile/systemDictionary.cpp 2009-12-08 23:12:17.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp 2010-03-31 00:17:35.000000000 +0100 -@@ -2164,9 +2164,8 @@ - // a loader constraint that would require this loader to return the - // klass that is already loaded. - if (FieldType::is_array(class_name())) { -- // Array classes are hard because their klassOops are not kept in the -- // constraint table. The array klass may be constrained, but the elem class -- // may not be. -+ // For array classes, their klassOops are not kept in the -+ // constraint table. The element klassOops are. - jint dimension; - symbolOop object_key; - BasicType t = FieldType::get_array_info(class_name(), &dimension, -@@ -2176,8 +2175,9 @@ - } else { - symbolHandle elem_name(THREAD, object_key); - MutexLocker mu(SystemDictionary_lock, THREAD); -- klass = constraints()->find_constrained_elem_klass(class_name, elem_name, class_loader, THREAD); -+ klass = constraints()->find_constrained_klass(elem_name, class_loader); - } -+ // If element class already loaded, allocate array klass - if (klass != NULL) { - klass = Klass::cast(klass)->array_klass_or_null(dimension); - } -@@ -2195,10 +2195,27 @@ - Handle class_loader1, - Handle class_loader2, - Thread* THREAD) { -- unsigned int d_hash1 = dictionary()->compute_hash(class_name, class_loader1); -+ symbolHandle constraint_name; -+ if (!FieldType::is_array(class_name())) { -+ constraint_name = class_name; -+ } else { -+ // For array classes, their klassOops are not kept in the -+ // constraint table. The element classes are. -+ jint dimension; -+ symbolOop object_key; -+ BasicType t = FieldType::get_array_info(class_name(), &dimension, -+ &object_key, CHECK_(false)); -+ // primitive types always pass -+ if (t != T_OBJECT) { -+ return true; -+ } else { -+ constraint_name = symbolHandle(THREAD, object_key); -+ } -+ } -+ unsigned int d_hash1 = dictionary()->compute_hash(constraint_name, class_loader1); - int d_index1 = dictionary()->hash_to_index(d_hash1); - -- unsigned int d_hash2 = dictionary()->compute_hash(class_name, class_loader2); -+ unsigned int d_hash2 = dictionary()->compute_hash(constraint_name, class_loader2); - int d_index2 = dictionary()->hash_to_index(d_hash2); - - { -@@ -2207,9 +2224,9 @@ - // Better never do a GC while we're holding these oops - No_Safepoint_Verifier nosafepoint; - -- klassOop klass1 = find_class(d_index1, d_hash1, class_name, class_loader1); -- klassOop klass2 = find_class(d_index2, d_hash2, class_name, class_loader2); -- return constraints()->add_entry(class_name, klass1, class_loader1, -+ klassOop klass1 = find_class(d_index1, d_hash1, constraint_name, class_loader1); -+ klassOop klass2 = find_class(d_index2, d_hash2, constraint_name, class_loader2); -+ return constraints()->add_entry(constraint_name, klass1, class_loader1, - klass2, class_loader2); - } - } -@@ -2287,6 +2304,7 @@ - // Returns the name of the type that failed a loader constraint check, or - // NULL if no constraint failed. The returned C string needs cleaning up - // with a ResourceMark in the caller. No exception except OOME is thrown. -+// Arrays are not added to the loader constraint table, their elements are. - char* SystemDictionary::check_signature_loaders(symbolHandle signature, - Handle loader1, Handle loader2, - bool is_method, TRAPS) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/shark.patch Sun Apr 18 17:04:10 2010 +0100 @@ -0,0 +1,9 @@ +--- openjdk.orig/hotspot/src/cpu//zero/vm/shark_globals_zero.hpp 2009-09-10 15:36:58.658607552 +0100 ++++ openjdk/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp 2010-01-13 14:57:16.000000000 +0000 +@@ -59,5 +59,5 @@ + define_pd_global(uintx, PermSize, 12*M ); + define_pd_global(uintx, MaxPermSize, 64*M ); + define_pd_global(bool, NeverActAsServerClassMachine, true ); +-define_pd_global(uintx, DefaultMaxRAM, 1*G ); ++define_pd_global(uint64_t,MaxRAM, 1ULL*G); + define_pd_global(bool, CICompileOSR, true );
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/zero.patch Sun Apr 18 17:04:10 2010 +0100 @@ -0,0 +1,107 @@ +diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp +--- openjdk.orig/hotspot/src/cpu/zero/vm/assembler_zero.cpp Mon Oct 26 23:26:33 2009 +0000 ++++ openjdk/hotspot/src/cpu/zero/vm/assembler_zero.cpp Tue Oct 27 15:06:00 2009 +0000 +@@ -54,6 +54,12 @@ + sync(); + } + ++RegisterOrConstant MacroAssembler::delayed_value_impl(intptr_t* delayed_value_addr, ++ Register tmpl, int offset) ++{ ++ Unimplemented(); ++} ++ + void MacroAssembler::store_oop(jobject obj) { + code_section()->relocate(pc(), oop_Relocation::spec_for_immediate()); + emit_address((address) obj); +diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp +--- openjdk.orig/hotspot/src/cpu/zero/vm/assembler_zero.hpp Mon Oct 26 23:26:33 2009 +0000 ++++ openjdk/hotspot/src/cpu/zero/vm/assembler_zero.hpp Tue Oct 27 15:06:00 2009 +0000 +@@ -47,7 +47,8 @@ + void align(int modulus); + void bang_stack_with_offset(int offset); + bool needs_explicit_null_check(intptr_t offset); +- ++ RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr, ++ Register tmp, int offset); + public: + void advance(int bytes); + void store_oop(jobject obj); +diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp +--- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Mon Oct 26 23:26:33 2009 +0000 ++++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue Oct 27 15:06:00 2009 +0000 +@@ -759,6 +759,10 @@ + entry_point = ((InterpreterGenerator*) this)->generate_abstract_entry(); + break; + ++ case Interpreter::method_handle: ++ entry_point = ((InterpreterGenerator*)this)->generate_method_handle_entry(); ++ break; ++ + case Interpreter::java_lang_math_sin: + case Interpreter::java_lang_math_cos: + case Interpreter::java_lang_math_tan: +diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/frame_zero.cpp +--- openjdk.orig/hotspot/src/cpu/zero/vm/frame_zero.cpp Mon Oct 26 23:26:33 2009 +0000 ++++ openjdk/hotspot/src/cpu/zero/vm/frame_zero.cpp Tue Oct 27 15:06:00 2009 +0000 +@@ -166,7 +166,7 @@ + return type; + } + +-int frame::frame_size() const { ++int frame::frame_size(RegisterMap* map) const { + #ifdef PRODUCT + ShouldNotCallThis(); + #else +diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp +--- openjdk.orig/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp Mon Oct 26 23:26:33 2009 +0000 ++++ openjdk/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp Tue Oct 27 15:06:00 2009 +0000 +@@ -28,4 +28,7 @@ + class InterpreterMacroAssembler : public MacroAssembler { + public: + InterpreterMacroAssembler(CodeBuffer* code) : MacroAssembler(code) {} ++ RegisterOrConstant delayed_value_impl(intptr_t* delayed_value_addr, Register tmp, int offset) { ++ Unimplemented(); ++ } + }; +diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp +--- openjdk.orig/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp Mon Oct 26 23:26:33 2009 +0000 ++++ openjdk/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp Tue Oct 27 15:06:00 2009 +0000 +@@ -34,3 +34,4 @@ + address generate_math_entry(AbstractInterpreter::MethodKind kind); + address generate_empty_entry(); + address generate_accessor_entry(); ++ address generate_method_handle_entry(); +diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/interpreter_zero.cpp +--- openjdk.orig/hotspot/src/cpu/zero/vm/interpreter_zero.cpp Mon Oct 26 23:26:33 2009 +0000 ++++ openjdk/hotspot/src/cpu/zero/vm/interpreter_zero.cpp Tue Oct 27 15:06:00 2009 +0000 +@@ -43,6 +43,11 @@ + return ShouldNotCallThisEntry(); + } + ++address InterpreterGenerator::generate_method_handle_entry() ++{ ++ return ShouldNotCallThisEntry(); ++} ++ + int AbstractInterpreter::size_activation(methodOop method, + int tempcount, + int popframe_extra_args, +diff -r 7d2ae1d67c95 ports/hotspot/src/cpu/zero/vm/register_zero.hpp +--- openjdk.orig/hotspot/src/cpu/zero/vm/register_zero.hpp Mon Oct 26 23:26:33 2009 +0000 ++++ openjdk/hotspot/src/cpu/zero/vm/register_zero.hpp Tue Oct 27 15:06:00 2009 +0000 +@@ -106,3 +106,5 @@ + static const int max_gpr; + static const int max_fpr; + }; ++ ++CONSTANT_REGISTER_DECLARATION(Register, noreg, (-1)); +diff -r 7d2ae1d67c95 ports/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp +--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp Mon Oct 26 23:26:33 2009 +0000 ++++ openjdk/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp Tue Oct 27 15:06:00 2009 +0000 +@@ -41,3 +41,5 @@ + define_pd_global(uintx, JVMInvokeMethodSlack, 8192); + + define_pd_global(bool, UseVectoredExceptions, false); ++// Only used on 64 bit platforms ++define_pd_global(uintx, HeapBaseMinAddress, 2*G);
--- a/patches/zero/6890308.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,760 +0,0 @@ -diff -r 03b336640699 -r 354d3184f6b2 make/Makefile ---- openjdk/hotspot/make/Makefile Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/make/Makefile Tue Oct 13 12:04:21 2009 -0700 -@@ -84,6 +84,7 @@ - C1_VM_TARGETS=product1 fastdebug1 optimized1 jvmg1 - C2_VM_TARGETS=product fastdebug optimized jvmg - KERNEL_VM_TARGETS=productkernel fastdebugkernel optimizedkernel jvmgkernel -+ZERO_VM_TARGETS=productzero fastdebugzero optimizedzero jvmgzero - - # JDK directory list - JDK_DIRS=bin include jre lib demo -@@ -94,6 +95,12 @@ - all_debug: jvmg jvmg1 jvmgkernel docs export_debug - all_optimized: optimized optimized1 optimizedkernel docs export_optimized - -+allzero: all_productzero all_fastdebugzero -+all_productzero: productzero docs export_product -+all_fastdebugzero: fastdebugzero docs export_fastdebug -+all_debugzero: jvmgzero docs export_debug -+all_optimizedzero: optimizedzero docs export_optimized -+ - # Do everything - world: all create_jdk - -@@ -120,6 +127,10 @@ - $(CD) $(GAMMADIR)/make; \ - $(MAKE) VM_TARGET=$@ generic_buildkernel $(ALT_OUT) - -+$(ZERO_VM_TARGETS): -+ $(CD) $(GAMMADIR)/make; \ -+ $(MAKE) VM_TARGET=$@ generic_buildzero $(ALT_OUT) -+ - # Build compiler1 (client) rule, different for platforms - generic_build1: - $(MKDIR) -p $(OUTPUTDIR) -@@ -180,6 +191,12 @@ - @$(ECHO) "No kernel ($(VM_TARGET)) for OS_NAME=$(OSNAME)" - endif - -+generic_buildzero: -+ $(MKDIR) -p $(OUTPUTDIR) -+ $(CD) $(OUTPUTDIR); \ -+ $(MAKE) -f $(ABS_OS_MAKEFILE) \ -+ $(MAKE_ARGS) $(VM_TARGET) -+ - # Export file rule - generic_export: $(EXPORT_LIST) - export_product: -@@ -210,11 +227,17 @@ - C1_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_compiler1 - C2_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_compiler2 - KERNEL_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_kernel -+ZERO_BASE_DIR=$(OUTPUTDIR)/$(VM_PLATFORM)_zero - C1_DIR=$(C1_BASE_DIR)/$(VM_SUBDIR) - C2_DIR=$(C2_BASE_DIR)/$(VM_SUBDIR) - KERNEL_DIR=$(KERNEL_BASE_DIR)/$(VM_SUBDIR) -+ZERO_DIR=$(ZERO_BASE_DIR)/$(VM_SUBDIR) - - # Misc files and generated files need to come from C1 or C2 area -+ifeq ($(ZERO_BUILD), true) -+ MISC_DIR=$(ZERO_DIR) -+ GEN_DIR=$(ZERO_BASE_DIR)/generated -+else - ifeq ($(ARCH_DATA_MODEL), 32) - MISC_DIR=$(C1_DIR) - GEN_DIR=$(C1_BASE_DIR)/generated -@@ -222,6 +245,7 @@ - MISC_DIR=$(C2_DIR) - GEN_DIR=$(C2_BASE_DIR)/generated - endif -+endif - - # Bin files (windows) - ifeq ($(OSNAME),windows) -@@ -265,6 +289,12 @@ - - # Shared Library - ifneq ($(OSNAME),windows) -+ ifeq ($(ZERO_BUILD), true) -+$(EXPORT_JRE_LIB_ARCH_DIR)/%.so: $(ZERO_DIR)/%.so -+ $(install-file) -+$(EXPORT_SERVER_DIR)/%.so: $(ZERO_DIR)/%.so -+ $(install-file) -+ else - $(EXPORT_JRE_LIB_ARCH_DIR)/%.so: $(C2_DIR)/%.so - $(install-file) - $(EXPORT_CLIENT_DIR)/%.so: $(C1_DIR)/%.so -@@ -275,6 +305,7 @@ - $(install-file) - $(EXPORT_SERVER_DIR)/64/%.so: $(C2_DIR)/%.so - $(install-file) -+ endif - endif - - # Jar file (sa-jdi.jar) -@@ -313,6 +344,7 @@ - $(RM) -r $(C1_DIR) - $(RM) -r $(C2_DIR) - $(RM) -r $(KERNEL_DIR) -+ $(RM) -r $(ZERO_DIR) - clean_export: - $(RM) -r $(EXPORT_PATH) - clean_jdk: -@@ -335,8 +367,10 @@ - ($(CD) $(JDK_IMAGE_DIR) && $(TAR) -xf -) - - test_jdk: -- ifeq ($(ARCH_DATA_MODEL), 32) -+ ifneq ($(ZERO_BUILD), true) -+ ifeq ($(ARCH_DATA_MODEL), 32) - $(JDK_IMAGE_DIR)/bin/java -client -version -+ endif - endif - $(JDK_IMAGE_DIR)/bin/java -server -version - -diff -r 03b336640699 -r 354d3184f6b2 make/defs.make ---- openjdk/hotspot/make/defs.make Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/make/defs.make Tue Oct 13 12:04:21 2009 -0700 -@@ -192,13 +192,14 @@ - - # Use uname output for SRCARCH, but deal with platform differences. If ARCH - # is not explicitly listed below, it is treated as x86. -- SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64,$(ARCH))) -+ SRCARCH = $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 zero,$(ARCH))) - ARCH/ = x86 - ARCH/sparc = sparc - ARCH/sparc64= sparc - ARCH/ia64 = ia64 - ARCH/amd64 = x86 - ARCH/x86_64 = x86 -+ ARCH/zero = zero - - # BUILDARCH is usually the same as SRCARCH, except for sparcv9 - BUILDARCH = $(SRCARCH) -@@ -222,8 +223,9 @@ - LIBARCH/sparc = sparc - LIBARCH/sparcv9 = sparcv9 - LIBARCH/ia64 = ia64 -+ LIBARCH/zero = $(ZERO_LIBARCH) - -- LP64_ARCH = sparcv9 amd64 ia64 -+ LP64_ARCH = sparcv9 amd64 ia64 zero - endif - - # Required make macro settings for all platforms -diff -r 03b336640699 -r 354d3184f6b2 make/linux/Makefile ---- openjdk/hotspot/make/linux/Makefile Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/make/linux/Makefile Tue Oct 13 12:04:21 2009 -0700 -@@ -132,6 +132,9 @@ - - endif - -+# BUILDARCH is set to "zero" for Zero builds. VARIANTARCH -+# is used to give the build directories meaningful names. -+VARIANTARCH = $(subst i386,i486,$(ZERO_LIBARCH)) - - # There is a (semi-) regular correspondence between make targets and actions: - # -@@ -158,6 +161,13 @@ - # profiledcore core <os>_<arch>_core/profiled - # productcore core <os>_<arch>_core/product - # -+# debugzero zero <os>_<arch>_zero/debug -+# fastdebugzero zero <os>_<arch>_zero/fastdebug -+# jvmgzero zero <os>_<arch>_zero/jvmg -+# optimizedzero zero <os>_<arch>_zero/optimized -+# profiledzero zero <os>_<arch>_zero/profiled -+# productzero zero <os>_<arch>_zero/product -+# - # What you get with each target: - # - # debug* - "thin" libjvm_g - debug info linked into the gamma_g launcher -@@ -171,16 +181,22 @@ - # in the build.sh script: - TARGETS = debug jvmg fastdebug optimized profiled product - --SUBDIR_DOCS = $(OSNAME)_$(BUILDARCH)_docs -+ifeq ($(ZERO_BUILD), true) -+ SUBDIR_DOCS = $(OSNAME)_$(VARIANTARCH)_docs -+else -+ SUBDIR_DOCS = $(OSNAME)_$(BUILDARCH)_docs -+endif - SUBDIRS_C1 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler1/,$(TARGETS)) - SUBDIRS_C2 = $(addprefix $(OSNAME)_$(BUILDARCH)_compiler2/,$(TARGETS)) - SUBDIRS_TIERED = $(addprefix $(OSNAME)_$(BUILDARCH)_tiered/,$(TARGETS)) - SUBDIRS_CORE = $(addprefix $(OSNAME)_$(BUILDARCH)_core/,$(TARGETS)) -+SUBDIRS_ZERO = $(addprefix $(OSNAME)_$(VARIANTARCH)_zero/,$(TARGETS)) - - TARGETS_C2 = $(TARGETS) - TARGETS_C1 = $(addsuffix 1,$(TARGETS)) - TARGETS_TIERED = $(addsuffix tiered,$(TARGETS)) - TARGETS_CORE = $(addsuffix core,$(TARGETS)) -+TARGETS_ZERO = $(addsuffix zero,$(TARGETS)) - - BUILDTREE_MAKE = $(GAMMADIR)/make/$(OSNAME)/makefiles/buildtree.make - BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OSNAME) ARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) -@@ -196,6 +212,7 @@ - @echo " $(TARGETS_C2)" - @echo " $(TARGETS_C1)" - @echo " $(TARGETS_CORE)" -+ @echo " $(TARGETS_ZERO)" - - checks: check_os_version check_j2se_version - -@@ -245,6 +262,13 @@ - $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks - $(BUILDTREE) VARIANT=core - -+$(SUBDIRS_ZERO): $(BUILDTREE_MAKE) platform_zero -+ $(QUIETLY) $(MAKE) -f $(GAMMADIR)/make/$(OSNAME)/Makefile checks -+ $(BUILDTREE) VARIANT=zero VARIANTARCH=$(VARIANTARCH) -+ -+platform_zero: $(GAMMADIR)/make/$(OSNAME)/platform_zero.in -+ $(SED) 's/@ZERO_ARCHDEF@/$(ZERO_ARCHDEF)/g;s/@ZERO_LIBARCH@/$(ZERO_LIBARCH)/g;' < $< > $@ -+ - # Define INSTALL=y at command line to automatically copy JVM into JAVA_HOME - - $(TARGETS_C2): $(SUBDIRS_C2) -@@ -275,10 +299,18 @@ - cd $(OSNAME)_$(BUILDARCH)_core/$(patsubst %core,%,$@) && $(MAKE) $(MFLAGS) install - endif - -+$(TARGETS_ZERO): $(SUBDIRS_ZERO) -+ cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS) -+ cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && ./test_gamma -+ifdef INSTALL -+ cd $(OSNAME)_$(VARIANTARCH)_zero/$(patsubst %zero,%,$@) && $(MAKE) $(MFLAGS) install -+endif -+ - # Just build the tree, and nothing else: - tree: $(SUBDIRS_C2) - tree1: $(SUBDIRS_C1) - treecore: $(SUBDIRS_CORE) -+treezero: $(SUBDIRS_ZERO) - - # Doc target. This is the same for all build options. - # Hence create a docs directory beside ...$(ARCH)_[...] -@@ -293,20 +325,22 @@ - - core: jvmgcore productcore - -+zero: jvmgzero productzero -+ - clean_docs: - rm -rf $(SUBDIR_DOCS) - --clean_compiler1 clean_compiler2 clean_core: -+clean_compiler1 clean_compiler2 clean_core clean_zero: - rm -rf $(OSNAME)_$(BUILDARCH)_$(subst clean_,,$@) - --clean: clean_compiler2 clean_compiler1 clean_core clean_docs -+clean: clean_compiler2 clean_compiler1 clean_core clean_zero clean_docs - - include $(GAMMADIR)/make/$(OSNAME)/makefiles/cscope.make - - #------------------------------------------------------------------------------- - --.PHONY: $(TARGETS_C2) $(TARGETS_C1) $(TARGETS_CORE) --.PHONY: tree tree1 treecore --.PHONY: all compiler1 compiler2 core --.PHONY: clean clean_compiler1 clean_compiler2 clean_core docs clean_docs -+.PHONY: $(TARGETS_C2) $(TARGETS_C1) $(TARGETS_CORE) $(TARGETS_ZERO) -+.PHONY: tree tree1 treecore treezero -+.PHONY: all compiler1 compiler2 core zero -+.PHONY: clean clean_compiler1 clean_compiler2 clean_core clean_zero docs clean_docs - .PHONY: checks check_os_version check_j2se_version -diff -r 03b336640699 -r 354d3184f6b2 make/linux/makefiles/buildtree.make ---- openjdk/hotspot/make/linux/makefiles/buildtree.make Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/make/linux/makefiles/buildtree.make Tue Oct 13 12:04:21 2009 -0700 -@@ -63,20 +63,30 @@ - # For now, until the compiler is less wobbly: - TESTFLAGS = -Xbatch -showversion - --ifdef USE_SUNCC --PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH).suncc -+ifeq ($(ZERO_BUILD), true) -+ PLATFORM_FILE = $(shell dirname $(shell dirname $(shell pwd)))/platform_zero - else --PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH) -+ ifdef USE_SUNCC -+ PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH).suncc -+ else -+ PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH) -+ endif -+endif -+ -+# Allow overriding of the arch part of the directory but default -+# to BUILDARCH if nothing is specified -+ifeq ($(VARIANTARCH),) -+ VARIANTARCH=$(BUILDARCH) - endif - - ifdef FORCE_TIERED - ifeq ($(VARIANT),tiered) --PLATFORM_DIR = $(OS_FAMILY)_$(BUILDARCH)_compiler2 -+PLATFORM_DIR = $(OS_FAMILY)_$(VARIANTARCH)_compiler2 - else --PLATFORM_DIR = $(OS_FAMILY)_$(BUILDARCH)_$(VARIANT) -+PLATFORM_DIR = $(OS_FAMILY)_$(VARIANTARCH)_$(VARIANT) - endif - else --PLATFORM_DIR = $(OS_FAMILY)_$(BUILDARCH)_$(VARIANT) -+PLATFORM_DIR = $(OS_FAMILY)_$(VARIANTARCH)_$(VARIANT) - endif - - # -@@ -321,6 +331,7 @@ - DATA_MODE/sparcv9 = 64 - DATA_MODE/amd64 = 64 - DATA_MODE/ia64 = 64 -+DATA_MODE/zero = $(ARCH_DATA_MODEL) - - JAVA_FLAG/32 = -d32 - JAVA_FLAG/64 = -d64 -diff -r 03b336640699 -r 354d3184f6b2 make/linux/makefiles/defs.make ---- openjdk/hotspot/make/linux/makefiles/defs.make Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/make/linux/makefiles/defs.make Tue Oct 13 12:04:21 2009 -0700 -@@ -37,6 +37,17 @@ - ARCH_DATA_MODEL ?= 32 - endif - -+# zero -+ifeq ($(ZERO_BUILD), true) -+ ifeq ($(ARCH_DATA_MODEL), 64) -+ MAKE_ARGS += LP64=1 -+ endif -+ PLATFORM = linux-zero -+ VM_PLATFORM = linux_$(subst i386,i486,$(ZERO_LIBARCH)) -+ HS_ARCH = zero -+ ARCH = zero -+endif -+ - # ia64 - ifeq ($(ARCH), ia64) - ARCH_DATA_MODEL = 64 -@@ -97,17 +108,19 @@ - EXPORT_LIST += $(EXPORT_SERVER_DIR)/Xusage.txt - EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjsig.so - EXPORT_LIST += $(EXPORT_SERVER_DIR)/libjvm.so --ifeq ($(ARCH_DATA_MODEL), 32) -- EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client -- EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt -- EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjsig.so -- EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.so -- EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so -- EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar --else -- ifeq ($(ARCH),ia64) -- else -- EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so -- EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar -+ifneq ($(ZERO_BUILD), true) -+ ifeq ($(ARCH_DATA_MODEL), 32) -+ EXPORT_CLIENT_DIR = $(EXPORT_JRE_LIB_ARCH_DIR)/client -+ EXPORT_LIST += $(EXPORT_CLIENT_DIR)/Xusage.txt -+ EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjsig.so -+ EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm.so -+ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so -+ EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar -+ else -+ ifeq ($(ARCH),ia64) -+ else -+ EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so -+ EXPORT_LIST += $(EXPORT_LIB_DIR)/sa-jdi.jar - endif -+ endif - endif -diff -r 03b336640699 -r 354d3184f6b2 make/linux/makefiles/gcc.make ---- openjdk/hotspot/make/linux/makefiles/gcc.make Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/make/linux/makefiles/gcc.make Tue Oct 13 12:04:21 2009 -0700 -@@ -52,6 +52,9 @@ - VM_PICFLAG/AOUT = - VM_PICFLAG = $(VM_PICFLAG/$(LINK_INTO)) - -+ifeq ($(ZERO_BUILD), true) -+CFLAGS += $(LIBFFI_CFLAGS) -+endif - CFLAGS += $(VM_PICFLAG) - CFLAGS += -fno-rtti - CFLAGS += -fno-exceptions -@@ -64,6 +67,7 @@ - ARCHFLAG/ia64 = - ARCHFLAG/sparc = -m32 -mcpu=v9 - ARCHFLAG/sparcv9 = -m64 -mcpu=v9 -+ARCHFLAG/zero = $(ZERO_ARCHFLAG) - - CFLAGS += $(ARCHFLAG) - AOUT_FLAGS += $(ARCHFLAG) -diff -r 03b336640699 -r 354d3184f6b2 make/linux/makefiles/sa.make ---- openjdk/hotspot/make/linux/makefiles/sa.make Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/make/linux/makefiles/sa.make Tue Oct 13 12:04:21 2009 -0700 -@@ -52,10 +52,10 @@ - SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties - - # if $(AGENT_DIR) does not exist, we don't build SA --# also, we don't build SA on Itanium. -+# also, we don't build SA on Itanium or zero. - - all: -- if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" ] ; then \ -+ if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" -a "$(SRCARCH)" != "zero" ] ; then \ - $(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \ - fi - -diff -r 03b336640699 -r 354d3184f6b2 make/linux/makefiles/saproc.make ---- openjdk/hotspot/make/linux/makefiles/saproc.make Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/make/linux/makefiles/saproc.make Tue Oct 13 12:04:21 2009 -0700 -@@ -49,10 +49,10 @@ - endif - - # if $(AGENT_DIR) does not exist, we don't build SA --# also, we don't build SA on Itanium. -+# also, we don't build SA on Itanium or zero. - - checkAndBuildSA: -- $(QUIETLY) if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" ] ; then \ -+ $(QUIETLY) if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" -a "$(SRCARCH)" != "zero" ] ; then \ - $(MAKE) -f vm.make $(LIBSAPROC); \ - fi - -diff -r 03b336640699 -r 354d3184f6b2 make/linux/makefiles/top.make ---- openjdk/hotspot/make/linux/makefiles/top.make Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/make/linux/makefiles/top.make Tue Oct 13 12:04:21 2009 -0700 -@@ -74,6 +74,7 @@ - Include_DBs/COMPILER1 = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 - Include_DBs/COMPILER2 = $(Include_DBs/CORE) $(VM)/includeDB_compiler2 - Include_DBs/TIERED = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 $(VM)/includeDB_compiler2 -+Include_DBs/ZERO = $(Include_DBs/CORE) $(VM)/includeDB_zero - Include_DBs = $(Include_DBs/$(TYPE)) - - Cached_plat = $(GENERATED)/platform.current -diff -r 03b336640699 -r 354d3184f6b2 make/linux/makefiles/vm.make ---- openjdk/hotspot/make/linux/makefiles/vm.make Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/make/linux/makefiles/vm.make Tue Oct 13 12:04:21 2009 -0700 -@@ -40,7 +40,11 @@ - include $(GENERATED)/Dependencies - - # read machine-specific adjustments (%%% should do this via buildtree.make?) --include $(MAKEFILES_DIR)/$(BUILDARCH).make -+ifeq ($(ZERO_BUILD), true) -+ include $(MAKEFILES_DIR)/zeroshark.make -+else -+ include $(MAKEFILES_DIR)/$(BUILDARCH).make -+endif - - # set VPATH so make knows where to look for source files - # Src_Dirs is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm -@@ -124,7 +128,11 @@ - rm -f $@ - cat $^ > $@ - --STATIC_CXX = true -+ifeq ($(ZERO_LIBARCH), ppc64) -+ STATIC_CXX = false -+else -+ STATIC_CXX = true -+endif - - ifeq ($(LINK_INTO),AOUT) - LIBJVM.o = -@@ -148,6 +156,9 @@ - - LIBS_VM += $(LIBS) - endif -+ifeq ($(ZERO_BUILD), true) -+ LIBS_VM += $(LIBFFI_LIBS) -+endif - - LINK_VM = $(LINK_LIB.c) - -diff -r 03b336640699 -r 354d3184f6b2 src/os/linux/vm/os_linux.cpp ---- openjdk/hotspot/src/os/linux/vm/os_linux.cpp Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp Tue Oct 13 12:04:21 2009 -0700 -@@ -176,7 +176,9 @@ - #endif - - // Cpu architecture string --#if defined(IA64) -+#if defined(ZERO) -+static char cpu_arch[] = ZERO_LIBARCH; -+#elif defined(IA64) - static char cpu_arch[] = "ia64"; - #elif defined(IA32) - static char cpu_arch[] = "i386"; -@@ -1743,7 +1745,14 @@ - {EM_SPARC32PLUS, EM_SPARC, ELFCLASS32, ELFDATA2MSB, (char*)"Sparc 32"}, - {EM_SPARCV9, EM_SPARCV9, ELFCLASS64, ELFDATA2MSB, (char*)"Sparc v9 64"}, - {EM_PPC, EM_PPC, ELFCLASS32, ELFDATA2MSB, (char*)"Power PC 32"}, -- {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2MSB, (char*)"Power PC 64"} -+ {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2MSB, (char*)"Power PC 64"}, -+ {EM_ARM, EM_ARM, ELFCLASS32, ELFDATA2LSB, (char*)"ARM"}, -+ {EM_S390, EM_S390, ELFCLASSNONE, ELFDATA2MSB, (char*)"IBM System/390"}, -+ {EM_ALPHA, EM_ALPHA, ELFCLASS64, ELFDATA2LSB, (char*)"Alpha"}, -+ {EM_MIPS_RS3_LE, EM_MIPS_RS3_LE, ELFCLASS32, ELFDATA2LSB, (char*)"MIPSel"}, -+ {EM_MIPS, EM_MIPS, ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"}, -+ {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"}, -+ {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"} - }; - - #if (defined IA32) -@@ -1760,9 +1769,23 @@ - static Elf32_Half running_arch_code=EM_PPC64; - #elif (defined __powerpc__) - static Elf32_Half running_arch_code=EM_PPC; -+ #elif (defined ARM) -+ static Elf32_Half running_arch_code=EM_ARM; -+ #elif (defined S390) -+ static Elf32_Half running_arch_code=EM_S390; -+ #elif (defined ALPHA) -+ static Elf32_Half running_arch_code=EM_ALPHA; -+ #elif (defined MIPSEL) -+ static Elf32_Half running_arch_code=EM_MIPS_RS3_LE; -+ #elif (defined PARISC) -+ static Elf32_Half running_arch_code=EM_PARISC; -+ #elif (defined MIPS) -+ static Elf32_Half running_arch_code=EM_MIPS; -+ #elif (defined M68K) -+ static Elf32_Half running_arch_code=EM_68K; - #else - #error Method os::dll_load requires that one of following is defined:\ -- IA32, AMD64, IA64, __sparc, __powerpc__ -+ IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K - #endif - - // Identify compatability class for VM's architecture and library's architecture -@@ -1794,10 +1817,12 @@ - return NULL; - } - -+#ifndef S390 - if (lib_arch.elf_class != arch_array[running_arch_index].elf_class) { - ::snprintf(diag_msg_buf, diag_msg_max_length-1," (Possible cause: architecture word width mismatch)"); - return NULL; - } -+#endif // !S390 - - if (lib_arch.compat_class != arch_array[running_arch_index].compat_class) { - if ( lib_arch.name!=NULL ) { -@@ -2586,7 +2611,9 @@ - // format has been changed), we'll use the largest page size supported by - // the processor. - -+#ifndef ZERO - _large_page_size = IA32_ONLY(4 * M) AMD64_ONLY(2 * M) IA64_ONLY(256 * M) SPARC_ONLY(4 * M); -+#endif // ZERO - - FILE *fp = fopen("/proc/meminfo", "r"); - if (fp) { -diff -r 03b336640699 -r 354d3184f6b2 src/share/vm/interpreter/bytecodeInterpreter.cpp ---- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Tue Oct 13 12:04:21 2009 -0700 -@@ -3031,9 +3031,9 @@ - tty->print_cr("&native_fresult: " INTPTR_FORMAT, (uintptr_t) &this->_native_fresult); - tty->print_cr("native_lresult: " INTPTR_FORMAT, (uintptr_t) this->_native_lresult); - #endif --#ifdef IA64 -+#if defined(IA64) && !defined(ZERO) - tty->print_cr("last_Java_fp: " INTPTR_FORMAT, (uintptr_t) this->_last_Java_fp); --#endif // IA64 -+#endif // IA64 && !ZERO - tty->print_cr("self_link: " INTPTR_FORMAT, (uintptr_t) this->_self_link); - } - -diff -r 03b336640699 -r 354d3184f6b2 src/share/vm/interpreter/oopMapCache.cpp ---- openjdk/hotspot/src/share/vm/interpreter/oopMapCache.cpp Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/src/share/vm/interpreter/oopMapCache.cpp Tue Oct 13 12:04:21 2009 -0700 -@@ -281,7 +281,7 @@ - public: - void pass_int() { /* ignore */ } - void pass_long() { /* ignore */ } --#ifdef _LP64 -+#if defined(_LP64) || defined(ZERO) - void pass_float() { /* ignore */ } - #endif - void pass_double() { /* ignore */ } -diff -r 03b336640699 -r 354d3184f6b2 src/share/vm/runtime/arguments.cpp ---- openjdk/hotspot/src/share/vm/runtime/arguments.cpp Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp Tue Oct 13 12:04:21 2009 -0700 -@@ -1229,6 +1229,7 @@ - } - } - -+#ifndef ZERO - #ifdef _LP64 - // Check that UseCompressedOops can be set with the max heap size allocated - // by ergonomics. -@@ -1254,6 +1255,7 @@ - // Also checks that certain machines are slower with compressed oops - // in vm_version initialization code. - #endif // _LP64 -+#endif // !ZERO - } - - void Arguments::set_parallel_gc_flags() { -diff -r 03b336640699 -r 354d3184f6b2 src/share/vm/runtime/jniHandles.hpp ---- openjdk/hotspot/src/share/vm/runtime/jniHandles.hpp Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/src/share/vm/runtime/jniHandles.hpp Tue Oct 13 12:04:21 2009 -0700 -@@ -99,6 +99,8 @@ - - class JNIHandleBlock : public CHeapObj { - friend class VMStructs; -+ friend class CppInterpreter; -+ - private: - enum SomeConstants { - block_size_in_oops = 32 // Number of handles per handle block -@@ -126,9 +128,11 @@ - // Fill block with bad_handle values - void zap(); - -+ protected: - // No more handles in the both the current and following blocks - void clear() { _top = 0; } - -+ private: - // Free list computation - void rebuild_free_list(); - -diff -r 03b336640699 -r 354d3184f6b2 src/share/vm/runtime/mutex.hpp ---- openjdk/hotspot/src/share/vm/runtime/mutex.hpp Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/src/share/vm/runtime/mutex.hpp Tue Oct 13 12:04:21 2009 -0700 -@@ -61,18 +61,10 @@ - } ; - - // Endian-ness ... index of least-significant byte in SplitWord.Bytes[] --#ifdef AMD64 // little -+#ifdef VM_LITTLE_ENDIAN - #define _LSBINDEX 0 - #else --#if IA32 // little -- #define _LSBINDEX 0 --#else --#ifdef SPARC // big - #define _LSBINDEX (sizeof(intptr_t)-1) --#else -- #error "unknown architecture" --#endif --#endif - #endif - - class ParkEvent ; -diff -r 03b336640699 -r 354d3184f6b2 src/share/vm/runtime/signature.hpp ---- openjdk/hotspot/src/share/vm/runtime/signature.hpp Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/src/share/vm/runtime/signature.hpp Tue Oct 13 12:04:21 2009 -0700 -@@ -275,11 +275,14 @@ - - void do_bool () { pass_int(); _jni_offset++; _offset++; } - void do_char () { pass_int(); _jni_offset++; _offset++; } -+#if defined(_LP64) || defined(ZERO) -+ void do_float () { pass_float(); _jni_offset++; _offset++; } -+#else -+ void do_float () { pass_int(); _jni_offset++; _offset++; } -+#endif - #ifdef _LP64 -- void do_float () { pass_float(); _jni_offset++; _offset++; } - void do_double() { pass_double(); _jni_offset++; _offset += 2; } - #else -- void do_float () { pass_int(); _jni_offset++; _offset++; } - void do_double() { pass_double(); _jni_offset += 2; _offset += 2; } - #endif - void do_byte () { pass_int(); _jni_offset++; _offset++; } -@@ -303,8 +306,10 @@ - virtual void pass_int() = 0; - virtual void pass_long() = 0; - virtual void pass_object() = 0; -+#if defined(_LP64) || defined(ZERO) -+ virtual void pass_float() = 0; -+#endif - #ifdef _LP64 -- virtual void pass_float() = 0; - virtual void pass_double() = 0; - #else - virtual void pass_double() { pass_long(); } // may be same as long -diff -r 03b336640699 -r 354d3184f6b2 src/share/vm/runtime/vm_version.cpp ---- openjdk/hotspot/src/share/vm/runtime/vm_version.cpp Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp Tue Oct 13 12:04:21 2009 -0700 -@@ -93,9 +93,13 @@ - #else // KERNEL - #ifdef TIERED - #define VMTYPE "Server" --#else -- #define VMTYPE COMPILER1_PRESENT("Client") \ -- COMPILER2_PRESENT("Server") -+#else // TIERED -+#ifdef ZERO -+ #define VMTYPE "Zero" -+#else // ZERO -+ #define VMTYPE COMPILER1_PRESENT("Client") \ -+ COMPILER2_PRESENT("Server") -+#endif // ZERO - #endif // TIERED - #endif // KERNEL - -@@ -142,10 +146,14 @@ - WINDOWS_ONLY("windows") \ - SOLARIS_ONLY("solaris") - -+#ifdef ZERO -+#define CPU ZERO_LIBARCH -+#else - #define CPU IA32_ONLY("x86") \ - IA64_ONLY("ia64") \ - AMD64_ONLY("amd64") \ - SPARC_ONLY("sparc") -+#endif // ZERO - - const char *Abstract_VM_Version::vm_platform_string() { - return OS "-" CPU; -diff -r 03b336640699 -r 354d3184f6b2 src/share/vm/utilities/vmError.cpp ---- openjdk/hotspot/src/share/vm/utilities/vmError.cpp Wed Oct 07 15:38:37 2009 -0700 -+++ openjdk/hotspot/src/share/vm/utilities/vmError.cpp Tue Oct 13 12:04:21 2009 -0700 -@@ -458,6 +458,40 @@ - - if (_verbose && _thread && _thread->is_Java_thread()) { - JavaThread* jt = (JavaThread*)_thread; -+#ifdef ZERO -+ if (jt->zero_stack()->sp() && jt->top_zero_frame()) { -+ // StackFrameStream uses the frame anchor, which may not have -+ // been set up. This can be done at any time in Zero, however, -+ // so if it hasn't been set up then we just set it up now and -+ // clear it again when we're done. -+ bool has_last_Java_frame = jt->has_last_Java_frame(); -+ if (!has_last_Java_frame) -+ jt->set_last_Java_frame(); -+ st->print("Java frames:"); -+ -+ // If the top frame is a Shark frame and the frame anchor isn't -+ // set up then it's possible that the information in the frame -+ // is garbage: it could be from a previous decache, or it could -+ // simply have never been written. So we print a warning... -+ StackFrameStream sfs(jt); -+ if (!has_last_Java_frame && !sfs.is_done()) { -+ if (sfs.current()->zeroframe()->is_shark_frame()) { -+ st->print(" (TOP FRAME MAY BE JUNK)"); -+ } -+ } -+ st->cr(); -+ -+ // Print the frames -+ for(int i = 0; !sfs.is_done(); sfs.next(), i++) { -+ sfs.current()->zero_print_on_error(i, st, buf, sizeof(buf)); -+ st->cr(); -+ } -+ -+ // Reset the frame anchor if necessary -+ if (!has_last_Java_frame) -+ jt->reset_last_Java_frame(); -+ } -+#else - if (jt->has_last_Java_frame()) { - st->print_cr("Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)"); - for(StackFrameStream sfs(jt); !sfs.is_done(); sfs.next()) { -@@ -465,6 +499,7 @@ - st->cr(); - } - } -+#endif // ZERO - } - - STEP(140, "(printing VM operation)" )
--- a/patches/zero/6891677.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,418 +0,0 @@ -diff -r 2c88089b6e1c -r 608937d41381 make/hotspot-rules.gmk ---- openjdk/make/hotspot-rules.gmk Fri Oct 02 11:26:17 2009 -0700 -+++ openjdk/make/hotspot-rules.gmk Thu Oct 15 13:26:17 2009 +0100 -@@ -72,6 +72,10 @@ - HOTSPOT_TARGET = all_fastdebug - endif - -+ifeq ($(ZERO_BUILD), true) -+ HOTSPOT_TARGET := $(HOTSPOT_TARGET)zero -+endif -+ - HOTSPOT_BUILD_ARGUMENTS += $(COMMON_BUILD_ARGUMENTS) - HOTSPOT_BUILD_ARGUMENTS += ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR) - HOTSPOT_BUILD_ARGUMENTS += ALT_EXPORT_PATH=$(HOTSPOT_EXPORT_PATH) -diff -r 5d0cf59a3203 -r 34a68fa0680b make/common/Defs-linux.gmk ---- openjdk/corba/make/common/Defs-linux.gmk Fri Oct 02 11:26:18 2009 -0700 -+++ openjdk/corba/make/common/Defs-linux.gmk Thu Oct 15 13:28:26 2009 +0100 -@@ -99,8 +99,16 @@ - LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9 - CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9 - LDFLAGS_COMMON_sparc += -m32 -mcpu=v9 --CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH)) --LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH)) -+ifeq ($(ZERO_BUILD), true) -+ CFLAGS_REQUIRED = $(ZERO_ARCHFLAG) -+ ifeq ($(ZERO_ENDIANNESS), little) -+ CFLAGS_REQUIRED += -D_LITTLE_ENDIAN -+ endif -+ LDFLAGS_COMMON += $(ZERO_ARCHFLAG) -+else -+ CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH)) -+ LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH)) -+endif - - # Add in platform specific optimizations for all opt levels - CC_HIGHEST_OPT += $(_OPT_$(ARCH)) -@@ -196,7 +204,7 @@ - - EXTRA_LIBS += -lc - --LDFLAGS_DEFS_OPTION = -z defs -+LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker defs - LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION) - - # -diff -r 5d0cf59a3203 -r 34a68fa0680b make/common/shared/Compiler-gcc.gmk ---- openjdk/corba/make/common/shared/Compiler-gcc.gmk Fri Oct 02 11:26:18 2009 -0700 -+++ openjdk/corba/make/common/shared/Compiler-gcc.gmk Thu Oct 15 13:28:26 2009 +0100 -@@ -70,6 +70,11 @@ - else - CXX = $(COMPILER_PATH)g++ - endif -+ ifeq ($(ZERO_BUILD), true) -+ # zero -+ REQUIRED_CC_VER = 3.2 -+ REQUIRED_GCC_VER = 3.2.* -+ else - ifneq ("$(findstring sparc,$(ARCH))", "") - # sparc or sparcv9 - REQUIRED_CC_VER = 4.0 -@@ -88,6 +93,7 @@ - endif - endif - endif -+ endif - # Option used to create a shared library - SHARED_LIBRARY_FLAG = -shared -mimpure-text - SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 ) -diff -r eacb36e30327 -r e2de121c27c4 make/common/Defs-linux.gmk ---- openjdk/jdk/make/common/Defs-linux.gmk Wed Oct 14 23:41:11 2009 +0100 -+++ openjdk/jdk/make/common/Defs-linux.gmk Thu Oct 15 13:27:59 2009 +0100 -@@ -116,8 +116,16 @@ - LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9 - CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9 - LDFLAGS_COMMON_sparc += -m32 -mcpu=v9 --CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH)) --LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH)) -+ifeq ($(ZERO_BUILD), true) -+ CFLAGS_REQUIRED = $(ZERO_ARCHFLAG) -+ ifeq ($(ZERO_ENDIANNESS), little) -+ CFLAGS_REQUIRED += -D_LITTLE_ENDIAN -+ endif -+ LDFLAGS_COMMON += $(ZERO_ARCHFLAG) -+else -+ CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH)) -+ LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH)) -+endif - - # If this is a --hash-style=gnu system, use --hash-style=both - # The gnu .hash section won't work on some Linux systems like SuSE 10. -@@ -217,7 +225,7 @@ - - EXTRA_LIBS += -lc - --LDFLAGS_DEFS_OPTION = -z defs -+LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker defs - LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION) - - # -diff -r eacb36e30327 -r e2de121c27c4 make/common/Program.gmk ---- openjdk/jdk/make/common/Program.gmk Wed Oct 14 23:41:11 2009 +0100 -+++ openjdk/jdk/make/common/Program.gmk Thu Oct 15 13:27:59 2009 +0100 -@@ -85,7 +85,7 @@ - endif - endif - ifeq ($(PLATFORM), linux) -- LDFLAGS += -z origin -+ LDFLAGS += -Wl,-z -Wl,origin - LDFLAGS += -Wl,--allow-shlib-undefined - LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../lib/$(LIBARCH)/jli - LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../jre/lib/$(LIBARCH)/jli -@@ -279,8 +279,14 @@ - - # - # How to install jvm.cfg. --# --$(JVMCFG): $(LAUNCHER_PLATFORM_SRC)/bin/$(ARCH)/jvm.cfg -+# -+ifeq ($(ZERO_BUILD), true) -+JVMCFG_ARCH = zero -+else -+JVMCFG_ARCH = $(ARCH) -+endif -+ -+$(JVMCFG): $(LAUNCHER_PLATFORM_SRC)/bin/$(JVMCFG_ARCH)/jvm.cfg - $(install-file) - - # -diff -r eacb36e30327 -r e2de121c27c4 make/java/instrument/Makefile ---- openjdk/jdk/make/java/instrument/Makefile Wed Oct 14 23:41:11 2009 +0100 -+++ openjdk/jdk/make/java/instrument/Makefile Thu Oct 15 13:27:59 2009 +0100 -@@ -109,7 +109,7 @@ - LDFLAGS += -R \$$ORIGIN/jli - endif - ifeq ($(PLATFORM), linux) -- LDFLAGS += -z origin -+ LDFLAGS += -Wl,-z -Wl,origin - LDFLAGS += -Wl,--allow-shlib-undefined - LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/jli - endif -diff -r eacb36e30327 -r e2de121c27c4 make/java/redist/Makefile ---- openjdk/jdk/make/java/redist/Makefile Wed Oct 14 23:41:11 2009 +0100 -+++ openjdk/jdk/make/java/redist/Makefile Thu Oct 15 13:27:59 2009 +0100 -@@ -94,11 +94,13 @@ - endif - endif # INCLUDE_SA - --# Hotspot client is only available on 32-bit builds -+# Hotspot client is only available on 32-bit non-Zero builds -+ifneq ($(ZERO_BUILD), true) - ifeq ($(ARCH_DATA_MODEL), 32) - IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME) \ - $(LIB_LOCATION)/$(CLIENT_LOCATION)/Xusage.txt - endif -+endif - - ifeq ($(PLATFORM), windows) - # Windows vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Windows -@@ -171,6 +173,7 @@ - IMPORT_LIST += $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMDB_NAME) - endif - -+ifneq ($(ZERO_BUILD), true) - ifeq ($(ARCH_DATA_MODEL), 32) - - IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(LIBJSIG_NAME) -@@ -201,6 +204,8 @@ - - endif # 32bit - -+endif # ZERO_BUILD -+ - # NOT Windows ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ NOT Windows - - endif # PLATFORM -diff -r eacb36e30327 -r e2de121c27c4 make/javax/sound/SoundDefs.gmk ---- openjdk/jdk/make/javax/sound/SoundDefs.gmk Wed Oct 14 23:41:11 2009 +0100 -+++ openjdk/jdk/make/javax/sound/SoundDefs.gmk Thu Oct 15 13:27:59 2009 +0100 -@@ -55,21 +55,25 @@ - - endif # PLATFORM solaris - --ifeq ($(ARCH), i586) -- CPPFLAGS += -DX_ARCH=X_I586 --endif # ARCH i586 -+ifeq ($(ZERO_BUILD), true) -+ CPPFLAGS += -DX_ARCH=X_ZERO -+else -+ ifeq ($(ARCH), i586) -+ CPPFLAGS += -DX_ARCH=X_I586 -+ endif # ARCH i586 - --ifeq ($(ARCH), sparc) -- CPPFLAGS += -DX_ARCH=X_SPARC --endif # ARCH sparc -+ ifeq ($(ARCH), sparc) -+ CPPFLAGS += -DX_ARCH=X_SPARC -+ endif # ARCH sparc - --ifeq ($(ARCH), sparcv9) -- CPPFLAGS += -DX_ARCH=X_SPARCV9 --endif # ARCH sparcv9 -+ ifeq ($(ARCH), sparcv9) -+ CPPFLAGS += -DX_ARCH=X_SPARCV9 -+ endif # ARCH sparcv9 - --ifeq ($(ARCH), amd64) -- CPPFLAGS += -DX_ARCH=X_AMD64 --endif # ARCH amd64 -+ ifeq ($(ARCH), amd64) -+ CPPFLAGS += -DX_ARCH=X_AMD64 -+ endif # ARCH amd64 -+endif - - - # files needed for MIDI i/o -diff -r eacb36e30327 -r e2de121c27c4 make/jdk_generic_profile.sh ---- openjdk/jdk/make/jdk_generic_profile.sh Wed Oct 14 23:41:11 2009 +0100 -+++ openjdk/jdk/make/jdk_generic_profile.sh Thu Oct 15 13:27:59 2009 +0100 -@@ -339,3 +339,82 @@ - PATH="${path4sdk}" - export PATH - -+# Export variables required for Zero -+if [ "${ZERO_BUILD}" = true ] ; then -+ # ZERO_LIBARCH is the name of the architecture-specific -+ # subdirectory under $JAVA_HOME/jre/lib -+ arch=$(uname -m) -+ case "${arch}" in -+ x86_64) ZERO_LIBARCH=amd64 ;; -+ i?86) ZERO_LIBARCH=i386 ;; -+ sparc64) ZERO_LIBARCH=sparcv9 ;; -+ arm*) ZERO_LIBARCH=arm ;; -+ *) ZERO_LIBARCH="$(arch)" -+ esac -+ export ZERO_LIBARCH -+ -+ # ARCH_DATA_MODEL is the number of bits in a pointer -+ case "${ZERO_LIBARCH}" in -+ i386|ppc|s390|sparc|arm) -+ ARCH_DATA_MODEL=32 -+ ;; -+ amd64|ppc64|s390x|sparcv9|ia64|alpha) -+ ARCH_DATA_MODEL=64 -+ ;; -+ *) -+ echo "ERROR: Unable to determine ARCH_DATA_MODEL for ${ZERO_LIBARCH}" -+ exit 1 -+ esac -+ export ARCH_DATA_MODEL -+ -+ # ZERO_ENDIANNESS is the endianness of the processor -+ case "${ZERO_LIBARCH}" in -+ i386|amd64|ia64) -+ ZERO_ENDIANNESS=little -+ ;; -+ ppc*|s390*|sparc*|alpha) -+ ZERO_ENDIANNESS=big -+ ;; -+ *) -+ echo "ERROR: Unable to determine ZERO_ENDIANNESS for ${ZERO_LIBARCH}" -+ exit 1 -+ esac -+ export ZERO_ENDIANNESS -+ -+ # ZERO_ARCHDEF is used to enable architecture-specific code -+ case "${ZERO_LIBARCH}" in -+ i386) ZERO_ARCHDEF=IA32 ;; -+ ppc*) ZERO_ARCHDEF=PPC ;; -+ s390*) ZERO_ARCHDEF=S390 ;; -+ sparc*) ZERO_ARCHDEF=SPARC ;; -+ *) ZERO_ARCHDEF=$(echo "${ZERO_LIBARCH}" | tr a-z A-Z) -+ esac -+ export ZERO_ARCHDEF -+ -+ # ZERO_ARCHFLAG tells the compiler which mode to build for -+ case "${ZERO_LIBARCH}" in -+ s390) -+ ZERO_ARCHFLAG="-m31" -+ ;; -+ *) -+ ZERO_ARCHFLAG="-m${ARCH_DATA_MODEL}" -+ esac -+ export ZERO_ARCHFLAG -+ -+ # LIBFFI_CFLAGS and LIBFFI_LIBS tell the compiler how to compile and -+ # link against libffi -+ pkgconfig=$(which pkg-config 2>/dev/null) -+ if [ -x "${pkgconfig}" ] ; then -+ if [ "${LIBFFI_CFLAGS}" = "" ] ; then -+ LIBFFI_CFLAGS=$("${pkgconfig}" --cflags libffi) -+ fi -+ if [ "${LIBFFI_LIBS}" = "" ] ; then -+ LIBFFI_LIBS=$("${pkgconfig}" --libs libffi) -+ fi -+ fi -+ if [ "${LIBFFI_LIBS}" = "" ] ; then -+ LIBFFI_LIBS="-lffi" -+ fi -+ export LIBFFI_CFLAGS -+ export LIBFFI_LIBS -+fi -diff -r eacb36e30327 -r e2de121c27c4 src/share/native/com/sun/media/sound/SoundDefs.h ---- openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Oct 14 23:41:11 2009 +0100 -+++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Thu Oct 15 13:27:59 2009 +0100 -@@ -38,6 +38,7 @@ - #define X_SPARCV9 3 - #define X_IA64 4 - #define X_AMD64 5 -+#define X_ZERO 6 - - // ********************************** - // Make sure you set X_PLATFORM and X_ARCH defines correctly. -diff -r eacb36e30327 -r e2de121c27c4 src/solaris/bin/ergo_zero.c ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ openjdk/jdk/src/solaris/bin/ergo_zero.c Thu Oct 15 13:27:59 2009 +0100 -@@ -0,0 +1,58 @@ -+/* -+ * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. Sun designates this -+ * particular file as subject to the "Classpath" exception as provided -+ * by Sun in the LICENSE file that accompanied this code. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+#include "ergo.h" -+ -+ -+/* Methods for solaris-sparc and linux-sparc: these are easy. */ -+ -+/* Ask the OS how many processors there are. */ -+static unsigned long -+physical_processors(void) { -+ const unsigned long sys_processors = sysconf(_SC_NPROCESSORS_CONF); -+ -+ JLI_TraceLauncher("sysconf(_SC_NPROCESSORS_CONF): %lu\n", sys_processors); -+ return sys_processors; -+} -+ -+/* The sparc version of the "server-class" predicate. */ -+jboolean -+ServerClassMachineImpl(void) { -+ jboolean result = JNI_FALSE; -+ /* How big is a server class machine? */ -+ const unsigned long server_processors = 2UL; -+ const uint64_t server_memory = 2UL * GB; -+ const uint64_t actual_memory = physical_memory(); -+ -+ /* Is this a server class machine? */ -+ if (actual_memory >= server_memory) { -+ const unsigned long actual_processors = physical_processors(); -+ if (actual_processors >= server_processors) { -+ result = JNI_TRUE; -+ } -+ } -+ JLI_TraceLauncher("unix_" LIBARCHNAME "_ServerClassMachine: %s\n", -+ (result == JNI_TRUE ? "JNI_TRUE" : "JNI_FALSE")); -+ return result; -+} -diff -r eacb36e30327 -r e2de121c27c4 src/solaris/bin/zero/jvm.cfg ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ openjdk/jdk/src/solaris/bin/zero/jvm.cfg Thu Oct 15 13:27:59 2009 +0100 -@@ -0,0 +1,39 @@ -+# Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. -+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+# -+# This code is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License version 2 only, as -+# published by the Free Software Foundation. Sun designates this -+# particular file as subject to the "Classpath" exception as provided -+# by Sun in the LICENSE file that accompanied this code. -+# -+# This code is distributed in the hope that it will be useful, but WITHOUT -+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+# version 2 for more details (a copy is included in the LICENSE file that -+# accompanied this code). -+# -+# You should have received a copy of the GNU General Public License version -+# 2 along with this work; if not, write to the Free Software Foundation, -+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+# -+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+# CA 95054 USA or visit www.sun.com if you need additional information or -+# have any questions. -+# -+# -+# List of JVMs that can be used as an option to java, javac, etc. -+# Order is important -- first in this list is the default JVM. -+# NOTE that this both this file and its format are UNSUPPORTED and -+# WILL GO AWAY in a future release. -+# -+# You may also select a JVM in an arbitrary location with the -+# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported -+# and may not be available in a future release. -+# -+-server KNOWN -+-client IGNORE -+-hotspot ERROR -+-classic WARN -+-native ERROR -+-green ERROR
--- a/patches/zero/6896043.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -diff -r de44705e6b33 -r 8e7adf982378 src/share/vm/interpreter/bytecodeInterpreter.cpp ---- openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Tue Nov 24 11:49:42 2009 -0800 -+++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Fri Nov 27 07:56:58 2009 -0800 -@@ -281,7 +281,7 @@ - - #define DO_BACKEDGE_CHECKS(skip, branch_pc) \ - if ((skip) <= 0) { \ -- if (UseCompiler && UseLoopCounter) { \ -+ if (UseLoopCounter) { \ - bool do_OSR = UseOnStackReplacement; \ - BACKEDGE_COUNT->increment(); \ - if (do_OSR) do_OSR = BACKEDGE_COUNT->reached_InvocationLimit(); \ -@@ -289,16 +289,12 @@ - nmethod* osr_nmethod; \ - OSR_REQUEST(osr_nmethod, branch_pc); \ - if (osr_nmethod != NULL && osr_nmethod->osr_entry_bci() != InvalidOSREntryBci) { \ -- intptr_t* buf; \ -- CALL_VM(buf=SharedRuntime::OSR_migration_begin(THREAD), handle_exception); \ -+ intptr_t* buf = SharedRuntime::OSR_migration_begin(THREAD); \ - istate->set_msg(do_osr); \ - istate->set_osr_buf((address)buf); \ - istate->set_osr_entry(osr_nmethod->osr_entry()); \ - return; \ - } \ -- } else { \ -- INCR_INVOCATION_COUNT; \ -- SAFEPOINT; \ - } \ - } /* UseCompiler ... */ \ - INCR_INVOCATION_COUNT; \ -@@ -1281,12 +1277,7 @@ - jfloat f; - jdouble r; - f = STACK_FLOAT(-1); --#ifdef IA64 -- // IA64 gcc bug -- r = ( f == 0.0f ) ? (jdouble) f : (jdouble) f + ia64_double_zero; --#else - r = (jdouble) f; --#endif - MORE_STACK(-1); // POP - SET_STACK_DOUBLE(r, 1); - UPDATE_PC_AND_TOS_AND_CONTINUE(1, 2); -diff -r de44705e6b33 -r 8e7adf982378 src/share/vm/prims/jni.cpp ---- openjdk/hotspot/src/share/vm/prims/jni.cpp Tue Nov 24 11:49:42 2009 -0800 -+++ openjdk/hotspot/src/share/vm/prims/jni.cpp Fri Nov 27 07:56:58 2009 -0800 -@@ -3231,6 +3231,21 @@ - jint result = JNI_ERR; - DT_RETURN_MARK(CreateJavaVM, jint, (const jint&)result); - -+ // We're about to use Atomic::xchg for synchronization. Some Zero -+ // platforms use the GCC builtin __sync_lock_test_and_set for this, -+ // but __sync_lock_test_and_set is not guaranteed to do what we want -+ // on all architectures. So we check it works before relying on it. -+#if defined(ZERO) && defined(ASSERT) -+ { -+ jint a = 0xcafebabe; -+ jint b = Atomic::xchg(0xdeadbeef, &a); -+ void *c = &a; -+ void *d = Atomic::xchg_ptr(&b, &c); -+ assert(a == 0xdeadbeef && b == (jint) 0xcafebabe, "Atomic::xchg() works"); -+ assert(c == &b && d == &a, "Atomic::xchg_ptr() works"); -+ } -+#endif // ZERO && ASSERT -+ - // At the moment it's only possible to have one Java VM, - // since some of the runtime state is in global variables. - -diff -r de44705e6b33 -r 8e7adf982378 src/share/vm/prims/jvmtiManageCapabilities.cpp ---- openjdk/hotspot/src/share/vm/prims/jvmtiManageCapabilities.cpp Tue Nov 24 11:49:42 2009 -0800 -+++ openjdk/hotspot/src/share/vm/prims/jvmtiManageCapabilities.cpp Fri Nov 27 07:56:58 2009 -0800 -@@ -115,8 +115,10 @@ - jvmtiCapabilities jc; - - memset(&jc, 0, sizeof(jc)); -+#ifndef CC_INTERP - jc.can_pop_frame = 1; - jc.can_force_early_return = 1; -+#endif // !CC_INTERP - jc.can_get_source_debug_extension = 1; - jc.can_access_local_variables = 1; - jc.can_maintain_original_method_order = 1; -diff -r de44705e6b33 -r 8e7adf982378 src/share/vm/runtime/os.hpp ---- openjdk/hotspot/src/share/vm/runtime/os.hpp Tue Nov 24 11:49:42 2009 -0800 -+++ openjdk/hotspot/src/share/vm/runtime/os.hpp Fri Nov 27 07:56:58 2009 -0800 -@@ -294,19 +294,16 @@ - } - - static bool is_memory_serialize_page(JavaThread *thread, address addr) { -- address thr_addr; - if (UseMembar) return false; -- // Calculate thread specific address -+ // Previously this function calculated the exact address of this -+ // thread's serialize page, and checked if the faulting address -+ // was equal. However, some platforms mask off faulting addresses -+ // to the page size, so now we just check that the address is -+ // within the page. This makes the thread argument unnecessary, -+ // but we retain the NULL check to preserve existing behaviour. - if (thread == NULL) return false; -- // TODO-FIXME: some platforms mask off faulting addresses to the base pagesize. -- // Instead of using a test for equality we should probably use something -- // of the form: -- // return ((_mem_serialize_page ^ addr) & -pagesize) == 0 -- // -- thr_addr = (address)(((uintptr_t)thread >> -- get_serialize_page_shift_count()) & -- get_serialize_page_mask()) + (uintptr_t)_mem_serialize_page; -- return (thr_addr == addr); -+ address page = (address) _mem_serialize_page; -+ return addr >= page && addr < (page + os::vm_page_size()); - } - - static void block_on_serialize_page_trap();
--- a/patches/zero/6903453.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -diff -r 937144222e22 -r 28b983e5bb5f make/common/shared/Platform.gmk ---- openjdk/corba/make/common/shared/Platform.gmk Sun Nov 08 14:49:40 2009 -0800 -+++ openjdk/corba/make/common/shared/Platform.gmk Mon Nov 23 10:04:41 2009 +0000 -@@ -187,6 +187,9 @@ - sparc*) \ - echo sparc \ - ;; \ -+ arm*) \ -+ echo arm \ -+ ;; \ - *) \ - echo $(mach) \ - ;; \ -diff -r 8fb602395be0 -r ad1c88142958 make/common/shared/Platform.gmk ---- openjdk/jdk/make/common/shared/Platform.gmk Sun Nov 08 14:49:18 2009 -0800 -+++ openjdk/jdk/make/common/shared/Platform.gmk Mon Nov 23 10:04:47 2009 +0000 -@@ -165,6 +165,9 @@ - sparc*) \ - echo sparc \ - ;; \ -+ arm*) \ -+ echo arm \ -+ ;; \ - *) \ - echo $(mach) \ - ;; \ -diff -r 8fb602395be0 -r ad1c88142958 src/share/native/java/lang/fdlibm/include/fdlibm.h ---- openjdk/jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h Sun Nov 08 14:49:18 2009 -0800 -+++ openjdk/jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h Mon Nov 23 10:04:47 2009 +0000 -@@ -29,7 +29,7 @@ - #ifdef __NEWVALID /* special setup for Sun test regime */ - #if defined(i386) || defined(i486) || \ - defined(intel) || defined(x86) || \ -- defined(i86pc) || defined(_M_IA64) -+ defined(i86pc) || defined(_M_IA64) || defined(ia64) - #define _LITTLE_ENDIAN - #endif - #endif
--- a/patches/zero/6909153.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -diff -r 1ea456c6f2b7 -r 40e7c1d24e4a src/share/vm/compiler/compileBroker.cpp ---- openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp Tue Dec 22 17:56:03 2009 -0800 -+++ openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp Mon Jan 04 00:22:57 2010 -0800 -@@ -1820,9 +1820,11 @@ - CompileBroker::_t_standard_compilation.seconds(), - CompileBroker::_t_standard_compilation.seconds() / CompileBroker::_total_standard_compile_count); - tty->print_cr(" On stack replacement : %6.3f s, Average : %2.3f", CompileBroker::_t_osr_compilation.seconds(), CompileBroker::_t_osr_compilation.seconds() / CompileBroker::_total_osr_compile_count); -- compiler(CompLevel_fast_compile)->print_timers(); -- if (compiler(CompLevel_fast_compile) != compiler(CompLevel_highest_tier)) { -- compiler(CompLevel_highest_tier)->print_timers(); -+ -+ if (compiler(CompLevel_fast_compile)) { -+ compiler(CompLevel_fast_compile)->print_timers(); -+ if (compiler(CompLevel_fast_compile) != compiler(CompLevel_highest_tier)) -+ compiler(CompLevel_highest_tier)->print_timers(); - } - - tty->cr(); -diff -r 1ea456c6f2b7 -r 40e7c1d24e4a src/share/vm/runtime/arguments.cpp ---- openjdk/hotspot/src/share/vm/runtime/arguments.cpp Tue Dec 22 17:56:03 2009 -0800 -+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp Mon Jan 04 00:22:57 2010 -0800 -@@ -2756,9 +2756,16 @@ - set_aggressive_opts_flags(); - - #ifdef CC_INTERP -- // Biased locking is not implemented with c++ interpreter -+ // Clear flags not supported by the C++ interpreter -+ FLAG_SET_DEFAULT(ProfileInterpreter, false); - FLAG_SET_DEFAULT(UseBiasedLocking, false); --#endif /* CC_INTERP */ -+ LP64_ONLY(FLAG_SET_DEFAULT(UseCompressedOops, false)); -+#endif // CC_INTERP -+ -+#ifdef ZERO -+ // Clear flags not supported by Zero -+ FLAG_SET_DEFAULT(TaggedStackInterpreter, false); -+#endif // ZERO - - #ifdef COMPILER2 - if (!UseBiasedLocking || EmitSync != 0) {
--- a/patches/zero/6913869.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -diff -r 40e7c1d24e4a -r 896da934748c src/share/vm/prims/jni.cpp ---- openjdk/hotspot/src/share/vm/prims/jni.cpp Mon Jan 04 00:22:57 2010 -0800 -+++ openjdk/hotspot/src/share/vm/prims/jni.cpp Mon Jan 04 03:34:40 2010 -0800 -@@ -3241,7 +3241,7 @@ - jint b = Atomic::xchg(0xdeadbeef, &a); - void *c = &a; - void *d = Atomic::xchg_ptr(&b, &c); -- assert(a == 0xdeadbeef && b == (jint) 0xcafebabe, "Atomic::xchg() works"); -+ assert(a == (jint) 0xdeadbeef && b == (jint) 0xcafebabe, "Atomic::xchg() works"); - assert(c == &b && d == &a, "Atomic::xchg_ptr() works"); - } - #endif // ZERO && ASSERT
--- a/patches/zero/6914622.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -diff -r 9b9c1ee9b3f6 -r f62a22282a47 src/share/vm/runtime/arguments.cpp ---- openjdk/hotspot/src/share/vm/runtime/arguments.cpp Wed Jan 06 22:21:39 2010 -0800 -+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp Thu Jan 07 16:24:17 2010 -0800 -@@ -2633,6 +2633,10 @@ - if (match_option(option, "-XX:-IgnoreUnrecognizedVMOptions", &tail)) { - IgnoreUnrecognizedVMOptions = false; - } -+ if (match_option(option, "-XX:+PrintFlagsInitial", &tail)) { -+ CommandLineFlags::printFlags(); -+ vm_exit(0); -+ } - } - - if (IgnoreUnrecognizedVMOptions) { -@@ -2795,11 +2799,9 @@ - CommandLineFlags::printSetFlags(); - } - --#ifdef ASSERT - if (PrintFlagsFinal) { - CommandLineFlags::printFlags(); - } --#endif - - return JNI_OK; - } -diff -r 9b9c1ee9b3f6 -r f62a22282a47 src/share/vm/runtime/globals.cpp ---- openjdk/hotspot/src/share/vm/runtime/globals.cpp Wed Jan 06 22:21:39 2010 -0800 -+++ openjdk/hotspot/src/share/vm/runtime/globals.cpp Thu Jan 07 16:24:17 2010 -0800 -@@ -468,6 +468,8 @@ - assert(Arguments::check_vm_args_consistency(), "Some flag settings conflict"); - } - -+#endif // PRODUCT -+ - void CommandLineFlags::printFlags() { - // Print the flags sorted by name - // note: this method is called before the thread structure is in place -@@ -493,5 +495,3 @@ - } - FREE_C_HEAP_ARRAY(Flag*, array); - } -- --#endif -diff -r 9b9c1ee9b3f6 -r f62a22282a47 src/share/vm/runtime/globals.hpp ---- openjdk/hotspot/src/share/vm/runtime/globals.hpp Wed Jan 06 22:21:39 2010 -0800 -+++ openjdk/hotspot/src/share/vm/runtime/globals.hpp Thu Jan 07 16:24:17 2010 -0800 -@@ -211,7 +211,7 @@ - static bool wasSetOnCmdline(const char* name, bool* value); - static void printSetFlags(); - -- static void printFlags() PRODUCT_RETURN; -+ static void printFlags(); - - static void verify() PRODUCT_RETURN; - }; -@@ -327,9 +327,6 @@ - product(bool, UseMembar, false, \ - "(Unstable) Issues membars on thread state transitions") \ - \ -- product(bool, PrintCommandLineFlags, false, \ -- "Prints flags that appeared on the command line") \ -- \ - diagnostic(bool, UnlockDiagnosticVMOptions, trueInDebug, \ - "Enable normal processing of flags relating to field diagnostics")\ - \ -@@ -1967,9 +1964,6 @@ - "number of times a GC thread (minus the coordinator) " \ - "will sleep while yielding before giving up and resuming GC") \ - \ -- notproduct(bool, PrintFlagsFinal, false, \ -- "Print all command line flags after argument processing") \ -- \ - /* gc tracing */ \ - manageable(bool, PrintGC, false, \ - "Print message at garbage collect") \ -@@ -2269,11 +2263,20 @@ - "If false, restricts profiled locations to the root method only") \ - \ - product(bool, PrintVMOptions, trueInDebug, \ -- "print VM flag settings") \ -+ "Print flags that appeared on the command line") \ - \ - product(bool, IgnoreUnrecognizedVMOptions, false, \ - "Ignore unrecognized VM options") \ - \ -+ product(bool, PrintCommandLineFlags, false, \ -+ "Print flags specified on command line or set by ergonomics") \ -+ \ -+ product(bool, PrintFlagsInitial, false, \ -+ "Print all VM flags before argument processing and exit VM") \ -+ \ -+ product(bool, PrintFlagsFinal, false, \ -+ "Print all VM flags after argument and ergonomic processing") \ -+ \ - diagnostic(bool, SerializeVMOutput, true, \ - "Use a mutex to serialize output to tty and hotspot.log") \ - \
--- a/patches/zero/6939845.patch Sun Apr 18 17:03:04 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ ---- openjdk.old/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Wed Mar 31 11:55:22 2010 -+++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Wed Mar 31 11:55:22 2010 -@@ -2328,6 +2328,17 @@ - } - - DEFAULT: -+#ifdef ZERO -+ // Some zero configurations use the C++ interpreter as a -+ // fallback interpreter and have support for platform -+ // specific fast bytecodes which aren't supported here, so -+ // redispatch to the equivalent non-fast bytecode when they -+ // are encountered. -+ if (Bytecodes::is_defined((Bytecodes::Code)opcode)) { -+ opcode = (jubyte)Bytecodes::java_code((Bytecodes::Code)opcode); -+ goto opcode_switch; -+ } -+#endif - fatal2("\t*** Unimplemented opcode: %d = %s\n", - opcode, Bytecodes::name((Bytecodes::Code)opcode)); - goto finish;