Mercurial > hg > release > icedtea6-1.9
changeset 2044:832b1c20603a
Remove upstreamed patches (first half of Zero patches and bidi tests)
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.
author | Andrew John Hughes <ahughes@redhat.com> |
---|---|
date | Tue, 30 Mar 2010 13:40:33 +0100 |
parents | e3cdadcefb93 |
children | 3d6ec111052e |
files | ChangeLog Makefile.am patches/openjdk/annotation-tests.patch patches/openjdk/bidi-tests.patch patches/zero/6890308.patch patches/zero/6891677.patch patches/zero/6896043.patch |
diffstat | 7 files changed, 12 insertions(+), 7458 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Mon Mar 29 02:54:20 2010 +0100 +++ b/ChangeLog Tue Mar 30 13:40:33 2010 +0100 @@ -1,3 +1,15 @@ +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-28 Andrew John Hughes <ahughes@redhat.com> * patches/icedtea-override.patch:
--- a/Makefile.am Mon Mar 29 02:54:20 2010 +0100 +++ b/Makefile.am Tue Mar 30 13:40:33 2010 +0100 @@ -213,9 +213,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 \ @@ -267,8 +264,6 @@ 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 \
--- a/patches/openjdk/annotation-tests.patch Mon Mar 29 02:54:20 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 Mon Mar 29 02:54:20 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/zero/6890308.patch Mon Mar 29 02:54:20 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 Mon Mar 29 02:54:20 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 Mon Mar 29 02:54:20 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();