diff -Nru openjdk-6-6b24-1.11/aclocal.m4 openjdk-6-6b24-1.11.1/aclocal.m4 --- openjdk-6-6b24-1.11/aclocal.m4 2012-02-02 16:28:44.000000000 +0000 +++ openjdk-6-6b24-1.11.1/aclocal.m4 2012-02-15 15:21:15.000000000 +0000 @@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.11.2 -*- Autoconf -*- +# generated automatically by aclocal 1.11.3 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, @@ -198,7 +198,7 @@ [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.2], [], +m4_if([$1], [1.11.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -214,7 +214,7 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.2])dnl +[AM_AUTOMAKE_VERSION([1.11.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) @@ -1053,7 +1053,7 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1075,10 +1075,11 @@ # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) diff -Nru openjdk-6-6b24-1.11/build/confdefs.h openjdk-6-6b24-1.11.1/build/confdefs.h --- openjdk-6-6b24-1.11/build/confdefs.h 2012-02-02 16:30:07.000000000 +0000 +++ openjdk-6-6b24-1.11.1/build/confdefs.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -/* confdefs.h */ -#define PACKAGE_NAME "icedtea6" -#define PACKAGE_TARNAME "icedtea6" -#define PACKAGE_VERSION "1.11" -#define PACKAGE_STRING "icedtea6 1.11" -#define PACKAGE_BUGREPORT "distro-pkg-dev@openjdk.java.net" -#define PACKAGE_URL "" -#define PACKAGE "icedtea6" -#define VERSION "1.11" -#define STDC_HEADERS 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_SYS_STAT_H 1 -#define HAVE_STDLIB_H 1 -#define HAVE_STRING_H 1 -#define HAVE_MEMORY_H 1 -#define HAVE_STRINGS_H 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_STDINT_H 1 -#define HAVE_UNISTD_H 1 diff -Nru openjdk-6-6b24-1.11/build/config.log openjdk-6-6b24-1.11.1/build/config.log --- openjdk-6-6b24-1.11/build/config.log 2012-02-02 16:30:08.000000000 +0000 +++ openjdk-6-6b24-1.11.1/build/config.log 1970-01-01 00:00:00.000000000 +0000 @@ -1,1050 +0,0 @@ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by icedtea6 configure 1.11, which was -generated by GNU Autoconf 2.68. Invocation command line was - - $ ../configure --with-jdk-home=/usr/lib/jvm/java-gcj --with-javac=/usr/bin/ecj --with-java=/usr/lib/jvm/java-gcj/bin/java --with-javah=/usr/bin/gjavah-4.6 --with-rmic=/usr/bin/grmic-4.6 --with-jar=/usr/bin/fastjar --with-pkgversion=6b24~pre4-2 --with-rhino=/usr/share/java/js.jar --with-openjdk-src-zip=/home/packages/openjdk/b24/openjdk-6-6b24-1.11/openjdk-6-src-b24-14_nov_2011.tar.gz --with-jaf-drop-zip=/home/packages/openjdk/b24/openjdk-6-6b24-1.11/drops/jdk6-jaf-b20.zip --with-jaxp-drop-zip=/home/packages/openjdk/b24/openjdk-6-6b24-1.11/drops/jaxp144_03.zip --with-jaxws-drop-zip=/home/packages/openjdk/b24/openjdk-6-6b24-1.11/drops/jdk6-jaxws2_1_6-2011_06_13.zip --with-hotspot-build=original --with-cacao-src-zip=/home/packages/openjdk/b24/openjdk-6-6b24-1.11/cacao-cff92704c4e0.tar.gz --with-jamvm-src-zip=/home/packages/openjdk/b24/openjdk-6-6b24-1.11/jamvm-4617da717ecb05654ea5bb9572338061106a414d.tar.gz --with-parallel-jobs=4 --enable-xrender --enable-pulse-java --disable-system-lcms --enable-nss --with-additional-vms=cacao,zero,jamvm --host=x86_64-linux-gnu --build=x86_64-linux-gnu - -## --------- ## -## Platform. ## -## --------- ## - -hostname = octogon -uname -m = x86_64 -uname -r = 2.6.38-8-server -uname -s = Linux -uname -v = #41-Ubuntu SMP Tue Apr 5 19:48:11 UTC 2011 - -/usr/bin/uname -p = unknown -/bin/uname -X = unknown - -/bin/arch = unknown -/usr/bin/arch -k = unknown -/usr/convex/getsysinfo = unknown -/usr/bin/hostinfo = unknown -/bin/machine = unknown -/usr/bin/oslevel = unknown -/bin/universe = unknown - -PATH: /home/packages/openjdk/b24/openjdk-6-6b24-1.11/bin -PATH: /home/doko/bin -PATH: /usr/local/bin -PATH: /usr/bin -PATH: /bin -PATH: /usr/local/games -PATH: /usr/games -PATH: /usr/sbin -PATH: /sbin - - -## ----------- ## -## Core tests. ## -## ----------- ## - -configure:2779: checking for a BSD-compatible install -configure:2847: result: /usr/bin/install -c -configure:2858: checking whether build environment is sane -configure:2908: result: yes -configure:3049: checking for a thread-safe mkdir -p -configure:3088: result: /bin/mkdir -p -configure:3101: checking for gawk -configure:3117: found /usr/bin/gawk -configure:3128: result: gawk -configure:3139: checking whether make sets $(MAKE) -configure:3161: result: yes -configure:3236: checking how to create a pax tar archive -configure:3249: tar --version -tar (GNU tar) 1.26 -Copyright (C) 2011 Free Software Foundation, Inc. -License GPLv3+: GNU GPL version 3 or later . -This is free software: you are free to change and redistribute it. -There is NO WARRANTY, to the extent permitted by law. - -Written by John Gilmore and Jay Fenlason. -configure:3252: $? = 0 -configure:3292: tardir=conftest.dir && eval tar --format=posix -chf - "$tardir" >conftest.tar -configure:3295: $? = 0 -configure:3299: tar -xf - &5 -x86_64-linux-gnu-gcc (Debian 4.6.2-12) 4.6.2 -Copyright (C) 2011 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -configure:3732: $? = 0 -configure:3721: x86_64-linux-gnu-gcc -v >&5 -Using built-in specs. -COLLECT_GCC=x86_64-linux-gnu-gcc -COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper -Target: x86_64-linux-gnu -Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.2-12' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu -Thread model: posix -gcc version 4.6.2 (Debian 4.6.2-12) -configure:3732: $? = 0 -configure:3721: x86_64-linux-gnu-gcc -V >&5 -x86_64-linux-gnu-gcc: error: unrecognized option '-V' -x86_64-linux-gnu-gcc: fatal error: no input files -compilation terminated. -configure:3732: $? = 4 -configure:3721: x86_64-linux-gnu-gcc -qversion >&5 -x86_64-linux-gnu-gcc: error: unrecognized option '-qversion' -x86_64-linux-gnu-gcc: fatal error: no input files -compilation terminated. -configure:3732: $? = 4 -configure:3752: checking whether the C compiler works -configure:3774: x86_64-linux-gnu-gcc conftest.c >&5 -configure:3778: $? = 0 -configure:3826: result: yes -configure:3829: checking for C compiler default output file name -configure:3831: result: a.out -configure:3837: checking for suffix of executables -configure:3844: x86_64-linux-gnu-gcc -o conftest conftest.c >&5 -configure:3848: $? = 0 -configure:3870: result: -configure:3892: checking whether we are cross compiling -configure:3900: x86_64-linux-gnu-gcc -o conftest conftest.c >&5 -configure:3904: $? = 0 -configure:3911: ./conftest -configure:3915: $? = 0 -configure:3930: result: no -configure:3935: checking for suffix of object files -configure:3957: x86_64-linux-gnu-gcc -c conftest.c >&5 -configure:3961: $? = 0 -configure:3982: result: o -configure:3986: checking whether we are using the GNU C compiler -configure:4005: x86_64-linux-gnu-gcc -c conftest.c >&5 -configure:4005: $? = 0 -configure:4014: result: yes -configure:4023: checking whether x86_64-linux-gnu-gcc accepts -g -configure:4043: x86_64-linux-gnu-gcc -c -g conftest.c >&5 -configure:4043: $? = 0 -configure:4084: result: yes -configure:4101: checking for x86_64-linux-gnu-gcc option to accept ISO C89 -configure:4165: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -configure:4165: $? = 0 -configure:4178: result: none needed -configure:4209: checking for style of include used by make -configure:4237: result: GNU -configure:4263: checking dependency style of x86_64-linux-gnu-gcc -configure:4374: result: none -configure:4403: checking for x86_64-linux-gnu-g++ -configure:4419: found /usr/bin/x86_64-linux-gnu-g++ -configure:4430: result: x86_64-linux-gnu-g++ -configure:4501: checking for C++ compiler version -configure:4510: x86_64-linux-gnu-g++ --version >&5 -x86_64-linux-gnu-g++ (Debian 4.6.2-12) 4.6.2 -Copyright (C) 2011 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -configure:4521: $? = 0 -configure:4510: x86_64-linux-gnu-g++ -v >&5 -Using built-in specs. -COLLECT_GCC=x86_64-linux-gnu-g++ -COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper -Target: x86_64-linux-gnu -Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.2-12' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu -Thread model: posix -gcc version 4.6.2 (Debian 4.6.2-12) -configure:4521: $? = 0 -configure:4510: x86_64-linux-gnu-g++ -V >&5 -x86_64-linux-gnu-g++: error: unrecognized option '-V' -x86_64-linux-gnu-g++: fatal error: no input files -compilation terminated. -configure:4521: $? = 4 -configure:4510: x86_64-linux-gnu-g++ -qversion >&5 -x86_64-linux-gnu-g++: error: unrecognized option '-qversion' -x86_64-linux-gnu-g++: fatal error: no input files -compilation terminated. -configure:4521: $? = 4 -configure:4525: checking whether we are using the GNU C++ compiler -configure:4544: x86_64-linux-gnu-g++ -c conftest.cpp >&5 -configure:4544: $? = 0 -configure:4553: result: yes -configure:4562: checking whether x86_64-linux-gnu-g++ accepts -g -configure:4582: x86_64-linux-gnu-g++ -c -g conftest.cpp >&5 -configure:4582: $? = 0 -configure:4623: result: yes -configure:4648: checking dependency style of x86_64-linux-gnu-g++ -configure:4759: result: none -configure:4778: checking for x86_64-linux-gnu-make -configure:4811: result: no -configure:4821: checking for make -configure:4839: found /usr/bin/make -configure:4851: result: /usr/bin/make -configure:4881: checking for x86_64-linux-gnu-gzip -configure:4914: result: no -configure:4924: checking for gzip -configure:4942: found /bin/gzip -configure:4954: result: /bin/gzip -configure:4984: checking for x86_64-linux-gnu-ant -configure:5017: result: no -configure:5027: checking for ant -configure:5045: found /usr/bin/ant -configure:5057: result: /usr/bin/ant -configure:5087: checking for x86_64-linux-gnu-find -configure:5120: result: no -configure:5130: checking for find -configure:5148: found /usr/bin/find -configure:5160: result: /usr/bin/find -configure:5190: checking for x86_64-linux-gnu-patch -configure:5223: result: no -configure:5233: checking for patch -configure:5251: found /usr/bin/patch -configure:5263: result: /usr/bin/patch -configure:5293: checking for x86_64-linux-gnu-tar -configure:5326: result: no -configure:5336: checking for tar -configure:5354: found /bin/tar -configure:5366: result: /bin/tar -configure:5396: checking for x86_64-linux-gnu-chmod -configure:5429: result: no -configure:5439: checking for chmod -configure:5457: found /bin/chmod -configure:5469: result: /bin/chmod -configure:5499: checking for x86_64-linux-gnu-sha256sum -configure:5532: result: no -configure:5542: checking for sha256sum -configure:5560: found /usr/bin/sha256sum -configure:5572: result: /usr/bin/sha256sum -configure:5602: checking for x86_64-linux-gnu-wget -configure:5635: result: no -configure:5645: checking for wget -configure:5663: found /usr/bin/wget -configure:5675: result: /usr/bin/wget -configure:5705: checking for x86_64-linux-gnu-zip -configure:5738: result: no -configure:5748: checking for zip -configure:5766: found /usr/bin/zip -configure:5778: result: /usr/bin/zip -configure:5808: checking for x86_64-linux-gnu-unzip -configure:5841: result: no -configure:5851: checking for unzip -configure:5869: found /usr/bin/unzip -configure:5881: result: /usr/bin/unzip -configure:5911: checking for x86_64-linux-gnu-cpio -configure:5944: result: no -configure:5954: checking for cpio -configure:5972: found /bin/cpio -configure:5984: result: /bin/cpio -configure:6014: checking for x86_64-linux-gnu-file -configure:6047: result: no -configure:6057: checking for file -configure:6075: found /usr/bin/file -configure:6087: result: /usr/bin/file -configure:6119: checking for x86_64-linux-gnu-fastjar -configure:6149: result: no -configure:6119: checking for x86_64-linux-gnu-jar -configure:6149: result: no -configure:6163: checking for fastjar -configure:6179: found /usr/bin/fastjar -configure:6190: result: fastjar -configure:6221: checking for x86_64-linux-gnu-ldd -configure:6251: result: no -configure:6261: checking for ldd -configure:6277: found /usr/bin/ldd -configure:6288: result: ldd -configure:6313: checking for x86_64-linux-gnu-gawk -configure:6346: result: no -configure:6356: checking for gawk -configure:6374: found /usr/bin/gawk -configure:6386: result: /usr/bin/gawk -configure:6417: checking for x86_64-linux-gnu-hg -configure:6450: result: no -configure:6460: checking for hg -configure:6493: result: no -configure:6516: checking for an OpenJDK source directory -configure:6532: result: /home/packages/openjdk/b24/openjdk-6-6b24-1.11/build/openjdk -configure:6637: checking for x86_64-linux-gnu-lsb_release -configure:6670: result: no -configure:6680: checking for lsb_release -configure:6698: found /usr/bin/lsb_release -configure:6710: result: /usr/bin/lsb_release -configure:6733: checking whether to compile ecj natively -configure:6747: result: no -configure:6855: checking which HotSpot build to use -configure:6874: result: original -configure:6889: checking for x86_64-linux-gnu-linux32 -configure:6922: result: no -configure:6932: checking for linux32 -configure:6950: found /usr/bin/linux32 -configure:6962: result: /usr/bin/linux32 -configure:6985: checking version of GCC -configure:6998: result: 4.6 (major version 4, minor version 6) -configure:7005: checking for x86_64-linux-gnu-getconf -configure:7038: result: no -configure:7048: checking for getconf -configure:7066: found /usr/bin/getconf -configure:7078: result: /usr/bin/getconf -configure:7105: checking the number of online processors -configure:7118: result: 4 -configure:7124: checking how many parallel build jobs to execute -configure:7144: result: 4 -configure:7149: checking if cp supports --reflink -configure:7164: result: yes -configure:7176: checking if we can hard link rather than copy from /home/packages/openjdk/b24/openjdk-6-6b24-1.11 -configure:7190: result: yes -configure:7202: checking if a PaX-enabled kernel is running -configure:7215: result: no -configure:7227: checking for system library directory -configure:7257: result: -configure:7273: checking for x86_64-linux-gnu-pkg-config -configure:7306: result: no -configure:7316: checking for pkg-config -configure:7334: found /usr/bin/pkg-config -configure:7346: result: /usr/bin/pkg-config -configure:7371: checking pkg-config is at least version 0.9.0 -configure:7374: result: yes -configure:7386: checking for NSS -configure:7393: $PKG_CONFIG --exists --print-errors "nss" -configure:7396: $? = 0 -configure:7410: $PKG_CONFIG --exists --print-errors "nss" -configure:7413: $? = 0 -configure:7451: result: yes -configure:7473: checking whether to disable the execution of the JTReg tests -configure:7493: result: no -configure:7505: checking whether to disable the execution of the HotSpot JTReg tests -configure:7525: result: no -configure:7537: checking whether to disable the execution of the langtools JTReg tests -configure:7557: result: no -configure:7569: checking whether to disable the execution of the JDK JTReg tests -configure:7589: result: no -configure:7604: checking for xvfb-run -configure:7620: found /usr/bin/xvfb-run -configure:7631: result: xvfb-run -a -e xvfb-errors -configure:7641: checking for an Ant home directory -configure:7661: result: /usr/share/ant -configure:7664: checking whether to include PulseAudio support -configure:7681: result: yes -configure:7684: checking whether to build documentation -configure:7701: result: yes -configure:7705: checking whether to enable experimental OpenJDK cross-compilation support -configure:7722: result: no -configure:7725: checking whether to include the XRender pipeline -configure:7742: result: yes -configure:7745: checking whether to include SystemTap tracing support -configure:7762: result: no -configure:7765: checking whether to include the NSS-based security provider -configure:7784: result: enabled by default (edit java.security to disable) -configure:7792: checking for distribution package version -configure:7806: result: 6b24~pre4-2 -configure:7820: checking build identification -configure:7834: result: Debian GNU/Linux unstable (sid), package 6b24~pre4-2 -configure:7971: checking whether to build a bootstrap version first -configure:7991: result: yes -configure:8003: checking for a JDK home directory -configure:8038: result: /usr/lib/jvm/java-gcj -configure:8047: checking if a java binary was specified -configure:8065: result: /usr/lib/jvm/java-gcj/bin/java -configure:8070: checking if /usr/lib/jvm/java-gcj/bin/java is a valid executable file -configure:8073: result: yes -configure:8218: checking for javac -configure:8221: result: /usr/bin/ecj -configure:8507: checking if a javah binary was specified -configure:8525: result: /usr/bin/gjavah-4.6 -configure:8530: checking if /usr/bin/gjavah-4.6 is a valid executable file -configure:8533: result: yes -configure:8629: checking if a jar binary was specified -configure:8647: result: /usr/bin/fastjar -configure:8652: checking if /usr/bin/fastjar is a valid executable file -configure:8655: result: yes -configure:8747: checking whether jar supports @ argument -configure:8755: result: yes -configure:8762: checking whether jar supports stdin file arguments -configure:8766: result: yes -configure:8774: checking whether jar supports -J options at the end -configure:8778: result: yes -configure:8793: checking if a rmic binary was specified -configure:8811: result: /usr/bin/grmic-4.6 -configure:8816: checking if /usr/bin/grmic-4.6 is a valid executable file -configure:8819: result: yes -configure:8915: checking if a native2ascii binary was specified -configure:8933: result: no -configure:8938: checking if /usr/lib/jvm/java-gcj/bin/native2ascii is a valid executable file -configure:8941: result: yes -configure:9037: checking for an ecj JAR file -configure:9068: result: /usr/share/java/eclipse-ecj.jar -configure:9078: checking for x86_64-linux-gnu-xsltproc -configure:9111: result: no -configure:9121: checking for xsltproc -configure:9139: found /usr/bin/xsltproc -configure:9151: result: /usr/bin/xsltproc -configure:9185: checking whether to include Javascript support via Rhino -configure:9229: result: /usr/share/java/js.jar -configure:9245: checking for an OpenJDK source zip -configure:9272: result: /home/packages/openjdk/b24/openjdk-6-6b24-1.11/openjdk-6-src-b24-14_nov_2011.tar.gz -configure:9277: checking for a HotSpot source zip -configure:9304: result: not specified -configure:9309: checking for an alternate jar command -configure:9339: result: not specified -configure:9344: checking for a JAXP drop zip -configure:9371: result: /home/packages/openjdk/b24/openjdk-6-6b24-1.11/drops/jaxp144_03.zip -configure:9376: checking for a JAF drop zip -configure:9403: result: /home/packages/openjdk/b24/openjdk-6-6b24-1.11/drops/jdk6-jaf-b20.zip -configure:9408: checking for a JAXWS drop zip -configure:9435: result: /home/packages/openjdk/b24/openjdk-6-6b24-1.11/drops/jdk6-jaxws2_1_6-2011_06_13.zip -configure:9441: checking whether to use CACAO as VM -configure:9455: result: no -configure:9468: checking for a CACAO home directory -configure:9505: result: $(abs_top_builddir)/cacao/install -configure:9510: checking for a CACAO source zip -configure:9537: result: /home/packages/openjdk/b24/openjdk-6-6b24-1.11/cacao-cff92704c4e0.tar.gz -configure:9542: checking for a CACAO source directory -configure:9572: result: not specified -configure:9578: checking whether to use JamVM as VM -configure:9592: result: no -configure:9605: checking for a JamVM source zip -configure:9632: result: /home/packages/openjdk/b24/openjdk-6-6b24-1.11/jamvm-4617da717ecb05654ea5bb9572338061106a414d.tar.gz -configure:9638: checking whether to disable optimizations and build with -O0 -g -configure:9658: result: no -configure:9670: checking whether to use the Shark JIT -configure:9691: result: no -configure:9712: checking how to run the C preprocessor -configure:9743: x86_64-linux-gnu-gcc -E conftest.c -configure:9743: $? = 0 -configure:9757: x86_64-linux-gnu-gcc -E conftest.c -conftest.c:11:28: fatal error: ac_nonexistent.h: No such file or directory -compilation terminated. -configure:9757: $? = 1 -configure: failed program was: -| /* confdefs.h */ -| #define PACKAGE_NAME "icedtea6" -| #define PACKAGE_TARNAME "icedtea6" -| #define PACKAGE_VERSION "1.11" -| #define PACKAGE_STRING "icedtea6 1.11" -| #define PACKAGE_BUGREPORT "distro-pkg-dev@openjdk.java.net" -| #define PACKAGE_URL "" -| #define PACKAGE "icedtea6" -| #define VERSION "1.11" -| /* end confdefs.h. */ -| #include -configure:9782: result: x86_64-linux-gnu-gcc -E -configure:9802: x86_64-linux-gnu-gcc -E conftest.c -configure:9802: $? = 0 -configure:9816: x86_64-linux-gnu-gcc -E conftest.c -conftest.c:11:28: fatal error: ac_nonexistent.h: No such file or directory -compilation terminated. -configure:9816: $? = 1 -configure: failed program was: -| /* confdefs.h */ -| #define PACKAGE_NAME "icedtea6" -| #define PACKAGE_TARNAME "icedtea6" -| #define PACKAGE_VERSION "1.11" -| #define PACKAGE_STRING "icedtea6 1.11" -| #define PACKAGE_BUGREPORT "distro-pkg-dev@openjdk.java.net" -| #define PACKAGE_URL "" -| #define PACKAGE "icedtea6" -| #define VERSION "1.11" -| /* end confdefs.h. */ -| #include -configure:9845: checking for grep that handles long lines and -e -configure:9903: result: /bin/grep -configure:9908: checking for egrep -configure:9970: result: /bin/grep -E -configure:9975: checking for ANSI C header files -configure:9995: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -configure:9995: $? = 0 -configure:10068: x86_64-linux-gnu-gcc -o conftest -g -O2 conftest.c >&5 -configure:10068: $? = 0 -configure:10068: ./conftest -configure:10068: $? = 0 -configure:10079: result: yes -configure:10092: checking for sys/types.h -configure:10092: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -configure:10092: $? = 0 -configure:10092: result: yes -configure:10092: checking for sys/stat.h -configure:10092: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -configure:10092: $? = 0 -configure:10092: result: yes -configure:10092: checking for stdlib.h -configure:10092: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -configure:10092: $? = 0 -configure:10092: result: yes -configure:10092: checking for string.h -configure:10092: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -configure:10092: $? = 0 -configure:10092: result: yes -configure:10092: checking for memory.h -configure:10092: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -configure:10092: $? = 0 -configure:10092: result: yes -configure:10092: checking for strings.h -configure:10092: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -configure:10092: $? = 0 -configure:10092: result: yes -configure:10092: checking for inttypes.h -configure:10092: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -configure:10092: $? = 0 -configure:10092: result: yes -configure:10092: checking for stdint.h -configure:10092: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -configure:10092: $? = 0 -configure:10092: result: yes -configure:10092: checking for unistd.h -configure:10092: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -configure:10092: $? = 0 -configure:10092: result: yes -configure:10106: checking whether to use the zero-assembler port -configure:10143: result: no -configure:10198: checking whether byte ordering is bigendian -configure:10213: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -conftest.c:22:9: error: unknown type name 'not' -conftest.c:22:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'universal' -conftest.c:22:15: error: unknown type name 'universal' -configure:10213: $? = 1 -configure: failed program was: -| /* confdefs.h */ -| #define PACKAGE_NAME "icedtea6" -| #define PACKAGE_TARNAME "icedtea6" -| #define PACKAGE_VERSION "1.11" -| #define PACKAGE_STRING "icedtea6 1.11" -| #define PACKAGE_BUGREPORT "distro-pkg-dev@openjdk.java.net" -| #define PACKAGE_URL "" -| #define PACKAGE "icedtea6" -| #define VERSION "1.11" -| #define STDC_HEADERS 1 -| #define HAVE_SYS_TYPES_H 1 -| #define HAVE_SYS_STAT_H 1 -| #define HAVE_STDLIB_H 1 -| #define HAVE_STRING_H 1 -| #define HAVE_MEMORY_H 1 -| #define HAVE_STRINGS_H 1 -| #define HAVE_INTTYPES_H 1 -| #define HAVE_STDINT_H 1 -| #define HAVE_UNISTD_H 1 -| /* end confdefs.h. */ -| #ifndef __APPLE_CC__ -| not a universal capable compiler -| #endif -| typedef int dummy; -| -configure:10258: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -configure:10258: $? = 0 -configure:10276: x86_64-linux-gnu-gcc -c -g -O2 conftest.c >&5 -conftest.c: In function 'main': -conftest.c:28:4: error: unknown type name 'not' -conftest.c:28:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'endian' -configure:10276: $? = 1 -configure: failed program was: -| /* confdefs.h */ -| #define PACKAGE_NAME "icedtea6" -| #define PACKAGE_TARNAME "icedtea6" -| #define PACKAGE_VERSION "1.11" -| #define PACKAGE_STRING "icedtea6 1.11" -| #define PACKAGE_BUGREPORT "distro-pkg-dev@openjdk.java.net" -| #define PACKAGE_URL "" -| #define PACKAGE "icedtea6" -| #define VERSION "1.11" -| #define STDC_HEADERS 1 -| #define HAVE_SYS_TYPES_H 1 -| #define HAVE_SYS_STAT_H 1 -| #define HAVE_STDLIB_H 1 -| #define HAVE_STRING_H 1 -| #define HAVE_MEMORY_H 1 -| #define HAVE_STRINGS_H 1 -| #define HAVE_INTTYPES_H 1 -| #define HAVE_STDINT_H 1 -| #define HAVE_UNISTD_H 1 -| /* end confdefs.h. */ -| #include -| #include -| -| int -| main () -| { -| #if BYTE_ORDER != BIG_ENDIAN -| not big endian -| #endif -| -| ; -| return 0; -| } -configure:10404: result: no -configure:10447: checking for additional virtual machines to build -configure:10471: result: cacao,zero,jamvm -configure:10543: checking whether to retrieve the source code from Mercurial -configure:10563: result: no -configure:10575: checking which Mercurial revision to use -configure:10588: result: tip -configure:10605: checking which Java timezone data directory to use -configure:10632: result: /usr/share/javazi -configure:10648: checking if javax.xml.stream.events.Attribute.getDTDType() wrongly returns a QName - -## ---------------- ## -## Cache variables. ## -## ---------------- ## - -ac_cv_build=x86_64-pc-linux-gnu -ac_cv_c_bigendian=no -ac_cv_c_compiler_gnu=yes -ac_cv_cxx_compiler_gnu=yes -ac_cv_env_ALSA_CFLAGS_set= -ac_cv_env_ALSA_CFLAGS_value= -ac_cv_env_ALSA_LIBS_set= -ac_cv_env_ALSA_LIBS_value= -ac_cv_env_CCC_set= -ac_cv_env_CCC_value= -ac_cv_env_CC_set= -ac_cv_env_CC_value= -ac_cv_env_CFLAGS_set= -ac_cv_env_CFLAGS_value= -ac_cv_env_CPPFLAGS_set= -ac_cv_env_CPPFLAGS_value= -ac_cv_env_CPP_set= -ac_cv_env_CPP_value= -ac_cv_env_CXXFLAGS_set= -ac_cv_env_CXXFLAGS_value= -ac_cv_env_CXX_set= -ac_cv_env_CXX_value= -ac_cv_env_FREETYPE2_CFLAGS_set= -ac_cv_env_FREETYPE2_CFLAGS_value= -ac_cv_env_FREETYPE2_LIBS_set= -ac_cv_env_FREETYPE2_LIBS_value= -ac_cv_env_LDFLAGS_set= -ac_cv_env_LDFLAGS_value= -ac_cv_env_LIBFFI_CFLAGS_set= -ac_cv_env_LIBFFI_CFLAGS_value= -ac_cv_env_LIBFFI_LIBS_set=set -ac_cv_env_LIBFFI_LIBS_value=-lffi_pic -ac_cv_env_LIBPNG_CFLAGS_set= -ac_cv_env_LIBPNG_CFLAGS_value= -ac_cv_env_LIBPNG_LIBS_set= -ac_cv_env_LIBPNG_LIBS_value= -ac_cv_env_LIBPULSE_CFLAGS_set= -ac_cv_env_LIBPULSE_CFLAGS_value= -ac_cv_env_LIBPULSE_LIBS_set= -ac_cv_env_LIBPULSE_LIBS_value= -ac_cv_env_LIBS_set= -ac_cv_env_LIBS_value= -ac_cv_env_NSS_CFLAGS_set= -ac_cv_env_NSS_CFLAGS_value= -ac_cv_env_NSS_LIBS_set= -ac_cv_env_NSS_LIBS_value= -ac_cv_env_PKG_CONFIG_LIBDIR_set= -ac_cv_env_PKG_CONFIG_LIBDIR_value= -ac_cv_env_PKG_CONFIG_PATH_set= -ac_cv_env_PKG_CONFIG_PATH_value= -ac_cv_env_PKG_CONFIG_set= -ac_cv_env_PKG_CONFIG_value= -ac_cv_env_X11_CFLAGS_set= -ac_cv_env_X11_CFLAGS_value= -ac_cv_env_X11_LIBS_set= -ac_cv_env_X11_LIBS_value= -ac_cv_env_XINERAMA_CFLAGS_set= -ac_cv_env_XINERAMA_CFLAGS_value= -ac_cv_env_XINERAMA_LIBS_set= -ac_cv_env_XINERAMA_LIBS_value= -ac_cv_env_XPROTO_CFLAGS_set= -ac_cv_env_XPROTO_CFLAGS_value= -ac_cv_env_XPROTO_LIBS_set= -ac_cv_env_XPROTO_LIBS_value= -ac_cv_env_XP_CFLAGS_set= -ac_cv_env_XP_CFLAGS_value= -ac_cv_env_XP_LIBS_set= -ac_cv_env_XP_LIBS_value= -ac_cv_env_XRENDER_CFLAGS_set= -ac_cv_env_XRENDER_CFLAGS_value= -ac_cv_env_XRENDER_LIBS_set= -ac_cv_env_XRENDER_LIBS_value= -ac_cv_env_XTST_CFLAGS_set= -ac_cv_env_XTST_CFLAGS_value= -ac_cv_env_XTST_LIBS_set= -ac_cv_env_XTST_LIBS_value= -ac_cv_env_XT_CFLAGS_set= -ac_cv_env_XT_CFLAGS_value= -ac_cv_env_XT_LIBS_set= -ac_cv_env_XT_LIBS_value= -ac_cv_env_build_alias_set=set -ac_cv_env_build_alias_value=x86_64-linux-gnu -ac_cv_env_host_alias_set=set -ac_cv_env_host_alias_value=x86_64-linux-gnu -ac_cv_env_target_alias_set= -ac_cv_env_target_alias_value= -ac_cv_header_inttypes_h=yes -ac_cv_header_memory_h=yes -ac_cv_header_stdc=yes -ac_cv_header_stdint_h=yes -ac_cv_header_stdlib_h=yes -ac_cv_header_string_h=yes -ac_cv_header_strings_h=yes -ac_cv_header_sys_stat_h=yes -ac_cv_header_sys_types_h=yes -ac_cv_header_unistd_h=yes -ac_cv_host=x86_64-pc-linux-gnu -ac_cv_objext=o -ac_cv_path_EGREP='/bin/grep -E' -ac_cv_path_GREP=/bin/grep -ac_cv_path_ac_pt_ANT=/usr/bin/ant -ac_cv_path_ac_pt_CHMOD=/bin/chmod -ac_cv_path_ac_pt_CPIO=/bin/cpio -ac_cv_path_ac_pt_FILE=/usr/bin/file -ac_cv_path_ac_pt_FIND=/usr/bin/find -ac_cv_path_ac_pt_GAWK=/usr/bin/gawk -ac_cv_path_ac_pt_GETCONF=/usr/bin/getconf -ac_cv_path_ac_pt_GZIP=/bin/gzip -ac_cv_path_ac_pt_LINUX32=/usr/bin/linux32 -ac_cv_path_ac_pt_LSB_RELEASE=/usr/bin/lsb_release -ac_cv_path_ac_pt_MAKE=/usr/bin/make -ac_cv_path_ac_pt_PATCH=/usr/bin/patch -ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config -ac_cv_path_ac_pt_SHA256SUM=/usr/bin/sha256sum -ac_cv_path_ac_pt_TAR=/bin/tar -ac_cv_path_ac_pt_UNZIP=/usr/bin/unzip -ac_cv_path_ac_pt_WGET=/usr/bin/wget -ac_cv_path_ac_pt_XSLTPROC=/usr/bin/xsltproc -ac_cv_path_ac_pt_ZIP=/usr/bin/zip -ac_cv_path_install='/usr/bin/install -c' -ac_cv_path_mkdir=/bin/mkdir -ac_cv_prog_AWK=gawk -ac_cv_prog_CC=x86_64-linux-gnu-gcc -ac_cv_prog_CPP='x86_64-linux-gnu-gcc -E' -ac_cv_prog_CXX=x86_64-linux-gnu-g++ -ac_cv_prog_XVFB_RUN_CMD='xvfb-run -a -e xvfb-errors' -ac_cv_prog_ac_ct_FASTJAR=fastjar -ac_cv_prog_ac_ct_LDD=ldd -ac_cv_prog_cc_c89= -ac_cv_prog_cc_g=yes -ac_cv_prog_cxx_g=yes -ac_cv_prog_make_make_set=yes -am_cv_CC_dependencies_compiler_type=none -am_cv_CXX_dependencies_compiler_type=none -am_cv_prog_tar_pax=gnutar -it_cv_hardlink_src=yes -it_cv_pax=no -it_cv_proc=4 -it_cv_reflink=yes -pkg_cv_NSS_CFLAGS='-I/usr/include/nss -I/usr/include/nspr ' -pkg_cv_NSS_LIBS='-lnss3 -lnssutil3 -lsmime3 -lssl3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl ' - -## ----------------- ## -## Output variables. ## -## ----------------- ## - -ABS_CLIENT_LIBJVM_SO='' -ABS_JAVA_HOME_DIR='' -ABS_SERVER_LIBJVM_SO='' -ACLOCAL='${SHELL} /home/packages/openjdk/b24/openjdk-6-6b24-1.11/missing --run aclocal-1.11' -ADD_CACAO_BUILD_FALSE='#' -ADD_CACAO_BUILD_TRUE='' -ADD_JAMVM_BUILD_FALSE='#' -ADD_JAMVM_BUILD_TRUE='' -ADD_SHARK_BUILD_FALSE='' -ADD_SHARK_BUILD_TRUE='#' -ADD_ZERO_BUILD_FALSE='#' -ADD_ZERO_BUILD_TRUE='' -ALSA_CFLAGS='' -ALSA_LIBS='' -ALT_CACAO_SRC_DIR='not specified' -ALT_CACAO_SRC_ZIP='/home/packages/openjdk/b24/openjdk-6-6b24-1.11/cacao-cff92704c4e0.tar.gz' -ALT_HOTSPOT_SRC_ZIP='not specified' -ALT_JAF_DROP_ZIP='/home/packages/openjdk/b24/openjdk-6-6b24-1.11/drops/jdk6-jaf-b20.zip' -ALT_JAMVM_SRC_ZIP='/home/packages/openjdk/b24/openjdk-6-6b24-1.11/jamvm-4617da717ecb05654ea5bb9572338061106a414d.tar.gz' -ALT_JAR_CMD='not specified' -ALT_JAXP_DROP_ZIP='/home/packages/openjdk/b24/openjdk-6-6b24-1.11/drops/jaxp144_03.zip' -ALT_JAXWS_DROP_ZIP='/home/packages/openjdk/b24/openjdk-6-6b24-1.11/drops/jdk6-jaxws2_1_6-2011_06_13.zip' -ALT_OPENJDK_SRC_ZIP='/home/packages/openjdk/b24/openjdk-6-6b24-1.11/openjdk-6-src-b24-14_nov_2011.tar.gz' -AMDEPBACKSLASH='\' -AMDEP_FALSE='#' -AMDEP_TRUE='' -AMTAR='${SHELL} /home/packages/openjdk/b24/openjdk-6-6b24-1.11/missing --run tar' -ANT='/usr/bin/ant' -ARCHFLAG='-m64' -ARCH_PREFIX='' -AUTOCONF='${SHELL} /home/packages/openjdk/b24/openjdk-6-6b24-1.11/missing --run autoconf' -AUTOHEADER='${SHELL} /home/packages/openjdk/b24/openjdk-6-6b24-1.11/missing --run autoheader' -AUTOMAKE='${SHELL} /home/packages/openjdk/b24/openjdk-6-6b24-1.11/missing --run automake-1.11' -AWK='gawk' -BOOTSTRAPPING_FALSE='#' -BOOTSTRAPPING_TRUE='' -BUILD_ARCH_DIR='amd64' -BUILD_CACAO_FALSE='#' -BUILD_CACAO_TRUE='' -BUILD_JAMVM_FALSE='#' -BUILD_JAMVM_TRUE='' -BUILD_OS_DIR='linux' -CACAO_IMPORT_PATH='$(abs_top_builddir)/cacao/install' -CC='x86_64-linux-gnu-gcc' -CCDEPMODE='depmode=none' -CFLAGS='-g -O2' -CHMOD='/bin/chmod' -CONFIGURE_ARGS='' -CP39408_JAVAH_FALSE='' -CP39408_JAVAH_TRUE='' -CP40188_JAVAH_FALSE='' -CP40188_JAVAH_TRUE='' -CPIO='/bin/cpio' -CPP='x86_64-linux-gnu-gcc -E' -CPPFLAGS='' -CP_SUPPORTS_REFLINK_FALSE='#' -CP_SUPPORTS_REFLINK_TRUE='' -CROSS_TARGET_ARCH='x86_64' -CXX='x86_64-linux-gnu-g++' -CXXDEPMODE='depmode=none' -CXXFLAGS='-g -O2' -CYGPATH_W='echo' -DEFAULT_LIBDIR='' -DEFS='' -DEPDIR='.deps' -DISABLE_HOTSPOT_TESTS_FALSE='' -DISABLE_HOTSPOT_TESTS_TRUE='#' -DISABLE_JDK_TESTS_FALSE='' -DISABLE_JDK_TESTS_TRUE='#' -DISABLE_LANGTOOLS_TESTS_FALSE='' -DISABLE_LANGTOOLS_TESTS_TRUE='#' -DISABLE_OPTIMIZATIONS_FALSE='' -DISABLE_OPTIMIZATIONS_TRUE='#' -DISABLE_TESTS_FALSE='' -DISABLE_TESTS_TRUE='#' -DIST_ID='Debian GNU/Linux unstable (sid), package 6b24~pre4-2' -DIST_NAME='Debian' -DTDTYPE_QNAME_FALSE='' -DTDTYPE_QNAME_TRUE='' -ECHO_C='' -ECHO_N='-n' -ECHO_T='' -ECJ_JAR='/usr/share/java/eclipse-ecj.jar' -EGREP='/bin/grep -E' -ENABLE_CACAO='no' -ENABLE_CACAO_FALSE='' -ENABLE_CACAO_TRUE='#' -ENABLE_CROSS_COMPILATION_FALSE='' -ENABLE_CROSS_COMPILATION_TRUE='#' -ENABLE_DOCS_FALSE='#' -ENABLE_DOCS_TRUE='' -ENABLE_JAMVM='no' -ENABLE_JAMVM_FALSE='' -ENABLE_JAMVM_TRUE='#' -ENABLE_NSS_FALSE='#' -ENABLE_NSS_TRUE='' -ENABLE_PULSE_JAVA_FALSE='#' -ENABLE_PULSE_JAVA_TRUE='' -ENABLE_SYSTEMTAP_FALSE='' -ENABLE_SYSTEMTAP_TRUE='#' -ENABLE_XRENDER_FALSE='#' -ENABLE_XRENDER_TRUE='' -EXEEXT='' -FASTJAR='fastjar' -FILE='/usr/bin/file' -FIND='/usr/bin/find' -FREETYPE2_CFLAGS='' -FREETYPE2_LIBS='' -GAWK='/usr/bin/gawk' -GCC_OLD_FALSE='' -GCC_OLD_TRUE='#' -GCJ='no' -GETCONF='/usr/bin/getconf' -GREP='/bin/grep' -GZIP='/bin/gzip' -HAS_HOTSPOT_REVISION_FALSE='' -HAS_HOTSPOT_REVISION_TRUE='#' -HAS_ICEDTEA_REVISION_FALSE='' -HAS_ICEDTEA_REVISION_TRUE='#' -HAS_JDK_REVISION_FALSE='' -HAS_JDK_REVISION_TRUE='#' -HAS_PAX_FALSE='' -HAS_PAX_TRUE='#' -HAS_PKGVERSION_FALSE='#' -HAS_PKGVERSION_TRUE='' -HG='' -HGREV='' -HOTSPOT_REVISION='none' -HSBUILD='original' -ICEDTEA_REVISION='none' -INSTALL_ARCH_DIR='amd64' -INSTALL_DATA='${INSTALL} -m 644' -INSTALL_PROGRAM='${INSTALL}' -INSTALL_SCRIPT='${INSTALL}' -INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' -JAR='/usr/bin/fastjar' -JAR_ACCEPTS_STDIN_LIST='1' -JAR_KNOWS_ATFILE='1' -JAR_KNOWS_J_OPTIONS='1' -JAVA='/usr/lib/jvm/java-gcj/bin/java' -JAVAC='/usr/bin/ecj' -JAVAH='/usr/bin/gjavah-4.6' -JDK_REVISION='none' -JRE_ARCH_DIR='amd64' -LDD='ldd' -LDFLAGS='' -LIBFFI_CFLAGS='' -LIBFFI_LIBS='-lffi_pic' -LIBOBJS='' -LIBPNG_CFLAGS='' -LIBPNG_LIBS='' -LIBPULSE_CFLAGS='' -LIBPULSE_LIBS='' -LIBS='' -LINUX32='/usr/bin/linux32' -LLVM_CFLAGS='' -LLVM_CONFIG='' -LLVM_LDFLAGS='' -LLVM_LIBS='' -LSB_RELEASE='/usr/bin/lsb_release' -LTLIBOBJS='' -MAKE='/usr/bin/make' -MAKEINFO='${SHELL} /home/packages/openjdk/b24/openjdk-6-6b24-1.11/missing --run makeinfo' -MKDIR_P='/bin/mkdir -p' -NATIVE2ASCII='/usr/lib/jvm/java-gcj/bin/native2ascii' -NSS_CFLAGS='-I/usr/include/nss -I/usr/include/nspr ' -NSS_LIBDIR='/usr/lib/x86_64-linux-gnu' -NSS_LIBS='-lnss3 -lnssutil3 -lsmime3 -lssl3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl ' -OBJEXT='o' -OPENJDK_BUILD_DIR='openjdk.build' -OPENJDK_SRC_DIR='/home/packages/openjdk/b24/openjdk-6-6b24-1.11/build/openjdk' -OPENJDK_SRC_DIR_FOUND_FALSE='' -OPENJDK_SRC_DIR_FOUND_TRUE='#' -OPENJDK_SRC_DIR_HARDLINKABLE_FALSE='' -OPENJDK_SRC_DIR_HARDLINKABLE_TRUE='#' -OS_PATH='' -PACKAGE='icedtea6' -PACKAGE_BUGREPORT='distro-pkg-dev@openjdk.java.net' -PACKAGE_NAME='icedtea6' -PACKAGE_STRING='icedtea6 1.11' -PACKAGE_TARNAME='icedtea6' -PACKAGE_URL='' -PACKAGE_VERSION='1.11' -PARALLEL_JOBS='4' -PATCH='/usr/bin/patch' -PATH_SEPARATOR=':' -PKGVERSION='6b24~pre4-2' -PKG_CONFIG='/usr/bin/pkg-config' -PKG_CONFIG_LIBDIR='' -PKG_CONFIG_PATH='' -RHINO_JAR='/usr/share/java/js.jar' -RMIC='/usr/bin/grmic-4.6' -SET_MAKE='' -SHA256SUM='/usr/bin/sha256sum' -SHARK_BUILD_FALSE='' -SHARK_BUILD_TRUE='#' -SHELL='/bin/bash' -SRC_DIR_HARDLINKABLE_FALSE='#' -SRC_DIR_HARDLINKABLE_TRUE='' -STRIP='' -SYSTEM_ANT_DIR='/usr/share/ant' -SYSTEM_JDK_DIR='/usr/lib/jvm/java-gcj' -TAR='/bin/tar' -TZDATA_DIR='/usr/share/javazi' -UNZIP='/usr/bin/unzip' -USE_ALT_CACAO_SRC_DIR_FALSE='' -USE_ALT_CACAO_SRC_DIR_TRUE='#' -USE_ALT_CACAO_SRC_ZIP_FALSE='#' -USE_ALT_CACAO_SRC_ZIP_TRUE='' -USE_ALT_HOTSPOT_SRC_ZIP_FALSE='' -USE_ALT_HOTSPOT_SRC_ZIP_TRUE='#' -USE_ALT_JAF_DROP_ZIP_FALSE='#' -USE_ALT_JAF_DROP_ZIP_TRUE='' -USE_ALT_JAMVM_SRC_ZIP_FALSE='#' -USE_ALT_JAMVM_SRC_ZIP_TRUE='' -USE_ALT_JAR_FALSE='' -USE_ALT_JAR_TRUE='#' -USE_ALT_JAXP_DROP_ZIP_FALSE='#' -USE_ALT_JAXP_DROP_ZIP_TRUE='' -USE_ALT_JAXWS_DROP_ZIP_FALSE='#' -USE_ALT_JAXWS_DROP_ZIP_TRUE='' -USE_ALT_OPENJDK_SRC_ZIP_FALSE='#' -USE_ALT_OPENJDK_SRC_ZIP_TRUE='' -USE_HG_FALSE='' -USE_HG_TRUE='#' -USE_SYSTEM_CACAO_FALSE='' -USE_SYSTEM_CACAO_TRUE='#' -VERSION='1.11' -WGET='/usr/bin/wget' -WITH_ALT_HSBUILD_FALSE='' -WITH_ALT_HSBUILD_TRUE='#' -WITH_HGREV_FALSE='' -WITH_HGREV_TRUE='#' -WITH_RHINO_FALSE='#' -WITH_RHINO_TRUE='' -WITH_TZDATA_DIR_FALSE='#' -WITH_TZDATA_DIR_TRUE='' -X11_CFLAGS='' -X11_LIBS='' -XINERAMA_CFLAGS='' -XINERAMA_LIBS='' -XPROTO_CFLAGS='' -XPROTO_LIBS='' -XP_CFLAGS='' -XP_LIBS='' -XRENDER_CFLAGS='' -XRENDER_LIBS='' -XSLTPROC='/usr/bin/xsltproc' -XTST_CFLAGS='' -XTST_LIBS='' -XT_CFLAGS='' -XT_LIBS='' -XVFB_RUN_CMD='xvfb-run -a -e xvfb-errors' -ZERO_ARCHDEF='AMD64' -ZERO_BITSPERWORD='64' -ZERO_BUILD_FALSE='' -ZERO_BUILD_TRUE='#' -ZERO_ENDIANNESS='little' -ZERO_LIBARCH='amd64' -ZIP='/usr/bin/zip' -abs_top_builddir='/home/packages/openjdk/b24/openjdk-6-6b24-1.11/build' -abs_top_srcdir='/home/packages/openjdk/b24/openjdk-6-6b24-1.11' -ac_ct_CC='' -ac_ct_CXX='' -ac_ct_FASTJAR='fastjar' -am__EXEEXT_FALSE='' -am__EXEEXT_TRUE='' -am__fastdepCC_FALSE='' -am__fastdepCC_TRUE='#' -am__fastdepCXX_FALSE='' -am__fastdepCXX_TRUE='#' -am__include='include' -am__isrc=' -I$(srcdir)' -am__leading_dot='.' -am__nodep='_no' -am__quote='' -am__tar='tar --format=posix -chf - "$$tardir"' -am__untar='tar -xf -' -bindir='${exec_prefix}/bin' -build='x86_64-pc-linux-gnu' -build_alias='x86_64-linux-gnu' -build_cpu='x86_64' -build_os='linux-gnu' -build_vendor='pc' -datadir='${datarootdir}' -datarootdir='${prefix}/share' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -dvidir='${docdir}' -exec_prefix='NONE' -host='x86_64-pc-linux-gnu' -host_alias='x86_64-linux-gnu' -host_cpu='x86_64' -host_os='linux-gnu' -host_vendor='pc' -htmldir='${docdir}' -includedir='${prefix}/include' -infodir='${datarootdir}/info' -install_sh='${SHELL} /home/packages/openjdk/b24/openjdk-6-6b24-1.11/install-sh' -libdir='${exec_prefix}/lib' -libexecdir='${exec_prefix}/libexec' -localedir='${datarootdir}/locale' -localstatedir='${prefix}/var' -mandir='${datarootdir}/man' -mkdir_p='/bin/mkdir -p' -oldincludedir='/usr/include' -pdfdir='${docdir}' -prefix='NONE' -program_transform_name='s,x,x,' -psdir='${docdir}' -sbindir='${exec_prefix}/sbin' -sharedstatedir='${prefix}/com' -sysconfdir='${prefix}/etc' -target_alias='' - -configure: caught signal 2 -configure: exit 1 diff -Nru openjdk-6-6b24-1.11/build/tmp.13831/Test.java openjdk-6-6b24-1.11.1/build/tmp.13831/Test.java --- openjdk-6-6b24-1.11/build/tmp.13831/Test.java 2012-02-02 16:30:07.000000000 +0000 +++ openjdk-6-6b24-1.11.1/build/tmp.13831/Test.java 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -/* [#]line 10659 "configure" */ -import javax.xml.namespace.QName; -import javax.xml.stream.Location; -import javax.xml.stream.events.Attribute; -import javax.xml.stream.events.Characters; -import javax.xml.stream.events.EndElement; -import javax.xml.stream.events.StartElement; - -import java.lang.reflect.Method; - -public class Test - implements Attribute -{ - // This method will not qualify if using an - // old version of Classpath where it returns - // a QName. - public String getDTDType() { return "Boom"; } - - // Other Attribute methods - public QName getName() { return null; } - public String getValue() { return "Bang"; } - public boolean isSpecified() { return false; } - - // XMLEvent methods - public Characters asCharacters() { return null; } - public EndElement asEndElement() { return null; } - public StartElement asStartElement() { return null; } - public int getEventType() { return 42; } - public Location getLocation() { return null; } - public QName getSchemaType() { return null; } - public boolean isAttribute() { return true; } - public boolean isCharacters() { return false; } - public boolean isEndDocument() { return false; } - public boolean isEndElement() { return false; } - public boolean isEntityReference() { return false; } - public boolean isNamespace() { return false; } - public boolean isProcessingInstruction() { return false; } - public boolean isStartDocument() { return false; } - public boolean isStartElement() { return false; } - public void writeAsEncodedUnicode(java.io.Writer w) {} - - public static void main(String[] args) - { - for (Method m : Attribute.class.getMethods()) - if (m.getName().equals("getDTDType")) - if (m.getReturnType().equals(QName.class)) - System.exit(1); - } -} diff -Nru openjdk-6-6b24-1.11/ChangeLog openjdk-6-6b24-1.11.1/ChangeLog --- openjdk-6-6b24-1.11/ChangeLog 2012-02-15 16:49:24.000000000 +0000 +++ openjdk-6-6b24-1.11.1/ChangeLog 2012-02-15 15:04:44.000000000 +0000 @@ -1,3 +1,29 @@ +2012-02-10 Omair Majid + + * NEWS: Update with CVE numbers. + +2012-02-08 Omair Majid + + * configure.ac: Bump to 1.11.1. + * NEWS: Update with release date. + +2012-02-08 Omair Majid + + * NEWS: Update with security fixes. + * Makefile.am + (SECURITY_PATCHES): Add security patches. + (SPECIAL_SECURITY_PATCH): Add new variable. + (ICEDTEA_PATCHES): Add security patch that epends on backport. + * patches/security/20120214/7082299.patch, + * patches/security/20120214/7088367.patch, + * patches/security/20120214/7110683.patch, + * patches/security/20120214/7110687.patch, + * patches/security/20120214/7110700.patch, + * patches/security/20120214/7110704.patch, + * patches/security/20120214/7112642.patch, + * patches/security/20120214/7118283.patch, + * patches/security/20120214/7126960.patch: New security fixes. + 2012-02-02 Omair Majid PR865: Patching fails with patches/ecj/jaxws-getdtdtype.patch diff -Nru openjdk-6-6b24-1.11/configure openjdk-6-6b24-1.11.1/configure --- openjdk-6-6b24-1.11/configure 2012-02-02 16:28:46.000000000 +0000 +++ openjdk-6-6b24-1.11.1/configure 2012-02-15 15:21:16.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for icedtea6 1.11. +# Generated by GNU Autoconf 2.68 for icedtea6 1.11.1. # # Report bugs to . # @@ -560,8 +560,8 @@ # Identity of this package. PACKAGE_NAME='icedtea6' PACKAGE_TARNAME='icedtea6' -PACKAGE_VERSION='1.11' -PACKAGE_STRING='icedtea6 1.11' +PACKAGE_VERSION='1.11.1' +PACKAGE_STRING='icedtea6 1.11.1' PACKAGE_BUGREPORT='distro-pkg-dev@openjdk.java.net' PACKAGE_URL='' @@ -1550,7 +1550,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures icedtea6 1.11 to adapt to many kinds of systems. +\`configure' configures icedtea6 1.11.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1620,7 +1620,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of icedtea6 1.11:";; + short | recursive ) echo "Configuration of icedtea6 1.11.1:";; esac cat <<\_ACEOF @@ -1819,7 +1819,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -icedtea6 configure 1.11 +icedtea6 configure 1.11.1 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2383,7 +2383,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by icedtea6 $as_me 1.11, which was +It was created by icedtea6 $as_me 1.11.1, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -3198,7 +3198,7 @@ # Define the identity of the package. PACKAGE='icedtea6' - VERSION='1.11' + VERSION='1.11.1' cat >>confdefs.h <<_ACEOF @@ -3228,9 +3228,9 @@ # We need awk for the "check" target. The system "awk" is bad on # some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5 @@ -13118,7 +13118,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by icedtea6 $as_me 1.11, which was +This file was extended by icedtea6 $as_me 1.11.1, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13175,7 +13175,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -icedtea6 config.status 1.11 +icedtea6 config.status 1.11.1 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff -Nru openjdk-6-6b24-1.11/configure.ac openjdk-6-6b24-1.11.1/configure.ac --- openjdk-6-6b24-1.11/configure.ac 2012-02-02 16:27:34.000000000 +0000 +++ openjdk-6-6b24-1.11.1/configure.ac 2012-02-15 15:03:01.000000000 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.11],[distro-pkg-dev@openjdk.java.net]) +AC_INIT([icedtea6],[1.11.1],[distro-pkg-dev@openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) diff -Nru openjdk-6-6b24-1.11/debian/changelog openjdk-6-6b24-1.11.1/debian/changelog --- openjdk-6-6b24-1.11/debian/changelog 2012-02-15 16:49:24.000000000 +0000 +++ openjdk-6-6b24-1.11.1/debian/changelog 2012-02-15 16:49:48.000000000 +0000 @@ -1,8 +1,22 @@ -openjdk-6 (6b24-1.11-4ubuntu1) precise; urgency=low +openjdk-6 (6b24-1.11.1-0ubuntu1) precise; urgency=low - * Regenerate the control file. + * IcedTea 1.11.1 release. + * Security fixes: + - S7082299, CVE-2011-3571: Fix in AtomicReferenceArray. + - S7088367, CVE-2011-3563: Fix issues in java sound. + - S7110683, CVE-2012-0502: Issues with some KeyboardFocusManager method. + - S7110687, CVE-2012-0503: Issues with TimeZone class. + - S7110700, CVE-2012-0505: Enhance exception throwing mechanism + in ObjectStreamClass. + - S7110704, CVE-2012-0506: Issues with some method in corba. + - S7112642, CVE-2012-0497: Incorrect checking for graphics rendering object. + - S7118283, CVE-2012-0501: Better input parameter checking + in zip file processing. + - S7126960, CVE-2011-5035: (httpserver) Add property to limit number + of request headers to the HTTP Server. + * Backport fixes for S7066307, S7020521 from OpenJDK7 (Xerxes RĂ„nby). - -- Benjamin Drung Tue, 14 Feb 2012 11:54:07 +0100 + -- Matthias Klose Wed, 15 Feb 2012 16:20:16 +0100 openjdk-6 (6b24-1.11-4) unstable; urgency=low diff -Nru openjdk-6-6b24-1.11/debian/control openjdk-6-6b24-1.11.1/debian/control --- openjdk-6-6b24-1.11/debian/control 2012-02-15 16:49:24.000000000 +0000 +++ openjdk-6-6b24-1.11.1/debian/control 2012-02-15 16:49:48.000000000 +0000 @@ -1,8 +1,7 @@ Source: openjdk-6 Section: java Priority: optional -Maintainer: Ubuntu Developers -XSBC-Original-Maintainer: OpenJDK Team +Maintainer: OpenJDK Team Uploaders: Torsten Werner , Matthias Klose , Damien Raude-Morvan Build-Depends: debhelper (>= 5), binutils-dev [armel armhf], m4, lsb-release, wget, zip, unzip, sharutils, gawk, cpio, pkg-config, procps, time, fastjar (>= 2:0.96-0ubuntu2), autoconf, automake, autotools-dev, ant, ant-optional, libtool [alpha amd64 armel armhf i386 lpia m68k mips mipsel powerpc s390], g++-4.6, ecj-gcj [amd64 armhf hppa i386 ia64 lpia powerpc powerpcspe ppc64 m68k mips mipsel sh4 sparc sparc64 s390 s390x], gcj-jdk [amd64 armhf hppa i386 ia64 lpia powerpc powerpcspe ppc64 m68k mips mipsel sh4 sparc sparc64 s390 s390x], openjdk-6-jdk (>= 6b11) [alpha armel], libxtst-dev, libxi-dev, libxt-dev, libxp-dev, libxaw7-dev, libxrender-dev, libcups2-dev, libasound2-dev, libfreetype6-dev (>= 2.2.1), libgtk2.0-dev, libxinerama-dev, xsltproc, rhino, libffi-dev, libpng12-dev, zlib1g-dev, libjpeg8-dev, libgif-dev, libpulse-dev (>= 0.9.12), libnss3-dev (>= 3.12.9+ckbi-1.82-0ubuntu4), mauve, xvfb, xauth, xfonts-base, libgl1-mesa-dri, metacity | twm, dbus-x11, x11-xkb-utils, Standards-Version: 3.9.2 diff -Nru openjdk-6-6b24-1.11/debian/control.in openjdk-6-6b24-1.11.1/debian/control.in --- openjdk-6-6b24-1.11/debian/control.in 2012-02-15 16:49:24.000000000 +0000 +++ openjdk-6-6b24-1.11.1/debian/control.in 2012-02-15 16:49:48.000000000 +0000 @@ -1,8 +1,7 @@ Source: @basename@ Section: java Priority: optional -Maintainer: Ubuntu Developers -XSBC-Original-Maintainer: OpenJDK Team +Maintainer: OpenJDK Team Uploaders: Torsten Werner , Matthias Klose , Damien Raude-Morvan Build-Depends: debhelper (>= 5), binutils-dev [armel armhf], m4, lsb-release, wget, zip, unzip, sharutils, gawk, cpio, pkg-config, procps, time, @bd_fastjar@ @bd_compress@ @bd_autotools@ @bd_ant@ @bd_cacao@ @bd_gcc@ @bd_bootstrap@ @bd_openjdk@ @bd_zero@ @bd_shark@ @bd_syslibs@ @bd_pulsejava@ @bd_nss@ @bd_systemtap@ @bd_mauve@ @bd_xvfb@ Standards-Version: 3.9.2 diff -Nru openjdk-6-6b24-1.11/debian/generate-debian-orig.sh openjdk-6-6b24-1.11.1/debian/generate-debian-orig.sh --- openjdk-6-6b24-1.11/debian/generate-debian-orig.sh 2012-02-15 16:49:24.000000000 +0000 +++ openjdk-6-6b24-1.11.1/debian/generate-debian-orig.sh 2012-02-15 16:49:48.000000000 +0000 @@ -1,6 +1,6 @@ tarball=openjdk-6-src-b24-14_nov_2011.tar.gz -version=6b24-1.11 +version=6b24-1.11.1 hotspot=hotspot-hs20.tar.gz cacaotb=cacao-0.99.4.tar.bz2 cacaotb=cacao-cff92704c4e0.tar.gz diff -Nru openjdk-6-6b24-1.11/.hgignore openjdk-6-6b24-1.11.1/.hgignore --- openjdk-6-6b24-1.11/.hgignore 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-6-6b24-1.11.1/.hgignore 2012-01-20 22:46:29.000000000 +0000 @@ -0,0 +1,54 @@ +syntax: glob +*~ +configure +missing +aclocal.m4 +autom4te.cache +cacao +netbeans +visualvm +bootstrap +build +debian +lib +tools +stamps +Makefile +Makefile.in +config.log +config.guess +config.sub +config.status +install-sh +javac +javap +gcjwebplugin.so +jni-common.o +IcedTeaPlugin.o +IcedTeaPlugin.so +extra-source-files.txt +rt-source-files.txt +hotspot-tools-source-files.txt +tools-source-files.txt +jvm.cfg +ergo.c +tapset/hotspot.stp +test/hotspot +test/jdk +test/langtools +test/jtreg.jar +test/jtreg/classes +test/jtreg-summary.log +test/check-*.log +generated/sun/awt/X11/generator/sizer.32.orig +pulseaudio/bin +pulseaudio/*.o +pulseaudio/src/native/org_.*.h +pulseaudio/*.jar +pulse-java.jar +hotspot.tar.gz +ports/hotspot/src/cpu/zero/vm/bytecodes_arm.s +plugin/tests/LiveConnect/*jar + +syntax: regexp +^openjdk diff -Nru openjdk-6-6b24-1.11/.hgtags openjdk-6-6b24-1.11.1/.hgtags --- openjdk-6-6b24-1.11/.hgtags 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-6-6b24-1.11.1/.hgtags 2012-02-15 15:02:17.000000000 +0000 @@ -0,0 +1,26 @@ +96e1bdfed80e258e0a82e19bde45c5c547c2552f icedtea-1.0 +b639d73581e34a5db114ed5addfd84b093d00254 icedtea-1.1 +1ce086327b07f17892cc351719de6897819e32fa icedtea-1.2 +8ea2619c21cfea2611b44879aab0f781ffd3fd50 icedtea-1.3 +cb78e0fccf14ed4a80b0ada2c98e4621479acbf5 icedtea-1.4 +5ca86e9ca40533c48ca3445a10fd3b058ef94885 icedtea-1.5 +bb3929528d3e9de0529da995c4b71975fd77fb5a icedtea-1.6 +38e6eb354632588f5ac8dbcd69229ebd031f57cb icedtea6-1.0 +a5c32475a2e87f0f3bd7af28e632e6bd4f724b04 icedtea6-1.1 +871b70407a139c6bd42c200762ee1d302b31168f icedtea6-1.2 +3ef9c9c4e70b8204b73fa9b88243f49f59c2a23f icedtea6-1.3 +be368b1e3c7dca9b4dfe8e8f40be794ecfbef22e icedtea6-1.3.1 +6c02b699206db299c6bc96d97d31808bf84f042a icedtea6-1.4pre +2b1c03c1e9fa88e453da2ca774dc8900227a2e16 icedtea6-1.4 +a7b9087df36ee2c9fe2831f9ff08d0e9070abffd icedtea6-1.5rc1 +07de70c5883a637ea2ef4aba3f8472edd7e12f1e icedtea6-1.5rc2 +926c38e2b2830971f6ca0dff2ce25f78a694b178 icedtea6-1.5rc3 +9420faca6468e1c75e9bfa73b31246ba0b73a77d icedtea6-1.6-branchpoint +8826d5735e2ca97ecdb35e7c977785d3e5b99556 icedtea6-1.7-branchpoint +1188b1a313b9e968d57ff44eb879d70f543b20fd icedtea6-1.8-branchpoint +cb463b94b82da269ea089c481ed5e39700525a8a icedtea6-1.9-branchpoint +21f2a8d158545a161ba0d997c13bdba1e6166394 icedtea6-1.10-branchpoint +24c5bd2e7d574441813bfb8f9e4636e50c5d7c28 icedtea6-1.11-branch +933c143b22a0acb6e5c72ac1315fd90a135275a8 icedtea6-1.11pre +746c78997ad9baaac7601686031f507936cebb88 icedtea6-1.11 +24db244df0f369a66d922e2e01f089de9e44f06d icedtea6-1.11.1 diff -Nru openjdk-6-6b24-1.11/Makefile.am openjdk-6-6b24-1.11.1/Makefile.am --- openjdk-6-6b24-1.11/Makefile.am 2012-02-02 11:35:18.000000000 +0000 +++ openjdk-6-6b24-1.11.1/Makefile.am 2012-02-15 16:49:48.000000000 +0000 @@ -201,7 +201,17 @@ ICEDTEA_FSG_PATCHES = -SECURITY_PATCHES = +SECURITY_PATCHES = \ + patches/security/20120214/7082299.patch \ + patches/security/20120214/7088367.patch \ + patches/security/20120214/7110683.patch \ + patches/security/20120214/7110687.patch \ + patches/security/20120214/7110700.patch \ + patches/security/20120214/7110704.patch \ + patches/security/20120214/7118283.patch \ + patches/security/20120214/7126960.patch + +SPECIAL_SECURITY_PATCH = patches/security/20120214/7112642.patch ICEDTEA_PATCHES = \ $(SECURITY_PATCHES) \ @@ -218,6 +228,7 @@ patches/openjdk/6725214-direct3d-01.patch \ patches/openjdk/6748082-isDisplayLocal.patch \ patches/openjdk/6633275-shaped_translucent_windows.patch \ + $(SPECIAL_SECURITY_PATCH) \ patches/openjdk/6769607-modal-hangs.patch \ patches/openjdk/6791612-opengl-jni-fix.patch \ patches/openjdk/6755274-glgetstring-crash.patch \ @@ -406,7 +417,9 @@ patches/openjdk/7091528-javadoc_class_files.patch \ patches/openjdk/7103725-ssl_beast_regression.patch \ patches/openjdk/7140882-dont-return-booleans-from-methods-returning-pointers.patch \ - patches/openjdk/remove-mimpure-option-to-gcc.patch + patches/openjdk/remove-mimpure-option-to-gcc.patch \ + patches/hotspot-7020521.patch \ + patches/hotspot-7026307.patch if WITH_RHINO ICEDTEA_PATCHES += \ diff -Nru openjdk-6-6b24-1.11/Makefile.in openjdk-6-6b24-1.11.1/Makefile.in --- openjdk-6-6b24-1.11/Makefile.in 2012-02-02 16:28:46.000000000 +0000 +++ openjdk-6-6b24-1.11.1/Makefile.in 2012-02-15 16:49:48.000000000 +0000 @@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.11.2 from Makefile.am. +# Makefile.in generated by automake 1.11.3 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -128,9 +128,11 @@ distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ - { test ! -d "$(distdir)" \ - || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr "$(distdir)"; }; } + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print @@ -503,7 +505,17 @@ # Patch list ICEDTEA_FSG_PATCHES = -SECURITY_PATCHES = +SECURITY_PATCHES = \ + patches/security/20120214/7082299.patch \ + patches/security/20120214/7088367.patch \ + patches/security/20120214/7110683.patch \ + patches/security/20120214/7110687.patch \ + patches/security/20120214/7110700.patch \ + patches/security/20120214/7110704.patch \ + patches/security/20120214/7118283.patch \ + patches/security/20120214/7126960.patch + +SPECIAL_SECURITY_PATCH = patches/security/20120214/7112642.patch ICEDTEA_PATCHES = $(SECURITY_PATCHES) \ patches/openjdk/6610244-modal-fatal-error-windows.patch \ patches/stdc-limit-macros.patch \ @@ -518,6 +530,7 @@ patches/openjdk/6725214-direct3d-01.patch \ patches/openjdk/6748082-isDisplayLocal.patch \ patches/openjdk/6633275-shaped_translucent_windows.patch \ + $(SPECIAL_SECURITY_PATCH) \ patches/openjdk/6769607-modal-hangs.patch \ patches/openjdk/6791612-opengl-jni-fix.patch \ patches/openjdk/6755274-glgetstring-crash.patch \ @@ -675,6 +688,7 @@ patches/openjdk/7103725-ssl_beast_regression.patch \ patches/openjdk/7140882-dont-return-booleans-from-methods-returning-pointers.patch \ patches/openjdk/remove-mimpure-option-to-gcc.patch \ + patches/hotspot-7020521.patch patches/hotspot-7026307.patch \ $(am__append_1) $(am__append_2) $(am__append_3) \ $(am__append_4) $(am__append_5) $(am__append_6) \ $(am__append_7) $(am__append_8) $(am__append_9) \ @@ -911,6 +925,10 @@ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__remove_distdir) + dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) @@ -947,6 +965,8 @@ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ @@ -1127,8 +1147,8 @@ .PHONY: all all-am all-local am--refresh check check-am check-local \ clean clean-generic clean-local dist dist-all dist-bzip2 \ - dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distclean-local \ + dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \ + dist-zip distcheck distclean distclean-generic distclean-local \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ diff -Nru openjdk-6-6b24-1.11/missing openjdk-6-6b24-1.11.1/missing --- openjdk-6-6b24-1.11/missing 2012-02-02 16:28:46.000000000 +0000 +++ openjdk-6-6b24-1.11.1/missing 2012-02-15 15:21:17.000000000 +0000 @@ -1,10 +1,10 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2009-04-28.21; # UTC +scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. +# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -84,7 +84,6 @@ help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and @@ -122,15 +121,6 @@ # Not GNU programs, they don't have --version. ;; - tar*) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. @@ -226,7 +216,7 @@ \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` @@ -256,7 +246,7 @@ \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` @@ -318,41 +308,6 @@ touch $file ;; - tar*) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. diff -Nru openjdk-6-6b24-1.11/NEWS openjdk-6-6b24-1.11.1/NEWS --- openjdk-6-6b24-1.11/NEWS 2012-02-15 16:49:24.000000000 +0000 +++ openjdk-6-6b24-1.11.1/NEWS 2012-02-15 15:03:31.000000000 +0000 @@ -10,8 +10,18 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.11.1 (2012-XX-XX): +New in release 1.11.1 (2012-02-14): +* Security fixes + - S7082299, CVE-2011-3571: Fix in AtomicReferenceArray + - S7088367, CVE-2011-3563: Fix issues in java sound + - S7110683, CVE-2012-0502: Issues with some KeyboardFocusManager method + - S7110687, CVE-2012-0503: Issues with TimeZone class + - S7110700, CVE-2012-0505: Enhance exception throwing mechanism in ObjectStreamClass + - S7110704, CVE-2012-0506: Issues with some method in corba + - S7112642, CVE-2012-0497: Incorrect checking for graphics rendering object + - S7118283, CVE-2012-0501: Better input parameter checking in zip file processing + - S7126960, CVE-2011-5035: (httpserver) Add property to limit number of request headers to the HTTP Server * Bug fixes - PR865: Patching fails with patches/ecj/jaxws-getdtdtype.patch diff -Nru openjdk-6-6b24-1.11/patches/hotspot-7020521.patch openjdk-6-6b24-1.11.1/patches/hotspot-7020521.patch --- openjdk-6-6b24-1.11/patches/hotspot-7020521.patch 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-6-6b24-1.11.1/patches/hotspot-7020521.patch 2012-02-15 16:49:48.000000000 +0000 @@ -0,0 +1,1076 @@ +# HG changeset patch +# User iveresov +# Date 1298417102 28800 +# Node ID d89a22843c62ed532495df75c39d883c0370f80d +# Parent 6bbaedb03534bb3f2b014f869103fbedacd96cb1 +7020521: arraycopy stubs place prebarriers incorrectly +Summary: Rearranged the pre-barrier placement in arraycopy stubs so that they are properly called in case of chained calls. Also refactored the code a little bit so that it looks uniform across the platforms and is more readable. +Reviewed-by: never, kvn + +--- openjdk.orig/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp Wed Feb 09 15:02:23 2011 -0800 ++++ openjdk/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp Tue Feb 22 15:25:02 2011 -0800 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1997, 2011, Oracle and/or its affiliates. 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 +@@ -968,19 +968,6 @@ class StubGenerator: public StubCodeGene + return start; + } + +- static address disjoint_byte_copy_entry; +- static address disjoint_short_copy_entry; +- static address disjoint_int_copy_entry; +- static address disjoint_long_copy_entry; +- static address disjoint_oop_copy_entry; +- +- static address byte_copy_entry; +- static address short_copy_entry; +- static address int_copy_entry; +- static address long_copy_entry; +- static address oop_copy_entry; +- +- static address checkcast_copy_entry; + + // + // Verify that a register contains clean 32-bits positive value +@@ -1283,7 +1270,7 @@ class StubGenerator: public StubCodeGene + // to: O1 + // count: O2 treated as signed + // +- address generate_disjoint_byte_copy(bool aligned, const char * name) { ++ address generate_disjoint_byte_copy(bool aligned, address *entry, const char *name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); +@@ -1299,9 +1286,11 @@ class StubGenerator: public StubCodeGene + + assert_clean_int(count, O3); // Make sure 'count' is clean int. + +- if (!aligned) disjoint_byte_copy_entry = __ pc(); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) +- if (!aligned) BLOCK_COMMENT("Entry:"); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } + + // for short arrays, just do single element copy + __ cmp(count, 23); // 16 + 7 +@@ -1391,15 +1380,13 @@ class StubGenerator: public StubCodeGene + // to: O1 + // count: O2 treated as signed + // +- address generate_conjoint_byte_copy(bool aligned, const char * name) { ++ address generate_conjoint_byte_copy(bool aligned, address nooverlap_target, ++ address *entry, const char *name) { + // Do reverse copy. + + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); +- address nooverlap_target = aligned ? +- StubRoutines::arrayof_jbyte_disjoint_arraycopy() : +- disjoint_byte_copy_entry; + + Label L_skip_alignment, L_align, L_aligned_copy; + Label L_copy_byte, L_copy_byte_loop, L_exit; +@@ -1412,9 +1399,11 @@ class StubGenerator: public StubCodeGene + + assert_clean_int(count, O3); // Make sure 'count' is clean int. + +- if (!aligned) byte_copy_entry = __ pc(); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) +- if (!aligned) BLOCK_COMMENT("Entry:"); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } + + array_overlap_test(nooverlap_target, 0); + +@@ -1504,7 +1493,7 @@ class StubGenerator: public StubCodeGene + // to: O1 + // count: O2 treated as signed + // +- address generate_disjoint_short_copy(bool aligned, const char * name) { ++ address generate_disjoint_short_copy(bool aligned, address *entry, const char * name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); +@@ -1520,9 +1509,11 @@ class StubGenerator: public StubCodeGene + + assert_clean_int(count, O3); // Make sure 'count' is clean int. + +- if (!aligned) disjoint_short_copy_entry = __ pc(); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) +- if (!aligned) BLOCK_COMMENT("Entry:"); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } + + // for short arrays, just do single element copy + __ cmp(count, 11); // 8 + 3 (22 bytes) +@@ -1842,15 +1833,13 @@ class StubGenerator: public StubCodeGene + // to: O1 + // count: O2 treated as signed + // +- address generate_conjoint_short_copy(bool aligned, const char * name) { ++ address generate_conjoint_short_copy(bool aligned, address nooverlap_target, ++ address *entry, const char *name) { + // Do reverse copy. + + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); +- address nooverlap_target = aligned ? +- StubRoutines::arrayof_jshort_disjoint_arraycopy() : +- disjoint_short_copy_entry; + + Label L_skip_alignment, L_skip_alignment2, L_aligned_copy; + Label L_copy_2_bytes, L_copy_2_bytes_loop, L_exit; +@@ -1865,9 +1854,11 @@ class StubGenerator: public StubCodeGene + + assert_clean_int(count, O3); // Make sure 'count' is clean int. + +- if (!aligned) short_copy_entry = __ pc(); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) +- if (!aligned) BLOCK_COMMENT("Entry:"); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } + + array_overlap_test(nooverlap_target, 1); + +@@ -2072,7 +2063,7 @@ class StubGenerator: public StubCodeGene + // to: O1 + // count: O2 treated as signed + // +- address generate_disjoint_int_copy(bool aligned, const char * name) { ++ address generate_disjoint_int_copy(bool aligned, address *entry, const char *name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); +@@ -2080,9 +2071,11 @@ class StubGenerator: public StubCodeGene + const Register count = O2; + assert_clean_int(count, O3); // Make sure 'count' is clean int. + +- if (!aligned) disjoint_int_copy_entry = __ pc(); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) +- if (!aligned) BLOCK_COMMENT("Entry:"); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } + + generate_disjoint_int_copy_core(aligned); + +@@ -2204,20 +2197,19 @@ class StubGenerator: public StubCodeGene + // to: O1 + // count: O2 treated as signed + // +- address generate_conjoint_int_copy(bool aligned, const char * name) { ++ address generate_conjoint_int_copy(bool aligned, address nooverlap_target, ++ address *entry, const char *name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); + +- address nooverlap_target = aligned ? +- StubRoutines::arrayof_jint_disjoint_arraycopy() : +- disjoint_int_copy_entry; +- + assert_clean_int(O2, O3); // Make sure 'count' is clean int. + +- if (!aligned) int_copy_entry = __ pc(); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) +- if (!aligned) BLOCK_COMMENT("Entry:"); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } + + array_overlap_test(nooverlap_target, 2); + +@@ -2336,16 +2328,18 @@ class StubGenerator: public StubCodeGene + // to: O1 + // count: O2 treated as signed + // +- address generate_disjoint_long_copy(bool aligned, const char * name) { ++ address generate_disjoint_long_copy(bool aligned, address *entry, const char *name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); + + assert_clean_int(O2, O3); // Make sure 'count' is clean int. + +- if (!aligned) disjoint_long_copy_entry = __ pc(); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) +- if (!aligned) BLOCK_COMMENT("Entry:"); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } + + generate_disjoint_long_copy_core(aligned); + +@@ -2406,19 +2400,21 @@ class StubGenerator: public StubCodeGene + // to: O1 + // count: O2 treated as signed + // +- address generate_conjoint_long_copy(bool aligned, const char * name) { ++ address generate_conjoint_long_copy(bool aligned, address nooverlap_target, ++ address *entry, const char *name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); + + assert(!aligned, "usage"); +- address nooverlap_target = disjoint_long_copy_entry; + + assert_clean_int(O2, O3); // Make sure 'count' is clean int. + +- if (!aligned) long_copy_entry = __ pc(); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) +- if (!aligned) BLOCK_COMMENT("Entry:"); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } + + array_overlap_test(nooverlap_target, 3); + +@@ -2439,7 +2435,7 @@ class StubGenerator: public StubCodeGene + // to: O1 + // count: O2 treated as signed + // +- address generate_disjoint_oop_copy(bool aligned, const char * name) { ++ address generate_disjoint_oop_copy(bool aligned, address *entry, const char *name) { + + const Register from = O0; // source array address + const Register to = O1; // destination array address +@@ -2451,9 +2447,11 @@ class StubGenerator: public StubCodeGene + + assert_clean_int(count, O3); // Make sure 'count' is clean int. + +- if (!aligned) disjoint_oop_copy_entry = __ pc(); +- // caller can pass a 64-bit byte count here +- if (!aligned) BLOCK_COMMENT("Entry:"); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here ++ BLOCK_COMMENT("Entry:"); ++ } + + // save arguments for barrier generation + __ mov(to, G1); +@@ -2487,7 +2485,8 @@ class StubGenerator: public StubCodeGene + // to: O1 + // count: O2 treated as signed + // +- address generate_conjoint_oop_copy(bool aligned, const char * name) { ++ address generate_conjoint_oop_copy(bool aligned, address nooverlap_target, ++ address *entry, const char *name) { + + const Register from = O0; // source array address + const Register to = O1; // destination array address +@@ -2499,21 +2498,18 @@ class StubGenerator: public StubCodeGene + + assert_clean_int(count, O3); // Make sure 'count' is clean int. + +- if (!aligned) oop_copy_entry = __ pc(); +- // caller can pass a 64-bit byte count here +- if (!aligned) BLOCK_COMMENT("Entry:"); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here ++ BLOCK_COMMENT("Entry:"); ++ } ++ ++ array_overlap_test(nooverlap_target, LogBytesPerHeapOop); + + // save arguments for barrier generation + __ mov(to, G1); + __ mov(count, G5); +- + gen_write_ref_array_pre_barrier(G1, G5); +- +- address nooverlap_target = aligned ? +- StubRoutines::arrayof_oop_disjoint_arraycopy() : +- disjoint_oop_copy_entry; +- +- array_overlap_test(nooverlap_target, LogBytesPerHeapOop); + + #ifdef _LP64 + if (UseCompressedOops) { +@@ -2582,7 +2578,7 @@ class StubGenerator: public StubCodeGene + // ckval: O4 (super_klass) + // ret: O0 zero for success; (-1^K) where K is partial transfer count + // +- address generate_checkcast_copy(const char* name) { ++ address generate_checkcast_copy(const char *name, address *entry) { + + const Register O0_from = O0; // source array address + const Register O1_to = O1; // destination array address +@@ -2599,8 +2595,6 @@ class StubGenerator: public StubCodeGene + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); +- +- gen_write_ref_array_pre_barrier(O1, O2); + + #ifdef ASSERT + // We sometimes save a frame (see generate_type_check below). +@@ -2625,9 +2619,13 @@ class StubGenerator: public StubCodeGene + } + #endif //ASSERT + +- checkcast_copy_entry = __ pc(); +- // caller can pass a 64-bit byte count here (from generic stub) +- BLOCK_COMMENT("Entry:"); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from generic stub) ++ BLOCK_COMMENT("Entry:"); ++ } ++ ++ gen_write_ref_array_pre_barrier(O1_to, O2_count); + + Label load_element, store_element, do_card_marks, fail, done; + __ addcc(O2_count, 0, G1_remain); // initialize loop index, and test it +@@ -2700,7 +2698,11 @@ class StubGenerator: public StubCodeGene + // Examines the alignment of the operands and dispatches + // to a long, int, short, or byte copy loop. + // +- address generate_unsafe_copy(const char* name) { ++ address generate_unsafe_copy(const char* name, ++ address byte_copy_entry, ++ address short_copy_entry, ++ address int_copy_entry, ++ address long_copy_entry) { + + const Register O0_from = O0; // source array address + const Register O1_to = O1; // destination array address +@@ -2796,8 +2798,13 @@ class StubGenerator: public StubCodeGene + // O0 == 0 - success + // O0 == -1 - need to call System.arraycopy + // +- address generate_generic_copy(const char *name) { +- ++ address generate_generic_copy(const char *name, ++ address entry_jbyte_arraycopy, ++ address entry_jshort_arraycopy, ++ address entry_jint_arraycopy, ++ address entry_oop_arraycopy, ++ address entry_jlong_arraycopy, ++ address entry_checkcast_arraycopy) { + Label L_failed, L_objArray; + + // Input registers +@@ -2970,15 +2977,15 @@ class StubGenerator: public StubCodeGene + + BLOCK_COMMENT("choose copy loop based on element size"); + __ cmp(G3_elsize, 0); +- __ br(Assembler::equal,true,Assembler::pt,StubRoutines::_jbyte_arraycopy); ++ __ br(Assembler::equal, true, Assembler::pt, entry_jbyte_arraycopy); + __ delayed()->signx(length, count); // length + + __ cmp(G3_elsize, LogBytesPerShort); +- __ br(Assembler::equal,true,Assembler::pt,StubRoutines::_jshort_arraycopy); ++ __ br(Assembler::equal, true, Assembler::pt, entry_jshort_arraycopy); + __ delayed()->signx(length, count); // length + + __ cmp(G3_elsize, LogBytesPerInt); +- __ br(Assembler::equal,true,Assembler::pt,StubRoutines::_jint_arraycopy); ++ __ br(Assembler::equal, true, Assembler::pt, entry_jint_arraycopy); + __ delayed()->signx(length, count); // length + #ifdef ASSERT + { Label L; +@@ -2989,7 +2996,7 @@ class StubGenerator: public StubCodeGene + __ bind(L); + } + #endif +- __ br(Assembler::always,false,Assembler::pt,StubRoutines::_jlong_arraycopy); ++ __ br(Assembler::always, false, Assembler::pt, entry_jlong_arraycopy); + __ delayed()->signx(length, count); // length + + // objArrayKlass +@@ -3013,7 +3020,7 @@ class StubGenerator: public StubCodeGene + __ add(src, src_pos, from); // src_addr + __ add(dst, dst_pos, to); // dst_addr + __ BIND(L_plain_copy); +- __ br(Assembler::always, false, Assembler::pt,StubRoutines::_oop_arraycopy); ++ __ br(Assembler::always, false, Assembler::pt, entry_oop_arraycopy); + __ delayed()->signx(length, count); // length + + __ BIND(L_checkcast_copy); +@@ -3057,7 +3064,7 @@ class StubGenerator: public StubCodeGene + __ ld_ptr(G4_dst_klass, ek_offset, O4); // dest elem klass + // lduw(O4, sco_offset, O3); // sco of elem klass + +- __ br(Assembler::always, false, Assembler::pt, checkcast_copy_entry); ++ __ br(Assembler::always, false, Assembler::pt, entry_checkcast_arraycopy); + __ delayed()->lduw(O4, sco_offset, O3); + } + +@@ -3068,39 +3075,76 @@ class StubGenerator: public StubCodeGene + } + + void generate_arraycopy_stubs() { +- +- // Note: the disjoint stubs must be generated first, some of +- // the conjoint stubs use them. +- StubRoutines::_jbyte_disjoint_arraycopy = generate_disjoint_byte_copy(false, "jbyte_disjoint_arraycopy"); +- StubRoutines::_jshort_disjoint_arraycopy = generate_disjoint_short_copy(false, "jshort_disjoint_arraycopy"); +- StubRoutines::_jint_disjoint_arraycopy = generate_disjoint_int_copy(false, "jint_disjoint_arraycopy"); +- StubRoutines::_jlong_disjoint_arraycopy = generate_disjoint_long_copy(false, "jlong_disjoint_arraycopy"); +- StubRoutines::_oop_disjoint_arraycopy = generate_disjoint_oop_copy(false, "oop_disjoint_arraycopy"); +- StubRoutines::_arrayof_jbyte_disjoint_arraycopy = generate_disjoint_byte_copy(true, "arrayof_jbyte_disjoint_arraycopy"); +- StubRoutines::_arrayof_jshort_disjoint_arraycopy = generate_disjoint_short_copy(true, "arrayof_jshort_disjoint_arraycopy"); +- StubRoutines::_arrayof_jint_disjoint_arraycopy = generate_disjoint_int_copy(true, "arrayof_jint_disjoint_arraycopy"); +- StubRoutines::_arrayof_jlong_disjoint_arraycopy = generate_disjoint_long_copy(true, "arrayof_jlong_disjoint_arraycopy"); +- StubRoutines::_arrayof_oop_disjoint_arraycopy = generate_disjoint_oop_copy(true, "arrayof_oop_disjoint_arraycopy"); +- +- StubRoutines::_jbyte_arraycopy = generate_conjoint_byte_copy(false, "jbyte_arraycopy"); +- StubRoutines::_jshort_arraycopy = generate_conjoint_short_copy(false, "jshort_arraycopy"); +- StubRoutines::_jint_arraycopy = generate_conjoint_int_copy(false, "jint_arraycopy"); +- StubRoutines::_jlong_arraycopy = generate_conjoint_long_copy(false, "jlong_arraycopy"); +- StubRoutines::_oop_arraycopy = generate_conjoint_oop_copy(false, "oop_arraycopy"); +- StubRoutines::_arrayof_jbyte_arraycopy = generate_conjoint_byte_copy(true, "arrayof_jbyte_arraycopy"); +- StubRoutines::_arrayof_jshort_arraycopy = generate_conjoint_short_copy(true, "arrayof_jshort_arraycopy"); ++ address entry; ++ address entry_jbyte_arraycopy; ++ address entry_jshort_arraycopy; ++ address entry_jint_arraycopy; ++ address entry_oop_arraycopy; ++ address entry_jlong_arraycopy; ++ address entry_checkcast_arraycopy; ++ ++ StubRoutines::_jbyte_disjoint_arraycopy = generate_disjoint_byte_copy(false, &entry, ++ "jbyte_disjoint_arraycopy"); ++ StubRoutines::_jbyte_arraycopy = generate_conjoint_byte_copy(false, entry, &entry_jbyte_arraycopy, ++ "jbyte_arraycopy"); ++ StubRoutines::_jshort_disjoint_arraycopy = generate_disjoint_short_copy(false, &entry, ++ "jshort_disjoint_arraycopy"); ++ StubRoutines::_jshort_arraycopy = generate_conjoint_short_copy(false, entry, &entry_jshort_arraycopy, ++ "jshort_arraycopy"); ++ StubRoutines::_jint_disjoint_arraycopy = generate_disjoint_int_copy(false, &entry, ++ "jint_disjoint_arraycopy"); ++ StubRoutines::_jint_arraycopy = generate_conjoint_int_copy(false, entry, &entry_jint_arraycopy, ++ "jint_arraycopy"); ++ StubRoutines::_jlong_disjoint_arraycopy = generate_disjoint_long_copy(false, &entry, ++ "jlong_disjoint_arraycopy"); ++ StubRoutines::_jlong_arraycopy = generate_conjoint_long_copy(false, entry, &entry_jlong_arraycopy, ++ "jlong_arraycopy"); ++ StubRoutines::_oop_disjoint_arraycopy = generate_disjoint_oop_copy(false, &entry, ++ "oop_disjoint_arraycopy"); ++ StubRoutines::_oop_arraycopy = generate_conjoint_oop_copy(false, entry, &entry_oop_arraycopy, ++ "oop_arraycopy"); ++ ++ ++ StubRoutines::_arrayof_jbyte_disjoint_arraycopy = generate_disjoint_byte_copy(true, &entry, ++ "arrayof_jbyte_disjoint_arraycopy"); ++ StubRoutines::_arrayof_jbyte_arraycopy = generate_conjoint_byte_copy(true, entry, NULL, ++ "arrayof_jbyte_arraycopy"); ++ ++ StubRoutines::_arrayof_jshort_disjoint_arraycopy = generate_disjoint_short_copy(true, &entry, ++ "arrayof_jshort_disjoint_arraycopy"); ++ StubRoutines::_arrayof_jshort_arraycopy = generate_conjoint_short_copy(true, entry, NULL, ++ "arrayof_jshort_arraycopy"); ++ ++ StubRoutines::_arrayof_jint_disjoint_arraycopy = generate_disjoint_int_copy(true, &entry, ++ "arrayof_jint_disjoint_arraycopy"); + #ifdef _LP64 + // since sizeof(jint) < sizeof(HeapWord), there's a different flavor: +- StubRoutines::_arrayof_jint_arraycopy = generate_conjoint_int_copy(true, "arrayof_jint_arraycopy"); ++ StubRoutines::_arrayof_jint_arraycopy = generate_conjoint_int_copy(true, entry, NULL, "arrayof_jint_arraycopy"); + #else + StubRoutines::_arrayof_jint_arraycopy = StubRoutines::_jint_arraycopy; + #endif ++ ++ StubRoutines::_arrayof_jlong_disjoint_arraycopy = generate_disjoint_long_copy(true, NULL, ++ "arrayof_jlong_disjoint_arraycopy"); ++ StubRoutines::_arrayof_oop_disjoint_arraycopy = generate_disjoint_oop_copy(true, NULL, ++ "arrayof_oop_disjoint_arraycopy"); ++ + StubRoutines::_arrayof_jlong_arraycopy = StubRoutines::_jlong_arraycopy; + StubRoutines::_arrayof_oop_arraycopy = StubRoutines::_oop_arraycopy; + +- StubRoutines::_checkcast_arraycopy = generate_checkcast_copy("checkcast_arraycopy"); +- StubRoutines::_unsafe_arraycopy = generate_unsafe_copy("unsafe_arraycopy"); +- StubRoutines::_generic_arraycopy = generate_generic_copy("generic_arraycopy"); ++ StubRoutines::_checkcast_arraycopy = generate_checkcast_copy("checkcast_arraycopy", &entry_checkcast_arraycopy); ++ StubRoutines::_unsafe_arraycopy = generate_unsafe_copy("unsafe_arraycopy", ++ entry_jbyte_arraycopy, ++ entry_jshort_arraycopy, ++ entry_jint_arraycopy, ++ entry_jlong_arraycopy); ++ StubRoutines::_generic_arraycopy = generate_generic_copy("generic_arraycopy", ++ entry_jbyte_arraycopy, ++ entry_jshort_arraycopy, ++ entry_jint_arraycopy, ++ entry_oop_arraycopy, ++ entry_jlong_arraycopy, ++ entry_checkcast_arraycopy); + + StubRoutines::_jbyte_fill = generate_fill(T_BYTE, false, "jbyte_fill"); + StubRoutines::_jshort_fill = generate_fill(T_SHORT, false, "jshort_fill"); +@@ -3224,21 +3268,6 @@ class StubGenerator: public StubCodeGene + + }; // end class declaration + +- +-address StubGenerator::disjoint_byte_copy_entry = NULL; +-address StubGenerator::disjoint_short_copy_entry = NULL; +-address StubGenerator::disjoint_int_copy_entry = NULL; +-address StubGenerator::disjoint_long_copy_entry = NULL; +-address StubGenerator::disjoint_oop_copy_entry = NULL; +- +-address StubGenerator::byte_copy_entry = NULL; +-address StubGenerator::short_copy_entry = NULL; +-address StubGenerator::int_copy_entry = NULL; +-address StubGenerator::long_copy_entry = NULL; +-address StubGenerator::oop_copy_entry = NULL; +- +-address StubGenerator::checkcast_copy_entry = NULL; +- + void StubGenerator_generate(CodeBuffer* code, bool all) { + StubGenerator g(code, all); + } +--- openjdk.orig/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp Wed Feb 09 15:02:23 2011 -0800 ++++ openjdk/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp Tue Feb 22 15:25:02 2011 -0800 +@@ -945,15 +945,18 @@ class StubGenerator: public StubCodeGene + __ movptr(from , Address(rsp, 12+ 4)); + __ movptr(to , Address(rsp, 12+ 8)); + __ movl(count, Address(rsp, 12+ 12)); ++ ++ if (entry != NULL) { ++ *entry = __ pc(); // Entry point from conjoint arraycopy stub. ++ BLOCK_COMMENT("Entry:"); ++ } ++ + if (t == T_OBJECT) { + __ testl(count, count); + __ jcc(Assembler::zero, L_0_count); + gen_write_ref_array_pre_barrier(to, count); + __ mov(saved_to, to); // save 'to' + } +- +- *entry = __ pc(); // Entry point from conjoint arraycopy stub. +- BLOCK_COMMENT("Entry:"); + + __ subptr(to, from); // to --> to_from + __ cmpl(count, 2< rdi, to => rsi, count => rdx + // r9 and r10 may be used to save non-volatile registers +@@ -1479,7 +1467,8 @@ class StubGenerator: public StubCodeGene + // dwords or qwords that span cache line boundaries will still be loaded + // and stored atomically. + // +- address generate_conjoint_byte_copy(bool aligned, const char *name) { ++ address generate_conjoint_byte_copy(bool aligned, address nooverlap_target, ++ address* entry, const char *name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); +@@ -1494,11 +1483,13 @@ class StubGenerator: public StubCodeGene + __ enter(); // required for proper stackwalking of RuntimeStub frame + assert_clean_int(c_rarg2, rax); // Make sure 'count' is clean int. + +- byte_copy_entry = __ pc(); +- BLOCK_COMMENT("Entry:"); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) +- +- array_overlap_test(disjoint_byte_copy_entry, Address::times_1); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } ++ ++ array_overlap_test(nooverlap_target, Address::times_1); + setup_arg_regs(); // from => rdi, to => rsi, count => rdx + // r9 and r10 may be used to save non-volatile registers + +@@ -1574,7 +1565,7 @@ class StubGenerator: public StubCodeGene + // disjoint_short_copy_entry is set to the no-overlap entry point + // used by generate_conjoint_short_copy(). + // +- address generate_disjoint_short_copy(bool aligned, const char *name) { ++ address generate_disjoint_short_copy(bool aligned, address *entry, const char *name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); +@@ -1593,9 +1584,11 @@ class StubGenerator: public StubCodeGene + __ enter(); // required for proper stackwalking of RuntimeStub frame + assert_clean_int(c_rarg2, rax); // Make sure 'count' is clean int. + +- disjoint_short_copy_entry = __ pc(); +- BLOCK_COMMENT("Entry:"); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } + + setup_arg_regs(); // from => rdi, to => rsi, count => rdx + // r9 and r10 may be used to save non-volatile registers +@@ -1686,7 +1679,8 @@ class StubGenerator: public StubCodeGene + // or qwords that span cache line boundaries will still be loaded + // and stored atomically. + // +- address generate_conjoint_short_copy(bool aligned, const char *name) { ++ address generate_conjoint_short_copy(bool aligned, address nooverlap_target, ++ address *entry, const char *name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); +@@ -1701,11 +1695,13 @@ class StubGenerator: public StubCodeGene + __ enter(); // required for proper stackwalking of RuntimeStub frame + assert_clean_int(c_rarg2, rax); // Make sure 'count' is clean int. + +- short_copy_entry = __ pc(); +- BLOCK_COMMENT("Entry:"); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) +- +- array_overlap_test(disjoint_short_copy_entry, Address::times_2); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } ++ ++ array_overlap_test(nooverlap_target, Address::times_2); + setup_arg_regs(); // from => rdi, to => rsi, count => rdx + // r9 and r10 may be used to save non-volatile registers + +@@ -1773,7 +1769,7 @@ class StubGenerator: public StubCodeGene + // disjoint_int_copy_entry is set to the no-overlap entry point + // used by generate_conjoint_int_oop_copy(). + // +- address generate_disjoint_int_oop_copy(bool aligned, bool is_oop, const char *name) { ++ address generate_disjoint_int_oop_copy(bool aligned, bool is_oop, address* entry, const char *name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); +@@ -1793,21 +1789,17 @@ class StubGenerator: public StubCodeGene + __ enter(); // required for proper stackwalking of RuntimeStub frame + assert_clean_int(c_rarg2, rax); // Make sure 'count' is clean int. + +- (is_oop ? disjoint_oop_copy_entry : disjoint_int_copy_entry) = __ pc(); +- +- if (is_oop) { +- // no registers are destroyed by this call +- gen_write_ref_array_pre_barrier(/* dest */ c_rarg1, /* count */ c_rarg2); +- } +- +- BLOCK_COMMENT("Entry:"); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } + + setup_arg_regs(); // from => rdi, to => rsi, count => rdx + // r9 and r10 may be used to save non-volatile registers +- + if (is_oop) { + __ movq(saved_to, to); ++ gen_write_ref_array_pre_barrier(to, count); + } + + // 'from', 'to' and 'count' are now valid +@@ -1867,7 +1859,8 @@ class StubGenerator: public StubCodeGene + // the hardware handle it. The two dwords within qwords that span + // cache line boundaries will still be loaded and stored atomicly. + // +- address generate_conjoint_int_oop_copy(bool aligned, bool is_oop, const char *name) { ++ address generate_conjoint_int_oop_copy(bool aligned, bool is_oop, address nooverlap_target, ++ address *entry, const char *name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); +@@ -1882,19 +1875,20 @@ class StubGenerator: public StubCodeGene + __ enter(); // required for proper stackwalking of RuntimeStub frame + assert_clean_int(c_rarg2, rax); // Make sure 'count' is clean int. + ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } ++ ++ array_overlap_test(nooverlap_target, Address::times_4); ++ setup_arg_regs(); // from => rdi, to => rsi, count => rdx ++ // r9 and r10 may be used to save non-volatile registers ++ + if (is_oop) { + // no registers are destroyed by this call +- gen_write_ref_array_pre_barrier(/* dest */ c_rarg1, /* count */ c_rarg2); +- } +- +- (is_oop ? oop_copy_entry : int_copy_entry) = __ pc(); +- BLOCK_COMMENT("Entry:"); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) +- +- array_overlap_test(is_oop ? disjoint_oop_copy_entry : disjoint_int_copy_entry, +- Address::times_4); +- setup_arg_regs(); // from => rdi, to => rsi, count => rdx +- // r9 and r10 may be used to save non-volatile registers ++ gen_write_ref_array_pre_barrier(to, count); ++ } + + assert_clean_int(count, rax); // Make sure 'count' is clean int. + // 'from', 'to' and 'count' are now valid +@@ -1959,7 +1953,7 @@ class StubGenerator: public StubCodeGene + // disjoint_oop_copy_entry or disjoint_long_copy_entry is set to the + // no-overlap entry point used by generate_conjoint_long_oop_copy(). + // +- address generate_disjoint_long_oop_copy(bool aligned, bool is_oop, const char *name) { ++ address generate_disjoint_long_oop_copy(bool aligned, bool is_oop, address *entry, const char *name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); +@@ -1978,20 +1972,19 @@ class StubGenerator: public StubCodeGene + // Save no-overlap entry point for generate_conjoint_long_oop_copy() + assert_clean_int(c_rarg2, rax); // Make sure 'count' is clean int. + +- if (is_oop) { +- disjoint_oop_copy_entry = __ pc(); +- // no registers are destroyed by this call +- gen_write_ref_array_pre_barrier(/* dest */ c_rarg1, /* count */ c_rarg2); +- } else { +- disjoint_long_copy_entry = __ pc(); +- } +- BLOCK_COMMENT("Entry:"); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } + + setup_arg_regs(); // from => rdi, to => rsi, count => rdx + // r9 and r10 may be used to save non-volatile registers +- + // 'from', 'to' and 'qword_count' are now valid ++ if (is_oop) { ++ // no registers are destroyed by this call ++ gen_write_ref_array_pre_barrier(to, qword_count); ++ } + + // Copy from low to high addresses. Use 'to' as scratch. + __ lea(end_from, Address(from, qword_count, Address::times_8, -8)); +@@ -2045,7 +2038,8 @@ class StubGenerator: public StubCodeGene + // c_rarg1 - destination array address + // c_rarg2 - element count, treated as ssize_t, can be zero + // +- address generate_conjoint_long_oop_copy(bool aligned, bool is_oop, const char *name) { ++ address generate_conjoint_long_oop_copy(bool aligned, bool is_oop, address nooverlap_target, ++ address *entry, const char *name) { + __ align(CodeEntryAlignment); + StubCodeMark mark(this, "StubRoutines", name); + address start = __ pc(); +@@ -2059,26 +2053,16 @@ class StubGenerator: public StubCodeGene + __ enter(); // required for proper stackwalking of RuntimeStub frame + assert_clean_int(c_rarg2, rax); // Make sure 'count' is clean int. + +- address disjoint_copy_entry = NULL; +- if (is_oop) { +- assert(!UseCompressedOops, "shouldn't be called for compressed oops"); +- disjoint_copy_entry = disjoint_oop_copy_entry; +- oop_copy_entry = __ pc(); +- array_overlap_test(disjoint_oop_copy_entry, Address::times_8); +- } else { +- disjoint_copy_entry = disjoint_long_copy_entry; +- long_copy_entry = __ pc(); +- array_overlap_test(disjoint_long_copy_entry, Address::times_8); +- } +- BLOCK_COMMENT("Entry:"); +- // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) +- +- array_overlap_test(disjoint_copy_entry, Address::times_8); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ // caller can pass a 64-bit byte count here (from Unsafe.copyMemory) ++ BLOCK_COMMENT("Entry:"); ++ } ++ ++ array_overlap_test(nooverlap_target, Address::times_8); + setup_arg_regs(); // from => rdi, to => rsi, count => rdx + // r9 and r10 may be used to save non-volatile registers +- + // 'from', 'to' and 'qword_count' are now valid +- + if (is_oop) { + // Save to and count for store barrier + __ movptr(saved_count, qword_count); +@@ -2162,7 +2146,7 @@ class StubGenerator: public StubCodeGene + // rax == 0 - success + // rax == -1^K - failure, where K is partial transfer count + // +- address generate_checkcast_copy(const char *name) { ++ address generate_checkcast_copy(const char *name, address *entry) { + + Label L_load_element, L_store_element, L_do_card_marks, L_done; + +@@ -2216,8 +2200,10 @@ class StubGenerator: public StubCodeGene + #endif + + // Caller of this entry point must set up the argument registers. +- checkcast_copy_entry = __ pc(); +- BLOCK_COMMENT("Entry:"); ++ if (entry != NULL) { ++ *entry = __ pc(); ++ BLOCK_COMMENT("Entry:"); ++ } + + // allocate spill slots for r13, r14 + enum { +@@ -2334,7 +2320,9 @@ class StubGenerator: public StubCodeGene + // Examines the alignment of the operands and dispatches + // to a long, int, short, or byte copy loop. + // +- address generate_unsafe_copy(const char *name) { ++ address generate_unsafe_copy(const char *name, ++ address byte_copy_entry, address short_copy_entry, ++ address int_copy_entry, address long_copy_entry) { + + Label L_long_aligned, L_int_aligned, L_short_aligned; + +@@ -2432,7 +2420,10 @@ class StubGenerator: public StubCodeGene + // rax == 0 - success + // rax == -1^K - failure, where K is partial transfer count + // +- address generate_generic_copy(const char *name) { ++ address generate_generic_copy(const char *name, ++ address byte_copy_entry, address short_copy_entry, ++ address int_copy_entry, address long_copy_entry, ++ address oop_copy_entry, address checkcast_copy_entry) { + + Label L_failed, L_failed_0, L_objArray; + Label L_copy_bytes, L_copy_shorts, L_copy_ints, L_copy_longs; +@@ -2725,33 +2716,60 @@ class StubGenerator: public StubCodeGene + } + + void generate_arraycopy_stubs() { +- // Call the conjoint generation methods immediately after +- // the disjoint ones so that short branches from the former +- // to the latter can be generated. +- StubRoutines::_jbyte_disjoint_arraycopy = generate_disjoint_byte_copy(false, "jbyte_disjoint_arraycopy"); +- StubRoutines::_jbyte_arraycopy = generate_conjoint_byte_copy(false, "jbyte_arraycopy"); +- +- StubRoutines::_jshort_disjoint_arraycopy = generate_disjoint_short_copy(false, "jshort_disjoint_arraycopy"); +- StubRoutines::_jshort_arraycopy = generate_conjoint_short_copy(false, "jshort_arraycopy"); +- +- StubRoutines::_jint_disjoint_arraycopy = generate_disjoint_int_oop_copy(false, false, "jint_disjoint_arraycopy"); +- StubRoutines::_jint_arraycopy = generate_conjoint_int_oop_copy(false, false, "jint_arraycopy"); +- +- StubRoutines::_jlong_disjoint_arraycopy = generate_disjoint_long_oop_copy(false, false, "jlong_disjoint_arraycopy"); +- StubRoutines::_jlong_arraycopy = generate_conjoint_long_oop_copy(false, false, "jlong_arraycopy"); ++ address entry; ++ address entry_jbyte_arraycopy; ++ address entry_jshort_arraycopy; ++ address entry_jint_arraycopy; ++ address entry_oop_arraycopy; ++ address entry_jlong_arraycopy; ++ address entry_checkcast_arraycopy; ++ ++ StubRoutines::_jbyte_disjoint_arraycopy = generate_disjoint_byte_copy(false, &entry, ++ "jbyte_disjoint_arraycopy"); ++ StubRoutines::_jbyte_arraycopy = generate_conjoint_byte_copy(false, entry, &entry_jbyte_arraycopy, ++ "jbyte_arraycopy"); ++ ++ StubRoutines::_jshort_disjoint_arraycopy = generate_disjoint_short_copy(false, &entry, ++ "jshort_disjoint_arraycopy"); ++ StubRoutines::_jshort_arraycopy = generate_conjoint_short_copy(false, entry, &entry_jshort_arraycopy, ++ "jshort_arraycopy"); ++ ++ StubRoutines::_jint_disjoint_arraycopy = generate_disjoint_int_oop_copy(false, false, &entry, ++ "jint_disjoint_arraycopy"); ++ StubRoutines::_jint_arraycopy = generate_conjoint_int_oop_copy(false, false, entry, ++ &entry_jint_arraycopy, "jint_arraycopy"); ++ ++ StubRoutines::_jlong_disjoint_arraycopy = generate_disjoint_long_oop_copy(false, false, &entry, ++ "jlong_disjoint_arraycopy"); ++ StubRoutines::_jlong_arraycopy = generate_conjoint_long_oop_copy(false, false, entry, ++ &entry_jlong_arraycopy, "jlong_arraycopy"); + + + if (UseCompressedOops) { +- StubRoutines::_oop_disjoint_arraycopy = generate_disjoint_int_oop_copy(false, true, "oop_disjoint_arraycopy"); +- StubRoutines::_oop_arraycopy = generate_conjoint_int_oop_copy(false, true, "oop_arraycopy"); ++ StubRoutines::_oop_disjoint_arraycopy = generate_disjoint_int_oop_copy(false, true, &entry, ++ "oop_disjoint_arraycopy"); ++ StubRoutines::_oop_arraycopy = generate_conjoint_int_oop_copy(false, true, entry, ++ &entry_oop_arraycopy, "oop_arraycopy"); + } else { +- StubRoutines::_oop_disjoint_arraycopy = generate_disjoint_long_oop_copy(false, true, "oop_disjoint_arraycopy"); +- StubRoutines::_oop_arraycopy = generate_conjoint_long_oop_copy(false, true, "oop_arraycopy"); +- } +- +- StubRoutines::_checkcast_arraycopy = generate_checkcast_copy("checkcast_arraycopy"); +- StubRoutines::_unsafe_arraycopy = generate_unsafe_copy("unsafe_arraycopy"); +- StubRoutines::_generic_arraycopy = generate_generic_copy("generic_arraycopy"); ++ StubRoutines::_oop_disjoint_arraycopy = generate_disjoint_long_oop_copy(false, true, &entry, ++ "oop_disjoint_arraycopy"); ++ StubRoutines::_oop_arraycopy = generate_conjoint_long_oop_copy(false, true, entry, ++ &entry_oop_arraycopy, "oop_arraycopy"); ++ } ++ ++ StubRoutines::_checkcast_arraycopy = generate_checkcast_copy("checkcast_arraycopy", &entry_checkcast_arraycopy); ++ StubRoutines::_unsafe_arraycopy = generate_unsafe_copy("unsafe_arraycopy", ++ entry_jbyte_arraycopy, ++ entry_jshort_arraycopy, ++ entry_jint_arraycopy, ++ entry_jlong_arraycopy); ++ StubRoutines::_generic_arraycopy = generate_generic_copy("generic_arraycopy", ++ entry_jbyte_arraycopy, ++ entry_jshort_arraycopy, ++ entry_jint_arraycopy, ++ entry_oop_arraycopy, ++ entry_jlong_arraycopy, ++ entry_checkcast_arraycopy); + + StubRoutines::_jbyte_fill = generate_fill(T_BYTE, false, "jbyte_fill"); + StubRoutines::_jshort_fill = generate_fill(T_SHORT, false, "jshort_fill"); +@@ -3069,20 +3087,6 @@ class StubGenerator: public StubCodeGene + } + }; // end class declaration + +-address StubGenerator::disjoint_byte_copy_entry = NULL; +-address StubGenerator::disjoint_short_copy_entry = NULL; +-address StubGenerator::disjoint_int_copy_entry = NULL; +-address StubGenerator::disjoint_long_copy_entry = NULL; +-address StubGenerator::disjoint_oop_copy_entry = NULL; +- +-address StubGenerator::byte_copy_entry = NULL; +-address StubGenerator::short_copy_entry = NULL; +-address StubGenerator::int_copy_entry = NULL; +-address StubGenerator::long_copy_entry = NULL; +-address StubGenerator::oop_copy_entry = NULL; +- +-address StubGenerator::checkcast_copy_entry = NULL; +- + void StubGenerator_generate(CodeBuffer* code, bool all) { + StubGenerator g(code, all); + } + + diff -Nru openjdk-6-6b24-1.11/patches/hotspot-7026307.patch openjdk-6-6b24-1.11.1/patches/hotspot-7026307.patch --- openjdk-6-6b24-1.11/patches/hotspot-7026307.patch 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-6-6b24-1.11.1/patches/hotspot-7026307.patch 2012-02-15 16:49:48.000000000 +0000 @@ -0,0 +1,24 @@ + +# HG changeset patch +# User iveresov +# Date 1301462717 25200 +# Node ID 348c0df561a92ba9ab469566cd4dc8028e9ecc99 +# Parent b1c22848507b08e5370d08ca88e186f107f254c8 +7026307: DEBUG MESSAGE: broken null klass on amd64 +Summary: Correct typo introduces in 7020521 +Reviewed-by: never, kvn + +--- openjdk.orig/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp Tue Mar 29 17:35:34 2011 -0700 ++++ openjdk/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp Tue Mar 29 22:25:17 2011 -0700 +@@ -2449,8 +2449,8 @@ class StubGenerator: public StubCodeGene + // + address generate_generic_copy(const char *name, + address byte_copy_entry, address short_copy_entry, +- address int_copy_entry, address long_copy_entry, +- address oop_copy_entry, address checkcast_copy_entry) { ++ address int_copy_entry, address oop_copy_entry, ++ address long_copy_entry, address checkcast_copy_entry) { + + Label L_failed, L_failed_0, L_objArray; + Label L_copy_bytes, L_copy_shorts, L_copy_ints, L_copy_longs; + diff -Nru openjdk-6-6b24-1.11/patches/security/20120214/7082299.patch openjdk-6-6b24-1.11.1/patches/security/20120214/7082299.patch --- openjdk-6-6b24-1.11/patches/security/20120214/7082299.patch 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-6-6b24-1.11.1/patches/security/20120214/7082299.patch 2012-02-15 15:02:17.000000000 +0000 @@ -0,0 +1,201 @@ +# HG changeset patch +# User robm +# Date 1322691030 0 +# Node ID ee0f12b18cb8d20c3fb61e96817bde6318a29221 +# Parent dd8956e41b892ed7102e1d5668781f2c68ea9ac5 +7082299: AtomicReferenceArray should ensure that array is Object[] +Summary: java.util.concurrent.AtomicReferenceArray needs to ensure that internal array is always Object[]. +Reviewed-by: chegar, coffeys + +diff --git a/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java b/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java +--- openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java ++++ openjdk/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java +@@ -34,8 +34,9 @@ + */ + + package java.util.concurrent.atomic; ++import java.lang.reflect.Array; ++import java.util.Arrays; + import sun.misc.Unsafe; +-import java.util.*; + + /** + * An array of object references in which elements may be updated +@@ -49,15 +50,37 @@ public class AtomicReferenceArray imp + public class AtomicReferenceArray implements java.io.Serializable { + private static final long serialVersionUID = -6209656149925076980L; + +- private static final Unsafe unsafe = Unsafe.getUnsafe(); +- private static final int base = unsafe.arrayBaseOffset(Object[].class); +- private static final int scale = unsafe.arrayIndexScale(Object[].class); +- private final Object[] array; ++ private static final Unsafe unsafe; ++ private static final int base; ++ private static final int shift; ++ private static final long arrayFieldOffset; ++ private final Object[] array; // must have exact type Object[] + +- private long rawIndex(int i) { ++ static { ++ int scale; ++ try { ++ unsafe = Unsafe.getUnsafe(); ++ arrayFieldOffset = unsafe.objectFieldOffset ++ (AtomicReferenceArray.class.getDeclaredField("array")); ++ base = unsafe.arrayBaseOffset(Object[].class); ++ scale = unsafe.arrayIndexScale(Object[].class); ++ } catch (Exception e) { ++ throw new Error(e); ++ } ++ if ((scale & (scale - 1)) != 0) ++ throw new Error("data type scale not a power of two"); ++ shift = 31 - Integer.numberOfLeadingZeros(scale); ++ } ++ ++ private long checkedByteOffset(int i) { + if (i < 0 || i >= array.length) + throw new IndexOutOfBoundsException("index " + i); +- return base + (long) i * scale; ++ ++ return byteOffset(i); ++ } ++ ++ private static long byteOffset(int i) { ++ return ((long) i << shift) + base; + } + + /** +@@ -66,9 +89,6 @@ public class AtomicReferenceArray imp + */ + public AtomicReferenceArray(int length) { + array = new Object[length]; +- // must perform at least one volatile write to conform to JMM +- if (length > 0) +- unsafe.putObjectVolatile(array, rawIndex(0), null); + } + + /** +@@ -79,18 +99,8 @@ public class AtomicReferenceArray imp + * @throws NullPointerException if array is null + */ + public AtomicReferenceArray(E[] array) { +- if (array == null) +- throw new NullPointerException(); +- int length = array.length; +- this.array = new Object[length]; +- if (length > 0) { +- int last = length-1; +- for (int i = 0; i < last; ++i) +- this.array[i] = array[i]; +- // Do the last write as volatile +- E e = array[last]; +- unsafe.putObjectVolatile(this.array, rawIndex(last), e); +- } ++ // Visibility guaranteed by final field guarantees ++ this.array = Arrays.copyOf(array, array.length, Object[].class); + } + + /** +@@ -109,7 +119,11 @@ public class AtomicReferenceArray imp + * @return the current value + */ + public final E get(int i) { +- return (E) unsafe.getObjectVolatile(array, rawIndex(i)); ++ return getRaw(checkedByteOffset(i)); ++ } ++ ++ private E getRaw(long offset) { ++ return (E) unsafe.getObjectVolatile(array, offset); + } + + /** +@@ -119,7 +133,7 @@ public class AtomicReferenceArray imp + * @param newValue the new value + */ + public final void set(int i, E newValue) { +- unsafe.putObjectVolatile(array, rawIndex(i), newValue); ++ unsafe.putObjectVolatile(array, checkedByteOffset(i), newValue); + } + + /** +@@ -130,7 +144,7 @@ public class AtomicReferenceArray imp + * @since 1.6 + */ + public final void lazySet(int i, E newValue) { +- unsafe.putOrderedObject(array, rawIndex(i), newValue); ++ unsafe.putOrderedObject(array, checkedByteOffset(i), newValue); + } + + +@@ -143,9 +157,10 @@ public class AtomicReferenceArray imp + * @return the previous value + */ + public final E getAndSet(int i, E newValue) { ++ long offset = checkedByteOffset(i); + while (true) { +- E current = get(i); +- if (compareAndSet(i, current, newValue)) ++ E current = getRaw(offset); ++ if (compareAndSetRaw(offset, current, newValue)) + return current; + } + } +@@ -153,6 +168,7 @@ public class AtomicReferenceArray imp + /** + * Atomically sets the element at position {@code i} to the given + * updated value if the current value {@code ==} the expected value. ++ * + * @param i the index + * @param expect the expected value + * @param update the new value +@@ -160,8 +176,11 @@ public class AtomicReferenceArray imp + * the actual value was not equal to the expected value. + */ + public final boolean compareAndSet(int i, E expect, E update) { +- return unsafe.compareAndSwapObject(array, rawIndex(i), +- expect, update); ++ return compareAndSetRaw(checkedByteOffset(i), expect, update); ++ } ++ ++ private boolean compareAndSetRaw(long offset, E expect, E update) { ++ return unsafe.compareAndSwapObject(array, offset, expect, update); + } + + /** +@@ -186,9 +205,33 @@ public class AtomicReferenceArray imp + * @return the String representation of the current values of array. + */ + public String toString() { +- if (array.length > 0) // force volatile read +- get(0); +- return Arrays.toString(array); ++ int iMax = array.length - 1; ++ if (iMax == -1) ++ return "[]"; ++ ++ StringBuilder b = new StringBuilder(); ++ b.append('['); ++ for (int i = 0; ; i++) { ++ b.append(getRaw(byteOffset(i))); ++ if (i == iMax) ++ return b.append(']').toString(); ++ b.append(',').append(' '); ++ } ++ } ++ ++ /** ++ * Reconstitutes the instance from a stream (that is, deserializes it). ++ * @param s the stream ++ */ ++ private void readObject(java.io.ObjectInputStream s) ++ throws java.io.IOException, ClassNotFoundException { ++ // Note: This must be changed if any additional fields are defined ++ Object a = s.readFields().get("array", null); ++ if (a == null || !a.getClass().isArray()) ++ throw new java.io.InvalidObjectException("Not array type"); ++ if (a.getClass() != Object[].class) ++ a = Arrays.copyOf((Object[])a, Array.getLength(a), Object[].class); ++ unsafe.putObjectVolatile(this, arrayFieldOffset, a); + } + + } diff -Nru openjdk-6-6b24-1.11/patches/security/20120214/7088367.patch openjdk-6-6b24-1.11.1/patches/security/20120214/7088367.patch --- openjdk-6-6b24-1.11/patches/security/20120214/7088367.patch 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-6-6b24-1.11.1/patches/security/20120214/7088367.patch 2012-02-15 15:02:17.000000000 +0000 @@ -0,0 +1,45 @@ +# HG changeset patch +# User amenkov +# Date 1319622989 -14400 +# Node ID b34a3ed0c8f2f6b9121d38ed330430d913f8a385 +# Parent cdc68d7a17dd412402b100dc427abbe0a90cf2ab +7088367: JavaSound security issue (12865443) +Reviewed-by: denis + +diff --git a/src/share/classes/com/sun/media/sound/DirectAudioDevice.java b/src/share/classes/com/sun/media/sound/DirectAudioDevice.java +--- openjdk/jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java ++++ openjdk/jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java +@@ -771,7 +771,7 @@ class DirectAudioDevice extends Abstract + if (off < 0) { + throw new ArrayIndexOutOfBoundsException(off); + } +- if (off + len > b.length) { ++ if ((long)off + (long)len > (long)b.length) { + throw new ArrayIndexOutOfBoundsException(b.length); + } + +@@ -1000,7 +1000,7 @@ class DirectAudioDevice extends Abstract + if (off < 0) { + throw new ArrayIndexOutOfBoundsException(off); + } +- if (off + len > b.length) { ++ if ((long)off + (long)len > (long)b.length) { + throw new ArrayIndexOutOfBoundsException(b.length); + } + if (!isActive() && doIO) { +diff --git a/src/share/classes/com/sun/media/sound/SoftMixingSourceDataLine.java b/src/share/classes/com/sun/media/sound/SoftMixingSourceDataLine.java +--- openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingSourceDataLine.java ++++ openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingSourceDataLine.java +@@ -130,6 +130,12 @@ public class SoftMixingSourceDataLine ex + if (len % framesize != 0) + throw new IllegalArgumentException( + "Number of bytes does not represent an integral number of sample frames."); ++ if (off < 0) { ++ throw new ArrayIndexOutOfBoundsException(off); ++ } ++ if ((long)off + (long)len > (long)b.length) { ++ throw new ArrayIndexOutOfBoundsException(b.length); ++ } + + byte[] buff = cycling_buffer; + int buff_len = cycling_buffer.length; diff -Nru openjdk-6-6b24-1.11/patches/security/20120214/7110683.patch openjdk-6-6b24-1.11.1/patches/security/20120214/7110683.patch --- openjdk-6-6b24-1.11/patches/security/20120214/7110683.patch 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-6-6b24-1.11.1/patches/security/20120214/7110683.patch 2012-02-15 15:02:17.000000000 +0000 @@ -0,0 +1,170 @@ +# HG changeset patch +# User skoppar +# Date 1324575564 28800 +# Node ID e05eb7bee1ce0a44f3e414454e44cd49d77ba9de +# Parent bfaa99d5bef813217cdbc6eddcdd511cf53327e7 +7110683: Issues with some KeyboardFocusManager method +7116384: backout the unallowed changes in the KeyboardFocusManager.java javadoc +Reviewed-by: ant + +diff --git a/src/share/classes/java/awt/KeyboardFocusManager.java b/src/share/classes/java/awt/KeyboardFocusManager.java +--- openjdk/jdk/src/share/classes/java/awt/KeyboardFocusManager.java ++++ openjdk/jdk/src/share/classes/java/awt/KeyboardFocusManager.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. 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 +@@ -476,14 +476,8 @@ public abstract class KeyboardFocusManag + */ + protected Component getGlobalFocusOwner() throws SecurityException { + synchronized (KeyboardFocusManager.class) { +- if (this == getCurrentKeyboardFocusManager()) { +- return focusOwner; +- } else { +- if (focusLog.isLoggable(Level.FINER)) { +- focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager()); +- } +- throw new SecurityException(notPrivileged); +- } ++ checkCurrentKFMSecurity(); ++ return focusOwner; + } + } + +@@ -517,6 +511,7 @@ public abstract class KeyboardFocusManag + + if (focusOwner == null || focusOwner.isFocusable()) { + synchronized (KeyboardFocusManager.class) { ++ checkCurrentKFMSecurity(); + oldFocusOwner = getFocusOwner(); + + try { +@@ -566,6 +561,10 @@ public abstract class KeyboardFocusManag + * @see java.awt.event.FocusEvent#FOCUS_LOST + */ + public void clearGlobalFocusOwner() { ++ synchronized (KeyboardFocusManager.class) { ++ checkCurrentKFMSecurity(); ++ } ++ + if (!GraphicsEnvironment.isHeadless()) { + // Toolkit must be fully initialized, otherwise + // _clearGlobalFocusOwner will crash or throw an exception +@@ -645,14 +644,8 @@ public abstract class KeyboardFocusManag + throws SecurityException + { + synchronized (KeyboardFocusManager.class) { +- if (this == getCurrentKeyboardFocusManager()) { +- return permanentFocusOwner; +- } else { +- if (focusLog.isLoggable(Level.FINER)) { +- focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager()); +- } +- throw new SecurityException(notPrivileged); +- } ++ checkCurrentKFMSecurity(); ++ return permanentFocusOwner; + } + } + +@@ -688,6 +681,7 @@ public abstract class KeyboardFocusManag + + if (permanentFocusOwner == null || permanentFocusOwner.isFocusable()) { + synchronized (KeyboardFocusManager.class) { ++ checkCurrentKFMSecurity(); + oldPermanentFocusOwner = getPermanentFocusOwner(); + + try { +@@ -753,14 +747,8 @@ public abstract class KeyboardFocusManag + */ + protected Window getGlobalFocusedWindow() throws SecurityException { + synchronized (KeyboardFocusManager.class) { +- if (this == getCurrentKeyboardFocusManager()) { +- return focusedWindow; +- } else { +- if (focusLog.isLoggable(Level.FINER)) { +- focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager()); +- } +- throw new SecurityException(notPrivileged); +- } ++ checkCurrentKFMSecurity(); ++ return focusedWindow; + } + } + +@@ -791,6 +779,7 @@ public abstract class KeyboardFocusManag + + if (focusedWindow == null || focusedWindow.isFocusableWindow()) { + synchronized (KeyboardFocusManager.class) { ++ checkCurrentKFMSecurity(); + oldFocusedWindow = getFocusedWindow(); + + try { +@@ -857,14 +846,8 @@ public abstract class KeyboardFocusManag + */ + protected Window getGlobalActiveWindow() throws SecurityException { + synchronized (KeyboardFocusManager.class) { +- if (this == getCurrentKeyboardFocusManager()) { +- return activeWindow; +- } else { +- if (focusLog.isLoggable(Level.FINER)) { +- focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager()); +- } +- throw new SecurityException(notPrivileged); +- } ++ checkCurrentKFMSecurity(); ++ return activeWindow; + } + } + +@@ -893,6 +876,7 @@ public abstract class KeyboardFocusManag + protected void setGlobalActiveWindow(Window activeWindow) { + Window oldActiveWindow; + synchronized (KeyboardFocusManager.class) { ++ checkCurrentKFMSecurity(); + oldActiveWindow = getActiveWindow(); + if (focusLog.isLoggable(Level.FINER)) { + focusLog.log(Level.FINER, "Setting global active window to " + activeWindow + ", old active " + oldActiveWindow); +@@ -1187,14 +1171,8 @@ public abstract class KeyboardFocusManag + throws SecurityException + { + synchronized (KeyboardFocusManager.class) { +- if (this == getCurrentKeyboardFocusManager()) { +- return currentFocusCycleRoot; +- } else { +- if (focusLog.isLoggable(Level.FINER)) { +- focusLog.log(Level.FINER, "This manager is " + this + ", current is " + getCurrentKeyboardFocusManager()); +- } +- throw new SecurityException(notPrivileged); +- } ++ checkCurrentKFMSecurity(); ++ return currentFocusCycleRoot; + } + } + +@@ -1218,6 +1196,7 @@ public abstract class KeyboardFocusManag + Container oldFocusCycleRoot; + + synchronized (KeyboardFocusManager.class) { ++ checkCurrentKFMSecurity(); + oldFocusCycleRoot = getCurrentFocusCycleRoot(); + currentFocusCycleRoot = newFocusCycleRoot; + } +@@ -3102,4 +3081,14 @@ public abstract class KeyboardFocusManag + : null; + } + } ++ ++ private void checkCurrentKFMSecurity() { ++ if (this != getCurrentKeyboardFocusManager()) { ++ if (focusLog.isLoggable(Level.FINER)) { ++ focusLog.finer("This manager is " + this + ++ ", current is " + getCurrentKeyboardFocusManager()); ++ } ++ throw new SecurityException(notPrivileged); ++ } ++ } + } diff -Nru openjdk-6-6b24-1.11/patches/security/20120214/7110687.patch openjdk-6-6b24-1.11.1/patches/security/20120214/7110687.patch --- openjdk-6-6b24-1.11/patches/security/20120214/7110687.patch 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-6-6b24-1.11.1/patches/security/20120214/7110687.patch 2012-02-15 15:02:17.000000000 +0000 @@ -0,0 +1,237 @@ +# HG changeset patch +# User coffeys +# Date 1321351078 0 +# Node ID dd8956e41b892ed7102e1d5668781f2c68ea9ac5 +# Parent e11df26be5fc2c18af5601afc3793f9abc3e2c45 +7110687: (tz) java.util.TimeZone.setDefault() should be controlled by a security manager +Reviewed-by: okutsu + +diff --git a/make/java/java/FILES_java.gmk b/make/java/java/FILES_java.gmk +--- openjdk/jdk/make/java/java/FILES_java.gmk ++++ openjdk/jdk/make/java/java/FILES_java.gmk +@@ -1,5 +1,5 @@ + # +-# Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 1996, 2011, Oracle and/or its affiliates. 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 +@@ -448,6 +448,7 @@ JAVA_JAVA_java = \ + sun/misc/MessageUtils.java \ + sun/misc/GC.java \ + sun/misc/Service.java \ ++ sun/misc/JavaAWTAccess.java \ + sun/misc/JavaLangAccess.java \ + sun/misc/JavaIOAccess.java \ + sun/misc/JavaIODeleteOnExitAccess.java \ +diff --git a/src/share/classes/java/util/TimeZone.java b/src/share/classes/java/util/TimeZone.java +--- openjdk/jdk/src/share/classes/java/util/TimeZone.java ++++ openjdk/jdk/src/share/classes/java/util/TimeZone.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1996, 2005, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. 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 +@@ -43,6 +43,8 @@ import java.security.AccessController; + import java.security.AccessController; + import java.security.PrivilegedAction; + import java.util.concurrent.ConcurrentHashMap; ++import sun.misc.SharedSecrets; ++import sun.misc.JavaAWTAccess; + import sun.security.action.GetPropertyAction; + import sun.util.TimeZoneNameUtility; + import sun.util.calendar.ZoneInfo; +@@ -542,7 +544,7 @@ abstract public class TimeZone implement + * method doesn't create a clone. + */ + static TimeZone getDefaultRef() { +- TimeZone defaultZone = defaultZoneTL.get(); ++ TimeZone defaultZone = getDefaultInAppContext(); + if (defaultZone == null) { + defaultZone = defaultTimeZone; + if (defaultZone == null) { +@@ -633,10 +635,53 @@ abstract public class TimeZone implement + if (hasPermission()) { + synchronized (TimeZone.class) { + defaultTimeZone = zone; +- defaultZoneTL.set(null); ++ setDefaultInAppContext(null); + } + } else { +- defaultZoneTL.set(zone); ++ setDefaultInAppContext(zone); ++ } ++ } ++ ++ /** ++ * Returns the default TimeZone in an AppContext if any AppContext ++ * has ever used. null is returned if any AppContext hasn't been ++ * used or if the AppContext doesn't have the default TimeZone. ++ */ ++ private synchronized static TimeZone getDefaultInAppContext() { ++ javaAWTAccess = SharedSecrets.getJavaAWTAccess(); ++ if (javaAWTAccess == null) { ++ return mainAppContextDefault; ++ } else { ++ if (!javaAWTAccess.isDisposed()) { ++ TimeZone tz = (TimeZone) ++ javaAWTAccess.get(TimeZone.class); ++ if (tz == null && javaAWTAccess.isMainAppContext()) { ++ return mainAppContextDefault; ++ } else { ++ return tz; ++ } ++ } ++ } ++ return null; ++ } ++ ++ /** ++ * Sets the default TimeZone in the AppContext to the given ++ * tz. null is handled special: do nothing if any AppContext ++ * hasn't been used, remove the default TimeZone in the ++ * AppContext otherwise. ++ */ ++ private synchronized static void setDefaultInAppContext(TimeZone tz) { ++ javaAWTAccess = SharedSecrets.getJavaAWTAccess(); ++ if (javaAWTAccess == null) { ++ mainAppContextDefault = tz; ++ } else { ++ if (!javaAWTAccess.isDisposed()) { ++ javaAWTAccess.put(TimeZone.class, tz); ++ if (javaAWTAccess.isMainAppContext()) { ++ mainAppContextDefault = null; ++ } ++ } + } + } + +@@ -687,11 +732,23 @@ abstract public class TimeZone implement + */ + private String ID; + private static volatile TimeZone defaultTimeZone; +- private static final InheritableThreadLocal defaultZoneTL +- = new InheritableThreadLocal(); + + static final String GMT_ID = "GMT"; + private static final int GMT_ID_LENGTH = 3; ++ ++ /* ++ * Provides access implementation-private methods without using reflection ++ * ++ * Note that javaAWTAccess may be null if sun.awt.AppContext class hasn't ++ * been loaded. If so, it implies that AWTSecurityManager is not our ++ * SecurityManager and we can use a local static variable. ++ * This works around a build time issue. ++ */ ++ private static JavaAWTAccess javaAWTAccess; ++ ++ // a static TimeZone we can reference if no AppContext is in place ++ private static TimeZone mainAppContextDefault; ++ + + /** + * Parses a custom time zone identifier and returns a corresponding zone. +diff --git a/src/share/classes/sun/awt/AppContext.java b/src/share/classes/sun/awt/AppContext.java +--- openjdk/jdk/src/share/classes/sun/awt/AppContext.java ++++ openjdk/jdk/src/share/classes/sun/awt/AppContext.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1998, 2011, Oracle and/or its affiliates. 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 +@@ -767,6 +767,27 @@ public final class AppContext { + } + return changeSupport.getPropertyChangeListeners(propertyName); + } ++ ++ // Set up JavaAWTAccess in SharedSecrets ++ static { ++ sun.misc.SharedSecrets.setJavaAWTAccess(new sun.misc.JavaAWTAccess() { ++ public Object get(Object key) { ++ return getAppContext().get(key); ++ } ++ public void put(Object key, Object value) { ++ getAppContext().put(key, value); ++ } ++ public void remove(Object key) { ++ getAppContext().remove(key); ++ } ++ public boolean isDisposed() { ++ return getAppContext().isDisposed(); ++ } ++ public boolean isMainAppContext() { ++ return (numAppContexts == 1); ++ } ++ }); ++ } + } + + final class MostRecentThreadAppContext { +diff --git a/src/share/classes/sun/misc/JavaAWTAccess.java b/src/share/classes/sun/misc/JavaAWTAccess.java +new file mode 100644 +--- /dev/null ++++ openjdk/jdk/src/share/classes/sun/misc/JavaAWTAccess.java +@@ -0,0 +1,32 @@ ++/* ++ * Copyright (c) 2011, Oracle and/or its affiliates. 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++package sun.misc; ++ ++public interface JavaAWTAccess { ++ public Object get(Object key); ++ public void put(Object key, Object value); ++ public void remove(Object key); ++ public boolean isDisposed(); ++ public boolean isMainAppContext(); ++} +diff --git a/src/share/classes/sun/misc/SharedSecrets.java b/src/share/classes/sun/misc/SharedSecrets.java +--- openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java ++++ openjdk/jdk/src/share/classes/sun/misc/SharedSecrets.java +@@ -52,6 +52,7 @@ public class SharedSecrets { + private static JavaIOFileDescriptorAccess javaIOFileDescriptorAccess; + private static JavaSecurityProtectionDomainAccess javaSecurityProtectionDomainAccess; + private static JavaSecurityAccess javaSecurityAccess; ++ private static JavaAWTAccess javaAWTAccess; + + public static JavaUtilJarAccess javaUtilJarAccess() { + if (javaUtilJarAccess == null) { +@@ -138,4 +139,14 @@ public class SharedSecrets { + } + return javaSecurityAccess; + } ++ ++ public static void setJavaAWTAccess(JavaAWTAccess jaa) { ++ javaAWTAccess = jaa; ++ } ++ ++ public static JavaAWTAccess getJavaAWTAccess() { ++ // this may return null in which case calling code needs to ++ // provision for. ++ return javaAWTAccess; ++ } + } diff -Nru openjdk-6-6b24-1.11/patches/security/20120214/7110700.patch openjdk-6-6b24-1.11.1/patches/security/20120214/7110700.patch --- openjdk-6-6b24-1.11/patches/security/20120214/7110700.patch 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-6-6b24-1.11.1/patches/security/20120214/7110700.patch 2012-02-15 15:02:17.000000000 +0000 @@ -0,0 +1,42 @@ +# HG changeset patch +# User dmeetry +# Date 1325175900 -14400 +# Node ID 3c11966c3da3ec95c80008e4a4cc2ae4ab0e59fc +# Parent e05eb7bee1ce0a44f3e414454e44cd49d77ba9de +7110700: Enhance exception throwing mechanism in ObjectStreamClass +Reviewed-by: smarks + +diff --git a/src/share/classes/java/io/ObjectStreamClass.java b/src/share/classes/java/io/ObjectStreamClass.java +--- openjdk/jdk/src/share/classes/java/io/ObjectStreamClass.java ++++ openjdk/jdk/src/share/classes/java/io/ObjectStreamClass.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. 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 +@@ -730,7 +730,6 @@ public class ObjectStreamClass implement + InvalidClassException ice = + new InvalidClassException(deserializeEx.classname, + deserializeEx.getMessage()); +- ice.initCause(deserializeEx); + throw ice; + } + } +@@ -745,7 +744,6 @@ public class ObjectStreamClass implement + InvalidClassException ice = + new InvalidClassException(serializeEx.classname, + serializeEx.getMessage()); +- ice.initCause(serializeEx); + throw ice; + } + } +@@ -762,7 +760,6 @@ public class ObjectStreamClass implement + InvalidClassException ice = + new InvalidClassException(defaultSerializeEx.classname, + defaultSerializeEx.getMessage()); +- ice.initCause(defaultSerializeEx); + throw ice; + } + } diff -Nru openjdk-6-6b24-1.11/patches/security/20120214/7110704.patch openjdk-6-6b24-1.11.1/patches/security/20120214/7110704.patch --- openjdk-6-6b24-1.11/patches/security/20120214/7110704.patch 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-6-6b24-1.11.1/patches/security/20120214/7110704.patch 2012-02-15 15:02:17.000000000 +0000 @@ -0,0 +1,63 @@ +# HG changeset patch +# User coffeys +# Date 1321351683 0 +# Node ID c971de26dc9c900ff5a5ecb799dcc84cf9769ef0 +# Parent 23f471142a033a47b6b60506c2749f9caad0a4f8 +7110704: Issues with some method in corba +Reviewed-by: dmeetry + +diff --git a/src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyFactoryImpl.java b/src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyFactoryImpl.java +--- openjdk/corba/src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyFactoryImpl.java ++++ openjdk/corba/src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyFactoryImpl.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. 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 +@@ -82,6 +82,6 @@ public class DynAnyFactoryImpl + private String[] __ids = { "IDL:omg.org/DynamicAny/DynAnyFactory:1.0" }; + + public String[] _ids() { +- return __ids; ++ return (String[])__ids.clone(); + } + } +diff --git a/src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyImpl.java b/src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyImpl.java +--- openjdk/corba/src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyImpl.java ++++ openjdk/corba/src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyImpl.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2000, 2011, Oracle and/or its affiliates. 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 +@@ -195,6 +195,6 @@ abstract class DynAnyImpl extends org.om + private String[] __ids = { "IDL:omg.org/DynamicAny/DynAny:1.0" }; + + public String[] _ids() { +- return __ids; ++ return (String[])__ids.clone(); + } + } +diff --git a/src/share/classes/com/sun/org/omg/SendingContext/_CodeBaseImplBase.java b/src/share/classes/com/sun/org/omg/SendingContext/_CodeBaseImplBase.java +--- openjdk/corba/src/share/classes/com/sun/org/omg/SendingContext/_CodeBaseImplBase.java ++++ openjdk/corba/src/share/classes/com/sun/org/omg/SendingContext/_CodeBaseImplBase.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. 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 +@@ -138,7 +138,7 @@ public abstract class _CodeBaseImplBase + + public String[] _ids () + { +- return __ids; ++ return (String[])__ids.clone(); + } + + diff -Nru openjdk-6-6b24-1.11/patches/security/20120214/7112642.patch openjdk-6-6b24-1.11.1/patches/security/20120214/7112642.patch --- openjdk-6-6b24-1.11/patches/security/20120214/7112642.patch 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-6-6b24-1.11.1/patches/security/20120214/7112642.patch 2012-02-15 15:02:17.000000000 +0000 @@ -0,0 +1,750 @@ +# HG changeset patch +# User bagiras +# Date 1322689157 28800 +# Node ID 17eb322778160cc1463875e2b429211cf7966997 +# Parent 42706fbe23df228d55c454d0fbf8c3fb36fc4bc6 +7112642: Incorrect checking for graphics rendering object +Reviewed-by: art, bae, flar, prr + +diff --git a/src/share/classes/sun/java2d/SunGraphics2D.java b/src/share/classes/sun/java2d/SunGraphics2D.java +--- openjdk/jdk/src/share/classes/sun/java2d/SunGraphics2D.java ++++ openjdk/jdk/src/share/classes/sun/java2d/SunGraphics2D.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1996, 2008, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1996, 2011, Oracle and/or its affiliates. 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 +@@ -370,6 +370,17 @@ public final class SunGraphics2D + } + + public void validatePipe() { ++ /* This workaround is for the situation when we update the Pipelines ++ * for invalid SurfaceData and run further code when the current ++ * pipeline doesn't support the type of new SurfaceData created during ++ * the current pipeline's work (in place of the invalid SurfaceData). ++ * Usually SurfaceData and Pipelines are repaired (through revalidateAll) ++ * and called again in the exception handlers */ ++ ++ if (!surfaceData.isValid()) { ++ throw new InvalidPipeException("attempt to validate Pipe with invalid SurfaceData"); ++ } ++ + surfaceData.validatePipe(this); + } + +diff --git a/src/share/classes/sun/java2d/opengl/OGLRenderer.java b/src/share/classes/sun/java2d/opengl/OGLRenderer.java +--- openjdk/jdk/src/share/classes/sun/java2d/opengl/OGLRenderer.java ++++ openjdk/jdk/src/share/classes/sun/java2d/opengl/OGLRenderer.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2003, 2011, Oracle and/or its affiliates. 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 +@@ -27,6 +27,7 @@ package sun.java2d.opengl; + + import java.awt.Transparency; + import java.awt.geom.Path2D; ++import sun.java2d.InvalidPipeException; + import sun.java2d.SunGraphics2D; + import sun.java2d.loops.GraphicsPrimitive; + import sun.java2d.pipe.BufferedRenderPipe; +@@ -46,7 +47,12 @@ class OGLRenderer extends BufferedRender + int ctxflags = + sg2d.paint.getTransparency() == Transparency.OPAQUE ? + OGLContext.SRC_IS_OPAQUE : OGLContext.NO_CONTEXT_FLAGS; +- OGLSurfaceData dstData = (OGLSurfaceData)sg2d.surfaceData; ++ OGLSurfaceData dstData; ++ try { ++ dstData = (OGLSurfaceData)sg2d.surfaceData; ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + OGLContext.validateContext(dstData, dstData, + sg2d.getCompClip(), sg2d.composite, + null, sg2d.paint, sg2d, ctxflags); +@@ -55,7 +61,12 @@ class OGLRenderer extends BufferedRender + @Override + protected void validateContextAA(SunGraphics2D sg2d) { + int ctxflags = OGLContext.NO_CONTEXT_FLAGS; +- OGLSurfaceData dstData = (OGLSurfaceData)sg2d.surfaceData; ++ OGLSurfaceData dstData; ++ try { ++ dstData = (OGLSurfaceData)sg2d.surfaceData; ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + OGLContext.validateContext(dstData, dstData, + sg2d.getCompClip(), sg2d.composite, + null, sg2d.paint, sg2d, ctxflags); +@@ -69,7 +80,12 @@ class OGLRenderer extends BufferedRender + int ctxflags = + sg2d.surfaceData.getTransparency() == Transparency.OPAQUE ? + OGLContext.SRC_IS_OPAQUE : OGLContext.NO_CONTEXT_FLAGS; +- OGLSurfaceData dstData = (OGLSurfaceData)sg2d.surfaceData; ++ OGLSurfaceData dstData; ++ try { ++ dstData = (OGLSurfaceData)sg2d.surfaceData; ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + OGLContext.validateContext(dstData, dstData, + sg2d.getCompClip(), sg2d.composite, + null, null, null, ctxflags); +diff --git a/src/share/classes/sun/java2d/pipe/BufferedContext.java b/src/share/classes/sun/java2d/pipe/BufferedContext.java +--- openjdk/jdk/src/share/classes/sun/java2d/pipe/BufferedContext.java ++++ openjdk/jdk/src/share/classes/sun/java2d/pipe/BufferedContext.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2005, 2011, Oracle and/or its affiliates. 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 +@@ -111,6 +111,8 @@ public abstract class BufferedContext { + * + * Note: must be called while the RenderQueue lock is held. + * ++ * It's assumed that the type of surfaces has been checked by the Renderer ++ * + * @throws InvalidPipeException if either src or dest surface is not valid + * or lost + * @see RenderQueue#lock +@@ -134,6 +136,8 @@ public abstract class BufferedContext { + * and disables all context state settings. + * + * Note: must be called while the RenderQueue lock is held. ++ * ++ * It's assumed that the type of surfaces has been checked by the Renderer + * + * @throws InvalidPipeException if the surface is not valid + * or lost +@@ -159,6 +163,8 @@ public abstract class BufferedContext { + * is safe to pass a null SunGraphics2D and it will be ignored. + * + * Note: must be called while the RenderQueue lock is held. ++ * ++ * It's assumed that the type of surfaces has been checked by the Renderer + * + * @throws InvalidPipeException if either src or dest surface is not valid + * or lost +diff --git a/src/windows/classes/sun/java2d/d3d/D3DRenderer.java b/src/windows/classes/sun/java2d/d3d/D3DRenderer.java +--- openjdk/jdk/src/windows/classes/sun/java2d/d3d/D3DRenderer.java ++++ openjdk/jdk/src/windows/classes/sun/java2d/d3d/D3DRenderer.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2007, 2011, Oracle and/or its affiliates. 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 +@@ -27,6 +27,7 @@ package sun.java2d.d3d; + + import java.awt.Transparency; + import java.awt.geom.Path2D; ++import sun.java2d.InvalidPipeException; + import sun.java2d.SunGraphics2D; + import sun.java2d.loops.GraphicsPrimitive; + import sun.java2d.pipe.BufferedPaints; +@@ -47,7 +48,12 @@ class D3DRenderer extends BufferedRender + int ctxflags = + sg2d.paint.getTransparency() == Transparency.OPAQUE ? + D3DContext.SRC_IS_OPAQUE : D3DContext.NO_CONTEXT_FLAGS; +- D3DSurfaceData dstData = (D3DSurfaceData)sg2d.surfaceData; ++ D3DSurfaceData dstData; ++ try { ++ dstData = (D3DSurfaceData)sg2d.surfaceData; ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + D3DContext.validateContext(dstData, dstData, + sg2d.getCompClip(), sg2d.composite, + null, sg2d.paint, sg2d, ctxflags); +@@ -56,7 +62,12 @@ class D3DRenderer extends BufferedRender + @Override + protected void validateContextAA(SunGraphics2D sg2d) { + int ctxflags = D3DContext.NO_CONTEXT_FLAGS; +- D3DSurfaceData dstData = (D3DSurfaceData)sg2d.surfaceData; ++ D3DSurfaceData dstData; ++ try { ++ dstData = (D3DSurfaceData)sg2d.surfaceData; ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + D3DContext.validateContext(dstData, dstData, + sg2d.getCompClip(), sg2d.composite, + null, sg2d.paint, sg2d, ctxflags); +@@ -70,7 +81,12 @@ class D3DRenderer extends BufferedRender + int ctxflags = + sg2d.surfaceData.getTransparency() == Transparency.OPAQUE ? + D3DContext.SRC_IS_OPAQUE : D3DContext.NO_CONTEXT_FLAGS; +- D3DSurfaceData dstData = (D3DSurfaceData)sg2d.surfaceData; ++ D3DSurfaceData dstData; ++ try { ++ dstData = (D3DSurfaceData)sg2d.surfaceData; ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + D3DContext.validateContext(dstData, dstData, + sg2d.getCompClip(), sg2d.composite, + null, null, null, ctxflags); +diff --git a/src/windows/classes/sun/java2d/windows/GDIRenderer.java b/src/windows/classes/sun/java2d/windows/GDIRenderer.java +--- openjdk/jdk/src/windows/classes/sun/java2d/windows/GDIRenderer.java ++++ openjdk/jdk/src/windows/classes/sun/java2d/windows/GDIRenderer.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -29,6 +29,7 @@ import java.awt.Shape; + import java.awt.Shape; + import java.awt.geom.Path2D; + import java.awt.geom.PathIterator; ++import sun.java2d.InvalidPipeException; + import sun.java2d.SunGraphics2D; + import sun.java2d.SurfaceData; + import sun.java2d.pipe.Region; +@@ -45,7 +46,7 @@ public class GDIRenderer implements + PixelFillPipe, + ShapeDrawPipe + { +- native void doDrawLine(SurfaceData sData, ++ native void doDrawLine(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x1, int y1, int x2, int y2); + +@@ -54,24 +55,32 @@ public class GDIRenderer implements + { + int transx = sg2d.transX; + int transy = sg2d.transY; +- doDrawLine(sg2d.surfaceData, +- sg2d.getCompClip(), sg2d.composite, sg2d.eargb, +- x1+transx, y1+transy, x2+transx, y2+transy); ++ try { ++ doDrawLine((GDIWindowSurfaceData)sg2d.surfaceData, ++ sg2d.getCompClip(), sg2d.composite, sg2d.eargb, ++ x1+transx, y1+transy, x2+transx, y2+transy); ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + } + +- native void doDrawRect(SurfaceData sData, ++ native void doDrawRect(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h); + + public void drawRect(SunGraphics2D sg2d, + int x, int y, int width, int height) + { +- doDrawRect(sg2d.surfaceData, +- sg2d.getCompClip(), sg2d.composite, sg2d.eargb, +- x+sg2d.transX, y+sg2d.transY, width, height); ++ try { ++ doDrawRect((GDIWindowSurfaceData)sg2d.surfaceData, ++ sg2d.getCompClip(), sg2d.composite, sg2d.eargb, ++ x+sg2d.transX, y+sg2d.transY, width, height); ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + } + +- native void doDrawRoundRect(SurfaceData sData, ++ native void doDrawRoundRect(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h, + int arcW, int arcH); +@@ -80,25 +89,33 @@ public class GDIRenderer implements + int x, int y, int width, int height, + int arcWidth, int arcHeight) + { +- doDrawRoundRect(sg2d.surfaceData, +- sg2d.getCompClip(), sg2d.composite, sg2d.eargb, +- x+sg2d.transX, y+sg2d.transY, width, height, +- arcWidth, arcHeight); ++ try { ++ doDrawRoundRect((GDIWindowSurfaceData)sg2d.surfaceData, ++ sg2d.getCompClip(), sg2d.composite, sg2d.eargb, ++ x+sg2d.transX, y+sg2d.transY, width, height, ++ arcWidth, arcHeight); ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + } + +- native void doDrawOval(SurfaceData sData, ++ native void doDrawOval(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h); + + public void drawOval(SunGraphics2D sg2d, + int x, int y, int width, int height) + { +- doDrawOval(sg2d.surfaceData, +- sg2d.getCompClip(), sg2d.composite, sg2d.eargb, +- x+sg2d.transX, y+sg2d.transY, width, height); ++ try { ++ doDrawOval((GDIWindowSurfaceData)sg2d.surfaceData, ++ sg2d.getCompClip(), sg2d.composite, sg2d.eargb, ++ x+sg2d.transX, y+sg2d.transY, width, height); ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + } + +- native void doDrawArc(SurfaceData sData, ++ native void doDrawArc(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h, + int angleStart, int angleExtent); +@@ -107,13 +124,17 @@ public class GDIRenderer implements + int x, int y, int width, int height, + int startAngle, int arcAngle) + { +- doDrawArc(sg2d.surfaceData, +- sg2d.getCompClip(), sg2d.composite, sg2d.eargb, +- x+sg2d.transX, y+sg2d.transY, width, height, +- startAngle, arcAngle); ++ try { ++ doDrawArc((GDIWindowSurfaceData)sg2d.surfaceData, ++ sg2d.getCompClip(), sg2d.composite, sg2d.eargb, ++ x+sg2d.transX, y+sg2d.transY, width, height, ++ startAngle, arcAngle); ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + } + +- native void doDrawPoly(SurfaceData sData, ++ native void doDrawPoly(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int transx, int transy, + int[] xpoints, int[] ypoints, +@@ -123,33 +144,45 @@ public class GDIRenderer implements + int xpoints[], int ypoints[], + int npoints) + { +- doDrawPoly(sg2d.surfaceData, +- sg2d.getCompClip(), sg2d.composite, sg2d.eargb, +- sg2d.transX, sg2d.transY, xpoints, ypoints, npoints, false); ++ try { ++ doDrawPoly((GDIWindowSurfaceData)sg2d.surfaceData, ++ sg2d.getCompClip(), sg2d.composite, sg2d.eargb, ++ sg2d.transX, sg2d.transY, xpoints, ypoints, npoints, false); ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + } + + public void drawPolygon(SunGraphics2D sg2d, + int xpoints[], int ypoints[], + int npoints) + { +- doDrawPoly(sg2d.surfaceData, +- sg2d.getCompClip(), sg2d.composite, sg2d.eargb, +- sg2d.transX, sg2d.transY, xpoints, ypoints, npoints, true); ++ try { ++ doDrawPoly((GDIWindowSurfaceData)sg2d.surfaceData, ++ sg2d.getCompClip(), sg2d.composite, sg2d.eargb, ++ sg2d.transX, sg2d.transY, xpoints, ypoints, npoints, true); ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + } + +- native void doFillRect(SurfaceData sData, ++ native void doFillRect(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h); + + public void fillRect(SunGraphics2D sg2d, + int x, int y, int width, int height) + { +- doFillRect(sg2d.surfaceData, +- sg2d.getCompClip(), sg2d.composite, sg2d.eargb, +- x+sg2d.transX, y+sg2d.transY, width, height); ++ try { ++ doFillRect((GDIWindowSurfaceData)sg2d.surfaceData, ++ sg2d.getCompClip(), sg2d.composite, sg2d.eargb, ++ x+sg2d.transX, y+sg2d.transY, width, height); ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + } + +- native void doFillRoundRect(SurfaceData sData, ++ native void doFillRoundRect(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h, + int arcW, int arcH); +@@ -158,25 +191,33 @@ public class GDIRenderer implements + int x, int y, int width, int height, + int arcWidth, int arcHeight) + { +- doFillRoundRect(sg2d.surfaceData, +- sg2d.getCompClip(), sg2d.composite, sg2d.eargb, +- x+sg2d.transX, y+sg2d.transY, width, height, +- arcWidth, arcHeight); ++ try { ++ doFillRoundRect((GDIWindowSurfaceData)sg2d.surfaceData, ++ sg2d.getCompClip(), sg2d.composite, sg2d.eargb, ++ x+sg2d.transX, y+sg2d.transY, width, height, ++ arcWidth, arcHeight); ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + } + +- native void doFillOval(SurfaceData sData, ++ native void doFillOval(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h); + + public void fillOval(SunGraphics2D sg2d, + int x, int y, int width, int height) + { +- doFillOval(sg2d.surfaceData, +- sg2d.getCompClip(), sg2d.composite, sg2d.eargb, +- x+sg2d.transX, y+sg2d.transY, width, height); ++ try { ++ doFillOval((GDIWindowSurfaceData)sg2d.surfaceData, ++ sg2d.getCompClip(), sg2d.composite, sg2d.eargb, ++ x+sg2d.transX, y+sg2d.transY, width, height); ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + } + +- native void doFillArc(SurfaceData sData, ++ native void doFillArc(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h, + int angleStart, int angleExtent); +@@ -185,13 +226,17 @@ public class GDIRenderer implements + int x, int y, int width, int height, + int startAngle, int arcAngle) + { +- doFillArc(sg2d.surfaceData, +- sg2d.getCompClip(), sg2d.composite, sg2d.eargb, +- x+sg2d.transX, y+sg2d.transY, width, height, +- startAngle, arcAngle); ++ try { ++ doFillArc((GDIWindowSurfaceData)sg2d.surfaceData, ++ sg2d.getCompClip(), sg2d.composite, sg2d.eargb, ++ x+sg2d.transX, y+sg2d.transY, width, height, ++ startAngle, arcAngle); ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + } + +- native void doFillPoly(SurfaceData sData, ++ native void doFillPoly(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int transx, int transy, + int[] xpoints, int[] ypoints, +@@ -201,12 +246,16 @@ public class GDIRenderer implements + int xpoints[], int ypoints[], + int npoints) + { +- doFillPoly(sg2d.surfaceData, +- sg2d.getCompClip(), sg2d.composite, sg2d.eargb, +- sg2d.transX, sg2d.transY, xpoints, ypoints, npoints); ++ try { ++ doFillPoly((GDIWindowSurfaceData)sg2d.surfaceData, ++ sg2d.getCompClip(), sg2d.composite, sg2d.eargb, ++ sg2d.transX, sg2d.transY, xpoints, ypoints, npoints); ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + } + +- native void doShape(SurfaceData sData, ++ native void doShape(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int transX, int transY, + Path2D.Float p2df, boolean isfill); +@@ -228,9 +277,13 @@ public class GDIRenderer implements + transX = 0; + transY = 0; + } +- doShape(sg2d.surfaceData, +- sg2d.getCompClip(), sg2d.composite, sg2d.eargb, +- transX, transY, p2df, isfill); ++ try { ++ doShape((GDIWindowSurfaceData)sg2d.surfaceData, ++ sg2d.getCompClip(), sg2d.composite, sg2d.eargb, ++ transX, transY, p2df, isfill); ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + } + + // REMIND: This is just a hack to get WIDE lines to honor the +@@ -239,7 +292,12 @@ public class GDIRenderer implements + // method that could be filled by the doShape method more quickly. + public void doFillSpans(SunGraphics2D sg2d, SpanIterator si) { + int box[] = new int[4]; +- SurfaceData sd = sg2d.surfaceData; ++ GDIWindowSurfaceData sd; ++ try { ++ sd = (GDIWindowSurfaceData)sg2d.surfaceData; ++ } catch (ClassCastException e) { ++ throw new InvalidPipeException("wrong surface data type: " + sg2d.surfaceData); ++ } + Region clip = sg2d.getCompClip(); + Composite comp = sg2d.composite; + int eargb = sg2d.eargb; +@@ -268,7 +326,7 @@ public class GDIRenderer implements + doShape(sg2d, s, true); + } + +- public native void devCopyArea(SurfaceData sData, ++ public native void devCopyArea(GDIWindowSurfaceData sData, + int srcx, int srcy, + int dx, int dy, + int w, int h); +@@ -278,21 +336,21 @@ public class GDIRenderer implements + } + + public static class Tracer extends GDIRenderer { +- void doDrawLine(SurfaceData sData, ++ void doDrawLine(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x1, int y1, int x2, int y2) + { + GraphicsPrimitive.tracePrimitive("GDIDrawLine"); + super.doDrawLine(sData, clip, comp, color, x1, y1, x2, y2); + } +- void doDrawRect(SurfaceData sData, ++ void doDrawRect(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h) + { + GraphicsPrimitive.tracePrimitive("GDIDrawRect"); + super.doDrawRect(sData, clip, comp, color, x, y, w, h); + } +- void doDrawRoundRect(SurfaceData sData, ++ void doDrawRoundRect(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h, + int arcW, int arcH) +@@ -301,14 +359,14 @@ public class GDIRenderer implements + super.doDrawRoundRect(sData, clip, comp, color, + x, y, w, h, arcW, arcH); + } +- void doDrawOval(SurfaceData sData, ++ void doDrawOval(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h) + { + GraphicsPrimitive.tracePrimitive("GDIDrawOval"); + super.doDrawOval(sData, clip, comp, color, x, y, w, h); + } +- void doDrawArc(SurfaceData sData, ++ void doDrawArc(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h, + int angleStart, int angleExtent) +@@ -317,7 +375,7 @@ public class GDIRenderer implements + super.doDrawArc(sData, clip, comp, color, x, y, w, h, + angleStart, angleExtent); + } +- void doDrawPoly(SurfaceData sData, ++ void doDrawPoly(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int transx, int transy, + int[] xpoints, int[] ypoints, +@@ -327,14 +385,14 @@ public class GDIRenderer implements + super.doDrawPoly(sData, clip, comp, color, transx, transy, + xpoints, ypoints, npoints, isclosed); + } +- void doFillRect(SurfaceData sData, ++ void doFillRect(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h) + { + GraphicsPrimitive.tracePrimitive("GDIFillRect"); + super.doFillRect(sData, clip, comp, color, x, y, w, h); + } +- void doFillRoundRect(SurfaceData sData, ++ void doFillRoundRect(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h, + int arcW, int arcH) +@@ -343,14 +401,14 @@ public class GDIRenderer implements + super.doFillRoundRect(sData, clip, comp, color, + x, y, w, h, arcW, arcH); + } +- void doFillOval(SurfaceData sData, ++ void doFillOval(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h) + { + GraphicsPrimitive.tracePrimitive("GDIFillOval"); + super.doFillOval(sData, clip, comp, color, x, y, w, h); + } +- void doFillArc(SurfaceData sData, ++ void doFillArc(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int x, int y, int w, int h, + int angleStart, int angleExtent) +@@ -359,7 +417,7 @@ public class GDIRenderer implements + super.doFillArc(sData, clip, comp, color, x, y, w, h, + angleStart, angleExtent); + } +- void doFillPoly(SurfaceData sData, ++ void doFillPoly(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int transx, int transy, + int[] xpoints, int[] ypoints, +@@ -369,7 +427,7 @@ public class GDIRenderer implements + super.doFillPoly(sData, clip, comp, color, transx, transy, + xpoints, ypoints, npoints); + } +- void doShape(SurfaceData sData, ++ void doShape(GDIWindowSurfaceData sData, + Region clip, Composite comp, int color, + int transX, int transY, + Path2D.Float p2df, boolean isfill) +@@ -380,7 +438,7 @@ public class GDIRenderer implements + super.doShape(sData, clip, comp, color, + transX, transY, p2df, isfill); + } +- public void devCopyArea(SurfaceData sData, ++ public void devCopyArea(GDIWindowSurfaceData sData, + int srcx, int srcy, + int dx, int dy, + int w, int h) +diff --git a/src/windows/native/sun/java2d/windows/GDIRenderer.cpp b/src/windows/native/sun/java2d/windows/GDIRenderer.cpp +--- openjdk/jdk/src/windows/native/sun/java2d/windows/GDIRenderer.cpp ++++ openjdk/jdk/src/windows/native/sun/java2d/windows/GDIRenderer.cpp +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1999, 2011, Oracle and/or its affiliates. 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 +@@ -117,7 +117,7 @@ static POINT *TransformPoly(jint *xpoint + /* + * Class: sun_java2d_windows_GDIRenderer + * Method: doDrawLine +- * Signature: (Lsun/java2d/SurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIII)V ++ * Signature: (Lsun/java2d/windows/GDIWindowSurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIII)V + */ + JNIEXPORT void JNICALL + Java_sun_java2d_windows_GDIRenderer_doDrawLine +@@ -164,7 +164,7 @@ Java_sun_java2d_windows_GDIRenderer_doDr + /* + * Class: sun_java2d_windows_GDIRenderer + * Method: doDrawRect +- * Signature: (Lsun/java2d/SurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIII)V ++ * Signature: (Lsun/java2d/windows/GDIWindowSurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIII)V + */ + JNIEXPORT void JNICALL + Java_sun_java2d_windows_GDIRenderer_doDrawRect +@@ -209,7 +209,7 @@ Java_sun_java2d_windows_GDIRenderer_doDr + /* + * Class: sun_java2d_windows_GDIRenderer + * Method: doDrawRoundRect +- * Signature: (Lsun/java2d/SurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIIIII)V ++ * Signature: (Lsun/java2d/windows/GDIWindowSurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIIIII)V + */ + JNIEXPORT void JNICALL + Java_sun_java2d_windows_GDIRenderer_doDrawRoundRect +@@ -253,7 +253,7 @@ Java_sun_java2d_windows_GDIRenderer_doDr + /* + * Class: sun_java2d_windows_GDIRenderer + * Method: doDrawOval +- * Signature: (Lsun/java2d/SurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIII)V ++ * Signature: (Lsun/java2d/windows/GDIWindowSurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIII)V + */ + JNIEXPORT void JNICALL + Java_sun_java2d_windows_GDIRenderer_doDrawOval +@@ -291,7 +291,7 @@ Java_sun_java2d_windows_GDIRenderer_doDr + /* + * Class: sun_java2d_windows_GDIRenderer + * Method: doDrawArc +- * Signature: (Lsun/java2d/SurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIIIII)V ++ * Signature: (Lsun/java2d/windows/GDIWindowSurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIIIII)V + */ + JNIEXPORT void JNICALL + Java_sun_java2d_windows_GDIRenderer_doDrawArc +@@ -347,7 +347,7 @@ Java_sun_java2d_windows_GDIRenderer_doDr + /* + * Class: sun_java2d_windows_GDIRenderer + * Method: doDrawPoly +- * Signature: (Lsun/java2d/SurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;III[I[IIZ)V ++ * Signature: (Lsun/java2d/windows/GDIWindowSurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;III[I[IIZ)V + */ + JNIEXPORT void JNICALL + Java_sun_java2d_windows_GDIRenderer_doDrawPoly +@@ -412,7 +412,7 @@ Java_sun_java2d_windows_GDIRenderer_doDr + /* + * Class: sun_java2d_windows_GDIRenderer + * Method: doFillRect +- * Signature: (Lsun/java2d/SurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIII)V ++ * Signature: (Lsun/java2d/windows/GDIWindowSurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIII)V + */ + JNIEXPORT void JNICALL + Java_sun_java2d_windows_GDIRenderer_doFillRect +@@ -445,7 +445,7 @@ Java_sun_java2d_windows_GDIRenderer_doFi + /* + * Class: sun_java2d_windows_GDIRenderer + * Method: doFillRoundRect +- * Signature: (Lsun/java2d/SurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIIIII)V ++ * Signature: (Lsun/java2d/windows/GDIWindowSurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIIIII)V + */ + JNIEXPORT void JNICALL + Java_sun_java2d_windows_GDIRenderer_doFillRoundRect +@@ -488,7 +488,7 @@ Java_sun_java2d_windows_GDIRenderer_doFi + /* + * Class: sun_java2d_windows_GDIRenderer + * Method: doFillOval +- * Signature: (Lsun/java2d/SurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIII)V ++ * Signature: (Lsun/java2d/windows/GDIWindowSurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIII)V + */ + JNIEXPORT void JNICALL + Java_sun_java2d_windows_GDIRenderer_doFillOval +@@ -555,7 +555,7 @@ Java_sun_java2d_windows_GDIRenderer_doFi + /* + * Class: sun_java2d_windows_GDIRenderer + * Method: doFillArc +- * Signature: (Lsun/java2d/SurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIIIII)V ++ * Signature: (Lsun/java2d/windows/GDIWindowSurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;IIIIIII)V + */ + JNIEXPORT void JNICALL + Java_sun_java2d_windows_GDIRenderer_doFillArc +@@ -615,7 +615,7 @@ Java_sun_java2d_windows_GDIRenderer_doFi + /* + * Class: sun_java2d_windows_GDIRenderer + * Method: doFillPoly +- * Signature: (Lsun/java2d/SurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;III[I[II)V ++ * Signature: (Lsun/java2d/windows/GDIWindowSurfaceData;Lsun/java2d/pipe/Region;Ljava/awt/Composite;III[I[II)V + */ + JNIEXPORT void JNICALL + Java_sun_java2d_windows_GDIRenderer_doFillPoly +@@ -680,7 +680,7 @@ Java_sun_java2d_windows_GDIRenderer_doFi + /* + * Class: sun_java2d_windows_GDIRenderer + * Method: doShape +- * Signature: (Lsun/java2d/SurfaceData;Lsun/java2d/pipe/Region; ++ * Signature: (Lsun/java2d/windows/GDIWindowSurfaceData;Lsun/java2d/pipe/Region; + * Ljava/awt/Composite;IIILjava/awt/geom/Path2D.Float;Z)V + */ + JNIEXPORT void JNICALL +@@ -863,7 +863,7 @@ INLINE BOOL RectInMonitorRect(RECT *rChe + /* + * Class: sun_java2d_windows_GDIRenderer + * Method: devCopyArea +- * Signature: (Lsun/awt/windows/SurfaceData;IIIIII)V ++ * Signature: (Lsun/java2d/windows/GDIWindowSurfaceData;IIIIII)V + */ + JNIEXPORT void JNICALL + Java_sun_java2d_windows_GDIRenderer_devCopyArea diff -Nru openjdk-6-6b24-1.11/patches/security/20120214/7118283.patch openjdk-6-6b24-1.11.1/patches/security/20120214/7118283.patch --- openjdk-6-6b24-1.11/patches/security/20120214/7118283.patch 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-6-6b24-1.11.1/patches/security/20120214/7118283.patch 2012-02-15 15:02:17.000000000 +0000 @@ -0,0 +1,27 @@ +# HG changeset patch +# User asaha +# Date 1323826839 28800 +# Node ID 71ca2b40fdc9fd542d565ccd9f2f14861556a417 +# Parent ee0f12b18cb8d20c3fb61e96817bde6318a29221 +7118283: Better input parameter checking in zip file processing +Reviewed-by: sherman + +diff --git a/src/share/native/java/util/zip/zip_util.c b/src/share/native/java/util/zip/zip_util.c +--- openjdk/jdk/src/share/native/java/util/zip/zip_util.c ++++ openjdk/jdk/src/share/native/java/util/zip/zip_util.c +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1995, 2011, Oracle and/or its affiliates. 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 +@@ -450,7 +450,7 @@ countCENHeaders(unsigned char *beg, unsi + { + jint count = 0; + ptrdiff_t i; +- for (i = 0; i + CENHDR < end - beg; i += CENSIZE(beg + i)) ++ for (i = 0; i + CENHDR <= end - beg; i += CENSIZE(beg + i)) + count++; + return count; + } diff -Nru openjdk-6-6b24-1.11/patches/security/20120214/7126960.patch openjdk-6-6b24-1.11.1/patches/security/20120214/7126960.patch --- openjdk-6-6b24-1.11/patches/security/20120214/7126960.patch 1970-01-01 00:00:00.000000000 +0000 +++ openjdk-6-6b24-1.11.1/patches/security/20120214/7126960.patch 2012-02-15 15:02:17.000000000 +0000 @@ -0,0 +1,82 @@ +# HG changeset patch +# User coffeys +# Date 1326712887 0 +# Node ID 2d8dead332cbe169d486ecc70239475ebe3a77f7 +# Parent a224904d42db1f54139257221e9b545bd1c90b2e +7126960: Add property to limit number of request headers to the HTTP Server +Reviewed-by: chegar + +diff --git a/src/share/classes/sun/net/httpserver/Request.java b/src/share/classes/sun/net/httpserver/Request.java +--- openjdk/jdk/src/share/classes/sun/net/httpserver/Request.java ++++ openjdk/jdk/src/share/classes/sun/net/httpserver/Request.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2005, 2012, Oracle and/or its affiliates. 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 +@@ -190,6 +190,13 @@ class Request { + v = new String(); + else + v = String.copyValueOf(s, keyend, len - keyend); ++ ++ if (hdrs.size() >= ServerConfig.getMaxReqHeaders()) { ++ throw new IOException("Maximum number of request headers (" + ++ "sun.net.httpserver.maxReqHeaders) exceeded, " + ++ ServerConfig.getMaxReqHeaders() + "."); ++ } ++ + hdrs.add (k,v); + } + return hdrs; +diff --git a/src/share/classes/sun/net/httpserver/ServerConfig.java b/src/share/classes/sun/net/httpserver/ServerConfig.java +--- openjdk/jdk/src/share/classes/sun/net/httpserver/ServerConfig.java ++++ openjdk/jdk/src/share/classes/sun/net/httpserver/ServerConfig.java +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2005, 2012, Oracle and/or its affiliates. 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 +@@ -45,6 +45,8 @@ class ServerConfig { + static long defaultIdleInterval = 300 ; // 5 min + static long defaultSelCacheTimeout = 120 ; // seconds + static int defaultMaxIdleConnections = 200 ; ++ static int defaultMaxReqHeaders = 200 ; ++ + + static long defaultDrainAmount = 64 * 1024; + +@@ -54,6 +56,9 @@ class ServerConfig { + static long selCacheTimeout; + static long drainAmount; // max # of bytes to drain from an inputstream + static int maxIdleConnections; ++ // The maximum number of request headers allowable ++ private static int maxReqHeaders; ++ + static boolean debug = false; + + static { +@@ -93,6 +98,11 @@ class ServerConfig { + "sun.net.httpserver.drainAmount", + defaultDrainAmount))).longValue(); + ++ maxReqHeaders = ((Integer)java.security.AccessController.doPrivileged( ++ new sun.security.action.GetIntegerAction( ++ "sun.net.httpserver.maxReqHeaders", ++ defaultMaxReqHeaders))).intValue(); ++ + debug = ((Boolean)java.security.AccessController.doPrivileged( + new sun.security.action.GetBooleanAction( + "sun.net.httpserver.debug"))).booleanValue(); +@@ -129,4 +139,8 @@ class ServerConfig { + static long getDrainAmount () { + return drainAmount; + } ++ ++ static int getMaxReqHeaders() { ++ return maxReqHeaders; ++ } + }