diff options
author | Greg Lewis <glewis@FreeBSD.org> | 2015-12-13 00:50:58 +0000 |
---|---|---|
committer | Greg Lewis <glewis@FreeBSD.org> | 2015-12-13 00:50:58 +0000 |
commit | eb3bedf6984e425646839d81b81788330fffaa64 (patch) | |
tree | b3b2370f70b5b5fe70a1ca7485c3cc8d0cb3961e /java/openjdk8 | |
parent | e6cfde2959ce04cb2bb4a8049a4220384575a500 (diff) | |
download | ports-eb3bedf6984e425646839d81b81788330fffaa64.tar.gz ports-eb3bedf6984e425646839d81b81788330fffaa64.zip |
Notes
Diffstat (limited to 'java/openjdk8')
-rw-r--r-- | java/openjdk8/Makefile | 8 | ||||
-rw-r--r-- | java/openjdk8/distinfo | 2 | ||||
-rw-r--r-- | java/openjdk8/files/patch-bsd | 5978 | ||||
-rw-r--r-- | java/openjdk8/files/patch-bsd-test | 806 |
4 files changed, 4678 insertions, 2116 deletions
diff --git a/java/openjdk8/Makefile b/java/openjdk8/Makefile index c519e7ef4b4d..dc51b7a5cf85 100644 --- a/java/openjdk8/Makefile +++ b/java/openjdk8/Makefile @@ -2,7 +2,6 @@ PORTNAME= openjdk PORTVERSION= ${JDK_MAJOR_VERSION}.${JDK_UPDATE_VERSION}.${JDK_BUILD_NUMBER:S/^0//} -PORTREVISION= 2 CATEGORIES= java devel MASTER_SITES= http://download.java.net/openjdk/jdk${JDK_MAJOR_VERSION}/promoted/b${DIST_BUILD_NUMBER}/:jdk \ https://adopt-openjdk.ci.cloudbees.com/job/jtreg/${JTREG_JENKINS_BUILD}/artifact/:jtreg \ @@ -20,7 +19,8 @@ PATCHFILES= patch-8u05-b13.xz \ patch-8u40-b25.xz \ patch-8u45-b14.xz \ patch-8u51-b16.xz \ - patch-8u60-b23.xz + patch-8u60-b23.xz \ + patch-8u66-b17.xz MAINTAINER= java@FreeBSD.org COMMENT?= Java Development Kit ${JDK_MAJOR_VERSION} @@ -198,8 +198,8 @@ NO_CCACHE= yes NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 8 -JDK_UPDATE_VERSION= 60 -JDK_BUILD_NUMBER= 24 +JDK_UPDATE_VERSION= 66 +JDK_BUILD_NUMBER= 17 DIST_BUILD_NUMBER= 132 JTREG_VERSION= 4.1 JTREG_BUILD_NUMBER= b08 diff --git a/java/openjdk8/distinfo b/java/openjdk8/distinfo index 10d1065fa59f..d1f7506d7202 100644 --- a/java/openjdk8/distinfo +++ b/java/openjdk8/distinfo @@ -20,3 +20,5 @@ SHA256 (patch-8u51-b16.xz) = 146e8ffa75911a2bc53099ea07625db259f88cbac2e678f965f SIZE (patch-8u51-b16.xz) = 71144 SHA256 (patch-8u60-b23.xz) = 8ebe80e8add9e61dcb43e9be756ccc6d566a39748e7726f265df73af2d082798 SIZE (patch-8u60-b23.xz) = 1043720 +SHA256 (patch-8u66-b17.xz) = a9ab2649c4f107c0399b8ce953d5d8cb683bee959446ef5df9a3c9d5c682bf9b +SIZE (patch-8u66-b17.xz) = 185576 diff --git a/java/openjdk8/files/patch-bsd b/java/openjdk8/files/patch-bsd index 701855b83876..56d43500e96e 100644 --- a/java/openjdk8/files/patch-bsd +++ b/java/openjdk8/files/patch-bsd @@ -1,5 +1,12 @@ ---- ./common/autoconf/build-performance.m4 Wed Jul 01 21:51:50 2015 -0700 -+++ ./common/autoconf/build-performance.m4 Sat Sep 05 06:32:21 2015 -0700 +--- ./.hgtags 2015-12-12 10:53:30.938451000 -0800 ++++ ./.hgtags 2015-10-24 06:20:54.000000000 -0700 +@@ -487,4 +487,3 @@ + b5c54b2e12c3fbc54c7d7e0f22187fa601feb749 jdk8u66-b14 + d45e1dc28a6ee6fd03348ee170d9895957888124 jdk8u66-b15 + 5f29f2da7993f09564f6a5cb34e2799981ea96bb jdk8u66-b16 +-5b37e6757d7c95c9c58b07fb3c9eba234567385a jdk8u40-b24 +--- ./common/autoconf/build-performance.m4 2015-12-12 10:53:20.526424000 -0800 ++++ ./common/autoconf/build-performance.m4 2015-10-24 06:20:55.000000000 -0700 @@ -41,6 +41,10 @@ # Looks like a MacOSX system NUM_CORES=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Cores' | awk '{print [$]5}'` @@ -38,8 +45,8 @@ AC_MSG_RESULT([no, disabling ccache]) CCACHE= else ---- ./common/autoconf/generated-configure.sh Wed Jul 01 21:51:50 2015 -0700 -+++ ./common/autoconf/generated-configure.sh Sat Sep 05 06:32:21 2015 -0700 +--- ./common/autoconf/generated-configure.sh 2015-12-12 10:53:30.948059000 -0800 ++++ ./common/autoconf/generated-configure.sh 2015-10-24 06:20:55.000000000 -0700 @@ -646,6 +646,8 @@ LIBM LIBZIP_CAN_USE_MMAP @@ -235,23 +242,23 @@ if test -n "$ac_tool_prefix"; then for ac_prog in gobjcopy objcopy do -@@ -29309,8 +29370,10 @@ +@@ -29309,9 +29370,11 @@ SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/$1' SET_SHARED_LIBRARY_MAPFILE='' SET_SHARED_LIBRARY_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.' -+ POST_STRIP_CMD="$STRIP -S" -+ fi -+ if test "x$OPENJDK_TARGET_OS" = xbsd || test "x$OPENJDK_TARGET_OS" = xmacosx; then - SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" -- POST_STRIP_CMD="$STRIP -S" +- SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" + POST_STRIP_CMD="$STRIP -S" fi ++ if test "x$OPENJDK_TARGET_OS" = xbsd || test "x$OPENJDK_TARGET_OS" = xmacosx; then ++ SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" ++ fi else if test "x$OPENJDK_TARGET_OS" = xsolaris; then + # If it is not gcc, then assume it is the Oracle Solaris Studio Compiler @@ -29736,22 +29799,37 @@ CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64" # The package path is used only on macosx? -- PACKAGE_PATH=/opt/local + +# Check whether --with-package-path was given. +if test "${with_package_path+set}" = set; then : @@ -261,25 +268,14 @@ + PACKAGE_PATH="$with_package_path" + if test "x$PACKAGE_PATH" = x; then + if test "`uname -s`" = "Darwin"; then -+ PACKAGE_PATH=/opt/local + PACKAGE_PATH=/opt/local + fi -+ + + if test "`uname -s`" = "FreeBSD"; then + PACKAGE_PATH=/usr/local + fi -+ -+ if test "`uname -s`" = "NetBSD"; then -+ PACKAGE_PATH=/usr/pkg -+ fi -+ -+ if test "`uname -s`" = "OpenBSD"; then -+ PACKAGE_PATH=/usr/local -+ fi -+ fi -+ - - if test "x$OPENJDK_TARGET_CPU_ENDIAN" = xlittle; then +- if test "x$OPENJDK_TARGET_CPU_ENDIAN" = xlittle; then - # The macro _LITTLE_ENDIAN needs to be defined the same to avoid the - # Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN - # (The Solaris X86 system defines this in file /usr/include/sys/isa_defs.h). @@ -289,11 +285,21 @@ - CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN=" - else - CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN" -- fi -- else -- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN" ++ if test "`uname -s`" = "NetBSD"; then ++ PACKAGE_PATH=/usr/pkg + fi ++ ++ if test "`uname -s`" = "OpenBSD"; then ++ PACKAGE_PATH=/usr/local ++ fi ++ fi ++ ++ ++ ++ if test "x$OPENJDK_TARGET_CPU_ENDIAN" = xlittle; then + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DVM_LITTLE_ENDIAN" -+ else + else +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN" + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DVM_BIG_ENDIAN" fi if test "x$OPENJDK_TARGET_OS" = xlinux; then @@ -304,13 +310,12 @@ if test "x$OPENJDK_TARGET_OS" = xbsd; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on bsd?" >&5 -$as_echo_n "checking what is not needed on bsd?... " >&6; } -- ALSA_NOT_NEEDED=yes -- { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa" >&5 --$as_echo "alsa" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking what is not needed on BSD?" >&5 +$as_echo_n "checking what is not needed on BSD?... " >&6; } + if test "x$OPENJDK_TARGET_OS_VENDOR" = xopenbsd; then -+ ALSA_NOT_NEEDED=yes + ALSA_NOT_NEEDED=yes +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa" >&5 +-$as_echo "alsa" >&6; } + PULSE_NOT_NEEDED=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: alsa pulse" >&5 +$as_echo "alsa pulse" >&6; } @@ -376,16 +381,13 @@ -else - as_fn_error $? "--with-giflib=system specified, but gif_lib.h not found!" "$LINENO" 5 --fi -- -- + GIFLIB_H_FOUND=yes + GIFLIB_CFLAGS= + + -+fi -+ -+ + fi + + + if test "x$GIFLIB_H_FOUND" = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for giflib headers" >&5 +$as_echo_n "checking for giflib headers... " >&6; } @@ -442,18 +444,12 @@ - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBGIF 1 -_ACEOF -- + - LIBS="-lgif $LIBS" -- --else -- as_fn_error $? "--with-giflib=system specified, but no giflib found!" "$LINENO" 5 --fi -- -+ + GIFLIB_LIB_FOUND=yes + GIFLIB_LDFLAGS= + -+ + +fi + + if test "x$GIFLIB_LIB_FOUND" = xno; then @@ -463,7 +459,8 @@ +$as_echo_n "checking for DGifOpen in -lgif... " >&6; } +if ${ac_cv_lib_gif_DGifOpen+:} false; then : + $as_echo_n "(cached) " >&6 -+else + else +- as_fn_error $? "--with-giflib=system specified, but no giflib found!" "$LINENO" 5 + ac_check_lib_save_LIBS=$LIBS +LIBS="-lgif $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -488,7 +485,7 @@ + ac_cv_lib_gif_DGifOpen=yes +else + ac_cv_lib_gif_DGifOpen=no -+fi + fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS @@ -505,7 +502,7 @@ + + LDFLAGS="$save_LDFLAGS" + fi -+ + + if test "x$GIFLIB_LIB_FOUND" = xno; then + + # Print a helpful message on how to acquire the necessary build dependency. @@ -601,8 +598,8 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, disabling ccache" >&5 $as_echo "no, disabling ccache" >&6; } CCACHE= ---- ./common/autoconf/jdk-options.m4 Wed Jul 01 21:51:50 2015 -0700 -+++ ./common/autoconf/jdk-options.m4 Sat Sep 05 06:32:21 2015 -0700 +--- ./common/autoconf/jdk-options.m4 2015-12-12 10:53:29.272768000 -0800 ++++ ./common/autoconf/jdk-options.m4 2015-10-24 06:20:55.000000000 -0700 @@ -410,6 +410,20 @@ ############################################################################### @@ -624,18 +621,17 @@ # Enable or disable the elliptic curve crypto implementation # AC_DEFUN_ONCE([JDKOPT_DETECT_INTREE_EC], ---- ./common/autoconf/libraries.m4 Wed Jul 01 21:51:50 2015 -0700 -+++ ./common/autoconf/libraries.m4 Sat Sep 05 06:32:21 2015 -0700 +--- ./common/autoconf/libraries.m4 2015-12-12 10:53:29.275607000 -0800 ++++ ./common/autoconf/libraries.m4 2015-10-24 06:20:55.000000000 -0700 @@ -69,9 +69,15 @@ fi if test "x$OPENJDK_TARGET_OS" = xbsd; then - AC_MSG_CHECKING([what is not needed on bsd?]) -- ALSA_NOT_NEEDED=yes -- AC_MSG_RESULT([alsa]) + AC_MSG_CHECKING([what is not needed on BSD?]) + if test "x$OPENJDK_TARGET_OS_VENDOR" = xopenbsd; then -+ ALSA_NOT_NEEDED=yes + ALSA_NOT_NEEDED=yes +- AC_MSG_RESULT([alsa]) + PULSE_NOT_NEEDED=yes + AC_MSG_RESULT([alsa pulse]) + else @@ -763,8 +759,8 @@ + AC_SUBST(LIBCXX) ]) ---- ./common/autoconf/platform.m4 Wed Jul 01 21:51:50 2015 -0700 -+++ ./common/autoconf/platform.m4 Sat Sep 05 06:32:21 2015 -0700 +--- ./common/autoconf/platform.m4 2015-12-12 10:53:29.275987000 -0800 ++++ ./common/autoconf/platform.m4 2015-10-24 06:20:55.000000000 -0700 @@ -30,7 +30,7 @@ [ # First argument is the cpu name from the trip/quad @@ -824,8 +820,8 @@ OPENJDK_TARGET_CPU_OSARCH="i386" elif test "x$OPENJDK_TARGET_OS" != xmacosx && test "x$OPENJDK_TARGET_CPU" = xx86_64; then # On all platforms except macosx, we replace x86_64 with amd64. ---- ./common/autoconf/spec.gmk.in Wed Jul 01 21:51:50 2015 -0700 -+++ ./common/autoconf/spec.gmk.in Sat Sep 05 06:32:21 2015 -0700 +--- ./common/autoconf/spec.gmk.in 2015-12-12 10:53:29.276399000 -0800 ++++ ./common/autoconf/spec.gmk.in 2015-10-24 06:20:55.000000000 -0700 @@ -76,6 +76,7 @@ OPENJDK_TARGET_OS:=@OPENJDK_TARGET_OS@ OPENJDK_TARGET_OS_API:=@OPENJDK_TARGET_OS_API@ @@ -862,8 +858,8 @@ USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@ LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ MSVCR_DLL:=@MSVCR_DLL@ ---- ./common/autoconf/toolchain.m4 Wed Jul 01 21:51:50 2015 -0700 -+++ ./common/autoconf/toolchain.m4 Sat Sep 05 06:32:21 2015 -0700 +--- ./common/autoconf/toolchain.m4 2015-12-12 10:53:29.276999000 -0800 ++++ ./common/autoconf/toolchain.m4 2015-10-24 06:20:55.000000000 -0700 @@ -72,7 +72,7 @@ else COMPILER_VERSION_TEST=`$COMPILER --version 2>&1 | $HEAD -n 1` @@ -882,29 +878,29 @@ AC_CHECK_TOOLS(OBJCOPY, [gobjcopy objcopy]) # Only call fixup if objcopy was found. if test -n "$OBJCOPY"; then -@@ -634,8 +634,10 @@ +@@ -634,9 +634,11 @@ SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1' SET_SHARED_LIBRARY_MAPFILE='' SET_SHARED_LIBRARY_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.' -+ POST_STRIP_CMD="$STRIP -S" -+ fi -+ if test "x$OPENJDK_TARGET_OS" = xbsd || test "x$OPENJDK_TARGET_OS" = xmacosx; then - SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" -- POST_STRIP_CMD="$STRIP -S" +- SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" + POST_STRIP_CMD="$STRIP -S" fi ++ if test "x$OPENJDK_TARGET_OS" = xbsd || test "x$OPENJDK_TARGET_OS" = xmacosx; then ++ SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" ++ fi else if test "x$OPENJDK_TARGET_OS" = xsolaris; then + # If it is not gcc, then assume it is the Oracle Solaris Studio Compiler @@ -1039,22 +1041,33 @@ CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64" # The package path is used only on macosx? -- PACKAGE_PATH=/opt/local + AC_ARG_WITH(package-path, [AS_HELP_STRING([--with-package-path], + [package path to be used for location of third party packages])]) + PACKAGE_PATH="$with_package_path" + if test "x$PACKAGE_PATH" = x; then + if test "`uname -s`" = "Darwin"; then -+ PACKAGE_PATH=/opt/local + PACKAGE_PATH=/opt/local + fi + + if test "`uname -s`" = "FreeBSD"; then @@ -940,356 +936,35 @@ fi if test "x$OPENJDK_TARGET_OS" = xlinux; then CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX" ---- ./configure Wed Jul 01 21:51:50 2015 -0700 -+++ ./configure Sat Sep 05 06:32:21 2015 -0700 +--- ./configure 2015-12-12 10:53:19.849663000 -0800 ++++ ./configure 2015-10-24 06:20:55.000000000 -0700 @@ -1,4 +1,4 @@ --#!/bin/bash +-#!/usr/local/bin/bash +#!/bin/sh # # Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ---- ./make/Javadoc.gmk Wed Jul 01 21:51:50 2015 -0700 -+++ ./make/Javadoc.gmk Sat Sep 05 06:32:21 2015 -0700 -@@ -46,8 +46,18 @@ - - BUILD_NUMBER=$(JDK_BUILD_NUMBER) - -+ifeq ($(OPENJDK_TARGET_OS_VENDOR), openbsd) -+ ifeq ($(OPENJDK_TARGET_CPU_BITS), 32) -+ JAVADOC_CMD_MEM = "-Xmx768m" -+ else -+ JAVADOC_CMD_MEM = "-Xmx1024m" -+ endif -+else -+ JAVADOC_CMD_MEM = "-Xmx1024m" -+endif -+ - JAVADOC_CMD = $(JAVA) \ -- -Xmx1024m \ -+ $(JAVADOC_CMD_MEM) \ - -Djava.awt.headless=true \ - $(NEW_JAVADOC) \ - -bootclasspath $(JDK_OUTPUTDIR)/classes ---- ./make/Main.gmk Wed Jul 01 21:51:50 2015 -0700 -+++ ./make/Main.gmk Sat Sep 05 06:32:21 2015 -0700 -@@ -58,7 +58,11 @@ - - # Setup number of jobs to use. -jN is unfortunately not available for us to parse from the command line, - # hence this workaround. -+ifdef JOBS -+ifneq ($(JOBS),0) - MAKE_ARGS:=$(MAKE_ARGS) -j$(JOBS) -+endif -+endif - - ### Main targets - ---- ./make/common/MakeBase.gmk Wed Jul 01 21:51:50 2015 -0700 -+++ ./make/common/MakeBase.gmk Sat Sep 05 06:32:21 2015 -0700 -@@ -338,7 +338,7 @@ - # (and causing a crash on Cygwin). - # Default shell seems to always be /bin/sh. Must override with bash to get this to work on Solaris. - # Only use time if it's GNU time which supports format and output file. -- WRAPPER_SHELL:=/bin/bash $$(SRC_ROOT)/common/bin/shell-tracer.sh $$(if $$(findstring yes,$$(IS_GNU_TIME)),$$(TIME),-) $$(OUTPUT_ROOT)/build-trace-time.log /bin/bash -+ WRAPPER_SHELL:=bash $$(SRC_ROOT)/common/bin/shell-tracer.sh $$(if $$(findstring yes,$$(IS_GNU_TIME)),$$(TIME),-) $$(OUTPUT_ROOT)/build-trace-time.log bash - SHELL=$$(warning $$(if $$@,Building $$@,Running shell command) $$(if $$<, (from $$<))$$(if $$?, ($$(wordlist 1, 20, $$?) $$(if $$(wordlist 21, 22, $$?), ... [in total $$(words $$?) files]) newer)))$$(WRAPPER_SHELL) - endif - # Never remove warning messages; this is just for completeness -@@ -365,8 +365,8 @@ - - # This is to be called by all SetupFoo macros - define LogSetupMacroEntry -- $(if $(27),$(error Internal makefile error: Too many arguments to LogSetupMacroEntry, please update MakeBase.gmk)) -- $(if $(findstring $(LOG_LEVEL),debug trace), $(info $1 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26,$(if $($i),$(NEWLINE) $(strip [$i] $($i)))))) -+ $(if $(30),$(error Internal makefile error: Too many arguments to LogSetupMacroEntry, please update MakeBase.gmk)) -+ $(if $(findstring $(LOG_LEVEL),debug trace), $(info $1 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29,$(if $($i),$(NEWLINE) $(strip [$i] $($i)))))) - endef - - # Make directory without forking mkdir if not needed ---- ./make/common/NativeCompilation.gmk Wed Jul 01 21:51:50 2015 -0700 -+++ ./make/common/NativeCompilation.gmk Sat Sep 05 06:32:21 2015 -0700 -@@ -151,9 +151,9 @@ - # CC the compiler to use, default is $(CC) - # LDEXE the linker to use for linking executables, default is $(LDEXE) - # OPTIMIZATION sets optimization level to NONE, LOW, HIGH, HIGHEST -- $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26, $(if $($i),$1_$(strip $($i)))$(NEWLINE)) -- $(call LogSetupMacroEntry,SetupNativeCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26)) -- $(if $(27),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) -+ $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29, $(if $($i),$1_$(strip $($i)))$(NEWLINE)) -+ $(call LogSetupMacroEntry,SetupNativeCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26),$(27),$(28),$(29)) -+ $(if $(30),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) - - ifneq (,$$($1_BIN)) - $$(error BIN has been replaced with OBJECT_DIR) ---- ./corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java Wed Jul 01 21:51:57 2015 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java Wed Jul 08 12:11:34 2015 -0700 -@@ -2430,8 +2430,8 @@ - private void throwAwayData(ValueMember[] fields, - com.sun.org.omg.SendingContext.CodeBase sender) - throws InvalidClassException, StreamCorruptedException, -- ClassNotFoundException, IOException -- { -+ ClassNotFoundException, IOException { -+ - for (int i = 0; i < fields.length; ++i) { - - try { -@@ -2566,8 +2566,7 @@ - - } - -- private static void setObjectField(Object o, Class c, String fieldName, Object v) -- { -+ private static void setObjectField(Object o, Class c, String fieldName, Object v) { - try { - Field fld = c.getDeclaredField( fieldName ) ; - Class fieldCl = fld.getType(); -@@ -2577,9 +2576,15 @@ - long key = bridge.objectFieldOffset( fld ) ; - bridge.putObject( o, key, v ) ; - } catch (Exception e) { -- throw utilWrapper.errorSetObjectField( e, fieldName, -- o.toString(), -- v.toString() ) ; -+ if (o != null) { -+ throw utilWrapper.errorSetObjectField( e, fieldName, -+ o.toString(), -+ v.toString() ) ; -+ } else { -+ throw utilWrapper.errorSetObjectField( e, fieldName, -+ "null " + c.getName() + " object", -+ v.toString() ) ; -+ } - } - } - -@@ -2587,12 +2592,22 @@ - { - try { - Field fld = c.getDeclaredField( fieldName ) ; -- long key = bridge.objectFieldOffset( fld ) ; -- bridge.putBoolean( o, key, v ) ; -+ if ((fld != null) && (fld.getType() == Boolean.TYPE)) { -+ long key = bridge.objectFieldOffset( fld ) ; -+ bridge.putBoolean( o, key, v ) ; -+ } else { -+ throw new InvalidObjectException("Field Type mismatch"); -+ } - } catch (Exception e) { -+ if (o != null) { - throw utilWrapper.errorSetBooleanField( e, fieldName, - o.toString(), - new Boolean(v) ) ; -+ } else { -+ throw utilWrapper.errorSetBooleanField( e, fieldName, -+ "null " + c.getName() + " object", -+ new Boolean(v) ) ; -+ } - } - } - -@@ -2600,12 +2615,22 @@ - { - try { - Field fld = c.getDeclaredField( fieldName ) ; -- long key = bridge.objectFieldOffset( fld ) ; -- bridge.putByte( o, key, v ) ; -+ if ((fld != null) && (fld.getType() == Byte.TYPE)) { -+ long key = bridge.objectFieldOffset( fld ) ; -+ bridge.putByte( o, key, v ) ; -+ } else { -+ throw new InvalidObjectException("Field Type mismatch"); -+ } - } catch (Exception e) { -- throw utilWrapper.errorSetByteField( e, fieldName, -- o.toString(), -- new Byte(v) ) ; -+ if (o != null) { -+ throw utilWrapper.errorSetByteField( e, fieldName, -+ o.toString(), -+ new Byte(v) ) ; -+ } else { -+ throw utilWrapper.errorSetByteField( e, fieldName, -+ "null " + c.getName() + " object", -+ new Byte(v) ) ; -+ } - } - } - -@@ -2613,12 +2638,22 @@ - { - try { - Field fld = c.getDeclaredField( fieldName ) ; -- long key = bridge.objectFieldOffset( fld ) ; -- bridge.putChar( o, key, v ) ; -+ if ((fld != null) && (fld.getType() == Character.TYPE)) { -+ long key = bridge.objectFieldOffset( fld ) ; -+ bridge.putChar( o, key, v ) ; -+ } else { -+ throw new InvalidObjectException("Field Type mismatch"); -+ } - } catch (Exception e) { -- throw utilWrapper.errorSetCharField( e, fieldName, -- o.toString(), -- new Character(v) ) ; -+ if (o != null) { -+ throw utilWrapper.errorSetCharField( e, fieldName, -+ o.toString(), -+ new Character(v) ) ; -+ } else { -+ throw utilWrapper.errorSetCharField( e, fieldName, -+ "null " + c.getName() + " object", -+ new Character(v) ) ; -+ } - } - } - -@@ -2626,12 +2661,22 @@ - { - try { - Field fld = c.getDeclaredField( fieldName ) ; -- long key = bridge.objectFieldOffset( fld ) ; -- bridge.putShort( o, key, v ) ; -+ if ((fld != null) && (fld.getType() == Short.TYPE)) { -+ long key = bridge.objectFieldOffset( fld ) ; -+ bridge.putShort( o, key, v ) ; -+ } else { -+ throw new InvalidObjectException("Field Type mismatch"); -+ } - } catch (Exception e) { -+ if (o != null) { - throw utilWrapper.errorSetShortField( e, fieldName, - o.toString(), - new Short(v) ) ; -+ } else { -+ throw utilWrapper.errorSetShortField( e, fieldName, -+ "null " + c.getName() + " object", -+ new Short(v) ) ; -+ } - } - } - -@@ -2639,12 +2684,22 @@ - { - try { - Field fld = c.getDeclaredField( fieldName ) ; -- long key = bridge.objectFieldOffset( fld ) ; -- bridge.putInt( o, key, v ) ; -+ if ((fld != null) && (fld.getType() == Integer.TYPE)) { -+ long key = bridge.objectFieldOffset( fld ) ; -+ bridge.putInt( o, key, v ) ; -+ } else { -+ throw new InvalidObjectException("Field Type mismatch"); -+ } - } catch (Exception e) { -- throw utilWrapper.errorSetIntField( e, fieldName, -- o.toString(), -- new Integer(v) ) ; -+ if (o != null) { -+ throw utilWrapper.errorSetIntField( e, fieldName, -+ o.toString(), -+ new Integer(v) ) ; -+ } else { -+ throw utilWrapper.errorSetIntField( e, fieldName, -+ "null " + c.getName() + " object", -+ new Integer(v) ) ; -+ } - } - } - -@@ -2652,12 +2707,22 @@ - { - try { - Field fld = c.getDeclaredField( fieldName ) ; -- long key = bridge.objectFieldOffset( fld ) ; -- bridge.putLong( o, key, v ) ; -+ if ((fld != null) && (fld.getType() == Long.TYPE)) { -+ long key = bridge.objectFieldOffset( fld ) ; -+ bridge.putLong( o, key, v ) ; -+ } else { -+ throw new InvalidObjectException("Field Type mismatch"); -+ } - } catch (Exception e) { -- throw utilWrapper.errorSetLongField( e, fieldName, -- o.toString(), -- new Long(v) ) ; -+ if (o != null) { -+ throw utilWrapper.errorSetLongField( e, fieldName, -+ o.toString(), -+ new Long(v) ) ; -+ } else { -+ throw utilWrapper.errorSetLongField( e, fieldName, -+ "null " + c.getName() + " object", -+ new Long(v) ) ; -+ } - } - } - -@@ -2665,12 +2730,22 @@ - { - try { - Field fld = c.getDeclaredField( fieldName ) ; -- long key = bridge.objectFieldOffset( fld ) ; -- bridge.putFloat( o, key, v ) ; -+ if ((fld != null) && (fld.getType() == Float.TYPE)) { -+ long key = bridge.objectFieldOffset( fld ) ; -+ bridge.putFloat( o, key, v ) ; -+ } else { -+ throw new InvalidObjectException("Field Type mismatch"); -+ } - } catch (Exception e) { -- throw utilWrapper.errorSetFloatField( e, fieldName, -- o.toString(), -- new Float(v) ) ; -+ if (o != null) { -+ throw utilWrapper.errorSetFloatField( e, fieldName, -+ o.toString(), -+ new Float(v) ) ; -+ } else { -+ throw utilWrapper.errorSetFloatField( e, fieldName, -+ "null " + c.getName() + " object", -+ new Float(v) ) ; -+ } - } - } - -@@ -2678,12 +2753,22 @@ - { - try { - Field fld = c.getDeclaredField( fieldName ) ; -- long key = bridge.objectFieldOffset( fld ) ; -- bridge.putDouble( o, key, v ) ; -+ if ((fld != null) && (fld.getType() == Double.TYPE)) { -+ long key = bridge.objectFieldOffset( fld ) ; -+ bridge.putDouble( o, key, v ) ; -+ } else { -+ throw new InvalidObjectException("Field Type mismatch"); -+ } - } catch (Exception e) { -- throw utilWrapper.errorSetDoubleField( e, fieldName, -- o.toString(), -- new Double(v) ) ; -+ if (o != null) { -+ throw utilWrapper.errorSetDoubleField( e, fieldName, -+ o.toString(), -+ new Double(v) ) ; -+ } else { -+ throw utilWrapper.errorSetDoubleField( e, fieldName, -+ "null " + c.getName() + " object", -+ new Double(v) ) ; -+ } - } - } - ---- ./hotspot/make/bsd/makefiles/build_vm_def.sh Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/make/bsd/makefiles/build_vm_def.sh Sat Sep 05 06:33:34 2015 -0700 -@@ -1,12 +1,28 @@ - #!/bin/sh +--- ./corba/.hgtags 2015-12-12 10:53:30.949741000 -0800 ++++ ./corba/.hgtags 2015-10-24 06:20:56.000000000 -0700 +@@ -489,4 +489,3 @@ + 0db478b43d7fcf26dc613241654737756ec982c5 jdk8u66-b14 + b88ba0b818831eb6f3a7954e218b371ed6f5d154 jdk8u66-b15 + 606448f919ad288412669c3e78482b99d8f5f416 jdk8u66-b16 +-472aa5bae0e78614e873d56bcc31e7caba49963c jdk8u40-b24 +--- ./hotspot/.hgtags 2015-12-12 10:53:30.953266000 -0800 ++++ ./hotspot/.hgtags 2015-10-24 06:21:08.000000000 -0700 +@@ -755,4 +755,3 @@ + 9f7f29ff487ae023ca1f697445004a532751b0d2 jdk8u66-b14 + 5b67af3317bce1f940c5dc1535411a1002bed6c1 jdk8u66-b15 + 4bbf0e9196f2786e0bc4f17664e2533808d944bf jdk8u66-b16 +-fa4e797f61e6dda1a60e06944018213bff2a1b76 jdk8u40-b24 +--- ./hotspot/make/bsd/makefiles/build_vm_def.sh 2014-03-03 18:52:06.000000000 -0800 ++++ ./hotspot/make/bsd/makefiles/build_vm_def.sh 2015-10-24 06:21:09.000000000 -0700 +@@ -2,11 +2,27 @@ # If we're cross compiling use that path for nm --if [ "$CROSS_COMPILE_ARCH" != "" ]; then + if [ "$CROSS_COMPILE_ARCH" != "" ]; then -NM=$ALT_COMPILER_PATH/nm -+if [ "$CROSS_COMPILE_ARCH" != "" ]; then + NM=$ALT_COMPILER_PATH/nm else -NM=nm @@ -1318,8 +993,8 @@ + if ($3 ~ /^_ZN9Arguments17SharedArchivePathE$/) print "\t" $3 ";" + }' | sort -u ;; +esac ---- ./hotspot/make/bsd/makefiles/debug.make Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/make/bsd/makefiles/debug.make Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/make/bsd/makefiles/debug.make 2014-03-03 18:52:06.000000000 -0800 ++++ ./hotspot/make/bsd/makefiles/debug.make 2015-10-24 06:21:09.000000000 -0700 @@ -35,7 +35,10 @@ # to inhibit the effect of the previous line on CFLAGS. @@ -1332,8 +1007,8 @@ VERSION = debug SYSDEFS += -DASSERT ---- ./hotspot/make/bsd/makefiles/fastdebug.make Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/make/bsd/makefiles/fastdebug.make Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/make/bsd/makefiles/fastdebug.make 2014-03-03 18:52:06.000000000 -0800 ++++ ./hotspot/make/bsd/makefiles/fastdebug.make 2015-10-24 06:21:09.000000000 -0700 @@ -56,7 +56,10 @@ # to inhibit the effect of the previous line on CFLAGS. @@ -1346,8 +1021,8 @@ VERSION = fastdebug SYSDEFS += -DASSERT -DCHECK_UNHANDLED_OOPS ---- ./hotspot/make/bsd/makefiles/gcc.make Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/make/bsd/makefiles/gcc.make Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/make/bsd/makefiles/gcc.make 2015-12-12 10:53:29.301009000 -0800 ++++ ./hotspot/make/bsd/makefiles/gcc.make 2015-10-24 06:21:09.000000000 -0700 @@ -168,6 +168,9 @@ CFLAGS += -DDONT_USE_PRECOMPILED_HEADER endif @@ -1362,19 +1037,15 @@ endif ifeq ($(USE_CLANG), true) -- # Before Clang 3.1, we had to pass the stack alignment specification directly to llvm with the help of '-mllvm' -- # Starting with version 3.1, Clang understands the '-mstack-alignment' (and rejects '-mllvm -stack-alignment') -- ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 1 \) \))" "0" -- STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer -mstack-alignment=16 -- else -- STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer -mllvm -stack-alignment=16 + STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer + ifeq ($(OS_VENDOR), Darwin) -+ # Before Clang 3.1, we had to pass the stack alignment specification directly to llvm with the help of '-mllvm' -+ # Starting with version 3.1, Clang understands the '-mstack-alignment' (and rejects '-mllvm -stack-alignment') -+ ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 1 \) \))" "0" + # Before Clang 3.1, we had to pass the stack alignment specification directly to llvm with the help of '-mllvm' + # Starting with version 3.1, Clang understands the '-mstack-alignment' (and rejects '-mllvm -stack-alignment') + ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 1 \) \))" "0" +- STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer -mstack-alignment=16 + STACK_ALIGNMENT_OPT += -mstack-alignment=16 -+ else + else +- STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer -mllvm -stack-alignment=16 + STACK_ALIGNMENT_OPT += -mllvm -stack-alignment=16 + endif endif @@ -1398,14 +1069,13 @@ DEBUG_CFLAGS/ppc = -g DEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH)) ifeq ($(DEBUG_CFLAGS/$(BUILDARCH)),) -- DEBUG_CFLAGS += -gstabs + ifeq ($(USE_CLANG), true) + # Clang doesn't understand -gstabs + DEBUG_CFLAGS += -g + else -+ DEBUG_CFLAGS += -gstabs -+ endif + DEBUG_CFLAGS += -gstabs endif ++ endif ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) FASTDEBUG_CFLAGS/ia64 = -g @@ -1421,8 +1091,8 @@ OPT_CFLAGS/arm = -g OPT_CFLAGS/ppc = -g OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH)) ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./hotspot/make/bsd/makefiles/launcher.make Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/make/bsd/makefiles/launcher.make 1969-12-31 16:00:00.000000000 -0800 ++++ ./hotspot/make/bsd/makefiles/launcher.make 2015-10-24 06:21:09.000000000 -0700 @@ -0,0 +1,117 @@ +# +# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. @@ -1541,8 +1211,8 @@ + $(QUIETLY) sed -e 's/@@LIBARCH@@/$(LIBARCH)/g' $< > $@ + $(QUIETLY) chmod +x $@ + ---- ./hotspot/make/bsd/makefiles/mapfile-vers-debug Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/make/bsd/makefiles/mapfile-vers-debug 2015-12-12 10:53:26.626789000 -0800 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug 2015-10-24 06:21:09.000000000 -0700 @@ -21,246 +21,254 @@ # questions. # @@ -1557,10 +1227,7 @@ - _JNI_CreateJavaVM - _JNI_GetCreatedJavaVMs - _JNI_GetDefaultJavaVMInitArgs -+ JNI_CreateJavaVM; -+ JNI_GetCreatedJavaVMs; -+ JNI_GetDefaultJavaVMInitArgs; - +- - # _JVM - _JVM_Accept - _JVM_ActiveProcessorCount @@ -1778,6 +1445,15 @@ - _JVM_Write - _JVM_Yield - _JVM_handle_bsd_signal +- +- # debug _JVM +- _JVM_AccessVMBooleanFlag +- _JVM_AccessVMIntFlag +- _JVM_VMBreakPoint ++ JNI_CreateJavaVM; ++ JNI_GetCreatedJavaVMs; ++ JNI_GetDefaultJavaVMInitArgs; ++ + # JVM + JVM_Accept; + JVM_ActiveProcessorCount; @@ -1995,11 +1671,7 @@ + JVM_Write; + JVM_Yield; + JVM_handle_bsd_signal; - -- # debug _JVM -- _JVM_AccessVMBooleanFlag -- _JVM_AccessVMIntFlag -- _JVM_VMBreakPoint ++ + # debug JVM + JVM_AccessVMBooleanFlag; + JVM_AccessVMIntFlag; @@ -2029,8 +1701,8 @@ + local: + *; +}; ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug.macosx Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/make/bsd/makefiles/mapfile-vers-debug.macosx 1969-12-31 16:00:00.000000000 -0800 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug.macosx 2015-10-24 06:21:09.000000000 -0700 @@ -0,0 +1,266 @@ +# +# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved. @@ -2298,8 +1970,8 @@ + + # INSERT VTABLE SYMBOLS HERE + ---- ./hotspot/make/bsd/makefiles/mapfile-vers-product Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/make/bsd/makefiles/mapfile-vers-product Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/make/bsd/makefiles/mapfile-vers-product 2015-12-12 10:53:26.627041000 -0800 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-product 2015-10-24 06:21:09.000000000 -0700 @@ -21,241 +21,249 @@ # questions. # @@ -2314,10 +1986,7 @@ - _JNI_CreateJavaVM - _JNI_GetCreatedJavaVMs - _JNI_GetDefaultJavaVMInitArgs -+ JNI_CreateJavaVM; -+ JNI_GetCreatedJavaVMs; -+ JNI_GetDefaultJavaVMInitArgs; - +- - # _JVM - _JVM_Accept - _JVM_ActiveProcessorCount @@ -2535,6 +2204,10 @@ - _JVM_Write - _JVM_Yield - _JVM_handle_bsd_signal ++ JNI_CreateJavaVM; ++ JNI_GetCreatedJavaVMs; ++ JNI_GetDefaultJavaVMInitArgs; ++ + # JVM + JVM_Accept; + JVM_ActiveProcessorCount; @@ -2777,8 +2450,8 @@ + local: + *; +}; ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./hotspot/make/bsd/makefiles/mapfile-vers-product.macosx Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/make/bsd/makefiles/mapfile-vers-product.macosx 1969-12-31 16:00:00.000000000 -0800 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-product.macosx 2015-10-24 06:21:09.000000000 -0700 @@ -0,0 +1,261 @@ +# +# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved. @@ -3041,8 +2714,8 @@ + + # INSERT VTABLE SYMBOLS HERE + ---- ./hotspot/make/bsd/makefiles/optimized.make Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/make/bsd/makefiles/optimized.make Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/make/bsd/makefiles/optimized.make 2014-03-03 18:52:06.000000000 -0800 ++++ ./hotspot/make/bsd/makefiles/optimized.make 2015-10-24 06:21:09.000000000 -0700 @@ -38,6 +38,9 @@ # to inhibit the effect of the previous line on CFLAGS. @@ -3054,8 +2727,8 @@ +MAPFILE = $(GAMMADIR)/make/bsd/makefiles/mapfile-vers-debug$(MAPSUFX) VERSION = optimized ---- ./hotspot/make/bsd/makefiles/product.make Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/make/bsd/makefiles/product.make Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/make/bsd/makefiles/product.make 2014-03-03 18:52:06.000000000 -0800 ++++ ./hotspot/make/bsd/makefiles/product.make 2015-10-24 06:21:09.000000000 -0700 @@ -38,7 +38,10 @@ # to inhibit the effect of the previous line on CFLAGS. @@ -3068,8 +2741,8 @@ SYSDEFS += -DPRODUCT VERSION = optimized ---- ./hotspot/make/bsd/makefiles/rules.make Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/make/bsd/makefiles/rules.make Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/make/bsd/makefiles/rules.make 2014-03-03 18:52:06.000000000 -0800 ++++ ./hotspot/make/bsd/makefiles/rules.make 2015-10-24 06:21:09.000000000 -0700 @@ -34,7 +34,7 @@ CC_COMPILE = $(CC) $(CXXFLAGS) $(CFLAGS) CXX_COMPILE = $(CXX) $(CXXFLAGS) $(CFLAGS) @@ -3079,8 +2752,8 @@ COMPILE.CC = $(CC_COMPILE) -c GENASM.CC = $(CC_COMPILE) -S ---- ./hotspot/make/bsd/makefiles/vm.make Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/make/bsd/makefiles/vm.make Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/make/bsd/makefiles/vm.make 2015-12-12 10:53:26.627607000 -0800 ++++ ./hotspot/make/bsd/makefiles/vm.make 2015-10-24 06:21:09.000000000 -0700 @@ -107,7 +107,7 @@ # File specific flags CXXFLAGS += $(CXXFLAGS/BYFILE) @@ -3090,19 +2763,8 @@ CXXFLAGS += -DDEFAULT_LIBPATH="\"$(DEFAULT_LIBPATH)\"" endif ---- ./hotspot/make/hotspot_version Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/make/hotspot_version Sat Sep 05 06:33:34 2015 -0700 -@@ -35,7 +35,7 @@ - - HS_MAJOR_VER=25 - HS_MINOR_VER=60 --HS_BUILD_NUMBER=22 -+HS_BUILD_NUMBER=23 - - JDK_MAJOR_VER=1 - JDK_MINOR_VER=8 ---- ./hotspot/src/cpu/x86/vm/jni_x86.h Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/cpu/x86/vm/jni_x86.h Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/cpu/x86/vm/jni_x86.h 2014-03-03 18:52:11.000000000 -0800 ++++ ./hotspot/src/cpu/x86/vm/jni_x86.h 2015-10-24 06:21:09.000000000 -0700 @@ -34,7 +34,7 @@ #ifndef __has_attribute #define __has_attribute(x) 0 @@ -3112,8 +2774,8 @@ #define JNIEXPORT __attribute__((visibility("default"))) #define JNIIMPORT __attribute__((visibility("default"))) #else ---- ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp 2015-12-12 10:53:20.996606000 -0800 ++++ ./hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp 2015-10-24 06:21:09.000000000 -0700 @@ -2266,7 +2266,7 @@ if (!is_critical_native) { // reset handle block @@ -3123,8 +2785,8 @@ // Any exception pending? __ cmpptr(Address(thread, in_bytes(Thread::pending_exception_offset())), (int32_t)NULL_WORD); ---- ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp 2015-12-12 10:53:21.001927000 -0800 ++++ ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp 2015-10-24 06:21:09.000000000 -0700 @@ -1287,7 +1287,7 @@ // reset handle block @@ -3134,8 +2796,8 @@ // If result was an oop then unbox and save it in the frame { Label L; ---- ./hotspot/src/cpu/x86/vm/x86_32.ad Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/cpu/x86/vm/x86_32.ad Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/cpu/x86/vm/x86_32.ad 2015-12-12 10:53:29.328084000 -0800 ++++ ./hotspot/src/cpu/x86/vm/x86_32.ad 2015-10-24 06:21:09.000000000 -0700 @@ -1246,6 +1246,7 @@ @@ -3144,8 +2806,8 @@ } #ifndef PRODUCT ---- ./hotspot/src/os/aix/vm/os_aix.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/os/aix/vm/os_aix.cpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/os/aix/vm/os_aix.cpp 2015-12-12 10:53:29.334088000 -0800 ++++ ./hotspot/src/os/aix/vm/os_aix.cpp 2015-10-24 06:21:09.000000000 -0700 @@ -5236,6 +5236,10 @@ return 0; } @@ -3157,8 +2819,8 @@ return strlen(buffer); } ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./hotspot/src/os/bsd/vm/decoder_bsd.cpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/os/bsd/vm/decoder_bsd.cpp 1969-12-31 16:00:00.000000000 -0800 ++++ ./hotspot/src/os/bsd/vm/decoder_bsd.cpp 2015-10-24 06:21:09.000000000 -0700 @@ -0,0 +1,47 @@ +/* + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. @@ -3207,9 +2869,9 @@ + return false; +} +#endif ---- ./hotspot/src/os/bsd/vm/jsig.c Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/os/bsd/vm/jsig.c Sat Sep 05 06:33:34 2015 -0700 -@@ -140,9 +140,8 @@ +--- ./hotspot/src/os/bsd/vm/jsig.c 2015-12-12 10:53:30.954913000 -0800 ++++ ./hotspot/src/os/bsd/vm/jsig.c 2015-10-24 06:21:09.000000000 -0700 +@@ -165,9 +165,8 @@ } sa_handler_t sigset(int sig, sa_handler_t disp) { @@ -3221,8 +2883,8 @@ static int call_os_sigaction(int sig, const struct sigaction *act, struct sigaction *oact) { ---- ./hotspot/src/os/bsd/vm/jvm_bsd.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/os/bsd/vm/jvm_bsd.cpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/os/bsd/vm/jvm_bsd.cpp 2014-03-03 18:52:13.000000000 -0800 ++++ ./hotspot/src/os/bsd/vm/jvm_bsd.cpp 2015-10-24 06:21:09.000000000 -0700 @@ -50,6 +50,7 @@ case INTERRUPT_SIGNAL: case SIGFPE: @@ -3320,9 +2982,8 @@ - return true; - } - } -- return false; + if (signo <= 0 || signo >= NSIG) -+ return false; + return false; + char signame[8]; + const char *s = sys_signame[signo]; + uint i; @@ -3332,8 +2993,8 @@ + jio_snprintf(buf, len, "SIG%s", signame); + return true; } ---- ./hotspot/src/os/bsd/vm/jvm_bsd.h Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/os/bsd/vm/jvm_bsd.h Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/os/bsd/vm/jvm_bsd.h 2014-03-03 18:52:13.000000000 -0800 ++++ ./hotspot/src/os/bsd/vm/jvm_bsd.h 2015-10-24 06:21:09.000000000 -0700 @@ -112,20 +112,6 @@ #define SHUTDOWN2_SIGNAL SIGINT #define SHUTDOWN3_SIGNAL SIGTERM @@ -3355,8 +3016,8 @@ #endif /* JVM_MD_H */ #endif // OS_BSD_VM_JVM_BSD_H ---- ./hotspot/src/os/bsd/vm/osThread_bsd.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/os/bsd/vm/osThread_bsd.cpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/os/bsd/vm/osThread_bsd.cpp 2014-03-03 18:52:13.000000000 -0800 ++++ ./hotspot/src/os/bsd/vm/osThread_bsd.cpp 2015-10-24 06:21:09.000000000 -0700 @@ -30,7 +30,7 @@ void OSThread::pd_initialize() { @@ -3366,8 +3027,8 @@ _thread_id = 0; #else _thread_id = NULL; ---- ./hotspot/src/os/bsd/vm/os_bsd.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/os/bsd/vm/os_bsd.cpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/os/bsd/vm/os_bsd.cpp 2015-12-12 10:53:29.335390000 -0800 ++++ ./hotspot/src/os/bsd/vm/os_bsd.cpp 2015-10-24 06:21:09.000000000 -0700 @@ -97,16 +97,31 @@ # include <sys/shm.h> #ifndef __APPLE__ @@ -3730,11 +3391,6 @@ // Returns the length of the string -int os::get_core_path(char* buffer, size_t bufferSize) { - int n = jio_snprintf(buffer, bufferSize, "/cores"); -- -- // Truncate if theoretical string was longer than bufferSize -- n = MIN2(n, (int)bufferSize); -- -- return n; +int os::get_core_path(char *buffer, size_t bufferSize) { +#ifdef __APPLE__ + jio_snprintf(buffer, bufferSize, "/cores/core.%d", current_process_id()); @@ -3745,9 +3401,12 @@ + assert(p != NULL, "failed to get current directory"); + return 0; + } -+ + +- // Truncate if theoretical string was longer than bufferSize +- n = MIN2(n, (int)bufferSize); + const char *q = getprogname(); -+ + +- return n; + if (q == NULL) { + assert(q != NULL, "failed to get progname"); + return 0; @@ -3761,8 +3420,8 @@ } #ifndef PRODUCT ---- ./hotspot/src/os/bsd/vm/vmError_bsd.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/os/bsd/vm/vmError_bsd.cpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/os/bsd/vm/vmError_bsd.cpp 2014-03-03 18:52:13.000000000 -0800 ++++ ./hotspot/src/os/bsd/vm/vmError_bsd.cpp 2015-10-24 06:21:09.000000000 -0700 @@ -33,30 +33,50 @@ #include <sys/syscall.h> #include <unistd.h> @@ -3824,8 +3483,8 @@ os::fork_and_exec(buf); yes = false; } ---- ./hotspot/src/os/linux/vm/os_linux.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/os/linux/vm/os_linux.cpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/os/linux/vm/os_linux.cpp 2015-12-12 10:53:29.337171000 -0800 ++++ ./hotspot/src/os/linux/vm/os_linux.cpp 2015-10-24 06:21:09.000000000 -0700 @@ -6046,6 +6046,10 @@ return 0; } @@ -3837,8 +3496,8 @@ return strlen(buffer); } ---- ./hotspot/src/os/posix/vm/os_posix.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/os/posix/vm/os_posix.cpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/os/posix/vm/os_posix.cpp 2015-12-12 10:53:26.672577000 -0800 ++++ ./hotspot/src/os/posix/vm/os_posix.cpp 2015-10-24 06:21:09.000000000 -0700 @@ -53,12 +53,11 @@ n = get_core_path(buffer, bufferSize); @@ -3901,8 +3560,8 @@ // Linux specific #ifdef SI_TKILL { SI_TKILL, "SI_TKILL", "Signal sent by tkill (pthread_kill)" }, ---- ./hotspot/src/os/solaris/vm/os_solaris.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/os/solaris/vm/os_solaris.cpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/os/solaris/vm/os_solaris.cpp 2015-12-12 10:53:29.339165000 -0800 ++++ ./hotspot/src/os/solaris/vm/os_solaris.cpp 2015-10-24 06:21:09.000000000 -0700 @@ -6500,6 +6500,10 @@ return 0; } @@ -3914,165 +3573,8 @@ return strlen(buffer); } ---- ./hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp Sat Sep 05 06:33:34 2015 -0700 -@@ -189,7 +189,7 @@ - return CPUVisitor::visit(nodeh, state); - } - -- PICL(bool is_fujitsu) : _L1_data_cache_line_size(0), _L2_data_cache_line_size(0), _dl_handle(NULL) { -+ PICL(bool is_fujitsu, bool is_sun4v) : _L1_data_cache_line_size(0), _L2_data_cache_line_size(0), _dl_handle(NULL) { - if (!open_library()) { - return; - } -@@ -201,7 +201,7 @@ - if (is_fujitsu) { - cpu_class = "core"; - } -- CPUVisitor cpu_visitor(this, os::processor_count()); -+ CPUVisitor cpu_visitor(this, (is_sun4v && !is_fujitsu) ? 1 : os::processor_count()); - _picl_walk_tree_by_class(rooth, cpu_class, &cpu_visitor, PICL_visit_cpu_helper); - if (cpu_visitor.l1_visitor()->is_assigned()) { // Is there a value? - _L1_data_cache_line_size = cpu_visitor.l1_visitor()->value(); -@@ -494,7 +494,7 @@ - } - - // Figure out cache line sizes using PICL -- PICL picl((features & sparc64_family_m) != 0); -+ PICL picl((features & sparc64_family_m) != 0, (features & sun4v_m) != 0); - _L2_data_cache_line_size = picl.L2_data_cache_line_size(); - - return features; ---- ./hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Sat Sep 05 06:33:34 2015 -0700 -@@ -2189,7 +2189,15 @@ - if (log2_scale != 0) { - // temporary fix (platform dependent code without shift on Intel would be better) - // TODO: ARM also allows embedded shift in the address -- __ shift_left(index_op, log2_scale, index_op); -+ LIR_Opr tmp = new_pointer_register(); -+ if (TwoOperandLIRForm) { -+ __ move(index_op, tmp); -+ index_op = tmp; -+ } -+ __ shift_left(index_op, log2_scale, tmp); -+ if (!TwoOperandLIRForm) { -+ index_op = tmp; -+ } - } - - LIR_Address* addr = new LIR_Address(base_op, index_op, x->basic_type()); ---- ./hotspot/src/share/vm/classfile/systemDictionary.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/share/vm/classfile/systemDictionary.cpp Sat Sep 05 06:33:34 2015 -0700 -@@ -2349,9 +2349,6 @@ - assert(!THREAD->is_Compiler_thread(), ""); - Handle method_type = - SystemDictionary::find_method_handle_type(signature, accessing_klass, CHECK_(empty)); -- if (false) { // FIXME: Decide if the Java upcall should resolve signatures. -- method_type = java_lang_String::create_from_symbol(signature, CHECK_(empty)); -- } - - KlassHandle mh_klass = SystemDictionary::MethodHandle_klass(); - int ref_kind = JVM_REF_invokeVirtual; -@@ -2383,6 +2380,24 @@ - return unpack_method_and_appendix(mname, accessing_klass, appendix_box, appendix_result, THREAD); - } - -+// Decide if we can globally cache a lookup of this class, to be returned to any client that asks. -+// We must ensure that all class loaders everywhere will reach this class, for any client. -+// This is a safe bet for public classes in java.lang, such as Object and String. -+// We also include public classes in java.lang.invoke, because they appear frequently in system-level method types. -+// Out of an abundance of caution, we do not include any other classes, not even for packages like java.util. -+static bool is_always_visible_class(oop mirror) { -+ Klass* klass = java_lang_Class::as_Klass(mirror); -+ if (klass->oop_is_objArray()) { -+ klass = ObjArrayKlass::cast(klass)->bottom_klass(); // check element type -+ } -+ if (klass->oop_is_typeArray()) { -+ return true; // primitive array -+ } -+ assert(klass->oop_is_instance(), klass->external_name()); -+ return klass->is_public() && -+ (InstanceKlass::cast(klass)->is_same_class_package(SystemDictionary::Object_klass()) || // java.lang -+ InstanceKlass::cast(klass)->is_same_class_package(SystemDictionary::MethodHandle_klass())); // java.lang.invoke -+} - - // Ask Java code to find or construct a java.lang.invoke.MethodType for the given - // signature, as interpreted relative to the given class loader. -@@ -2405,32 +2420,33 @@ - } - - Handle class_loader, protection_domain; -- bool is_on_bcp = true; // keep this true as long as we can materialize from the boot classloader -+ if (accessing_klass.not_null()) { -+ class_loader = Handle(THREAD, InstanceKlass::cast(accessing_klass())->class_loader()); -+ protection_domain = Handle(THREAD, InstanceKlass::cast(accessing_klass())->protection_domain()); -+ } -+ bool can_be_cached = true; - int npts = ArgumentCount(signature).size(); - objArrayHandle pts = oopFactory::new_objArray(SystemDictionary::Class_klass(), npts, CHECK_(empty)); - int arg = 0; -- Handle rt; // the return type from the signature -+ Handle rt; // the return type from the signature - ResourceMark rm(THREAD); - for (SignatureStream ss(signature); !ss.is_done(); ss.next()) { - oop mirror = NULL; -- if (is_on_bcp) { -- // Note: class_loader & protection_domain are both null at this point. -- mirror = ss.as_java_mirror(class_loader, protection_domain, -+ if (can_be_cached) { -+ // Use neutral class loader to lookup candidate classes to be placed in the cache. -+ mirror = ss.as_java_mirror(Handle(), Handle(), - SignatureStream::ReturnNull, CHECK_(empty)); -- if (mirror == NULL) { -- // fall back from BCP to accessing_klass -- if (accessing_klass.not_null()) { -- class_loader = Handle(THREAD, InstanceKlass::cast(accessing_klass())->class_loader()); -- protection_domain = Handle(THREAD, InstanceKlass::cast(accessing_klass())->protection_domain()); -- } -- is_on_bcp = false; -+ if (mirror == NULL || (ss.is_object() && !is_always_visible_class(mirror))) { -+ // Fall back to accessing_klass context. -+ can_be_cached = false; - } - } -- if (!is_on_bcp) { -+ if (!can_be_cached) { - // Resolve, throwing a real error if it doesn't work. - mirror = ss.as_java_mirror(class_loader, protection_domain, - SignatureStream::NCDFError, CHECK_(empty)); - } -+ assert(!oopDesc::is_null(mirror), ss.as_symbol(THREAD)->as_C_string()); - if (ss.at_return_type()) - rt = Handle(THREAD, mirror); - else -@@ -2462,7 +2478,7 @@ - &args, CHECK_(empty)); - Handle method_type(THREAD, (oop) result.get_jobject()); - -- if (is_on_bcp) { -+ if (can_be_cached) { - // We can cache this MethodType inside the JVM. - MutexLocker ml(SystemDictionary_lock, THREAD); - spe = invoke_method_table()->find_entry(index, hash, signature, null_iid); ---- ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Sat Sep 05 06:33:34 2015 -0700 -@@ -3339,9 +3339,11 @@ - // Not unloading classes this cycle - assert(!should_unload_classes(), "Inconsitency!"); - -+ // If we are not unloading classes then add SO_AllCodeCache to root -+ // scanning options. -+ add_root_scanning_option(rso); -+ - if ((!verifying() || unloaded_classes_last_cycle()) && should_verify) { -- // Include symbols, strings and code cache elements to prevent their resurrection. -- add_root_scanning_option(rso); - set_verifying(true); - } else if (verifying() && !should_verify) { - // We were verifying, but some verification flags got disabled. ---- ./hotspot/src/share/vm/opto/node.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/share/vm/opto/node.cpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/share/vm/opto/node.cpp 2015-12-12 10:53:26.875374000 -0800 ++++ ./hotspot/src/share/vm/opto/node.cpp 2015-10-24 06:21:09.000000000 -0700 @@ -286,6 +286,10 @@ #ifdef _MSC_VER // the IDX_INIT hack falls foul of warning C4355 #pragma warning( disable:4355 ) // 'this' : used in base member initializer list @@ -4095,8 +3597,8 @@ //------------------------------clone------------------------------------------ // Clone a Node. ---- ./hotspot/src/share/vm/runtime/os.cpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/share/vm/runtime/os.cpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/share/vm/runtime/os.cpp 2015-12-12 10:53:29.475009000 -0800 ++++ ./hotspot/src/share/vm/runtime/os.cpp 2015-10-24 06:21:09.000000000 -0700 @@ -420,15 +420,6 @@ if (_native_java_library == NULL) { vm_exit_during_initialization("Unable to load native library", ebuf); @@ -4113,8 +3615,8 @@ } static jboolean onLoaded = JNI_FALSE; if (onLoaded) { ---- ./hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp 2015-12-12 10:53:29.488346000 -0800 ++++ ./hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp 2015-10-24 06:21:09.000000000 -0700 @@ -242,7 +242,7 @@ #endif @@ -4124,8 +3626,29 @@ #define CAN_USE_NAN_DEFINE 1 #endif ---- ./jdk/make/CompileDemos.gmk Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/CompileDemos.gmk Sat Sep 05 06:34:07 2015 -0700 +--- ./jaxp/.hgtags 2015-12-12 10:53:30.973405000 -0800 ++++ ./jaxp/.hgtags 2015-10-24 06:20:58.000000000 -0700 +@@ -491,4 +491,3 @@ + 94b6e3ddc19334578abefbc44a7ec6f9e20a6e24 jdk8u66-b14 + 25cf8ddfc8bf163211d1dfd79f31765cac58eef5 jdk8u66-b15 + 40ce5a6d733d44d93cbd5c0105a820ad7a7f4754 jdk8u66-b16 +-048cebd17f73f23ce2295e360f31c1b6788195aa jdk8u40-b24 +--- ./jaxws/.hgtags 2015-12-12 10:53:31.062074000 -0800 ++++ ./jaxws/.hgtags 2015-10-24 06:21:00.000000000 -0700 +@@ -485,4 +485,3 @@ + 972d89655bab60525ddbc9365354fc809d0b74ea jdk8u66-b14 + 19e64af41036d4ba0109ac2838133de5e7d159cc jdk8u66-b15 + 529e4f09082daa07610ddde7dd2bca35b979eb14 jdk8u66-b16 +-5fbbfd66643edb81cfa0688825d698dcc5f2eb11 jdk8u40-b24 +--- ./jdk/.hgtags 2015-12-12 10:53:31.062671000 -0800 ++++ ./jdk/.hgtags 2015-10-24 06:21:16.000000000 -0700 +@@ -488,4 +488,3 @@ + 371fc17e38ccf9a729e34c518f6942162ba6c225 jdk8u66-b14 + ea602badedd0cd0c352c072220a884e8f1335e33 jdk8u66-b15 + 5ceafca6a734e13d51319df6afd40678d68f9851 jdk8u66-b16 +-9d903721276c8684706db7ecfb6cda568e9f4f69 jdk8u40-b24 +--- ./jdk/make/CompileDemos.gmk 2015-12-12 10:53:27.302357000 -0800 ++++ ./jdk/make/CompileDemos.gmk 2015-10-24 06:21:20.000000000 -0700 @@ -323,7 +323,7 @@ $(eval $(call SetupJVMTIDemo,hprof, java_crw_demo, \ -I$(JDK_TOPDIR)/src/share/npt -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \ @@ -4135,8 +3658,8 @@ $(eval $(call SetupJVMTIDemo,minst, agent_util java_crw_demo)) $(eval $(call SetupJVMTIDemo,mtrace, agent_util java_crw_demo)) ---- ./jdk/make/CompileJavaClasses.gmk Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/CompileJavaClasses.gmk Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/CompileJavaClasses.gmk 2015-12-12 10:53:31.063015000 -0800 ++++ ./jdk/make/CompileJavaClasses.gmk 2015-10-24 06:21:21.000000000 -0700 @@ -128,23 +128,32 @@ sun/nio/fs/LinuxFileStore.java \ sun/nio/fs/LinuxFileSystem.java \ @@ -4186,7 +3709,7 @@ # EXFILES += sun/nio/fs/PollingWatchService.java endif -@@ -273,21 +282,26 @@ +@@ -268,21 +277,26 @@ $(wildcard $(JDK_TOPDIR)/src/closed/$(OPENJDK_TARGET_OS_API_DIR)/classes) endif @@ -4220,7 +3743,7 @@ endif # The security classes should not end up in the classes directory as that will prevent them -@@ -337,6 +351,7 @@ +@@ -332,6 +346,7 @@ SRC:=$(JDK_TOPDIR)/src/share/classes \ $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes \ $(MACOSX_SRC_DIRS) \ @@ -4228,7 +3751,7 @@ $(AIX_SRC_DIRS) \ $(JDK_OUTPUTDIR)/gensrc \ $(JDK_OUTPUTDIR)/gensrc_no_srczip \ -@@ -356,7 +371,7 @@ +@@ -351,7 +366,7 @@ SETUP := GENERATE_JDKBYTECODE, \ SRC := $(JDK_TOPDIR)/src/share/classes \ $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes \ @@ -4237,8 +3760,8 @@ $(CLOSED_SRC_DIRS), \ INCLUDES := $(SECURITY_PKGS), \ EXCLUDES := $(EXCLUDES), \ ---- ./jdk/make/CompileLaunchers.gmk Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/CompileLaunchers.gmk Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/CompileLaunchers.gmk 2015-12-12 10:53:29.543422000 -0800 ++++ ./jdk/make/CompileLaunchers.gmk 2015-10-24 06:21:20.000000000 -0700 @@ -49,7 +49,7 @@ ORIGIN_ROOT := /.. endif @@ -4343,8 +3866,8 @@ BUILD_JSPAWNHELPER := 1 endif ---- ./jdk/make/CopyFiles.gmk Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/CopyFiles.gmk Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/CopyFiles.gmk 2015-12-12 10:53:29.543804000 -0800 ++++ ./jdk/make/CopyFiles.gmk 2015-10-24 06:21:20.000000000 -0700 @@ -29,6 +29,8 @@ ifeq ($(OPENJDK_TARGET_OS), windows) @@ -4387,8 +3910,8 @@ endif endif endif ---- ./jdk/make/Images.gmk Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/Images.gmk Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/Images.gmk 2015-12-12 10:53:29.544643000 -0800 ++++ ./jdk/make/Images.gmk 2015-10-24 06:21:20.000000000 -0700 @@ -236,11 +236,11 @@ endif @@ -4426,7 +3949,7 @@ $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja - endif - +- - ifeq ($(OPENJDK_TARGET_OS), macosx) - $(JRE_IMAGE_DIR)/man/ja: - $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) @@ -4436,7 +3959,7 @@ - $(ECHO) $(LOG_INFO) Creating $(patsubst $(OUTPUT_ROOT)/%,%,$@) - $(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja - endif -- + - ifeq ($(OPENJDK_TARGET_OS), linux) JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \ $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \ @@ -4458,8 +3981,8 @@ endif # Windows ################################################################################ ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/make/data/classlist/classlist.bsd Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/data/classlist/classlist.bsd 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/make/data/classlist/classlist.bsd 2015-10-24 06:21:20.000000000 -0700 @@ -0,0 +1,2803 @@ +com/sun/java/swing/SwingUtilities3 +com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI @@ -7264,8 +6787,8 @@ +sun/util/resources/en/TimeZoneNames_en +sun/util/spi/CalendarProvider +# ca392e7ee7285d72 ---- ./jdk/make/gendata/GendataFontConfig.gmk Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/gendata/GendataFontConfig.gmk Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/gendata/GendataFontConfig.gmk 2015-12-12 10:53:21.841274000 -0800 ++++ ./jdk/make/gendata/GendataFontConfig.gmk 2015-10-24 06:21:20.000000000 -0700 @@ -73,6 +73,13 @@ GENDATA_FONT_CONFIG_SRC_PREFIX := aix. endif @@ -7280,8 +6803,8 @@ ### $(GENDATA_FONT_CONFIG_DST)/%.src: \ ---- ./jdk/make/lib/Awt2dLibraries.gmk Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/lib/Awt2dLibraries.gmk Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/lib/Awt2dLibraries.gmk 2015-12-12 10:53:31.075363000 -0800 ++++ ./jdk/make/lib/Awt2dLibraries.gmk 2015-10-24 06:32:30.000000000 -0700 @@ -309,7 +309,7 @@ debug_trace.c \ debug_util.c @@ -7336,7 +6859,7 @@ LDFLAGS_SUFFIX := $(LIBAWT_XAWT_LDFLAGS_SUFFIX), \ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ RC_FLAGS := $(RC_FLAGS) \ -@@ -688,6 +705,7 @@ +@@ -689,6 +706,7 @@ LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \ LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \ LDFLAGS_SUFFIX_aix := -lm -lawt -ljava -ljvm,\ @@ -7344,7 +6867,15 @@ VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ RC_FLAGS := $(RC_FLAGS) \ -D "JDK_FNAME=lcms.dll" \ -@@ -827,6 +845,7 @@ +@@ -847,6 +865,7 @@ + LDFLAGS_SUFFIX_linux := -ljvm -lawt -lm $(LIBDL) -ljava, \ + LDFLAGS_SUFFIX_aix := -ljvm -lawt -ljava,\ + LDFLAGS_SUFFIX_solaris := $(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc, \ ++ LDFLAGS_SUFFIX_bsd := -ljvm -lawt -lm -ljava, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_headless, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +@@ -924,6 +943,7 @@ LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \ LDFLAGS_SUFFIX_solaris := -lawt -lawt_headless -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \ LDFLAGS_SUFFIX_aix := -lawt -lawt_headless $(LIBM) $(LIBCXX) -ljava -ljvm,\ @@ -7352,7 +6883,7 @@ LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \ -ljava -ljvm, \ LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \ -@@ -970,6 +989,7 @@ +@@ -1067,6 +1087,7 @@ OPTIMIZATION := LOW, \ CFLAGS := $(CFLAGS_JDKLIB), \ CFLAGS_linux := $(HEADLESS_CFLAG), \ @@ -7360,7 +6891,7 @@ CFLAGS_macosx := -I$(JDK_TOPDIR)/src/solaris/native/sun/awt, \ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjawt/mapfile-vers, \ LDFLAGS := $(LDFLAGS_JDKLIB) \ -@@ -978,6 +998,7 @@ +@@ -1075,6 +1096,7 @@ LDFLAGS_SUFFIX_linux := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \ LDFLAGS_SUFFIX_aix := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX),\ LDFLAGS_SUFFIX_solaris := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender, \ @@ -7368,15 +6899,7 @@ LDFLAGS_SUFFIX_macosx := -Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \ -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX), \ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \ -@@ -1173,6 +1194,7 @@ - LDFLAGS_SUFFIX_linux := -ljvm -lawt -lm $(LIBDL) -ljava, \ - LDFLAGS_SUFFIX_aix := -ljvm -lawt -ljava,\ - LDFLAGS_SUFFIX_solaris := $(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc, \ -+ LDFLAGS_SUFFIX_bsd := -ljvm -lawt -lm -ljava, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_headless, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -@@ -1192,7 +1214,7 @@ +@@ -1193,7 +1215,7 @@ $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen ifeq ($(USE_EXTERNAL_LIBGIF), true) @@ -7385,7 +6908,7 @@ else LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/giflib GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib -@@ -1225,6 +1247,11 @@ +@@ -1226,6 +1248,11 @@ LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32 else ifeq ($(OPENJDK_TARGET_OS), solaris) LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions @@ -7397,7 +6920,7 @@ else LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS) endif -@@ -1247,6 +1274,8 @@ +@@ -1248,6 +1275,8 @@ else ifeq ($(OPENJDK_TARGET_OS), solaris) # Solaris still uses OPENWIN_LIB .. LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11 -lXext $(LIBM) -lpthread @@ -7406,8 +6929,8 @@ else # .. all other Unixes can use X_LIBS LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(X_LIBS) -lX11 -lXext $(LIBM) -lpthread endif ---- ./jdk/make/lib/CoreLibraries.gmk Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/lib/CoreLibraries.gmk Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/lib/CoreLibraries.gmk 2015-12-12 10:53:29.552844000 -0800 ++++ ./jdk/make/lib/CoreLibraries.gmk 2015-10-24 06:21:20.000000000 -0700 @@ -82,7 +82,7 @@ endif @@ -7494,8 +7017,8 @@ LDFLAGS_macosx := -liconv, \ LDFLAGS_SUFFIX_windows := -export:nptInitialize -export:nptTerminate, \ LDFLAGS_SUFFIX_solaris := -lc, \ ---- ./jdk/make/lib/NetworkingLibraries.gmk Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/lib/NetworkingLibraries.gmk Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/lib/NetworkingLibraries.gmk 2015-12-12 10:53:21.842716000 -0800 ++++ ./jdk/make/lib/NetworkingLibraries.gmk 2015-10-24 06:21:20.000000000 -0700 @@ -42,7 +42,7 @@ LIBNET_EXCLUDE_FILES += linux_close.c endif @@ -7524,8 +7047,8 @@ LDFLAGS_SUFFIX_windows := ws2_32.lib jvm.lib secur32.lib iphlpapi.lib \ delayimp.lib $(WIN_JAVA_LIB) advapi32.lib \ -DELAYLOAD:secur32.dll -DELAYLOAD:iphlpapi.dll, \ ---- ./jdk/make/lib/NioLibraries.gmk Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/lib/NioLibraries.gmk Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/lib/NioLibraries.gmk 2015-12-12 10:53:21.842959000 -0800 ++++ ./jdk/make/lib/NioLibraries.gmk 2015-10-24 06:21:20.000000000 -0700 @@ -77,9 +77,28 @@ UnixNativeDispatcher.c endif @@ -7586,8 +7109,8 @@ endif + endif endif ---- ./jdk/make/lib/ServiceabilityLibraries.gmk Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/lib/ServiceabilityLibraries.gmk Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/lib/ServiceabilityLibraries.gmk 2015-12-12 10:53:27.306448000 -0800 ++++ ./jdk/make/lib/ServiceabilityLibraries.gmk 2015-10-24 06:21:20.000000000 -0700 @@ -34,7 +34,7 @@ ifneq ($(OPENJDK_TARGET_OS), linux) LIBATTACH_EXCLUDE_FILES += LinuxVirtualMachine.c @@ -7677,8 +7200,8 @@ ifeq ($(ENABLE_DEBUG_SYMBOLS), true) LIBHPROF_OPTIMIZATION := LOW endif ---- ./jdk/make/lib/SoundLibraries.gmk Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/lib/SoundLibraries.gmk Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/lib/SoundLibraries.gmk 2015-12-12 10:53:21.843826000 -0800 ++++ ./jdk/make/lib/SoundLibraries.gmk 2015-10-24 06:21:20.000000000 -0700 @@ -75,6 +75,13 @@ LIBJSOUND_CFLAGS += -DX_PLATFORM=X_AIX endif # OPENJDK_TARGET_OS aix @@ -7710,8 +7233,8 @@ LDFLAGS_SUFFIX := $(ALSA_LIBS) -ljava -ljvm, \ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsoundalsa, \ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) ---- ./jdk/make/mapfiles/launchers/mapfile-x86 Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/mapfiles/launchers/mapfile-x86 Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/mapfiles/launchers/mapfile-x86 2014-03-03 18:57:12.000000000 -0800 ++++ ./jdk/make/mapfiles/launchers/mapfile-x86 2015-10-24 06:21:20.000000000 -0700 @@ -33,6 +33,7 @@ environ; # Public symbols and required by Java run time _environ; @@ -7720,8 +7243,8 @@ ___Argv; # The following are private, but as they are _start; # exported from ctr1/crtn, the clever hacker _init; # might know about them. However note, that ---- ./jdk/make/mapfiles/launchers/mapfile-x86_64 Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/mapfiles/launchers/mapfile-x86_64 Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/mapfiles/launchers/mapfile-x86_64 2014-03-03 18:57:12.000000000 -0800 ++++ ./jdk/make/mapfiles/launchers/mapfile-x86_64 2015-10-24 06:21:20.000000000 -0700 @@ -33,6 +33,7 @@ environ; # Public symbols and required by Java run time _environ; @@ -7730,8 +7253,8 @@ local: *; ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/make/mapfiles/libattach/mapfile-bsd Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/mapfiles/libattach/mapfile-bsd 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/make/mapfiles/libattach/mapfile-bsd 2015-10-24 06:21:20.000000000 -0700 @@ -0,0 +1,42 @@ +# +# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. @@ -7775,8 +7298,8 @@ + local: + *; +}; ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/make/mapfiles/libnio/mapfile-bsd Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/mapfiles/libnio/mapfile-bsd 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/make/mapfiles/libnio/mapfile-bsd 2015-10-24 06:21:20.000000000 -0700 @@ -0,0 +1,195 @@ +# +# Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved. @@ -7973,8 +7496,8 @@ + local: + *; +}; ---- ./jdk/make/mapfiles/libunpack/mapfile-vers-unpack200 Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/mapfiles/libunpack/mapfile-vers-unpack200 Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/mapfiles/libunpack/mapfile-vers-unpack200 2014-03-03 18:57:12.000000000 -0800 ++++ ./jdk/make/mapfiles/libunpack/mapfile-vers-unpack200 2015-10-24 06:21:20.000000000 -0700 @@ -26,6 +26,9 @@ # Define library interface. @@ -7985,8 +7508,8 @@ local: *; }; ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/make/netbeans/common/bsd-sources.ent Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/netbeans/common/bsd-sources.ent 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/make/netbeans/common/bsd-sources.ent 2015-10-24 06:21:20.000000000 -0700 @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> + @@ -8033,8 +7556,8 @@ + <label>Sources for BSD Platform</label> + <location>${root}/src/bsd/classes</location> +</source-folder> ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/make/netbeans/common/bsd-view.ent Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/netbeans/common/bsd-view.ent 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/make/netbeans/common/bsd-view.ent 2015-10-24 06:21:20.000000000 -0700 @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> + @@ -8075,8 +7598,8 @@ + <includes>${includes}</includes> + <excludes>${excludes}</excludes> +</source-folder> ---- ./jdk/make/netbeans/common/java-data-native.ent Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/netbeans/common/java-data-native.ent Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/netbeans/common/java-data-native.ent 2014-03-03 18:57:13.000000000 -0800 ++++ ./jdk/make/netbeans/common/java-data-native.ent 2015-10-24 06:21:20.000000000 -0700 @@ -34,6 +34,7 @@ <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/4"> <compilation-unit> @@ -8085,22 +7608,18 @@ <package-root>${root}/src/macosx/classes</package-root> <package-root>${root}/src/solaris/classes</package-root> <package-root>${root}/src/windows/classes</package-root> ---- ./jdk/make/netbeans/common/make.xml Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/netbeans/common/make.xml Sat Sep 05 06:34:07 2015 -0700 -@@ -32,16 +32,21 @@ - --> +--- ./jdk/make/netbeans/common/make.xml 2014-03-03 18:57:13.000000000 -0800 ++++ ./jdk/make/netbeans/common/make.xml 2015-10-24 06:21:20.000000000 -0700 +@@ -33,7 +33,7 @@ <project name="make" basedir=".."> -- + - <target name="-make.init" depends="-init,-pre-init.linux,-pre-init.macosx,-pre-init.solaris,-pre-init.windows,-pre-init.macosx"> -+ + <target name="-make.init" depends="-init,-pre-init.linux,-pre-init.bsd,-pre-init.macosx,-pre-init.solaris,-pre-init.windows"> <property name="make.options" value=""/> <!-- default, can be overridden per user or per project --> </target> -- -+ - <target name="-pre-init.linux" if="os.linux"> - <property name="platform" value="linux"/> + +@@ -42,6 +42,11 @@ <property name="make" value="make"/> </target> @@ -8112,17 +7631,8 @@ <target name="-pre-init.macosx" if="os.macosx"> <property name="platform" value="macosx"/> <property name="make" value="make"/> -@@ -56,7 +61,7 @@ - <property name="platform" value="windows"/> - <property name="make" value="c:/cygwin/bin/make"/> - </target> -- -+ - <macrodef name="make-run"> - <attribute name="target"/> - <attribute name="dir"/> ---- ./jdk/make/netbeans/j2se/nbproject/project.xml Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/netbeans/j2se/nbproject/project.xml Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/netbeans/j2se/nbproject/project.xml 2014-03-03 18:57:13.000000000 -0800 ++++ ./jdk/make/netbeans/j2se/nbproject/project.xml 2015-10-24 06:21:20.000000000 -0700 @@ -34,6 +34,7 @@ <!DOCTYPE project [ <!ENTITY properties SYSTEM "../../common/properties.ent"> @@ -8155,8 +7665,8 @@ &macosx-view; &unix-view; &windows-view; ---- ./jdk/make/netbeans/world/nbproject/project.xml Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/netbeans/world/nbproject/project.xml Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/make/netbeans/world/nbproject/project.xml 2014-03-03 18:57:13.000000000 -0800 ++++ ./jdk/make/netbeans/world/nbproject/project.xml 2015-10-24 06:21:20.000000000 -0700 @@ -34,12 +34,14 @@ <!DOCTYPE project [ <!ENTITY properties SYSTEM "../../common/properties.ent"> @@ -8188,26 +7698,8 @@ &macosx-view; &unix-view; &windows-view; ---- ./jdk/make/profile-rtjar-includes.txt Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/make/profile-rtjar-includes.txt Sat Sep 05 06:34:07 2015 -0700 -@@ -1,5 +1,5 @@ - # --# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. -+# Copyright (c) 2012, 2015, 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 -@@ -207,6 +207,8 @@ - javax/xml/bind \ - javax/xml/soap \ - javax/xml/ws \ -+ jdk/internal/instrumentation \ -+ jdk/management/resource \ - org/omg \ - sun/applet \ - sun/audio \ ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/src/bsd/classes/java/net/DefaultInterface.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/bsd/classes/java/net/DefaultInterface.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/src/bsd/classes/java/net/DefaultInterface.java 2015-10-24 06:21:20.000000000 -0700 @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. @@ -8306,8 +7798,8 @@ + return (ppp != null) ? ppp : loopback; + } +} ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/src/bsd/classes/sun/nio/ch/DefaultSelectorProvider.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/bsd/classes/sun/nio/ch/DefaultSelectorProvider.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/src/bsd/classes/sun/nio/ch/DefaultSelectorProvider.java 2015-10-24 06:21:20.000000000 -0700 @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. @@ -8357,8 +7849,8 @@ + } + +} ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/src/bsd/classes/sun/nio/ch/KQueueArrayWrapper.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/bsd/classes/sun/nio/ch/KQueueArrayWrapper.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/src/bsd/classes/sun/nio/ch/KQueueArrayWrapper.java 2015-10-24 06:21:20.000000000 -0700 @@ -0,0 +1,213 @@ +/* + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. @@ -8573,8 +8065,8 @@ + long timeout); + private static native void interrupt(int fd); +} ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/src/bsd/classes/sun/nio/ch/KQueueSelectorImpl.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/bsd/classes/sun/nio/ch/KQueueSelectorImpl.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/src/bsd/classes/sun/nio/ch/KQueueSelectorImpl.java 2015-10-24 06:21:20.000000000 -0700 @@ -0,0 +1,249 @@ +/* + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. @@ -8825,8 +8317,8 @@ + return this; + } +} ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/src/bsd/classes/sun/nio/ch/KQueueSelectorProvider.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/bsd/classes/sun/nio/ch/KQueueSelectorProvider.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/src/bsd/classes/sun/nio/ch/KQueueSelectorProvider.java 2015-10-24 06:21:20.000000000 -0700 @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. @@ -8872,8 +8364,8 @@ + return new KQueueSelectorImpl(this); + } +} ---- ./jdk/src/bsd/doc/man/javah.1 Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/bsd/doc/man/javah.1 Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/bsd/doc/man/javah.1 2015-12-12 10:53:29.565324000 -0800 ++++ ./jdk/src/bsd/doc/man/javah.1 2015-10-24 06:34:48.000000000 -0700 @@ -109,7 +109,7 @@ \&.:\fIyour-path\fR @@ -8883,8 +8375,8 @@ \fIWindows\fR: ---- ./jdk/src/bsd/doc/man/rmic.1 Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/bsd/doc/man/rmic.1 Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/bsd/doc/man/rmic.1 2015-12-12 10:53:29.574296000 -0800 ++++ ./jdk/src/bsd/doc/man/rmic.1 2015-10-24 06:35:21.000000000 -0700 @@ -92,7 +92,7 @@ .TP -classpath path @@ -8903,8 +8395,8 @@ .SH SEE\ ALSO .TP 0.2i \(bu ---- ./jdk/src/bsd/doc/man/rmid.1 Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/bsd/doc/man/rmid.1 Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/bsd/doc/man/rmid.1 2015-12-12 10:53:29.574807000 -0800 ++++ ./jdk/src/bsd/doc/man/rmid.1 2015-10-24 06:35:59.000000000 -0700 @@ -300,7 +300,7 @@ .SH ENVIRONMENT\ VARIABLES .TP @@ -8914,8 +8406,8 @@ .SH SEE\ ALSO .TP 0.2i \(bu ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/src/bsd/native/sun/nio/ch/KQueueArrayWrapper.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/bsd/native/sun/nio/ch/KQueueArrayWrapper.c 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/src/bsd/native/sun/nio/ch/KQueueArrayWrapper.c 2015-10-24 06:21:20.000000000 -0700 @@ -0,0 +1,171 @@ +/* + * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. @@ -9088,8 +8580,18 @@ + } +} + ---- ./jdk/src/macosx/bin/java_md_macosx.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/macosx/bin/java_md_macosx.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/linux/doc/man/java.1 2015-12-12 10:53:29.596528000 -0800 ++++ ./jdk/src/linux/doc/man/java.1 2015-10-24 06:21:19.000000000 -0700 +@@ -1,5 +1,6 @@ + '\" t +-.\" Copyright (c) 1994, 2015, Oracle and/or its affiliates. All rights reserved. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++.\" Copyright (c) 1994, 2015, 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 +--- ./jdk/src/macosx/bin/java_md_macosx.c 2015-12-12 10:53:29.615465000 -0800 ++++ ./jdk/src/macosx/bin/java_md_macosx.c 2015-07-18 13:32:30.000000000 -0700 @@ -616,7 +616,11 @@ if (access(libjava, F_OK) == 0) { return JNI_TRUE; @@ -9103,8 +8605,58 @@ /* Does the app ship a private JRE in <apphome>/jre directory? */ JLI_Snprintf(libjava, sizeof(libjava), "%s/jre/lib/" JAVA_DLL, path); if (access(libjava, F_OK) == 0) { ---- ./jdk/src/macosx/classes/java/net/DefaultInterface.java Wed Jul 01 21:53:30 2015 -0700 -+++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +--- ./jdk/src/macosx/classes/com/apple/laf/resources/aqua_de.properties 2014-03-03 18:57:20.000000000 -0800 ++++ ./jdk/src/macosx/classes/com/apple/laf/resources/aqua_de.properties 2015-10-24 06:21:16.000000000 -0700 +@@ -1,5 +1,5 @@ + # +-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 2011, 2015, 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 +@@ -124,9 +124,9 @@ + + # The following string will be formatted by a MessageFormat + # and {0} will be replaced by page number being printed +-PrintingDialog.contentProgress.textAndMnemonic=Seite {0} wurde gedruckt ... ++PrintingDialog.contentProgress.textAndMnemonic=Seite {0} wurde gedruckt... + +-PrintingDialog.contentAborting.textAndMnemonic=Druckvorgang wird abgebrochen ... ++PrintingDialog.contentAborting.textAndMnemonic=Druckvorgang wird abgebrochen... + + PrintingDialog.abortButton.textAndMnemonic=&Abbruch + PrintingDialog.abortButtonToolTip.textAndMnemonic=Druckvorgang abbrechen +@@ -149,7 +149,7 @@ + # Used for html forms + FormView.submitButton.textAndMnemonic=Abfrage weiterleiten + FormView.resetButton.textAndMnemonic=Zur\u00FCcksetzen +-FormView.browseFileButton.textAndMnemonic=Durchsuchen ... ++FormView.browseFileButton.textAndMnemonic=Durchsuchen... + + ############ Abstract Document Strings ############ + AbstractDocument.styleChange.textAndMnemonic=Formatvorlagen\u00E4nderung +@@ -169,7 +169,7 @@ + ComboBox.togglePopup.textAndMnemonic=togglePopup + + ############ Progress Monitor Strings ############ +-ProgressMonitor.progress.textAndMnemonic=Fortschritt ... ++ProgressMonitor.progress.textAndMnemonic=Fortschritt... + + ############ Split Pane Strings ############ + SplitPane.leftButton.textAndMnemonic=linke Schaltfl\u00E4che +--- ./jdk/src/macosx/classes/com/apple/laf/resources/aqua_sv.properties 2015-12-12 10:53:29.619621000 -0800 ++++ ./jdk/src/macosx/classes/com/apple/laf/resources/aqua_sv.properties 2015-10-24 06:21:16.000000000 -0700 +@@ -173,7 +173,7 @@ + + ############ Split Pane Strings ############ + SplitPane.leftButton.textAndMnemonic=v\u00E4nsterknapp +-SplitPane.rightButton.textAndMnemonic=h\u00F6ger knapp ++SplitPane.rightButton.textAndMnemonic=h\u00F6gerknapp + # Used for Isindex + IsindexView.prompt=Detta \u00E4r ett s\u00F6kbart index. Ange s\u00F6kord: + +--- ./jdk/src/macosx/classes/java/net/DefaultInterface.java 2014-03-03 18:57:20.000000000 -0800 ++++ ./jdk/src/macosx/classes/java/net/DefaultInterface.java 1969-12-31 16:00:00.000000000 -0800 @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. @@ -9203,8 +8755,119 @@ - return (ppp != null) ? ppp : loopback; - } -} ---- ./jdk/src/macosx/classes/sun/nio/ch/DefaultSelectorProvider.java Wed Jul 01 21:53:30 2015 -0700 -+++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +--- ./jdk/src/macosx/classes/sun/lwawt/macosx/CDataTransferer.java 2015-12-12 10:53:21.921291000 -0800 ++++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CDataTransferer.java 2015-10-24 06:21:16.000000000 -0700 +@@ -52,7 +52,9 @@ + "RICH_TEXT", + "HTML", + "PDF", +- "URL" ++ "URL", ++ "PNG", ++ "JFIF" + }; + + static { +@@ -74,8 +76,8 @@ + public static final int CF_HTML = 5; + public static final int CF_PDF = 6; + public static final int CF_URL = 7; +- public static final int CF_PNG = 10; +- public static final int CF_JPEG = 11; ++ public static final int CF_PNG = 8; ++ public static final int CF_JPEG = 9; + + private CDataTransferer() {} + +@@ -204,20 +206,9 @@ + return handler; + } + +- private native byte[] imageDataToPlatformImageBytes(int[] rData, int nW, int nH); + @Override + protected byte[] imageToPlatformBytes(Image image, long format) { +- int w = image.getWidth(null); +- int h = image.getHeight(null); +- BufferedImage bimage = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB_PRE); +- Graphics g = bimage.getGraphics(); +- g.drawImage(image, 0, 0, w, h, null); +- g.dispose(); +- Raster raster = bimage.getRaster(); +- DataBuffer buffer = raster.getDataBuffer(); +- return imageDataToPlatformImageBytes(((DataBufferInt)buffer).getData(), +- raster.getWidth(), +- raster.getHeight()); ++ return CImage.getCreator().getPlatformImageBytes(image); + } + + private static native String[] nativeDragQueryFile(final byte[] bytes); +@@ -228,14 +219,9 @@ + return nativeDragQueryFile(bytes); + } + +- private native Image getImageForByteStream(byte[] bytes); +- /** +- * Translates a byte array which contains +- * platform-specific image data in the given format into an Image. +- */ + @Override + protected Image platformImageBytesToImage(byte[] bytes, long format) throws IOException { +- return getImageForByteStream(bytes); ++ return CImage.getCreator().createImageFromPlatformImageBytes(bytes); + } + + @Override +--- ./jdk/src/macosx/classes/sun/lwawt/macosx/CImage.java 2015-12-12 10:53:29.622720000 -0800 ++++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CImage.java 2015-10-24 06:21:16.000000000 -0700 +@@ -38,11 +38,13 @@ + + public class CImage extends CFRetainedResource { + private static native long nativeCreateNSImageFromArray(int[] buffer, int w, int h); ++ private static native long nativeCreateNSImageFromBytes(byte[] buffer); + private static native long nativeCreateNSImageFromArrays(int[][] buffers, int w[], int h[]); + private static native long nativeCreateNSImageFromFileContents(String file); + private static native long nativeCreateNSImageOfFileFromLaunchServices(String file); + private static native long nativeCreateNSImageFromImageName(String name); + private static native long nativeCreateNSImageFromIconSelector(int selector); ++ private static native byte[] nativeGetPlatformImageBytes(int[] buffer, int w, int h); + private static native void nativeCopyNSImageIntoArray(long image, int[] buffer, int sw, int sh, int dw, int dh); + private static native Dimension2D nativeGetNSImageSize(long image); + private static native void nativeSetNSImageSize(long image, double w, double h); +@@ -50,7 +52,7 @@ + private static native Dimension2D[] nativeGetNSImageRepresentationSizes(long image, double w, double h); + + static Creator creator = new Creator(); +- static Creator getCreator() { ++ public static Creator getCreator() { + return creator; + } + +@@ -136,6 +138,23 @@ + return ((DataBufferInt)bimg.getRaster().getDataBuffer()).getData(); + } + ++ public byte[] getPlatformImageBytes(final Image image) { ++ int[] buffer = imageToArray(image, false); ++ ++ if (buffer == null) { ++ return null; ++ } ++ ++ return nativeGetPlatformImageBytes(buffer, image.getWidth(null), image.getHeight(null)); ++ } ++ ++ /** ++ * Translates a byte array which contains platform-specific image data in the given format into an Image. ++ */ ++ public Image createImageFromPlatformImageBytes(final byte[] buffer) { ++ return createImageUsingNativeSize(nativeCreateNSImageFromBytes(buffer)); ++ } ++ + // This is used to create a CImage from a Image + public CImage createFromImage(final Image image) { + return createFromImage(image, true); +--- ./jdk/src/macosx/classes/sun/nio/ch/DefaultSelectorProvider.java 2014-03-03 18:57:21.000000000 -0800 ++++ ./jdk/src/macosx/classes/sun/nio/ch/DefaultSelectorProvider.java 1969-12-31 16:00:00.000000000 -0800 @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. @@ -9254,8 +8917,8 @@ - } - -} ---- ./jdk/src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java Wed Jul 01 21:53:30 2015 -0700 -+++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +--- ./jdk/src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java 2015-12-12 10:53:21.929443000 -0800 ++++ ./jdk/src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java 1969-12-31 16:00:00.000000000 -0800 @@ -1,213 +0,0 @@ -/* - * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. @@ -9470,8 +9133,8 @@ - long timeout); - private static native void interrupt(int fd); -} ---- ./jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java Wed Jul 01 21:53:30 2015 -0700 -+++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +--- ./jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java 2014-03-03 18:57:21.000000000 -0800 ++++ ./jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java 1969-12-31 16:00:00.000000000 -0800 @@ -1,249 +0,0 @@ -/* - * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. @@ -9722,8 +9385,8 @@ - return this; - } -} ---- ./jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorProvider.java Wed Jul 01 21:53:30 2015 -0700 -+++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +--- ./jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorProvider.java 2014-03-03 18:57:21.000000000 -0800 ++++ ./jdk/src/macosx/classes/sun/nio/ch/KQueueSelectorProvider.java 1969-12-31 16:00:00.000000000 -0800 @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. @@ -9769,8 +9432,255 @@ - return new KQueueSelectorImpl(this); - } -} ---- ./jdk/src/macosx/native/sun/nio/ch/KQueueArrayWrapper.c Wed Jul 01 21:53:30 2015 -0700 -+++ /dev/null Thu Jan 01 00:00:00 1970 +0000 +--- ./jdk/src/macosx/native/sun/awt/CDataTransferer.m 2015-12-12 10:53:21.933117000 -0800 ++++ ./jdk/src/macosx/native/sun/awt/CDataTransferer.m 2015-10-24 06:21:16.000000000 -0700 +@@ -54,6 +54,10 @@ + forKey:[NSNumber numberWithLong:sun_lwawt_macosx_CDataTransferer_CF_PDF]]; + [sStandardMappings setObject:NSURLPboardType + forKey:[NSNumber numberWithLong:sun_lwawt_macosx_CDataTransferer_CF_URL]]; ++ [sStandardMappings setObject:NSPasteboardTypePNG ++ forKey:[NSNumber numberWithLong:sun_lwawt_macosx_CDataTransferer_CF_PNG]]; ++ [sStandardMappings setObject:(NSString*)kUTTypeJPEG ++ forKey:[NSNumber numberWithLong:sun_lwawt_macosx_CDataTransferer_CF_JPEG]]; + } + return sStandardMappings; + } +@@ -126,108 +130,6 @@ + return returnValue; + } + +-/* +- * Class: sun_lwawt_macosx_CDataTransferer +- * Method: imageDataToPlatformImageBytes +- * Signature: ([III)[B +- */ +-JNIEXPORT jbyteArray JNICALL Java_sun_lwawt_macosx_CDataTransferer_imageDataToPlatformImageBytes +-(JNIEnv *env, jobject obj, jintArray inPixelData, jint inWidth, jint inHeight) +-{ +- jbyteArray returnValue = nil; +-JNF_COCOA_ENTER(env); +- UInt32 *rawImageData = (UInt32 *)(*env)->GetPrimitiveArrayCritical(env, inPixelData, 0); +- +- // The pixel data is in premultiplied ARGB format. That's exactly what +- // we need for the bitmap image rep. +- if (rawImageData != NULL) { +- NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL +- pixelsWide:inWidth +- pixelsHigh:inHeight +- bitsPerSample:8 +- samplesPerPixel:4 +- hasAlpha:YES +- isPlanar:NO +- colorSpaceName:NSCalibratedRGBColorSpace +- bytesPerRow:(inWidth*4) +- bitsPerPixel:32]; +- +- // Conver the ARGB data into RGBA data that the bitmap can draw. +- unsigned char *destData = [imageRep bitmapData]; +- unsigned char *currentRowBase; +- jint x, y; +- +- for (y = 0; y < inHeight; y++) { +- currentRowBase = destData + y * (inWidth * 4); +- unsigned char *currElement = currentRowBase; +- for (x = 0; x < inWidth; x++) { +- UInt32 currPixel = rawImageData[y * inWidth + x]; +- *currElement++ = ((currPixel & 0xFF0000) >> 16); +- *currElement++ = ((currPixel & 0xFF00) >> 8); +- *currElement++ = (currPixel & 0xFF); +- *currElement++ = ((currPixel & 0xFF000000) >> 24); +- } +- } +- +- (*env)->ReleasePrimitiveArrayCritical(env, inPixelData, rawImageData, JNI_ABORT); +- NSData *tiffImage = [imageRep TIFFRepresentation]; +- jsize tiffSize = (jsize)[tiffImage length]; // #warning 64-bit: -length returns NSUInteger, but NewByteArray takes jsize +- returnValue = (*env)->NewByteArray(env, tiffSize); +- CHECK_NULL_RETURN(returnValue, nil); +- jbyte *tiffData = (jbyte *)(*env)->GetPrimitiveArrayCritical(env, returnValue, 0); +- CHECK_NULL_RETURN(tiffData, nil); +- [tiffImage getBytes:tiffData]; +- (*env)->ReleasePrimitiveArrayCritical(env, returnValue, tiffData, 0); // Do not use JNI_COMMIT, as that will not free the buffer copy when +ProtectJavaHeap is on. +- [imageRep release]; +- } +-JNF_COCOA_EXIT(env); +- return returnValue; +- +-} +- +-static jobject getImageForByteStream(JNIEnv *env, jbyteArray sourceData) +-{ +- CHECK_NULL_RETURN(sourceData, NULL); +- +- jsize sourceSize = (*env)->GetArrayLength(env, sourceData); +- if (sourceSize == 0) return NULL; +- +- jbyte *sourceBytes = (*env)->GetPrimitiveArrayCritical(env, sourceData, NULL); +- CHECK_NULL_RETURN(sourceBytes, NULL); +- NSData *rawData = [NSData dataWithBytes:sourceBytes length:sourceSize]; +- +- NSImage *newImage = [[NSImage alloc] initWithData:rawData]; +- if (newImage) CFRetain(newImage); // GC +- [newImage release]; +- +- (*env)->ReleasePrimitiveArrayCritical(env, sourceData, sourceBytes, JNI_ABORT); +- CHECK_NULL_RETURN(newImage, NULL); +- +- // The ownership of the NSImage is passed to the new CImage jobject. No need to release it. +- static JNF_CLASS_CACHE(jc_CImage, "sun/lwawt/macosx/CImage"); +- static JNF_STATIC_MEMBER_CACHE(jm_CImage_getCreator, jc_CImage, "getCreator", "()Lsun/lwawt/macosx/CImage$Creator;"); +- jobject creator = JNFCallStaticObjectMethod(env, jm_CImage_getCreator); +- +- static JNF_CLASS_CACHE(jc_CImage_Generator, "sun/lwawt/macosx/CImage$Creator"); +- static JNF_MEMBER_CACHE(jm_CImage_Generator_createImageUsingNativeSize, jc_CImage_Generator, "createImageUsingNativeSize", "(J)Ljava/awt/image/BufferedImage;"); +- return JNFCallObjectMethod(env, creator, jm_CImage_Generator_createImageUsingNativeSize, ptr_to_jlong(newImage)); // AWT_THREADING Safe (known object) +-} +- +-/* +- * Class: sun_lwawt_macosx_CDataTransferer +- * Method: getImageForByteStream +- * Signature: ([B)Ljava/awt/Image; +- */ +-JNIEXPORT jobject JNICALL Java_sun_lwawt_macosx_CDataTransferer_getImageForByteStream +- (JNIEnv *env, jobject obj, jbyteArray sourceData) +-{ +- jobject img = NULL; +-JNF_COCOA_ENTER(env); +- img = getImageForByteStream(env, sourceData); +-JNF_COCOA_EXIT(env); +- return img; +-} +- + static jobjectArray CreateJavaFilenameArray(JNIEnv *env, NSArray *filenameArray) + { + NSUInteger filenameCount = [filenameArray count]; +--- ./jdk/src/macosx/native/sun/awt/CDragSource.m 2015-12-12 10:53:21.933797000 -0800 ++++ ./jdk/src/macosx/native/sun/awt/CDragSource.m 2015-10-24 06:21:16.000000000 -0700 +@@ -318,8 +318,7 @@ + + // This is a good approximation if not perfect. A conclusive search would + // have to be done matching all defined strings in AppKit's commonStrings.h. +- if ([type hasPrefix:@"NS"] || [type hasPrefix:@"NeXT"]) +- hasNSTypeData = true; ++ hasNSTypeData = [type hasPrefix:@"NS"] || [type hasPrefix:@"NeXT"] || [type hasPrefix:@"public."]; + } + } + } +--- ./jdk/src/macosx/native/sun/awt/CDropTarget.m 2014-03-03 18:57:24.000000000 -0800 ++++ ./jdk/src/macosx/native/sun/awt/CDropTarget.m 2015-10-24 06:21:16.000000000 -0700 +@@ -106,6 +106,7 @@ + NSFilenamesPboardType, + NSPostScriptPboardType, + NSTIFFPboardType, ++ NSPasteboardTypePNG, + NSRTFPboardType, + NSTabularTextPboardType, + NSFontPboardType, +@@ -119,6 +120,7 @@ + NSVCardPboardType, + NSFilesPromisePboardType, + [DnDUtilities javaPboardType], ++ (NSString*)kUTTypeJPEG, + nil]; + + // Enable dragging events over this object: +--- ./jdk/src/macosx/native/sun/awt/CFRetainedResource.m 2015-12-12 10:53:29.625267000 -0800 ++++ ./jdk/src/macosx/native/sun/awt/CFRetainedResource.m 2015-10-24 06:21:16.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2011, 2015, 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 +@@ -41,10 +41,17 @@ + // Releasing resources on the main AppKit message loop only + // Releasing resources on the nested loops may cause dangling + // pointers after the nested loop is exited +- [NSApp postRunnableEvent:^(){ ++ if ([NSApp respondsToSelector:@selector(postRunnableEvent:)]) { ++ [NSApp postRunnableEvent:^() { + CFRelease(jlong_to_ptr(ptr)); + }]; + } else { ++ // could happen if we are embedded inside SWT/FX application, ++ [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^() { ++ CFRelease(jlong_to_ptr(ptr)); ++ }]; ++ } ++ } else { + + JNF_COCOA_ENTER(env); + +--- ./jdk/src/macosx/native/sun/awt/CImage.m 2015-12-12 10:53:21.935824000 -0800 ++++ ./jdk/src/macosx/native/sun/awt/CImage.m 2015-10-24 06:21:16.000000000 -0700 +@@ -436,3 +436,63 @@ + + return jreturnArray; + } +\ No newline at end of file ++ ++/* ++ * Class: sun_lwawt_macosx_CImage ++ * Method: nativeGetPlatformImageBytes ++ * Signature: ([III)[B ++ */ ++JNIEXPORT jbyteArray JNICALL Java_sun_lwawt_macosx_CImage_nativeGetPlatformImageBytes ++(JNIEnv *env, jclass klass, jintArray buffer, jint width, jint height) ++{ ++ jbyteArray result = 0L; ++ ++ JNF_COCOA_ENTER(env); ++ ++ NSBitmapImageRep* imageRep = [CImage_CreateImageRep(env, buffer, width, height) autorelease]; ++ if (imageRep) { ++ NSData *tiffImage = [imageRep TIFFRepresentation]; ++ jsize tiffSize = (jsize)[tiffImage length]; ++ result = (*env)->NewByteArray(env, tiffSize); ++ CHECK_NULL_RETURN(result, nil); ++ jbyte *tiffData = (jbyte *)(*env)->GetPrimitiveArrayCritical(env, result, 0); ++ CHECK_NULL_RETURN(tiffData, nil); ++ [tiffImage getBytes:tiffData]; ++ (*env)->ReleasePrimitiveArrayCritical(env, result, tiffData, 0); ++ } ++ ++ JNF_COCOA_EXIT(env); ++ ++ return result; ++} ++ ++/* ++ * Class: sun_lwawt_macosx_CImage ++ * Method: nativeCreateNSImageFromBytes ++ * Signature: ([B)J ++ */ ++JNIEXPORT jlong JNICALL Java_sun_lwawt_macosx_CImage_nativeCreateNSImageFromBytes ++(JNIEnv *env, jclass klass, jbyteArray sourceData) ++{ ++ jlong result = 0L; ++ CHECK_NULL_RETURN(sourceData, 0L); ++ ++ JNF_COCOA_ENTER(env); ++ ++ jsize sourceSize = (*env)->GetArrayLength(env, sourceData); ++ if (sourceSize == 0) return 0L; ++ ++ jbyte *sourceBytes = (*env)->GetPrimitiveArrayCritical(env, sourceData, NULL); ++ CHECK_NULL_RETURN(sourceBytes, 0L); ++ NSData *rawData = [NSData dataWithBytes:sourceBytes length:sourceSize]; ++ NSImage *newImage = [[NSImage alloc] initWithData:rawData]; ++ ++ (*env)->ReleasePrimitiveArrayCritical(env, sourceData, sourceBytes, JNI_ABORT); ++ CHECK_NULL_RETURN(newImage, 0L); ++ ++ result = ptr_to_jlong(newImage); ++ JNF_COCOA_EXIT(env); ++ ++ return result; ++} ++ +--- ./jdk/src/macosx/native/sun/nio/ch/KQueueArrayWrapper.c 2014-03-03 18:57:25.000000000 -0800 ++++ ./jdk/src/macosx/native/sun/nio/ch/KQueueArrayWrapper.c 1969-12-31 16:00:00.000000000 -0800 @@ -1,171 +0,0 @@ -/* - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. @@ -9943,8 +9853,8 @@ - } -} - ---- ./jdk/src/share/bin/jli_util.h Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/bin/jli_util.h Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/bin/jli_util.h 2015-12-12 10:53:27.356994000 -0800 ++++ ./jdk/src/share/bin/jli_util.h 2015-10-24 06:21:20.000000000 -0700 @@ -87,7 +87,7 @@ #define _LARGFILE64_SOURCE #define JLI_Lseek lseek64 @@ -9954,8 +9864,8 @@ #define JLI_Lseek lseek #endif #ifdef _AIX ---- ./jdk/src/share/classes/com/sun/crypto/provider/AESCrypt.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/com/sun/crypto/provider/AESCrypt.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/com/sun/crypto/provider/AESCrypt.java 2015-12-12 10:53:29.629308000 -0800 ++++ ./jdk/src/share/classes/com/sun/crypto/provider/AESCrypt.java 2015-07-18 13:32:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. @@ -9981,8 +9891,8 @@ // re-generate session key 'sessionK' when cipher key changes makeSessionKey(key); lastKey = key.clone(); // save cipher key ---- ./jdk/src/share/classes/com/sun/crypto/provider/CipherCore.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/com/sun/crypto/provider/CipherCore.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/com/sun/crypto/provider/CipherCore.java 2015-12-12 10:53:29.629842000 -0800 ++++ ./jdk/src/share/classes/com/sun/crypto/provider/CipherCore.java 2015-07-18 13:32:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. @@ -9999,8 +9909,8 @@ if (requireReinit) { throw new InvalidAlgorithmParameterException ("Cannot reuse iv for GCM encryption"); ---- ./jdk/src/share/classes/com/sun/crypto/provider/DESKey.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/com/sun/crypto/provider/DESKey.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/com/sun/crypto/provider/DESKey.java 2015-12-12 10:53:29.630165000 -0800 ++++ ./jdk/src/share/classes/com/sun/crypto/provider/DESKey.java 2015-07-18 13:32:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -10025,8 +9935,8 @@ java.util.Arrays.fill(thatKey, (byte)0x00); return ret; } ---- ./jdk/src/share/classes/com/sun/crypto/provider/DESedeKey.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/com/sun/crypto/provider/DESedeKey.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/com/sun/crypto/provider/DESedeKey.java 2015-12-12 10:53:29.630454000 -0800 ++++ ./jdk/src/share/classes/com/sun/crypto/provider/DESedeKey.java 2015-07-18 13:32:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -10051,8 +9961,8 @@ java.util.Arrays.fill(thatKey, (byte)0x00); return ret; } ---- ./jdk/src/share/classes/com/sun/crypto/provider/PBEKey.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/com/sun/crypto/provider/PBEKey.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/com/sun/crypto/provider/PBEKey.java 2015-12-12 10:53:29.631716000 -0800 ++++ ./jdk/src/share/classes/com/sun/crypto/provider/PBEKey.java 2015-08-29 06:20:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. @@ -10077,8 +9987,8 @@ java.util.Arrays.fill(thatEncoded, (byte)0x00); return ret; } ---- ./jdk/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java 2015-12-12 10:53:29.632402000 -0800 ++++ ./jdk/src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java 2015-08-29 06:20:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. @@ -10112,8 +10022,8 @@ java.util.Arrays.fill(thatEncoded, (byte)0x00); return ret; } ---- ./jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java 2015-12-12 10:53:29.681027000 -0800 ++++ ./jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java 2015-07-18 13:32:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. @@ -10121,222 +10031,25 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -184,119 +184,124 @@ +@@ -184,6 +184,7 @@ Exception caughtException = null; boolean[] doNotRetry = new boolean[servers.length]; -- // -- // The UDP retry strategy is to try the 1st server, and then -- // each server in order. If no answer, double the timeout -- // and try each server again. -- // -- for (int retry = 0; retry < retries; retry++) { + try { -+ // -+ // The UDP retry strategy is to try the 1st server, and then -+ // each server in order. If no answer, double the timeout -+ // and try each server again. -+ // -+ for (int retry = 0; retry < retries; retry++) { - -- // Try each name server. -- for (int i = 0; i < servers.length; i++) { -- if (doNotRetry[i]) { -- continue; -- } -- -- // send the request packet and wait for a response. -- try { -- if (debug) { -- dprint("SEND ID (" + (retry + 1) + "): " + xid); -+ // Try each name server. -+ for (int i = 0; i < servers.length; i++) { -+ if (doNotRetry[i]) { -+ continue; - } - -- byte[] msg = null; -- msg = doUdpQuery(pkt, servers[i], serverPorts[i], -- retry, xid); -- // -- // If the matching response is not got within the -- // given timeout, check if the response was enqueued -- // by some other thread, if not proceed with the next -- // server or retry. -- // -- if (msg == null) { -- if (resps.size() > 0) { -- msg = lookupResponse(xid); -+ // send the request packet and wait for a response. -+ try { -+ if (debug) { -+ dprint("SEND ID (" + (retry + 1) + "): " + xid); - } -- if (msg == null) { // try next server or retry -+ -+ byte[] msg = null; -+ msg = doUdpQuery(pkt, servers[i], serverPorts[i], -+ retry, xid); -+ // -+ // If the matching response is not got within the -+ // given timeout, check if the response was enqueued -+ // by some other thread, if not proceed with the next -+ // server or retry. -+ // -+ if (msg == null) { -+ if (resps.size() > 0) { -+ msg = lookupResponse(xid); -+ } -+ if (msg == null) { // try next server or retry -+ continue; -+ } -+ } -+ Header hdr = new Header(msg, msg.length); -+ -+ if (auth && !hdr.authoritative) { -+ caughtException = new NameNotFoundException( -+ "DNS response not authoritative"); -+ doNotRetry[i] = true; - continue; - } -- } -- Header hdr = new Header(msg, msg.length); -+ if (hdr.truncated) { // message is truncated -- try TCP - -- if (auth && !hdr.authoritative) { -- caughtException = new NameNotFoundException( -- "DNS response not authoritative"); -- doNotRetry[i] = true; -- continue; -- } -- if (hdr.truncated) { // message is truncated -- try TCP -+ // Try each server, starting with the one that just -+ // provided the truncated message. -+ for (int j = 0; j < servers.length; j++) { -+ int ij = (i + j) % servers.length; -+ if (doNotRetry[ij]) { -+ continue; -+ } -+ try { -+ Tcp tcp = -+ new Tcp(servers[ij], serverPorts[ij]); -+ byte[] msg2; -+ try { -+ msg2 = doTcpQuery(tcp, pkt); -+ } finally { -+ tcp.close(); -+ } -+ Header hdr2 = new Header(msg2, msg2.length); -+ if (hdr2.query) { -+ throw new CommunicationException( -+ "DNS error: expecting response"); -+ } -+ checkResponseCode(hdr2); - -- // Try each server, starting with the one that just -- // provided the truncated message. -- for (int j = 0; j < servers.length; j++) { -- int ij = (i + j) % servers.length; -- if (doNotRetry[ij]) { -- continue; -- } -- try { -- Tcp tcp = -- new Tcp(servers[ij], serverPorts[ij]); -- byte[] msg2; -- try { -- msg2 = doTcpQuery(tcp, pkt); -- } finally { -- tcp.close(); -+ if (!auth || hdr2.authoritative) { -+ // Got a valid response -+ hdr = hdr2; -+ msg = msg2; -+ break; -+ } else { -+ doNotRetry[ij] = true; -+ } -+ } catch (Exception e) { -+ // Try next server, or use UDP response - } -- Header hdr2 = new Header(msg2, msg2.length); -- if (hdr2.query) { -- throw new CommunicationException( -- "DNS error: expecting response"); -- } -- checkResponseCode(hdr2); -+ } // servers -+ } -+ return new ResourceRecords(msg, msg.length, hdr, false); - -- if (!auth || hdr2.authoritative) { -- // Got a valid response -- hdr = hdr2; -- msg = msg2; -- break; -- } else { -- doNotRetry[ij] = true; -- } -- } catch (Exception e) { -- // Try next server, or use UDP response -- } -- } // servers -- } -- return new ResourceRecords(msg, msg.length, hdr, false); -- -- } catch (IOException e) { -- if (debug) { -- dprint("Caught IOException:" + e); -- } -- if (caughtException == null) { -- caughtException = e; -- } -- // Use reflection to allow pre-1.4 compilation. -- // This won't be needed much longer. -- if (e.getClass().getName().equals( -- "java.net.PortUnreachableException")) { -+ } catch (IOException e) { -+ if (debug) { -+ dprint("Caught IOException:" + e); -+ } -+ if (caughtException == null) { -+ caughtException = e; -+ } -+ // Use reflection to allow pre-1.4 compilation. -+ // This won't be needed much longer. -+ if (e.getClass().getName().equals( -+ "java.net.PortUnreachableException")) { -+ doNotRetry[i] = true; -+ } -+ } catch (NameNotFoundException e) { -+ // This is authoritative, so return immediately -+ throw e; -+ } catch (CommunicationException e) { -+ if (caughtException == null) { -+ caughtException = e; -+ } -+ } catch (NamingException e) { -+ if (caughtException == null) { -+ caughtException = e; -+ } + // + // The UDP retry strategy is to try the 1st server, and then + // each server in order. If no answer, double the timeout +@@ -282,6 +283,7 @@ doNotRetry[i] = true; } -- } catch (NameNotFoundException e) { -- throw e; -- } catch (CommunicationException e) { -- if (caughtException == null) { -- caughtException = e; -- } -- } catch (NamingException e) { -- if (caughtException == null) { -- caughtException = e; -- } -- doNotRetry[i] = true; -- } -- } // servers -- } // retries -+ } // servers -+ } // retries + } catch (NameNotFoundException e) { ++ // This is authoritative, so return immediately + throw e; + } catch (CommunicationException e) { + if (caughtException == null) { +@@ -296,7 +298,10 @@ + } // servers + } // retries - reqs.remove(xid); + } finally { @@ -10346,8 +10059,98 @@ if (caughtException instanceof NamingException) { throw (NamingException) caughtException; } ---- ./jdk/src/share/classes/java/io/ObjectInputStream.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/java/io/ObjectInputStream.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties 2015-12-12 10:53:29.684848000 -0800 ++++ ./jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties 2015-10-24 06:21:17.000000000 -0700 +@@ -33,7 +33,7 @@ + ############ FILE CHOOSER STRINGS ############# + FileChooser.fileDescription.textAndMnemonic=Generisk fil + FileChooser.directoryDescription.textAndMnemonic=Katalog +-FileChooser.newFolderError.textAndMnemonic=Fel uppstod n\u00E4r ny mapp skapades ++FileChooser.newFolderError.textAndMnemonic=Kan inte skapa ny mapp + FileChooser.newFolderErrorSeparator= : + FileChooser.newFolderParentDoesntExistTitle.textAndMnemonic=Kan inte skapa mappen + FileChooser.newFolderParentDoesntExist.textAndMnemonic=Kan inte skapa mappen.\n\nSystemet kan inte hitta angiven s\u00F6kv\u00E4g. +@@ -59,15 +59,15 @@ + FileChooser.win32.newFolder=Ny mapp + FileChooser.win32.newFolder.subsequent=Ny mapp ({0}) + FileChooser.other.newFolder=Ny mapp +-FileChooser.other.newFolder.subsequent=Ny mapp.{0} ++FileChooser.other.newFolder.subsequent=Ny mapp {0} + + + ## file chooser tooltips ### +-FileChooser.cancelButtonToolTip.textAndMnemonic=Avbryt filvalsdialogruta ++FileChooser.cancelButtonToolTip.textAndMnemonic=Avbryt dialogrutan f\u00F6r filval + FileChooser.saveButtonToolTip.textAndMnemonic=Spara vald fil + FileChooser.openButtonToolTip.textAndMnemonic=\u00D6ppna vald fil + FileChooser.updateButtonToolTip.textAndMnemonic=Uppdatera kataloglistan +-FileChooser.helpButtonToolTip.textAndMnemonic=Hj\u00E4lp - Filv\u00E4ljare ++FileChooser.helpButtonToolTip.textAndMnemonic=Hj\u00E4lp f\u00F6r val av fil + FileChooser.directoryOpenButtonToolTip.textAndMnemonic=\u00D6ppna vald katalog + + FileChooser.filesListAccessibleName=Fillista +@@ -129,7 +129,7 @@ + + # The following string will be formatted by a MessageFormat + # and {0} will be replaced by page number being printed +-PrintingDialog.contentProgress.textAndMnemonic=Utskriven sida {0}... ++PrintingDialog.contentProgress.textAndMnemonic=Skriver ut sida {0}... + + PrintingDialog.contentAborting.textAndMnemonic=Utskriften avbryts... + +@@ -177,8 +177,8 @@ + ProgressMonitor.progress.textAndMnemonic=P\u00E5g\u00E5r... + + ############ Split Pane Strings ############ +-SplitPane.leftButton.textAndMnemonic=v\u00E4nster knapp +-SplitPane.rightButton.textAndMnemonic=h\u00F6ger knapp ++SplitPane.leftButton.textAndMnemonic=v\u00E4nsterknapp ++SplitPane.rightButton.textAndMnemonic=h\u00F6gerknapp + # Used for Isindex + IsindexView.prompt=Detta \u00E4r ett s\u00F6kbart index. Ange s\u00F6kord: + +--- ./jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties 2015-12-12 10:53:29.687579000 -0800 ++++ ./jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties 2015-10-24 06:21:17.000000000 -0700 +@@ -20,7 +20,7 @@ + + FileChooser.lookInLabel.textAndMnemonic=Leta &i: + FileChooser.saveInLabel.textAndMnemonic=Spara i: +-FileChooser.fileNameLabel.textAndMnemonic=&Fil: ++FileChooser.fileNameLabel.textAndMnemonic=Fil&namn: + FileChooser.folderNameLabel.textAndMnemonic=&Mapp: + FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typen: + FileChooser.upFolderToolTip.textAndMnemonic=Upp en niv\u00E5 +--- ./jdk/src/share/classes/java/beans/PropertyDescriptor.java 2014-03-03 18:57:57.000000000 -0800 ++++ ./jdk/src/share/classes/java/beans/PropertyDescriptor.java 2015-10-24 06:21:17.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1996, 2015, 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 +@@ -28,6 +28,7 @@ + import java.lang.ref.Reference; + import java.lang.reflect.Method; + import java.lang.reflect.Constructor; ++import sun.reflect.misc.ReflectUtil; + + /** + * A PropertyDescriptor describes one property that a Java Bean +@@ -426,8 +427,9 @@ + public PropertyEditor createPropertyEditor(Object bean) { + Object editor = null; + +- Class<?> cls = getPropertyEditorClass(); +- if (cls != null) { ++ final Class<?> cls = getPropertyEditorClass(); ++ if (cls != null && PropertyEditor.class.isAssignableFrom(cls) ++ && ReflectUtil.isPackageAccessible(cls)) { + Constructor<?> ctor = null; + if (bean != null) { + try { +--- ./jdk/src/share/classes/java/io/ObjectInputStream.java 2015-12-12 10:53:29.698282000 -0800 ++++ ./jdk/src/share/classes/java/io/ObjectInputStream.java 2015-10-24 06:21:17.000000000 -0700 @@ -1829,6 +1829,8 @@ throws IOException { @@ -10401,8 +10204,396 @@ if (slotDesc.hasWriteObjectData()) { skipCustomData(); } else { ---- ./jdk/src/share/classes/java/io/SerialCallbackContext.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/java/io/SerialCallbackContext.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/java/io/ObjectStreamClass.java 2014-03-03 18:57:58.000000000 -0800 ++++ ./jdk/src/share/classes/java/io/ObjectStreamClass.java 2015-10-24 06:21:17.000000000 -0700 +@@ -189,6 +189,9 @@ + /** superclass descriptor appearing in stream */ + private ObjectStreamClass superDesc; + ++ /** true if, and only if, the object has been correctly initialized */ ++ private boolean initialized; ++ + /** + * Initializes native code. + */ +@@ -266,6 +269,7 @@ + if (cl == null) { + return null; + } ++ requireInitialized(); + if (System.getSecurityManager() != null) { + Class<?> caller = Reflection.getCallerClass(); + if (ReflectUtil.needsPackageAccessCheck(caller.getClassLoader(), cl.getClassLoader())) { +@@ -533,6 +537,7 @@ + name, "unmatched serializable field(s) declared"); + } + } ++ initialized = true; + } + + /** +@@ -550,6 +555,14 @@ + ObjectStreamClass superDesc) + throws InvalidClassException + { ++ ObjectStreamClass osc = null; ++ if (cl != null) { ++ osc = lookup(cl, true); ++ if (!osc.isProxy) { ++ throw new InvalidClassException( ++ "cannot bind proxy descriptor to a non-proxy class"); ++ } ++ } + this.cl = cl; + this.resolveEx = resolveEx; + this.superDesc = superDesc; +@@ -557,21 +570,17 @@ + serializable = true; + suid = Long.valueOf(0); + fields = NO_FIELDS; +- +- if (cl != null) { +- localDesc = lookup(cl, true); +- if (!localDesc.isProxy) { +- throw new InvalidClassException( +- "cannot bind proxy descriptor to a non-proxy class"); +- } ++ if (osc != null) { ++ localDesc = osc; + name = localDesc.name; + externalizable = localDesc.externalizable; +- cons = localDesc.cons; + writeReplaceMethod = localDesc.writeReplaceMethod; + readResolveMethod = localDesc.readResolveMethod; + deserializeEx = localDesc.deserializeEx; ++ cons = localDesc.cons; + } + fieldRefl = getReflector(fields, localDesc); ++ initialized = true; + } + + /** +@@ -583,68 +592,69 @@ + ObjectStreamClass superDesc) + throws InvalidClassException + { +- this.cl = cl; +- this.resolveEx = resolveEx; +- this.superDesc = superDesc; +- name = model.name; +- suid = Long.valueOf(model.getSerialVersionUID()); +- isProxy = false; +- isEnum = model.isEnum; +- serializable = model.serializable; +- externalizable = model.externalizable; +- hasBlockExternalData = model.hasBlockExternalData; +- hasWriteObjectData = model.hasWriteObjectData; +- fields = model.fields; +- primDataSize = model.primDataSize; +- numObjFields = model.numObjFields; +- ++ long suid = Long.valueOf(model.getSerialVersionUID()); ++ ObjectStreamClass osc = null; + if (cl != null) { +- localDesc = lookup(cl, true); +- if (localDesc.isProxy) { ++ osc = lookup(cl, true); ++ if (osc.isProxy) { + throw new InvalidClassException( + "cannot bind non-proxy descriptor to a proxy class"); + } +- if (isEnum != localDesc.isEnum) { +- throw new InvalidClassException(isEnum ? ++ if (model.isEnum != osc.isEnum) { ++ throw new InvalidClassException(model.isEnum ? + "cannot bind enum descriptor to a non-enum class" : + "cannot bind non-enum descriptor to an enum class"); + } + +- if (serializable == localDesc.serializable && ++ if (model.serializable == osc.serializable && + !cl.isArray() && +- suid.longValue() != localDesc.getSerialVersionUID()) +- { +- throw new InvalidClassException(localDesc.name, ++ suid != osc.getSerialVersionUID()) { ++ throw new InvalidClassException(osc.name, + "local class incompatible: " + + "stream classdesc serialVersionUID = " + suid + + ", local class serialVersionUID = " + +- localDesc.getSerialVersionUID()); ++ osc.getSerialVersionUID()); + } + +- if (!classNamesEqual(name, localDesc.name)) { +- throw new InvalidClassException(localDesc.name, ++ if (!classNamesEqual(model.name, osc.name)) { ++ throw new InvalidClassException(osc.name, + "local class name incompatible with stream class " + +- "name \"" + name + "\""); ++ "name \"" + model.name + "\""); + } + +- if (!isEnum) { +- if ((serializable == localDesc.serializable) && +- (externalizable != localDesc.externalizable)) +- { +- throw new InvalidClassException(localDesc.name, ++ if (!model.isEnum) { ++ if ((model.serializable == osc.serializable) && ++ (model.externalizable != osc.externalizable)) { ++ throw new InvalidClassException(osc.name, + "Serializable incompatible with Externalizable"); + } + +- if ((serializable != localDesc.serializable) || +- (externalizable != localDesc.externalizable) || +- !(serializable || externalizable)) +- { ++ if ((model.serializable != osc.serializable) || ++ (model.externalizable != osc.externalizable) || ++ !(model.serializable || model.externalizable)) { + deserializeEx = new ExceptionInfo( +- localDesc.name, "class invalid for deserialization"); ++ osc.name, "class invalid for deserialization"); ++ } + } + } + +- cons = localDesc.cons; ++ this.cl = cl; ++ this.resolveEx = resolveEx; ++ this.superDesc = superDesc; ++ name = model.name; ++ this.suid = suid; ++ isProxy = false; ++ isEnum = model.isEnum; ++ serializable = model.serializable; ++ externalizable = model.externalizable; ++ hasBlockExternalData = model.hasBlockExternalData; ++ hasWriteObjectData = model.hasWriteObjectData; ++ fields = model.fields; ++ primDataSize = model.primDataSize; ++ numObjFields = model.numObjFields; ++ ++ if (osc != null) { ++ localDesc = osc; + writeObjectMethod = localDesc.writeObjectMethod; + readObjectMethod = localDesc.readObjectMethod; + readObjectNoDataMethod = localDesc.readObjectNoDataMethod; +@@ -653,10 +663,13 @@ + if (deserializeEx == null) { + deserializeEx = localDesc.deserializeEx; + } ++ cons = localDesc.cons; + } ++ + fieldRefl = getReflector(fields, localDesc); + // reassign to matched fields so as to reflect local unshared settings + fields = fieldRefl.getFields(); ++ initialized = true; + } + + /** +@@ -759,11 +772,20 @@ + } + + /** ++ * Throws InternalError if not initialized. ++ */ ++ private final void requireInitialized() { ++ if (!initialized) ++ throw new InternalError("Unexpected call when not initialized"); ++ } ++ ++ /** + * Throws an InvalidClassException if object instances referencing this + * class descriptor should not be allowed to deserialize. This method does + * not apply to deserialization of enum constants. + */ + void checkDeserialize() throws InvalidClassException { ++ requireInitialized(); + if (deserializeEx != null) { + throw deserializeEx.newInvalidClassException(); + } +@@ -775,6 +797,7 @@ + * not apply to serialization of enum constants. + */ + void checkSerialize() throws InvalidClassException { ++ requireInitialized(); + if (serializeEx != null) { + throw serializeEx.newInvalidClassException(); + } +@@ -788,6 +811,7 @@ + * does not apply to deserialization of enum constants. + */ + void checkDefaultSerialize() throws InvalidClassException { ++ requireInitialized(); + if (defaultSerializeEx != null) { + throw defaultSerializeEx.newInvalidClassException(); + } +@@ -799,6 +823,7 @@ + * of the subclass descriptor's bound class. + */ + ObjectStreamClass getSuperDesc() { ++ requireInitialized(); + return superDesc; + } + +@@ -809,6 +834,7 @@ + * associated with this descriptor. + */ + ObjectStreamClass getLocalDesc() { ++ requireInitialized(); + return localDesc; + } + +@@ -851,6 +877,7 @@ + * otherwise. + */ + boolean isProxy() { ++ requireInitialized(); + return isProxy; + } + +@@ -859,6 +886,7 @@ + * otherwise. + */ + boolean isEnum() { ++ requireInitialized(); + return isEnum; + } + +@@ -867,6 +895,7 @@ + * otherwise. + */ + boolean isExternalizable() { ++ requireInitialized(); + return externalizable; + } + +@@ -875,6 +904,7 @@ + * otherwise. + */ + boolean isSerializable() { ++ requireInitialized(); + return serializable; + } + +@@ -883,6 +913,7 @@ + * has written its data in 1.2 (block data) format, false otherwise. + */ + boolean hasBlockExternalData() { ++ requireInitialized(); + return hasBlockExternalData; + } + +@@ -892,6 +923,7 @@ + * writeObject() method, false otherwise. + */ + boolean hasWriteObjectData() { ++ requireInitialized(); + return hasWriteObjectData; + } + +@@ -903,6 +935,7 @@ + * accessible no-arg constructor. Otherwise, returns false. + */ + boolean isInstantiable() { ++ requireInitialized(); + return (cons != null); + } + +@@ -912,6 +945,7 @@ + * returns false. + */ + boolean hasWriteObjectMethod() { ++ requireInitialized(); + return (writeObjectMethod != null); + } + +@@ -921,6 +955,7 @@ + * returns false. + */ + boolean hasReadObjectMethod() { ++ requireInitialized(); + return (readObjectMethod != null); + } + +@@ -930,6 +965,7 @@ + * Otherwise, returns false. + */ + boolean hasReadObjectNoDataMethod() { ++ requireInitialized(); + return (readObjectNoDataMethod != null); + } + +@@ -938,6 +974,7 @@ + * defines a conformant writeReplace method. Otherwise, returns false. + */ + boolean hasWriteReplaceMethod() { ++ requireInitialized(); + return (writeReplaceMethod != null); + } + +@@ -946,6 +983,7 @@ + * defines a conformant readResolve method. Otherwise, returns false. + */ + boolean hasReadResolveMethod() { ++ requireInitialized(); + return (readResolveMethod != null); + } + +@@ -962,6 +1000,7 @@ + throws InstantiationException, InvocationTargetException, + UnsupportedOperationException + { ++ requireInitialized(); + if (cons != null) { + try { + return cons.newInstance(); +@@ -983,6 +1022,7 @@ + void invokeWriteObject(Object obj, ObjectOutputStream out) + throws IOException, UnsupportedOperationException + { ++ requireInitialized(); + if (writeObjectMethod != null) { + try { + writeObjectMethod.invoke(obj, new Object[]{ out }); +@@ -1012,6 +1052,7 @@ + throws ClassNotFoundException, IOException, + UnsupportedOperationException + { ++ requireInitialized(); + if (readObjectMethod != null) { + try { + readObjectMethod.invoke(obj, new Object[]{ in }); +@@ -1042,6 +1083,7 @@ + void invokeReadObjectNoData(Object obj) + throws IOException, UnsupportedOperationException + { ++ requireInitialized(); + if (readObjectNoDataMethod != null) { + try { + readObjectNoDataMethod.invoke(obj, (Object[]) null); +@@ -1070,6 +1112,7 @@ + Object invokeWriteReplace(Object obj) + throws IOException, UnsupportedOperationException + { ++ requireInitialized(); + if (writeReplaceMethod != null) { + try { + return writeReplaceMethod.invoke(obj, (Object[]) null); +@@ -1099,6 +1142,7 @@ + Object invokeReadResolve(Object obj) + throws IOException, UnsupportedOperationException + { ++ requireInitialized(); + if (readResolveMethod != null) { + try { + return readResolveMethod.invoke(obj, (Object[]) null); +--- ./jdk/src/share/classes/java/io/SerialCallbackContext.java 2015-12-12 10:53:29.698584000 -0800 ++++ ./jdk/src/share/classes/java/io/SerialCallbackContext.java 2015-07-18 13:32:32.000000000 -0700 @@ -60,6 +60,13 @@ return desc; } @@ -10417,8 +10608,24 @@ private void checkAndSetUsed() throws NotActiveException { if (thread != Thread.currentThread()) { throw new NotActiveException( ---- ./jdk/src/share/classes/java/net/InetAddress.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/java/net/InetAddress.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/java/net/Inet4Address.java 2014-03-03 18:58:02.000000000 -0800 ++++ ./jdk/src/share/classes/java/net/Inet4Address.java 2015-10-24 06:21:17.000000000 -0700 +@@ -117,11 +117,13 @@ + holder().address = address; + } + } ++ holder().originalHostName = hostName; + } + Inet4Address(String hostName, int address) { + holder().hostName = hostName; + holder().family = IPv4; + holder().address = address; ++ holder().originalHostName = hostName; + } + + /** +--- ./jdk/src/share/classes/java/net/InetAddress.java 2015-12-12 10:53:29.709713000 -0800 ++++ ./jdk/src/share/classes/java/net/InetAddress.java 2015-10-24 06:21:17.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved. @@ -10444,7 +10651,7 @@ + * + * Note: May define a new public method in the future if necessary. + */ -+ private String originalHostName; ++ String originalHostName; InetAddressHolder() {} @@ -10471,8 +10678,8 @@ /** * Holds a 32-bit IPv4 address. */ ---- ./jdk/src/share/classes/java/net/URLClassLoader.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/java/net/URLClassLoader.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/java/net/URLClassLoader.java 2015-12-12 10:53:29.710832000 -0800 ++++ ./jdk/src/share/classes/java/net/URLClassLoader.java 2015-07-18 13:32:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. @@ -10491,8 +10698,94 @@ } ); ClassLoader.registerAsParallelCapable(); ---- ./jdk/src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/java/nio/Direct-X-Buffer.java.template 2014-03-03 18:58:03.000000000 -0800 ++++ ./jdk/src/share/classes/java/nio/Direct-X-Buffer.java.template 2015-10-24 06:21:17.000000000 -0700 +@@ -242,7 +242,7 @@ + } + + private long ix(int i) { +- return address + (i << $LG_BYTES_PER_VALUE$); ++ return address + ((long)i << $LG_BYTES_PER_VALUE$); + } + + public $type$ get() { +@@ -261,7 +261,7 @@ + + public $Type$Buffer get($type$[] dst, int offset, int length) { + #if[rw] +- if ((length << $LG_BYTES_PER_VALUE$) > Bits.JNI_COPY_TO_ARRAY_THRESHOLD) { ++ if (((long)length << $LG_BYTES_PER_VALUE$) > Bits.JNI_COPY_TO_ARRAY_THRESHOLD) { + checkBounds(offset, length, dst.length); + int pos = position(); + int lim = limit(); +@@ -273,13 +273,13 @@ + #if[!byte] + if (order() != ByteOrder.nativeOrder()) + Bits.copyTo$Memtype$Array(ix(pos), dst, +- offset << $LG_BYTES_PER_VALUE$, +- length << $LG_BYTES_PER_VALUE$); ++ (long)offset << $LG_BYTES_PER_VALUE$, ++ (long)length << $LG_BYTES_PER_VALUE$); + else + #end[!byte] + Bits.copyToArray(ix(pos), dst, arrayBaseOffset, +- offset << $LG_BYTES_PER_VALUE$, +- length << $LG_BYTES_PER_VALUE$); ++ (long)offset << $LG_BYTES_PER_VALUE$, ++ (long)length << $LG_BYTES_PER_VALUE$); + position(pos + length); + } else { + super.get(dst, offset, length); +@@ -329,7 +329,7 @@ + + if (srem > rem) + throw new BufferOverflowException(); +- unsafe.copyMemory(sb.ix(spos), ix(pos), srem << $LG_BYTES_PER_VALUE$); ++ unsafe.copyMemory(sb.ix(spos), ix(pos), (long)srem << $LG_BYTES_PER_VALUE$); + sb.position(spos + srem); + position(pos + srem); + } else if (src.hb != null) { +@@ -353,7 +353,7 @@ + + public $Type$Buffer put($type$[] src, int offset, int length) { + #if[rw] +- if ((length << $LG_BYTES_PER_VALUE$) > Bits.JNI_COPY_FROM_ARRAY_THRESHOLD) { ++ if (((long)length << $LG_BYTES_PER_VALUE$) > Bits.JNI_COPY_FROM_ARRAY_THRESHOLD) { + checkBounds(offset, length, src.length); + int pos = position(); + int lim = limit(); +@@ -364,12 +364,16 @@ + + #if[!byte] + if (order() != ByteOrder.nativeOrder()) +- Bits.copyFrom$Memtype$Array(src, offset << $LG_BYTES_PER_VALUE$, +- ix(pos), length << $LG_BYTES_PER_VALUE$); ++ Bits.copyFrom$Memtype$Array(src, ++ (long)offset << $LG_BYTES_PER_VALUE$, ++ ix(pos), ++ (long)length << $LG_BYTES_PER_VALUE$); + else + #end[!byte] +- Bits.copyFromArray(src, arrayBaseOffset, offset << $LG_BYTES_PER_VALUE$, +- ix(pos), length << $LG_BYTES_PER_VALUE$); ++ Bits.copyFromArray(src, arrayBaseOffset, ++ (long)offset << $LG_BYTES_PER_VALUE$, ++ ix(pos), ++ (long)length << $LG_BYTES_PER_VALUE$); + position(pos + length); + } else { + super.put(src, offset, length); +@@ -387,7 +391,7 @@ + assert (pos <= lim); + int rem = (pos <= lim ? lim - pos : 0); + +- unsafe.copyMemory(ix(pos), ix(0), rem << $LG_BYTES_PER_VALUE$); ++ unsafe.copyMemory(ix(pos), ix(0), (long)rem << $LG_BYTES_PER_VALUE$); + position(rem); + limit(capacity()); + discardMark(); +--- ./jdk/src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java 2015-12-12 10:53:29.711200000 -0800 ++++ ./jdk/src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java 2015-10-24 06:21:17.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. @@ -10534,8 +10827,18 @@ /** * A weak hash map, mapping classes to weak hash maps that map * method objects to method hashes. -@@ -144,6 +164,9 @@ +@@ -142,8 +162,19 @@ + public Object invoke(Object proxy, Method method, Object[] args) + throws Throwable { ++ if (! Proxy.isProxyClass(proxy.getClass())) { ++ throw new IllegalArgumentException("not a proxy"); ++ } ++ ++ if (Proxy.getInvocationHandler(proxy) != this) { ++ throw new IllegalArgumentException("handler mismatch"); ++ } ++ if (method.getDeclaringClass() == Object.class) { return invokeObjectMethod(proxy, method, args); + } else if ("finalize".equals(method.getName()) && method.getParameterCount() == 0 && @@ -10544,8 +10847,23 @@ } else { return invokeRemoteMethod(proxy, method, args); } ---- ./jdk/src/share/classes/java/security/Identity.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/java/security/Identity.java Sat Sep 05 06:34:07 2015 -0700 +@@ -163,11 +194,13 @@ + + } else if (name.equals("equals")) { + Object obj = args[0]; ++ InvocationHandler hdlr; + return + proxy == obj || + (obj != null && + Proxy.isProxyClass(obj.getClass()) && +- equals(Proxy.getInvocationHandler(obj))); ++ (hdlr = Proxy.getInvocationHandler(obj)) instanceof RemoteObjectInvocationHandler && ++ this.equals(hdlr)); + + } else if (name.equals("toString")) { + return proxyToString(proxy); +--- ./jdk/src/share/classes/java/security/Identity.java 2015-12-12 10:53:29.711989000 -0800 ++++ ./jdk/src/share/classes/java/security/Identity.java 2015-07-18 13:32:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. @@ -10562,8 +10880,8 @@ String aKeyFormat = aKey.getFormat(); String anotherKeyFormat = anotherKey.getFormat(); if ((aKeyFormat == null) ^ (anotherKeyFormat == null)) ---- ./jdk/src/share/classes/java/security/MessageDigest.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/java/security/MessageDigest.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/java/security/MessageDigest.java 2015-12-12 10:53:29.712352000 -0800 ++++ ./jdk/src/share/classes/java/security/MessageDigest.java 2015-07-18 13:32:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. @@ -10582,8 +10900,8 @@ if (digesta.length != digestb.length) { return false; } ---- ./jdk/src/share/classes/java/security/Signature.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/java/security/Signature.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/java/security/Signature.java 2015-12-12 10:53:29.713266000 -0800 ++++ ./jdk/src/share/classes/java/security/Signature.java 2015-07-18 13:32:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved. @@ -10600,8 +10918,8 @@ } catch (BadPaddingException e) { // e.g. wrong public key used // return false rather than throwing exception ---- ./jdk/src/share/classes/java/security/cert/X509CRLSelector.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/java/security/cert/X509CRLSelector.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/java/security/cert/X509CRLSelector.java 2015-12-12 10:53:29.713699000 -0800 ++++ ./jdk/src/share/classes/java/security/cert/X509CRLSelector.java 2015-07-18 13:32:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. @@ -10625,8 +10943,8 @@ } return false; } ---- ./jdk/src/share/classes/javax/crypto/spec/SecretKeySpec.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/javax/crypto/spec/SecretKeySpec.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/javax/crypto/spec/SecretKeySpec.java 2015-12-12 10:53:29.745346000 -0800 ++++ ./jdk/src/share/classes/javax/crypto/spec/SecretKeySpec.java 2015-08-29 06:20:49.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. @@ -10650,8 +10968,8 @@ + return MessageDigest.isEqual(this.key, thatKey); } } ---- ./jdk/src/share/classes/javax/management/MBeanServerInvocationHandler.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/javax/management/MBeanServerInvocationHandler.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/javax/management/MBeanServerInvocationHandler.java 2015-12-12 10:53:29.746123000 -0800 ++++ ./jdk/src/share/classes/javax/management/MBeanServerInvocationHandler.java 2015-07-18 13:32:33.000000000 -0700 @@ -141,6 +141,12 @@ if (connection == null) { throw new IllegalArgumentException("Null connection"); @@ -10686,8 +11004,55 @@ } throw new RuntimeException("Unexpected method name: " + methodName); ---- ./jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java 2014-03-03 18:58:20.000000000 -0800 ++++ ./jdk/src/share/classes/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java 2015-10-24 06:21:17.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2000, 2015, 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,7 +45,6 @@ + import javax.management.ImmutableDescriptor; + import javax.management.MBeanAttributeInfo; + import com.sun.jmx.remote.util.EnvHelp; +-import sun.reflect.misc.ConstructorUtil; + import sun.reflect.misc.MethodUtil; + import sun.reflect.misc.ReflectUtil; + +@@ -692,8 +691,9 @@ + private static <T> T convertFromString(String s, OpenType<T> openType) { + Class<T> c; + try { +- ReflectUtil.checkPackageAccess(openType.safeGetClassName()); +- c = cast(Class.forName(openType.safeGetClassName())); ++ String className = openType.safeGetClassName(); ++ ReflectUtil.checkPackageAccess(className); ++ c = cast(Class.forName(className)); + } catch (ClassNotFoundException e) { + throw new NoClassDefFoundError(e.toString()); // can't happen + } +@@ -761,11 +761,15 @@ + Class<?> stringArrayClass; + Class<?> targetArrayClass; + try { ++ String baseClassName = baseType.safeGetClassName(); ++ ++ // check access to the provided base type class name and bail out early ++ ReflectUtil.checkPackageAccess(baseClassName); ++ + stringArrayClass = + Class.forName(squareBrackets + "Ljava.lang.String;"); + targetArrayClass = +- Class.forName(squareBrackets + "L" + baseType.safeGetClassName() + +- ";"); ++ Class.forName(squareBrackets + "L" + baseClassName + ";"); + } catch (ClassNotFoundException e) { + throw new NoClassDefFoundError(e.toString()); // can't happen + } +--- ./jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java 2015-12-12 10:53:29.746854000 -0800 ++++ ./jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java 2015-08-29 06:20:49.000000000 -0700 @@ -32,7 +32,6 @@ import java.security.AccessControlContext; import java.security.AccessController; @@ -10704,24 +11069,12 @@ /** * <p>Implementation of the {@link RMIConnection} interface. User -@@ -131,20 +131,24 @@ +@@ -131,21 +131,25 @@ final ClassLoader dcl = defaultClassLoader; - this.classLoaderWithRepository = - AccessController.doPrivileged( -- new PrivilegedAction<ClassLoaderWithRepository>() { -- public ClassLoaderWithRepository run() { -- return new ClassLoaderWithRepository( -- mbeanServer.getClassLoaderRepository(), -- dcl); -- } -- }, -- -- withPermissions( new MBeanPermission("*", "getClassLoaderRepository"), -- new RuntimePermission("createClassLoader")) -- ); -- + ClassLoaderRepository repository = AccessController.doPrivileged( + new PrivilegedAction<ClassLoaderRepository>() { + public ClassLoaderRepository run() { @@ -10731,20 +11084,145 @@ + withPermissions(new MBeanPermission("*", "getClassLoaderRepository")) + ); + this.classLoaderWithRepository = AccessController.doPrivileged( -+ new PrivilegedAction<ClassLoaderWithRepository>() { -+ public ClassLoaderWithRepository run() { -+ return new ClassLoaderWithRepository( + new PrivilegedAction<ClassLoaderWithRepository>() { + public ClassLoaderWithRepository run() { + return new ClassLoaderWithRepository( +- mbeanServer.getClassLoaderRepository(), + repository, -+ dcl); -+ } -+ }, + dcl); + } + }, +- +- withPermissions( new MBeanPermission("*", "getClassLoaderRepository"), +- new RuntimePermission("createClassLoader")) + withPermissions(new RuntimePermission("createClassLoader")) -+ ); + ); +- this.defaultContextClassLoader = AccessController.doPrivileged( ---- ./jdk/src/share/classes/sun/awt/FontConfiguration.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/awt/FontConfiguration.java Sat Sep 05 06:34:07 2015 -0700 + new PrivilegedAction<ClassLoader>() { +--- ./jdk/src/share/classes/javax/security/auth/kerberos/KerberosPrincipal.java 2014-03-03 18:58:25.000000000 -0800 ++++ ./jdk/src/share/classes/javax/security/auth/kerberos/KerberosPrincipal.java 2015-10-24 06:21:17.000000000 -0700 +@@ -112,18 +112,7 @@ + * java.security.krb5.realm system property. + */ + public KerberosPrincipal(String name) { +- +- PrincipalName krb5Principal = null; +- +- try { +- // Appends the default realm if it is missing +- krb5Principal = new PrincipalName(name, KRB_NT_PRINCIPAL); +- } catch (KrbException e) { +- throw new IllegalArgumentException(e.getMessage()); +- } +- nameType = KRB_NT_PRINCIPAL; // default name type +- fullName = krb5Principal.toString(); +- realm = krb5Principal.getRealmString(); ++ this(name, KRB_NT_PRINCIPAL); + } + + /** +@@ -165,6 +154,20 @@ + throw new IllegalArgumentException(e.getMessage()); + } + ++ // A ServicePermission with a principal in the deduced realm and ++ // any action must be granted if no realm is provided by caller. ++ if (krb5Principal.isRealmDeduced() && !Realm.AUTODEDUCEREALM) { ++ SecurityManager sm = System.getSecurityManager(); ++ if (sm != null) { ++ try { ++ sm.checkPermission(new ServicePermission( ++ "@" + krb5Principal.getRealmAsString(), "-")); ++ } catch (SecurityException se) { ++ // Swallow the actual exception to hide info ++ throw new SecurityException("Cannot read realm info"); ++ } ++ } ++ } + this.nameType = nameType; + fullName = krb5Principal.toString(); + realm = krb5Principal.getRealmString(); +--- ./jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java 2014-03-03 18:58:25.000000000 -0800 ++++ ./jdk/src/share/classes/javax/security/auth/kerberos/ServicePermission.java 2015-10-24 06:21:17.000000000 -0700 +@@ -50,7 +50,7 @@ + * used within. + * <p> + * The service principal name is the canonical name of the +- * {@code KereberosPrincipal} supplying the service, that is ++ * {@code KerberosPrincipal} supplying the service, that is + * the KerberosPrincipal represents a Kerberos service + * principal. This name is treated in a case sensitive manner. + * An asterisk may appear by itself, to signify any service principal. +@@ -145,6 +145,9 @@ + * @param action the action string + */ + public ServicePermission(String servicePrincipal, String action) { ++ // Note: servicePrincipal can be "@REALM" which means any principal in ++ // this realm implies it. action can be "-" which means any ++ // action implies it. + super(servicePrincipal); + init(servicePrincipal, getMask(action)); + } +@@ -188,7 +191,9 @@ + + boolean impliesIgnoreMask(ServicePermission p) { + return ((this.getName().equals("*")) || +- this.getName().equals(p.getName())); ++ this.getName().equals(p.getName()) || ++ (p.getName().startsWith("@") && ++ this.getName().endsWith(p.getName()))); + } + + /** +@@ -295,7 +300,10 @@ + /** + * Convert an action string to an integer actions mask. + * +- * @param action the action string ++ * Note: if action is "-", action will be NONE, which means any ++ * action implies it. ++ * ++ * @param action the action string. + * @return the action mask + */ + private static int getMask(String action) { +@@ -312,9 +320,11 @@ + + char[] a = action.toCharArray(); + +- int i = a.length - 1; +- if (i < 0) ++ if (a.length == 1 && a[0] == '-') { + return mask; ++ } ++ ++ int i = a.length - 1; + + while (i != -1) { + char c; +@@ -475,6 +485,17 @@ + + ServicePermission np = (ServicePermission) permission; + int desired = np.getMask(); ++ ++ if (desired == 0) { ++ for (Permission p: perms) { ++ ServicePermission sp = (ServicePermission)p; ++ if (sp.impliesIgnoreMask(np)) { ++ return true; ++ } ++ } ++ return false; ++ } ++ + int effective = 0; + int needed = desired; + +--- ./jdk/src/share/classes/sun/awt/FontConfiguration.java 2015-12-12 10:53:20.071946000 -0800 ++++ ./jdk/src/share/classes/sun/awt/FontConfiguration.java 2015-10-24 06:21:20.000000000 -0700 @@ -1146,7 +1146,7 @@ */ HashMap<String, Boolean> existsMap; @@ -10754,8 +11232,8 @@ return false; } else if (existsMap == null) { existsMap = new HashMap<String, Boolean>(); ---- ./jdk/src/share/classes/sun/awt/OSInfo.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/awt/OSInfo.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/awt/OSInfo.java 2014-03-03 18:58:41.000000000 -0800 ++++ ./jdk/src/share/classes/sun/awt/OSInfo.java 2015-10-24 06:21:20.000000000 -0700 @@ -39,6 +39,7 @@ WINDOWS, LINUX, @@ -10775,8 +11253,50 @@ if (osName.contains("OS X")) { return MACOSX; } ---- ./jdk/src/share/classes/sun/font/FontUtilities.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/font/FontUtilities.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java 2015-12-12 10:53:29.769287000 -0800 ++++ ./jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java 2015-10-24 06:21:17.000000000 -0700 +@@ -2905,13 +2905,13 @@ + return comp; + } + +-// if (flavor1.isFlavorTextType()) { +-// return 1; +-// } +-// +-// if (flavor2.isFlavorTextType()) { +-// return -1; +-// } ++ if (flavor1.isFlavorTextType()) { ++ return 1; ++ } ++ ++ if (flavor2.isFlavorTextType()) { ++ return -1; ++ } + + // Next, look for application/x-java-* types. Prefer unknown + // MIME types because if the user provides his own data flavor, +--- ./jdk/src/share/classes/sun/awt/resources/awt_sv.properties 2015-12-12 10:53:29.770049000 -0800 ++++ ./jdk/src/share/classes/sun/awt/resources/awt_sv.properties 2015-10-24 06:21:17.000000000 -0700 +@@ -19,14 +19,14 @@ + AWT.pause=Paus + AWT.capsLock=Caps Lock + AWT.escape=Esc +-AWT.space=Mellanslag ++AWT.space=Blanksteg + AWT.pgup=Sida upp + AWT.pgdn=Sida ned + AWT.end=End + AWT.home=Hem + AWT.left=V\u00E4nster + AWT.up=Upp +-AWT.right=H\u00F6gerpil ++AWT.right=H\u00F6ger + AWT.down=Nedpil + AWT.begin=Begin + AWT.comma=Kommatecken +--- ./jdk/src/share/classes/sun/font/FontUtilities.java 2014-03-03 18:58:43.000000000 -0800 ++++ ./jdk/src/share/classes/sun/font/FontUtilities.java 2015-10-24 06:21:20.000000000 -0700 @@ -48,6 +48,8 @@ public static boolean isLinux; @@ -10795,8 +11315,8 @@ isMacOSX = osName.contains("OS X"); // TODO: MacOSX String t2kStr = System.getProperty("sun.java2d.font.scaler"); ---- ./jdk/src/share/classes/sun/font/SunFontManager.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/font/SunFontManager.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/font/SunFontManager.java 2015-12-12 10:53:27.521479000 -0800 ++++ ./jdk/src/share/classes/sun/font/SunFontManager.java 2015-10-24 06:21:20.000000000 -0700 @@ -418,7 +418,7 @@ * registerFonts method as on-screen these JRE fonts * always go through the T2K rasteriser. @@ -10806,8 +11326,61 @@ /* Linux font configuration uses these fonts */ registerFontDir(jreFontDirName); } ---- ./jdk/src/share/classes/sun/misc/JavaNetAccess.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/misc/JavaNetAccess.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/java2d/opengl/OGLContext.java 2014-03-03 18:58:45.000000000 -0800 ++++ ./jdk/src/share/classes/sun/java2d/opengl/OGLContext.java 2015-10-24 06:21:17.000000000 -0700 +@@ -194,6 +194,10 @@ + /** Indicates the presence of the GL_ARB_texture_rectangle extension. */ + @Native + static final int CAPS_EXT_TEXRECT = (FIRST_PRIVATE_CAP << 4); ++ /** Indicates the presence of the GL_NV_texture_barrier extension. */ ++ @Native ++ static final int CAPS_EXT_TEXBARRIER = (FIRST_PRIVATE_CAP << 5); ++ + + OGLContextCaps(int caps, String adapterId) { + super(caps, adapterId); +@@ -223,6 +227,9 @@ + if ((caps & CAPS_EXT_TEXRECT) != 0) { + buf.append("CAPS_EXT_TEXRECT|"); + } ++ if ((caps & CAPS_EXT_TEXBARRIER) != 0) { ++ buf.append("CAPS_EXT_TEXBARRIER|"); ++ } + return buf.toString(); + } + } +--- ./jdk/src/share/classes/sun/launcher/resources/launcher_pt_BR.properties 2015-12-12 10:53:29.775468000 -0800 ++++ ./jdk/src/share/classes/sun/launcher/resources/launcher_pt_BR.properties 2015-10-24 06:21:17.000000000 -0700 +@@ -40,13 +40,13 @@ + java.launcher.X.usage=\ -Xmixed execu\u00E7\u00E3o no modo misto (padr\u00E3o)\n -Xint execu\u00E7\u00E3o somente no modo interpretado\n -Xbootclasspath:<diret\u00F3rios e arquivos zip/jar separados por {0}>\n define o caminho de pesquisa para classes e recursos de inicializa\u00E7\u00E3o\n -Xbootclasspath/a:<diret\u00F3rios e arquivos zip/jar separados por {0}>\n anexa no final do caminho da classe de inicializa\u00E7\u00E3o\n -Xbootclasspath/p:<diret\u00F3rios e arquivos zip/jar separados por {0}>\n anexa no in\u00EDcio do caminho da classe de inicializa\u00E7\u00E3o\n -Xdiag mostra mensagens de diagn\u00F3stico adicionais\n -Xnoclassgc desativa a coleta de lixo da classe\n -Xincgc ativa a coleta de lixo incremental\n -Xloggc:<arquivo> registra o status do GC status em um arquivo com marca\u00E7\u00F5es de data e hor\u00E1rio\n -Xbatch desativa a compila\u00E7\u00E3o em segundo plano\n -Xms<tamanho> define o tamanho inicial do heap Java\n -Xmx<tamanho> define o tamanho m\u00E1ximo do heap Java\n -Xss<tamanho> define o tamanho da pilha de threads java\n -Xprof produz dados de perfil da cpu\n -Xfuture ativa verifica\u00E7\u00F5es de n\u00EDvel m\u00E1ximo de exig\u00EAncia, prevendo o valor padr\u00E3o futuro\n -Xrs reduz o uso de sinais do SO pelo(a) Java/VM (consulte a documenta\u00E7\u00E3o)\n -Xcheck:jni executa verifica\u00E7\u00F5es adicionais de fun\u00E7\u00F5es da JNI\n -Xshare:off n\u00E3o tenta usar dados da classe compartilhada\n -Xshare:auto se poss\u00EDvel, usa dados da classe compartilhada (padr\u00E3o)\n -Xshare:on requer o uso de dados da classe compartilhada, caso contr\u00E1rio haver\u00E1 falha.\n -XshowSettings mostra todas as defini\u00E7\u00F5es e continua\n -XshowSettings:all\n mostra todas as defini\u00E7\u00F5es e continua\n -XshowSettings:vm mostra todas as defini\u00E7\u00F5es relacionadas \u00E0 vm e continua\n -XshowSettings:properties\n mostra todas as defini\u00E7\u00F5es da propriedade e continua\n -XshowSettings:locale\n mostra todas as defini\u00E7\u00F5es relativas \u00E0s configura\u00E7\u00F5es regionais e continua\n\nAs -X options n\u00E3o s\u00E3o padronizadas e est\u00E3o sujeitas a altera\u00E7\u00F5es sem aviso.\n + + # Translators please note do not translate the options themselves +-java.launcher.X.macosx.usage=\nAs op\u00E7\u00F5es a seguir s\u00E3o espec\u00EDficas para o Mac OS X:\n -XstartOnFirstThread\n executa o m\u00E9todo main() no primeiro thread (AppKit)\n -Xdock:name=<nome da aplica\u00E7\u00E3o>"\n substitui o nome da aplica\u00E7\u00E3o padr\u00E3o exibido no encaixe\n -Xdock:icon=<caminho para o arquivo do \u00EDcone>\n substitui o \u00EDcone exibido no encaixe\n\n ++java.launcher.X.macosx.usage=\nAs op\u00E7\u00F5es a seguir s\u00E3o espec\u00EDficas para o Mac OS X:\n -XstartOnFirstThread\n executa o m\u00E9todo main() no primeiro thread (AppKit)\n -Xdock:name=<nome do aplicativo>"\n substitui o nome do aplicativo padr\u00E3o exibido no encaixe\n -Xdock:icon=<caminho para o arquivo do \u00EDcone>\n substitui o \u00EDcone exibido no encaixe\n\n + + java.launcher.cls.error1=Erro: N\u00E3o foi poss\u00EDvel localizar nem carregar a classe principal {0} + java.launcher.cls.error2=Erro: o m\u00E9todo main n\u00E3o \u00E9 {0} na classe {1}; defina o m\u00E9todo main como:\n public static void main(String[] args) + java.launcher.cls.error3=Erro: o m\u00E9todo main deve retornar um valor do tipo void na classe {0}; \ndefina o m\u00E9todo main como:\n public static void main(String[] args) +-java.launcher.cls.error4=Erro: o m\u00E9todo main n\u00E3o foi encontrado na classe {0}; defina o m\u00E9todo main como:\\n public static void main(String[] args)\\nou uma classe da aplica\u00E7\u00E3o JavaFX deve expandir {1} +-java.launcher.cls.error5=Erro: os componentes de runtime do JavaFX n\u00E3o foram encontrados. Eles s\u00E3o obrigat\u00F3rios para executar esta aplica\u00E7\u00E3o ++java.launcher.cls.error4=Erro: o m\u00E9todo main n\u00E3o foi encontrado na classe {0}; defina o m\u00E9todo main como:\n public static void main(String[] args)\nou uma classe de aplicativo JavaFX deve expandir {1} ++java.launcher.cls.error5=Erro: os componentes de runtime do JavaFX n\u00E3o foram encontrados. Eles s\u00E3o obrigat\u00F3rios para executar este aplicativo + java.launcher.jar.error1=Erro: ocorreu um erro inesperado ao tentar abrir o arquivo {0} + java.launcher.jar.error2=manifesto n\u00E3o encontrado em {0} + java.launcher.jar.error3=nenhum atributo de manifesto principal em {0} +--- ./jdk/src/share/classes/sun/launcher/resources/launcher_sv.properties 2015-12-12 10:53:29.775781000 -0800 ++++ ./jdk/src/share/classes/sun/launcher/resources/launcher_sv.properties 2015-10-24 06:21:17.000000000 -0700 +@@ -46,7 +46,7 @@ + java.launcher.cls.error2=Fel: Huvudmetoden \u00E4r inte {0} i klassen {1}, definiera huvudmetoden som:\n public static void main(String[] args) + java.launcher.cls.error3=Fel: Huvudmetoden m\u00E5ste returnera ett v\u00E4rde av typen void i klassen {0}, \ndefiniera huvudmetoden som:\n public static void main(String[] args) + java.launcher.cls.error4=Fel: Huvudmetoden finns inte i klassen {0}, definiera huvudmetoden som:\n public static void main(String[] args)\neller s\u00E5 m\u00E5ste en JavaFX-applikationsklass ut\u00F6ka {1} +-java.launcher.cls.error5=Fel: JavaFX-k\u00F6rningskomponenter saknas, och de kr\u00E4vs f\u00F6r att kunna k\u00F6ra den h\u00E4r applikationen ++java.launcher.cls.error5=Fel: JavaFX-exekveringskomponenter saknas, och de kr\u00E4vs f\u00F6r att kunna k\u00F6ra den h\u00E4r applikationen + java.launcher.jar.error1=Fel: Ett ov\u00E4ntat fel intr\u00E4ffade n\u00E4r filen {0} skulle \u00F6ppnas + java.launcher.jar.error2=manifest finns inte i {0} + java.launcher.jar.error3=inget huvudmanifestattribut i {0} +--- ./jdk/src/share/classes/sun/misc/JavaNetAccess.java 2015-12-12 10:53:29.777296000 -0800 ++++ ./jdk/src/share/classes/sun/misc/JavaNetAccess.java 2015-07-18 13:32:33.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. @@ -10833,8 +11406,20 @@ + */ + String getOriginalHostName(InetAddress ia); } ---- ./jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java 2015-12-12 10:53:29.779263000 -0800 ++++ ./jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java 2015-10-24 06:21:17.000000000 -0700 +@@ -484,7 +484,8 @@ + private void checkMessageHeader(String key, String value) { + char LF = '\n'; + int index = key.indexOf(LF); +- if (index != -1) { ++ int index1 = key.indexOf(':'); ++ if (index != -1 || index1 != -1) { + throw new IllegalArgumentException( + "Illegal character(s) in message header field: " + key); + } +--- ./jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java 2015-12-12 10:53:29.781937000 -0800 ++++ ./jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java 2015-10-24 06:21:20.000000000 -0700 @@ -1306,7 +1306,7 @@ String osName = AccessController.doPrivileged( new GetPropertyAction("os.name")); @@ -10844,8 +11429,8 @@ charset("x-COMPOUND_TEXT", "COMPOUND_TEXT", new String[] { "COMPOUND_TEXT", // JDK historical ---- ./jdk/src/share/classes/sun/print/PSPrinterJob.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/print/PSPrinterJob.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/print/PSPrinterJob.java 2014-03-03 18:58:54.000000000 -0800 ++++ ./jdk/src/share/classes/sun/print/PSPrinterJob.java 2015-10-24 06:21:20.000000000 -0700 @@ -1587,9 +1587,31 @@ } @@ -10880,8 +11465,129 @@ if ((pFlags & PRINTER) != 0) { execCmd[n++] = "-P" + printer; } ---- ./jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/rmi/transport/DGCClient.java 2014-03-03 18:58:57.000000000 -0800 ++++ ./jdk/src/share/classes/sun/rmi/transport/DGCClient.java 2015-10-24 06:21:17.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1996, 2015, 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 +@@ -26,6 +26,7 @@ + + import java.lang.ref.PhantomReference; + import java.lang.ref.ReferenceQueue; ++import java.net.SocketPermission; + import java.security.AccessController; + import java.security.PrivilegedAction; + import java.util.HashMap; +@@ -46,6 +47,10 @@ + import sun.rmi.server.Util; + import sun.security.action.GetLongAction; + ++import java.security.AccessControlContext; ++import java.security.Permissions; ++import java.security.ProtectionDomain; ++ + /** + * DGCClient implements the client-side of the RMI distributed garbage + * collection system. +@@ -113,6 +118,18 @@ + /** ObjID for server-side DGC object */ + private static final ObjID dgcID = new ObjID(ObjID.DGC_ID); + ++ /** ++ * An AccessControlContext with only socket permissions, ++ * suitable for an RMIClientSocketFactory. ++ */ ++ private static final AccessControlContext SOCKET_ACC; ++ static { ++ Permissions perms = new Permissions(); ++ perms.add(new SocketPermission("*", "connect,resolve")); ++ ProtectionDomain[] pd = { new ProtectionDomain(null, perms) }; ++ SOCKET_ACC = new AccessControlContext(pd); ++ } ++ + /* + * Disallow anyone from creating one of these. + */ +@@ -570,13 +587,20 @@ + } + } + +- if (needRenewal) { +- makeDirtyCall(refsToDirty, sequenceNum); ++ boolean needRenewal_ = needRenewal; ++ Set<RefEntry> refsToDirty_ = refsToDirty; ++ long sequenceNum_ = sequenceNum; ++ AccessController.doPrivileged(new PrivilegedAction<Void>() { ++ public Void run() { ++ if (needRenewal_) { ++ makeDirtyCall(refsToDirty_, sequenceNum_); + } + + if (!pendingCleans.isEmpty()) { + makeCleanCalls(); + } ++ return null; ++ }}, SOCKET_ACC); + } while (!removed || !pendingCleans.isEmpty()); + } + } +--- ./jdk/src/share/classes/sun/rmi/transport/DGCImpl.java 2014-03-03 18:58:57.000000000 -0800 ++++ ./jdk/src/share/classes/sun/rmi/transport/DGCImpl.java 2015-10-24 06:21:17.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1996, 2015, 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 +@@ -24,6 +24,7 @@ + */ + package sun.rmi.transport; + ++import java.net.SocketPermission; + import java.rmi.Remote; + import java.rmi.RemoteException; + import java.rmi.dgc.DGC; +@@ -33,8 +34,11 @@ + import java.rmi.server.ObjID; + import java.rmi.server.RemoteServer; + import java.rmi.server.ServerNotActiveException; ++import java.security.AccessControlContext; + import java.security.AccessController; ++import java.security.Permissions; + import java.security.PrivilegedAction; ++import java.security.ProtectionDomain; + import java.util.ArrayList; + import java.util.HashSet; + import java.util.HashMap; +@@ -296,8 +300,19 @@ + Util.createProxy(DGCImpl.class, + new UnicastRef(ref), true); + disp.setSkeleton(dgc); +- Target target = +- new Target(dgc, disp, stub, dgcID, true); ++ ++ Permissions perms = new Permissions(); ++ perms.add(new SocketPermission("*", "accept,resolve")); ++ ProtectionDomain[] pd = { new ProtectionDomain(null, perms) }; ++ AccessControlContext acceptAcc = new AccessControlContext(pd); ++ ++ Target target = AccessController.doPrivileged( ++ new PrivilegedAction<Target>() { ++ public Target run() { ++ return new Target(dgc, disp, stub, dgcID, true); ++ } ++ }, acceptAcc); ++ + ObjectTable.putTarget(target); + } catch (RemoteException e) { + throw new Error( +--- ./jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java 2014-03-03 18:58:58.000000000 -0800 ++++ ./jdk/src/share/classes/sun/security/jgss/GSSManagerImpl.java 2015-10-24 06:21:20.000000000 -0700 @@ -48,6 +48,7 @@ public Boolean run() { String osname = System.getProperty("os.name"); @@ -10890,8 +11596,95 @@ osname.contains("OS X") || osname.startsWith("Linux")) { return new Boolean(System.getProperty ---- ./jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/jgss/krb5/Krb5NameElement.java 2014-03-03 18:58:58.000000000 -0800 ++++ ./jdk/src/share/classes/sun/security/jgss/krb5/Krb5NameElement.java 2015-10-24 06:21:17.000000000 -0700 +@@ -28,7 +28,10 @@ + import org.ietf.jgss.*; + import sun.security.jgss.spi.*; + import sun.security.krb5.PrincipalName; ++import sun.security.krb5.Realm; + import sun.security.krb5.KrbException; ++ ++import javax.security.auth.kerberos.ServicePermission; + import java.io.UnsupportedEncodingException; + import java.net.InetAddress; + import java.net.UnknownHostException; +@@ -126,6 +129,18 @@ + throw new GSSException(GSSException.BAD_NAME, -1, e.getMessage()); + } + ++ if (principalName.isRealmDeduced() && !Realm.AUTODEDUCEREALM) { ++ SecurityManager sm = System.getSecurityManager(); ++ if (sm != null) { ++ try { ++ sm.checkPermission(new ServicePermission( ++ "@" + principalName.getRealmAsString(), "-")); ++ } catch (SecurityException se) { ++ // Do not chain the actual exception to hide info ++ throw new GSSException(GSSException.FAILURE); ++ } ++ } ++ } + return new Krb5NameElement(principalName, gssNameStr, gssNameType); + } + +@@ -198,7 +213,7 @@ + * If either name denotes an anonymous principal, the call should + * return false. + * +- * @param name to be compared with ++ * @param other to be compared with + * @returns true if they both refer to the same entity, else false + * @exception GSSException with major codes of BAD_NAMETYPE, + * BAD_NAME, FAILURE +--- ./jdk/src/share/classes/sun/security/jgss/wrapper/GSSNameElement.java 2015-12-12 10:53:26.314950000 -0800 ++++ ./jdk/src/share/classes/sun/security/jgss/wrapper/GSSNameElement.java 2015-10-24 06:21:17.000000000 -0700 +@@ -30,6 +30,7 @@ + import java.security.Security; + import java.io.IOException; + import java.io.UnsupportedEncodingException; ++import sun.security.krb5.Realm; + import sun.security.jgss.GSSUtil; + import sun.security.util.ObjectIdentifier; + import sun.security.util.DerInputStream; +@@ -38,6 +39,8 @@ + import sun.security.jgss.GSSExceptionImpl; + import sun.security.jgss.spi.GSSNameSpi; + ++import javax.security.auth.kerberos.ServicePermission; ++ + /** + * This class is essentially a wrapper class for the gss_name_t + * structure of the native GSS library. +@@ -150,6 +153,26 @@ + pName = cStub.importName(name, nameType); + setPrintables(); + ++ SecurityManager sm = System.getSecurityManager(); ++ if (sm != null && !Realm.AUTODEDUCEREALM) { ++ String krbName = getKrbName(); ++ int atPos = krbName.lastIndexOf('@'); ++ if (atPos != -1) { ++ String atRealm = krbName.substring(atPos); ++ if (nameType.equals(GSSUtil.NT_GSS_KRB5_PRINCIPAL) ++ && new String(nameBytes).endsWith(atRealm)) { ++ // Created from Kerberos name with realm, no need to check ++ } else { ++ try { ++ sm.checkPermission(new ServicePermission(atRealm, "-")); ++ } catch (SecurityException se) { ++ // Do not chain the actual exception to hide info ++ throw new GSSException(GSSException.FAILURE); ++ } ++ } ++ } ++ } ++ + SunNativeProvider.debug("Imported " + printableName + " w/ type " + + printableType); + } +--- ./jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java 2015-12-12 10:53:27.541965000 -0800 ++++ ./jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java 2015-10-24 06:21:20.000000000 -0700 @@ -90,6 +90,12 @@ "libgssapi_krb5.so", "libgssapi_krb5.so.2", @@ -10905,8 +11698,206 @@ } else if (osname.contains("OS X")) { gssLibs = new String[]{ "libgssapi_krb5.dylib", ---- ./jdk/src/share/classes/sun/security/pkcs11/P11Key.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/pkcs11/P11Key.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java 2014-03-03 18:58:59.000000000 -0800 ++++ ./jdk/src/share/classes/sun/security/krb5/KrbServiceLocator.java 2015-10-24 06:21:17.000000000 -0700 +@@ -25,6 +25,11 @@ + + package sun.security.krb5; + ++import sun.security.krb5.internal.Krb5; ++ ++import java.security.AccessController; ++import java.security.PrivilegedActionException; ++import java.security.PrivilegedExceptionAction; + import java.util.Arrays; + import java.util.Hashtable; + import java.util.Random; +@@ -52,6 +57,8 @@ + + private static final Random random = new Random(); + ++ private static final boolean DEBUG = Krb5.DEBUG; ++ + private KrbServiceLocator() { + } + +@@ -62,8 +69,7 @@ + * Information on the mapping of DNS hostnames and domain names + * to Kerberos realms is stored using DNS TXT records + * +- * @param domainName A string domain name. +- * @param environment The possibly null environment of the context. ++ * @param realmName A string realm name. + * @return An ordered list of hostports for the Kerberos service or null if + * the service has not been located. + */ +@@ -81,8 +87,18 @@ + if (!(ctx instanceof DirContext)) { + return null; // cannot create a DNS context + } +- Attributes attrs = +- ((DirContext)ctx).getAttributes(dnsUrl, SRV_TXT_ATTR); ++ Attributes attrs = null; ++ try { ++ // both connect and accept are needed since DNS is thru UDP ++ attrs = AccessController.doPrivileged( ++ (PrivilegedExceptionAction<Attributes>) ++ () -> ((DirContext)ctx).getAttributes( ++ dnsUrl, SRV_TXT_ATTR), ++ null, ++ new java.net.SocketPermission("*", "connect,accept")); ++ } catch (PrivilegedActionException e) { ++ throw (NamingException)e.getCause(); ++ } + Attribute attr; + + if (attrs != null && ((attr = attrs.get(SRV_TXT)) != null)) { +@@ -124,7 +140,8 @@ + * Queries DNS for a list of KERBEROS Service Location Records (SRV) for a + * given domain name. + * +- * @param domainName A string domain name. ++ * @param realmName A string realm name. ++ * @param protocol the protocol string, can be "_udp" or "_tcp" + * @return An ordered list of hostports for the Kerberos service or null if + * the service has not been located. + */ +@@ -142,8 +159,20 @@ + if (!(ctx instanceof DirContext)) { + return null; // cannot create a DNS context + } +- Attributes attrs = +- ((DirContext)ctx).getAttributes(dnsUrl, SRV_RR_ATTR); ++ ++ Attributes attrs = null; ++ try { ++ // both connect and accept are needed since DNS is thru UDP ++ attrs = AccessController.doPrivileged( ++ (PrivilegedExceptionAction<Attributes>) ++ () -> ((DirContext)ctx).getAttributes( ++ dnsUrl, SRV_RR_ATTR), ++ null, ++ new java.net.SocketPermission("*", "connect,accept")); ++ } catch (PrivilegedActionException e) { ++ throw (NamingException)e.getCause(); ++ } ++ + Attribute attr; + + if (attrs != null && ((attr = attrs.get(SRV_RR)) != null)) { +--- ./jdk/src/share/classes/sun/security/krb5/PrincipalName.java 2014-03-03 18:58:59.000000000 -0800 ++++ ./jdk/src/share/classes/sun/security/krb5/PrincipalName.java 2015-10-24 06:21:17.000000000 -0700 +@@ -123,6 +123,13 @@ + */ + private final Realm nameRealm; // not null + ++ ++ /** ++ * When constructing a PrincipalName, whether the realm is included in ++ * the input, or deduced from default realm or domain-realm mapping. ++ */ ++ private final boolean realmDeduced; ++ + // cached default salt, not used in clone + private transient String salt = null; + +@@ -143,6 +150,7 @@ + this.nameType = nameType; + this.nameStrings = nameStrings.clone(); + this.nameRealm = nameRealm; ++ this.realmDeduced = false; + } + + // This method is called by Windows NativeCred.c +@@ -150,11 +158,6 @@ + this(KRB_NT_UNKNOWN, nameParts, new Realm(realm)); + } + +- public PrincipalName(String[] nameParts, int type) +- throws IllegalArgumentException, RealmException { +- this(type, nameParts, Realm.getDefault()); +- } +- + // Validate a nameStrings argument + private static void validateNameStrings(String[] ns) { + if (ns == null) { +@@ -226,7 +229,7 @@ + * <a href="http://www.ietf.org/rfc/rfc4120.txt"> + * http://www.ietf.org/rfc/rfc4120.txt</a>. + * +- * @param encoding a Der-encoded data. ++ * @param encoding DER-encoded PrincipalName (without Realm) + * @param realm the realm for this name + * @exception Asn1Exception if an error occurs while decoding + * an ASN1 encoded data. +@@ -240,6 +243,7 @@ + if (realm == null) { + throw new IllegalArgumentException("Null realm not allowed"); + } ++ realmDeduced = false; + nameRealm = realm; + DerValue der; + if (encoding == null) { +@@ -394,6 +398,10 @@ + if (realm == null) { + realm = Realm.parseRealmAtSeparator(name); + } ++ ++ // No realm info from parameter and string, must deduce later ++ realmDeduced = realm == null; ++ + switch (type) { + case KRB_NT_SRV_HST: + if (nameParts.length >= 2) { +@@ -413,8 +421,8 @@ + hostName.toLowerCase(Locale.ENGLISH)+".")) { + hostName = canonicalized; + } +- } catch (UnknownHostException e) { +- // no canonicalization, use old ++ } catch (UnknownHostException | SecurityException e) { ++ // not canonicalized or no permission to do so, use old + } + nameParts[1] = hostName.toLowerCase(Locale.ENGLISH); + } +@@ -680,4 +688,7 @@ + return result; + } + ++ public boolean isRealmDeduced() { ++ return realmDeduced; ++ } + } +--- ./jdk/src/share/classes/sun/security/krb5/Realm.java 2014-03-03 18:58:59.000000000 -0800 ++++ ./jdk/src/share/classes/sun/security/krb5/Realm.java 2015-10-24 06:21:17.000000000 -0700 +@@ -47,6 +47,12 @@ + * This class is immutable. + */ + public class Realm implements Cloneable { ++ ++ public static final boolean AUTODEDUCEREALM = ++ java.security.AccessController.doPrivileged( ++ new sun.security.action.GetBooleanAction( ++ "sun.security.krb5.autodeducerealm")); ++ + private final String realm; // not null nor empty + + public Realm(String name) throws RealmException { +--- ./jdk/src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java 2015-12-12 10:53:27.542427000 -0800 ++++ ./jdk/src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java 2015-10-24 06:21:17.000000000 -0700 +@@ -146,8 +146,9 @@ + } + try { + return new PrincipalName( ++ type, + result.toArray(new String[result.size()]), +- type); ++ Realm.getDefault()); + } catch (RealmException re) { + return null; + } +--- ./jdk/src/share/classes/sun/security/pkcs11/P11Key.java 2015-12-12 10:53:29.788373000 -0800 ++++ ./jdk/src/share/classes/sun/security/pkcs11/P11Key.java 2015-08-29 06:20:51.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. @@ -10923,8 +11914,8 @@ } public int hashCode() { ---- ./jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java 2015-12-12 10:53:29.789237000 -0800 ++++ ./jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java 2015-07-18 13:32:33.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. @@ -10964,8 +11955,8 @@ return Arrays.equals(array1, array2); } ---- ./jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java 2015-12-12 10:53:29.790250000 -0800 ++++ ./jdk/src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java 2015-08-29 06:20:51.000000000 -0700 @@ -2050,7 +2050,7 @@ "(MAC algorithm: " + m.getAlgorithm() + ")"); } @@ -10975,8 +11966,67 @@ throw new SecurityException("Failed PKCS12" + " integrity checking"); } ---- ./jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java 2015-12-12 10:53:19.971996000 -0800 ++++ ./jdk/src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java 2015-10-24 06:21:17.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2009, 2015, 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 +@@ -77,6 +77,13 @@ + private final static Set<CryptoPrimitive> SIGNATURE_PRIMITIVE_SET = + Collections.unmodifiableSet(EnumSet.of(CryptoPrimitive.SIGNATURE)); + ++ private final static Set<CryptoPrimitive> KU_PRIMITIVE_SET = ++ Collections.unmodifiableSet(EnumSet.of( ++ CryptoPrimitive.SIGNATURE, ++ CryptoPrimitive.KEY_ENCAPSULATION, ++ CryptoPrimitive.PUBLIC_KEY_ENCRYPTION, ++ CryptoPrimitive.KEY_AGREEMENT)); ++ + private final static DisabledAlgorithmConstraints + certPathDefaultConstraints = new DisabledAlgorithmConstraints( + DisabledAlgorithmConstraints.PROPERTY_CERTPATH_DISABLED_ALGS); +@@ -210,9 +217,11 @@ + null, null, -1, PKIXReason.INVALID_KEY_USAGE); + } + ++ // Assume all key usage bits are set if key usage is not present ++ Set<CryptoPrimitive> primitives = KU_PRIMITIVE_SET; ++ + if (keyUsage != null) { +- Set<CryptoPrimitive> primitives = +- EnumSet.noneOf(CryptoPrimitive.class); ++ primitives = EnumSet.noneOf(CryptoPrimitive.class); + + if (keyUsage[0] || keyUsage[1] || keyUsage[5] || keyUsage[6]) { + // keyUsage[0]: KeyUsage.digitalSignature +@@ -237,14 +246,18 @@ + // KeyUsage.encipherOnly and KeyUsage.decipherOnly are + // undefined in the absence of the keyAgreement bit. + +- if (!primitives.isEmpty()) { ++ if (primitives.isEmpty()) { ++ throw new CertPathValidatorException( ++ "incorrect KeyUsage extension", ++ null, null, -1, PKIXReason.INVALID_KEY_USAGE); ++ } ++ } ++ + if (!constraints.permits(primitives, currPubKey)) { + throw new CertPathValidatorException( + "algorithm constraints check failed", + null, null, -1, BasicReason.ALGORITHM_CONSTRAINED); + } +- } +- } + + // Check with previous cert for signature algorithm and public key + if (prevPubKey != null) { +--- ./jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java 2015-12-12 10:53:29.796575000 -0800 ++++ ./jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java 2015-07-18 13:32:33.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. @@ -11034,8 +12084,8 @@ { throw new CertPathValidatorException( "Response is unreliable: its validity " + ---- ./jdk/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java 2015-12-12 10:53:29.796887000 -0800 ++++ ./jdk/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java 2015-07-18 13:32:33.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. @@ -11064,8 +12114,37 @@ certPathCheckers.add(new AlgorithmChecker(anchor)); certPathCheckers.add(new KeyChecker(certPathLen, params.targetCertConstraints())); ---- ./jdk/src/share/classes/sun/security/rsa/RSASignature.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/rsa/RSASignature.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/provider/certpath/RevocationChecker.java 2015-12-12 10:53:29.797788000 -0800 ++++ ./jdk/src/share/classes/sun/security/provider/certpath/RevocationChecker.java 2015-10-24 06:21:17.000000000 -0700 +@@ -1041,12 +1041,9 @@ + boolean signFlag = true; + List<? extends Certificate> cpList = + cpbr.getCertPath().getCertificates(); +- if (cpList.isEmpty()) { +- return; +- } + try { +- for (int i = cpList.size()-1; i >= 0; i-- ) { +- X509Certificate cert = (X509Certificate)cpList.get(i); ++ for (int i = cpList.size() - 1; i >= 0; i--) { ++ X509Certificate cert = (X509Certificate) cpList.get(i); + + if (debug != null) { + debug.println("RevocationChecker.buildToNewKey()" +@@ -1073,8 +1070,10 @@ + // If it doesn't check out, try to find a different key. + // And if we can't find a key, then return false. + PublicKey newKey = cpbr.getPublicKey(); ++ X509Certificate newCert = cpList.isEmpty() ? ++ null : (X509Certificate) cpList.get(0); + try { +- checkCRLs(currCert, newKey, (X509Certificate) cpList.get(0), ++ checkCRLs(currCert, newKey, newCert, + true, false, null, params.trustAnchors()); + // If that passed, the cert is OK! + return; +--- ./jdk/src/share/classes/sun/security/rsa/RSASignature.java 2015-12-12 10:53:29.798587000 -0800 ++++ ./jdk/src/share/classes/sun/security/rsa/RSASignature.java 2015-07-18 13:32:33.000000000 -0700 @@ -27,7 +27,6 @@ import java.io.IOException; @@ -11083,8 +12162,8 @@ } catch (javax.crypto.BadPaddingException e) { // occurs if the app has used the wrong RSA public key // or if sigBytes is invalid ---- ./jdk/src/share/classes/sun/security/ssl/CipherSuite.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/ssl/CipherSuite.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/ssl/CipherSuite.java 2015-12-12 10:53:29.799298000 -0800 ++++ ./jdk/src/share/classes/sun/security/ssl/CipherSuite.java 2015-07-18 13:32:33.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved. @@ -11143,8 +12222,8 @@ add("TLS_ECDH_anon_WITH_RC4_128_SHA", 0xC016, --p, K_ECDH_ANON, B_RC4_128, N); add("SSL_DH_anon_WITH_RC4_128_MD5", ---- ./jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java 2015-12-12 10:53:29.800119000 -0800 ++++ ./jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java 2015-10-24 06:21:17.000000000 -0700 @@ -489,7 +489,7 @@ 0, clientVerifyData.length); System.arraycopy(serverVerifyData, 0, verifyData, @@ -11154,7 +12233,17 @@ serverHelloRI.getRenegotiatedConnection())) { fatalSE(Alerts.alert_handshake_failure, "Incorrect verify data in ServerHello " + -@@ -679,6 +679,14 @@ +@@ -620,6 +620,9 @@ + } + } else { + // we wanted to resume, but the server refused ++ // ++ // Invalidate the session in case of reusing next time. ++ session.invalidate(); + session = null; + if (!enableNewSession) { + throw new SSLException("New session creation is disabled"); +@@ -679,6 +682,14 @@ // NOTREACHED } ephemeralServerKey = mesg.getPublicKey(); @@ -11169,7 +12258,7 @@ } -@@ -696,6 +704,9 @@ +@@ -696,6 +707,9 @@ dh = new DHCrypt(mesg.getModulus(), mesg.getBase(), sslContext.getSecureRandom()); serverDH = mesg.getServerPublicKey(); @@ -11179,7 +12268,7 @@ } private void serverKeyExchange(ECDH_ServerKeyExchange mesg) -@@ -706,6 +717,14 @@ +@@ -706,6 +720,14 @@ ECPublicKey key = mesg.getPublicKey(); ecdh = new ECDHCrypt(key.getParams(), sslContext.getSecureRandom()); ephemeralServerKey = key; @@ -11194,8 +12283,8 @@ } /* ---- ./jdk/src/share/classes/sun/security/ssl/DHCrypt.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/ssl/DHCrypt.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/ssl/DHCrypt.java 2015-12-12 10:53:29.800490000 -0800 ++++ ./jdk/src/share/classes/sun/security/ssl/DHCrypt.java 2015-10-24 06:21:17.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved. @@ -11203,7 +12292,19 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -34,6 +34,7 @@ +@@ -26,6 +26,11 @@ + + package sun.security.ssl; + ++import java.util.Map; ++import java.util.HashMap; ++import java.util.Collections; ++import java.util.regex.Pattern; ++import java.util.regex.Matcher; + import java.math.BigInteger; + import java.security.*; + import java.io.IOException; +@@ -34,6 +39,7 @@ import javax.crypto.KeyAgreement; import javax.crypto.interfaces.DHPublicKey; import javax.crypto.spec.*; @@ -11211,7 +12312,77 @@ import sun.security.util.KeyUtil; -@@ -216,6 +217,28 @@ +@@ -94,24 +100,10 @@ + * Generate a Diffie-Hellman keypair of the specified size. + */ + DHCrypt(int keyLength, SecureRandom random) { +- try { +- KeyPairGenerator kpg = JsseJce.getKeyPairGenerator("DiffieHellman"); +- kpg.initialize(keyLength, random); +- +- DHPublicKeySpec spec = generateDHPublicKeySpec(kpg); +- if (spec == null) { +- throw new RuntimeException("Could not generate DH keypair"); +- } +- +- publicValue = spec.getY(); +- modulus = spec.getP(); +- base = spec.getG(); +- } catch (GeneralSecurityException e) { +- throw new RuntimeException("Could not generate DH keypair", e); +- } ++ this(keyLength, ++ ParametersHolder.definedParams.get(keyLength), random); + } + +- + /** + * Generate a Diffie-Hellman keypair using the specified parameters. + * +@@ -119,12 +111,24 @@ + * @param base the Diffie-Hellman base G + */ + DHCrypt(BigInteger modulus, BigInteger base, SecureRandom random) { +- this.modulus = modulus; +- this.base = base; ++ this(modulus.bitLength(), ++ new DHParameterSpec(modulus, base), random); ++ } ++ ++ /** ++ * Generate a Diffie-Hellman keypair using the specified size and ++ * parameters. ++ */ ++ private DHCrypt(int keyLength, ++ DHParameterSpec params, SecureRandom random) { ++ + try { + KeyPairGenerator kpg = JsseJce.getKeyPairGenerator("DiffieHellman"); +- DHParameterSpec params = new DHParameterSpec(modulus, base); ++ if (params != null) { + kpg.initialize(params, random); ++ } else { ++ kpg.initialize(keyLength, random); ++ } + + DHPublicKeySpec spec = generateDHPublicKeySpec(kpg); + if (spec == null) { +@@ -132,12 +136,13 @@ + } + + publicValue = spec.getY(); ++ modulus = spec.getP(); ++ base = spec.getG(); + } catch (GeneralSecurityException e) { + throw new RuntimeException("Could not generate DH keypair", e); + } + } + +- + static DHPublicKeySpec getDHPublicKeySpec(PublicKey key) { + if (key instanceof DHPublicKey) { + DHPublicKey dhKey = (DHPublicKey)key; +@@ -216,6 +221,28 @@ } } @@ -11240,8 +12411,150 @@ // Generate and validate DHPublicKeySpec private DHPublicKeySpec generateDHPublicKeySpec(KeyPairGenerator kpg) throws GeneralSecurityException { ---- ./jdk/src/share/classes/sun/security/ssl/ECDHCrypt.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/ssl/ECDHCrypt.java Sat Sep 05 06:34:07 2015 -0700 +@@ -245,4 +272,141 @@ + + return null; + } ++ ++ // lazy initialization holder class idiom for static default parameters ++ // ++ // See Effective Java Second Edition: Item 71. ++ private static class ParametersHolder { ++ private final static boolean debugIsOn = ++ (Debug.getInstance("ssl") != null) && Debug.isOn("sslctx"); ++ ++ // ++ // Default DH ephemeral parameters ++ // ++ private static final BigInteger g2 = BigInteger.valueOf(2); ++ ++ private static final BigInteger p512 = new BigInteger( // generated ++ "D87780E15FF50B4ABBE89870188B049406B5BEA98AB23A02" + ++ "41D88EA75B7755E669C08093D3F0CA7FC3A5A25CF067DCB9" + ++ "A43DD89D1D90921C6328884461E0B6D3", 16); ++ private static final BigInteger p768 = new BigInteger( // RFC 2409 ++ "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" + ++ "29024E088A67CC74020BBEA63B139B22514A08798E3404DD" + ++ "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245" + ++ "E485B576625E7EC6F44C42E9A63A3620FFFFFFFFFFFFFFFF", 16); ++ ++ private static final BigInteger p1024 = new BigInteger( // RFC 2409 ++ "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" + ++ "29024E088A67CC74020BBEA63B139B22514A08798E3404DD" + ++ "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245" + ++ "E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED" + ++ "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381" + ++ "FFFFFFFFFFFFFFFF", 16); ++ private static final BigInteger p2048 = new BigInteger( // TLS FEDHE ++ "FFFFFFFFFFFFFFFFADF85458A2BB4A9AAFDC5620273D3CF1" + ++ "D8B9C583CE2D3695A9E13641146433FBCC939DCE249B3EF9" + ++ "7D2FE363630C75D8F681B202AEC4617AD3DF1ED5D5FD6561" + ++ "2433F51F5F066ED0856365553DED1AF3B557135E7F57C935" + ++ "984F0C70E0E68B77E2A689DAF3EFE8721DF158A136ADE735" + ++ "30ACCA4F483A797ABC0AB182B324FB61D108A94BB2C8E3FB" + ++ "B96ADAB760D7F4681D4F42A3DE394DF4AE56EDE76372BB19" + ++ "0B07A7C8EE0A6D709E02FCE1CDF7E2ECC03404CD28342F61" + ++ "9172FE9CE98583FF8E4F1232EEF28183C3FE3B1B4C6FAD73" + ++ "3BB5FCBC2EC22005C58EF1837D1683B2C6F34A26C1B2EFFA" + ++ "886B423861285C97FFFFFFFFFFFFFFFF", 16); ++ ++ private static final BigInteger[] supportedPrimes = { ++ p512, p768, p1024, p2048}; ++ ++ // a measure of the uncertainty that prime modulus p is not a prime ++ // ++ // see BigInteger.isProbablePrime(int certainty) ++ private final static int PRIME_CERTAINTY = 120; ++ ++ // the known security property, jdk.tls.server.defaultDHEParameters ++ private final static String PROPERTY_NAME = ++ "jdk.tls.server.defaultDHEParameters"; ++ ++ private static final Pattern spacesPattern = Pattern.compile("\\s+"); ++ ++ private final static Pattern syntaxPattern = Pattern.compile( ++ "(\\{[0-9A-Fa-f]+,[0-9A-Fa-f]+\\})" + ++ "(,\\{[0-9A-Fa-f]+,[0-9A-Fa-f]+\\})*"); ++ ++ private static final Pattern paramsPattern = Pattern.compile( ++ "\\{([0-9A-Fa-f]+),([0-9A-Fa-f]+)\\}"); ++ ++ // cache of predefined default DH ephemeral parameters ++ private final static Map<Integer,DHParameterSpec> definedParams; ++ ++ static { ++ String property = AccessController.doPrivileged( ++ new PrivilegedAction<String>() { ++ public String run() { ++ return Security.getProperty(PROPERTY_NAME); ++ } ++ }); ++ ++ if (property != null && !property.isEmpty()) { ++ // remove double quote marks from beginning/end of the property ++ if (property.length() >= 2 && property.charAt(0) == '"' && ++ property.charAt(property.length() - 1) == '"') { ++ property = property.substring(1, property.length() - 1); ++ } ++ ++ property = property.trim(); ++ } ++ ++ if (property != null && !property.isEmpty()) { ++ Matcher spacesMatcher = spacesPattern.matcher(property); ++ property = spacesMatcher.replaceAll(""); ++ ++ if (debugIsOn) { ++ System.out.println("The Security Property " + ++ PROPERTY_NAME + ": " + property); ++ } ++ } ++ ++ Map<Integer,DHParameterSpec> defaultParams = new HashMap<>(); ++ if (property != null && !property.isEmpty()) { ++ Matcher syntaxMatcher = syntaxPattern.matcher(property); ++ if (syntaxMatcher.matches()) { ++ Matcher paramsFinder = paramsPattern.matcher(property); ++ while(paramsFinder.find()) { ++ String primeModulus = paramsFinder.group(1); ++ BigInteger p = new BigInteger(primeModulus, 16); ++ if (!p.isProbablePrime(PRIME_CERTAINTY)) { ++ if (debugIsOn) { ++ System.out.println( ++ "Prime modulus p in Security Property, " + ++ PROPERTY_NAME + ", is not a prime: " + ++ primeModulus); ++ } ++ ++ continue; ++ } ++ ++ String baseGenerator = paramsFinder.group(2); ++ BigInteger g = new BigInteger(baseGenerator, 16); ++ ++ DHParameterSpec spec = new DHParameterSpec(p, g); ++ int primeLen = p.bitLength(); ++ defaultParams.put(primeLen, spec); ++ } ++ } else if (debugIsOn) { ++ System.out.println("Invalid Security Property, " + ++ PROPERTY_NAME + ", definition"); ++ } ++ } ++ ++ for (BigInteger p : supportedPrimes) { ++ int primeLen = p.bitLength(); ++ defaultParams.putIfAbsent(primeLen, new DHParameterSpec(p, g2)); ++ } ++ ++ definedParams = ++ Collections.<Integer,DHParameterSpec>unmodifiableMap( ++ defaultParams); ++ } ++ } + } +--- ./jdk/src/share/classes/sun/security/ssl/ECDHCrypt.java 2015-12-12 10:53:29.800848000 -0800 ++++ ./jdk/src/share/classes/sun/security/ssl/ECDHCrypt.java 2015-07-18 13:32:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved. @@ -11318,8 +12631,8 @@ + } + } ---- ./jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java 2015-12-12 10:53:29.802253000 -0800 ++++ ./jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java 2015-08-29 06:20:51.000000000 -0700 @@ -1912,7 +1912,7 @@ */ boolean verify(HandshakeHash handshakeHash, int sender, SecretKey master) { @@ -11329,8 +12642,8 @@ } /* ---- ./jdk/src/share/classes/sun/security/ssl/Handshaker.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/ssl/Handshaker.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/ssl/Handshaker.java 2015-12-12 10:53:29.803313000 -0800 ++++ ./jdk/src/share/classes/sun/security/ssl/Handshaker.java 2015-07-18 13:32:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved. @@ -11347,8 +12660,8 @@ // Local supported signature and algorithms Collection<SignatureAndHashAlgorithm> localSupportedSignAlgs; ---- ./jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java 2015-12-12 10:53:29.803803000 -0800 ++++ ./jdk/src/share/classes/sun/security/ssl/SSLAlgorithmConstraints.java 2015-07-18 13:32:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. @@ -11603,8 +12916,8 @@ - } } - ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/src/share/classes/sun/security/ssl/SSLAlgorithmDecomposer.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/ssl/SSLAlgorithmDecomposer.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/src/share/classes/sun/security/ssl/SSLAlgorithmDecomposer.java 2015-07-18 13:32:34.000000000 -0700 @@ -0,0 +1,251 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. @@ -11857,8 +13170,8 @@ + } + +} ---- ./jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java 2015-12-12 10:53:29.805124000 -0800 ++++ ./jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java 2015-07-18 13:32:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved. @@ -11896,7 +13209,6 @@ synchronized String getHost() { // Note that the host may be null or empty for localhost. if (host == null || host.length() == 0) { -- host = getInetAddress().getHostName(); + if (!trustNameService) { + // If the local name service is not trustworthy, reverse host + // name resolution should not be performed for endpoint @@ -11904,9 +13216,9 @@ + // hostname or IP address instead. + host = getOriginalHostname(getInetAddress()); + } else { -+ host = getInetAddress().getHostName(); -+ } + host = getInetAddress().getHostName(); } ++ } + return host; } @@ -11935,8 +13247,8 @@ // ONLY used by HttpsClient to setup the URI specified hostname // // Please NOTE that this method MUST be called before calling to ---- ./jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java 2015-12-12 10:53:29.806041000 -0800 ++++ ./jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java 2015-07-18 13:32:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. @@ -12045,9 +13357,36 @@ } /* ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/src/share/classes/sun/security/util/AbstractAlgorithmConstraints.java Sat Sep 05 06:34:07 2015 -0700 -@@ -0,0 +1,119 @@ +--- ./jdk/src/share/classes/sun/security/tools/keytool/Resources_sv.java 2015-12-12 10:53:27.550443000 -0800 ++++ ./jdk/src/share/classes/sun/security/tools/keytool/Resources_sv.java 2015-10-24 06:21:17.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2000, 2015, 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 +@@ -175,7 +175,7 @@ + {"validity.number.of.days", + "antal dagar f\u00F6r giltighet"}, //-validity + {"Serial.ID.of.cert.to.revoke", +- "Seriellt ID f\u00F6r certifikat som ska \u00E5terkallas"}, //-id ++ "Seriellt id f\u00F6r certifikat som ska \u00E5terkallas"}, //-id + // keytool: Running part + {"keytool.error.", "nyckelverktygsfel: "}, + {"Illegal.option.", "Otill\u00E5tet alternativ: "}, +@@ -373,7 +373,7 @@ + "***************** WARNING WARNING WARNING *****************"}, + {"Signer.d.", "Signerare #%d:"}, + {"Timestamp.", "Tidsst\u00E4mpel:"}, +- {"Signature.", "Underskrift:"}, ++ {"Signature.", "Signatur:"}, + {"CRLs.", "CRL:er:"}, + {"Certificate.owner.", "Certifikat\u00E4gare: "}, + {"Not.a.signed.jar.file", "Ingen signerad jar-fil"}, +--- ./jdk/src/share/classes/sun/security/util/AbstractAlgorithmConstraints.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/src/share/classes/sun/security/util/AbstractAlgorithmConstraints.java 2015-10-24 06:21:17.000000000 -0700 +@@ -0,0 +1,118 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -12104,13 +13443,12 @@ + String[] algorithmsInProperty = null; + if (property != null && !property.isEmpty()) { + // remove double quote marks from beginning/end of the property -+ if (property.charAt(0) == '"' -+ && property.charAt(property.length() - 1) == '"') { ++ if (property.length() >= 2 && property.charAt(0) == '"' && ++ property.charAt(property.length() - 1) == '"') { + property = property.substring(1, property.length() - 1); + } + algorithmsInProperty = property.split(","); -+ for (int i = 0; i < algorithmsInProperty.length; -+ i++) { ++ for (int i = 0; i < algorithmsInProperty.length; i++) { + algorithmsInProperty[i] = algorithmsInProperty[i].trim(); + } + } @@ -12167,8 +13505,8 @@ + } + +} ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/src/share/classes/sun/security/util/AlgorithmDecomposer.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/util/AlgorithmDecomposer.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/src/share/classes/sun/security/util/AlgorithmDecomposer.java 2015-07-18 13:32:30.000000000 -0700 @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. @@ -12300,8 +13638,8 @@ + } + +} ---- ./jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java 2015-12-12 10:53:29.809334000 -0800 ++++ ./jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java 2015-07-18 13:32:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. @@ -12354,9 +13692,8 @@ - synchronized (disabledAlgorithmsMap) { - if(!disabledAlgorithmsMap.containsKey(propertyName)) { - loadDisabledAlgorithmsMap(propertyName); -- } + this(propertyName, new AlgorithmDecomposer()); -+ } + } - disabledAlgorithms = disabledAlgorithmsMap.get(propertyName); - keySizeConstraints = keySizeConstraintsMap.get(propertyName); @@ -12510,7 +13847,7 @@ // Check algorithm constraints private boolean checkConstraints(Set<CryptoPrimitive> primitives, String algorithm, Key key, AlgorithmParameters parameters) { -@@ -263,43 +136,18 @@ +@@ -263,45 +136,20 @@ return true; } @@ -12533,22 +13870,13 @@ - if (property.charAt(0) == '"' && - property.charAt(property.length() - 1) == '"') { - property = property.substring(1, property.length() - 1); -+ private static KeySizeConstraints getKeySizeConstraints( -+ String[] disabledAlgorithms, String propertyName) { -+ synchronized (keySizeConstraintsMap) { -+ if(!keySizeConstraintsMap.containsKey(propertyName)) { -+ // map the key constraints -+ KeySizeConstraints keySizeConstraints = -+ new KeySizeConstraints(disabledAlgorithms); -+ keySizeConstraintsMap.put(propertyName, keySizeConstraints); - } - +- } +- - algorithmsInProperty = property.split(","); - for (int i = 0; i < algorithmsInProperty.length; i++) { - algorithmsInProperty[i] = algorithmsInProperty[i].trim(); - } -+ return keySizeConstraintsMap.get(propertyName); - } +- } - - // map the disabled algorithms - if (algorithmsInProperty == null) { @@ -12556,15 +13884,26 @@ - } - disabledAlgorithmsMap.put(propertyName, algorithmsInProperty); - -- // map the key constraints -- KeySizeConstraints keySizeConstraints = ++ private static KeySizeConstraints getKeySizeConstraints( ++ String[] disabledAlgorithms, String propertyName) { ++ synchronized (keySizeConstraintsMap) { ++ if(!keySizeConstraintsMap.containsKey(propertyName)) { + // map the key constraints + KeySizeConstraints keySizeConstraints = - new KeySizeConstraints(algorithmsInProperty); -- keySizeConstraintsMap.put(propertyName, keySizeConstraints); ++ new KeySizeConstraints(disabledAlgorithms); + keySizeConstraintsMap.put(propertyName, keySizeConstraints); } ++ return keySizeConstraintsMap.get(propertyName); ++ } ++ } ++ /** ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/src/share/classes/sun/security/util/LegacyAlgorithmConstraints.java Sat Sep 05 06:34:07 2015 -0700 + * key constraints + */ +--- ./jdk/src/share/classes/sun/security/util/LegacyAlgorithmConstraints.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/src/share/classes/sun/security/util/LegacyAlgorithmConstraints.java 2015-07-18 13:32:30.000000000 -0700 @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. @@ -12639,8 +13978,8 @@ + } + +} ---- ./jdk/src/share/classes/sun/security/validator/SimpleValidator.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/security/validator/SimpleValidator.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/security/validator/SimpleValidator.java 2015-12-12 10:53:29.810514000 -0800 ++++ ./jdk/src/share/classes/sun/security/validator/SimpleValidator.java 2015-07-18 13:32:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. @@ -12668,17 +14007,33 @@ AlgorithmChecker defaultAlgChecker = new AlgorithmChecker(anchor); // create application level algorithm constraints checker ---- ./jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider 2015-12-12 10:53:22.122216000 -0800 ++++ ./jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider 2015-10-24 06:21:20.000000000 -0700 @@ -31,4 +31,5 @@ #[windows]sun.tools.attach.WindowsAttachProvider #[linux]sun.tools.attach.LinuxAttachProvider #[macosx]sun.tools.attach.BsdAttachProvider +#[bsd]sun.tools.attach.BsdAttachProvider #[aix]sun.tools.attach.AixAttachProvider ---- ./jdk/src/share/lib/security/java.security-aix Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/lib/security/java.security-aix Sat Sep 05 06:34:07 2015 -0700 -@@ -509,4 +509,61 @@ +--- ./jdk/src/share/classes/sun/tools/jar/resources/jar_de.properties 2015-12-12 10:53:28.947518000 -0800 ++++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_de.properties 2015-10-24 06:21:17.000000000 -0700 +@@ -45,4 +45,4 @@ + out.inflated=\ vergr\u00F6\u00DFert: {0} + out.size=(ein = {0}) (aus = {1}) + +-usage=Verwendung: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] Dateien ...\nOptionen:\n -c Neues Archiv erstellen\n -t Inhaltsverzeichnis f\u00FCr Archiv anzeigen\n -x Benannte (oder alle) Dateien aus dem Archiv extrahieren\n -u Vorhandenes Archiv aktualisieren\n -v Ausgabe im Verbose-Modus aus Standard-Ausgabe generieren\n -f Dateinamen f\u00FCr Archiv angeben\n -m Manifestinformationen aus angegebener Manifestdatei einschlie\u00DFen\n -n Pack200-Normalisierung nach Erstellung eines neuen Archivs ausf\u00FChren\n -e Anwendungseinstiegspunkt f\u00FCr Standalone-Anwendung angeben \n in einer ausf\u00FChrbaren JAR-Datei geb\u00FCndelt\n -0 Nur speichern; keine ZIP-Komprimierung verwenden\n -P Komponenten mit vorangestelltem "/" (absoluter Pfad) und ".." (\u00FCbergeordnetes Verzeichnis) aus Dateinamen beibehalten\n -M Keine Manifest-Datei f\u00FCr die Eintr\u00E4ge erstellen\n -i Indexinformationen f\u00FCr die angegebenen JAR-Dateien erstellen\n -C Zum angegebenen Verzeichnis wechseln und folgende Datei einschlie\u00DFen\nFalls eine Datei ein Verzeichnis ist, wird dieses rekursiv verarbeitet.\nDer Name der Manifestdatei, der Name der Archivdatei und der Name des Einstiegspunkts werden\nin derselben Reihenfolge wie die Kennzeichen "m", "f" und "e" angegeben.\n\nBeispiel 1: Archivieren Sie zwei Klassendateien in ein Archiv mit Namen "classes.jar": \n jar cvf classes.jar Foo.class Bar.class \nBeispiel 2: Verwenden Sie die vorhandenen Manifestdatei "mymanifest", und archivieren Sie alle\n Dateien im Verzeichnis foo/ directory in "classes.jar": \n jar cvfm classes.jar mymanifest -C foo/ .\n ++usage=Verwendung: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] Dateien...\nOptionen:\n -c Neues Archiv erstellen\n -t Inhaltsverzeichnis f\u00FCr Archiv anzeigen\n -x Benannte (oder alle) Dateien aus dem Archiv extrahieren\n -u Vorhandenes Archiv aktualisieren\n -v Ausgabe im Verbose-Modus aus Standard-Ausgabe generieren\n -f Dateinamen f\u00FCr Archiv angeben\n -m Manifestinformationen aus angegebener Manifestdatei einschlie\u00DFen\n -n Pack200-Normalisierung nach Erstellung eines neuen Archivs ausf\u00FChren\n -e Anwendungseinstiegspunkt f\u00FCr Standalone-Anwendung angeben \n in einer ausf\u00FChrbaren JAR-Datei geb\u00FCndelt\n -0 Nur speichern; keine ZIP-Komprimierung verwenden\n -P Komponenten mit vorangestelltem "/" (absoluter Pfad) und ".." (\u00FCbergeordnetes Verzeichnis) aus Dateinamen beibehalten\n -M Keine Manifest-Datei f\u00FCr die Eintr\u00E4ge erstellen\n -i Indexinformationen f\u00FCr die angegebenen JAR-Dateien erstellen\n -C Zum angegebenen Verzeichnis wechseln und folgende Datei einschlie\u00DFen\nFalls eine Datei ein Verzeichnis ist, wird dieses rekursiv verarbeitet.\nDer Name der Manifestdatei, der Name der Archivdatei und der Name des Einstiegspunkts werden\nin derselben Reihenfolge wie die Kennzeichen "m", "f" und "e" angegeben.\n\nBeispiel 1: Archivieren Sie zwei Klassendateien in ein Archiv mit Namen "classes.jar": \n jar cvf classes.jar Foo.class Bar.class \nBeispiel 2: Verwenden Sie die vorhandenen Manifestdatei "mymanifest", und archivieren Sie alle\n Dateien im Verzeichnis foo/ directory in "classes.jar": \n jar cvfm classes.jar mymanifest -C foo/ .\n +--- ./jdk/src/share/classes/sun/tools/jar/resources/jar_pt_BR.properties 2015-12-12 10:53:28.949197000 -0800 ++++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_pt_BR.properties 2015-10-24 06:21:17.000000000 -0700 +@@ -45,4 +45,4 @@ + out.inflated=\ inflado: {0} + out.size=(entrada = {0}) (sa\u00EDda= {1}) + +-usage=Uso: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] arquivos ...\nOp\u00E7\u00F5es:\n -c cria novo arquivo compactado\n -t lista o sum\u00E1rio do arquivo compactado\n -x extrai arquivos com o nome (ou todos) do arquivo compactado\n -u atualiza o arquivo compactado existente\n -v gera sa\u00EDda detalhada na sa\u00EDda padr\u00E3o\n -f especifica o nome do arquivo do arquivo compactado\n -m inclui as informa\u00E7\u00F5es do manifesto do arquivo de manifesto especificado\n -n executa a normaliza\u00E7\u00E3o Pack200 ap\u00F3s a cria\u00E7\u00E3o de um novo arquivo compactado\n -e especifica o ponto de entrada da aplica\u00E7\u00E3o para aplica\u00E7\u00E3o stand-alone \n empacotada em um arquivo jar execut\u00E1vel\n -0 armazena somente; n\u00E3o usa compacta\u00E7\u00E3o ZIP\n -P preserva os componentes '/' inicial (caminho absoluto) e ".." (diret\u00F3rio pai) nos nomes dos arquivos\n -M n\u00E3o cria um arquivo de manifesto para as entradas\n -i gera informa\u00E7\u00F5es de \u00EDndice para os arquivos especificados\n -C passa para o diret\u00F3rio especificado e inclui o arquivo a seguir\nSe um arquivo tamb\u00E9m for um diret\u00F3rio, ele ser\u00E1 processado repetidamente.\nO nome do arquivo de manifesto, o nome do arquivo compactado e o nome do ponto de entrada s\u00E3o\nespecificados na mesma ordem dos flags 'm', 'f' e 'e'.\n\nExemplo 1: para arquivar dois arquivos de classe em um arquivo compactado denominado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExemplo 2: use um arquivo de manifesto existente 'mymanifest' e arquive todos os\n arquivos no diret\u00F3rio foo/ na 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n ++usage=Uso: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] arquivos ...\nOp\u00E7\u00F5es:\n -c cria novo arquivo compactado\n -t lista o sum\u00E1rio do arquivo compactado\n -x extrai arquivos com o nome (ou todos) do arquivo compactado\n -u atualiza o arquivo compactado existente\n -v gera sa\u00EDda detalhada na sa\u00EDda padr\u00E3o\n -f especifica o nome do arquivo do arquivo compactado\n -m inclui as informa\u00E7\u00F5es do manifesto do arquivo de manifesto especificado\n -n executa a normaliza\u00E7\u00E3o Pack200 ap\u00F3s a cria\u00E7\u00E3o de um novo arquivo compactado\n -e especifica o ponto de entrada da aplicativo para aplicativo stand-alone \n empacotada em um arquivo jar execut\u00E1vel\n -0 armazena somente; n\u00E3o usa compacta\u00E7\u00E3o ZIP\n -P preserva os componentes '/' inicial (caminho absoluto) e ".." (diret\u00F3rio pai) nos nomes dos arquivos\n -M n\u00E3o cria um arquivo de manifesto para as entradas\n -i gera informa\u00E7\u00F5es de \u00EDndice para os arquivos especificados\n -C passa para o diret\u00F3rio especificado e inclui o arquivo a seguir\nSe um arquivo tamb\u00E9m for um diret\u00F3rio, ele ser\u00E1 processado repetidamente.\nO nome do arquivo de manifesto, o nome do arquivo compactado e o nome do ponto de entrada s\u00E3o\nespecificados na mesma ordem dos flags 'm', 'f' e 'e'.\n\nExemplo 1: para arquivar dois arquivos de classe em um arquivo compactado denominado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExemplo 2: use um arquivo de manifesto existente 'mymanifest' e arquive todos os\n arquivos no diret\u00F3rio foo/ na 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n +--- ./jdk/src/share/lib/security/java.security-aix 2015-12-12 10:53:29.817035000 -0800 ++++ ./jdk/src/share/lib/security/java.security-aix 2015-10-24 06:21:17.000000000 -0700 +@@ -509,4 +509,118 @@ # # Example: # jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048 @@ -12741,9 +14096,66 @@ + DH_RSA_EXPORT, RSA_EXPORT, \ + DH_anon, ECDH_anon, \ + RC4_128, RC4_40, DES_CBC, DES40_CBC ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ ./jdk/src/share/lib/security/java.security-bsd Sat Sep 05 06:34:07 2015 -0700 -@@ -0,0 +1,498 @@ ++ ++# The pre-defined default finite field Diffie-Hellman ephemeral (DHE) ++# parameters for Transport Layer Security (SSL/TLS/DTLS) processing. ++# ++# In traditional SSL/TLS/DTLS connections where finite field DHE parameters ++# negotiation mechanism is not used, the server offers the client group ++# parameters, base generator g and prime modulus p, for DHE key exchange. ++# It is recommended to use dynamic group parameters. This property defines ++# a mechanism that allows you to specify custom group parameters. ++# ++# The syntax of this property string is described as this Java BNF-style: ++# DefaultDHEParameters: ++# DefinedDHEParameters { , DefinedDHEParameters } ++# ++# DefinedDHEParameters: ++# "{" DHEPrimeModulus , DHEBaseGenerator "}" ++# ++# DHEPrimeModulus: ++# HexadecimalDigits ++# ++# DHEBaseGenerator: ++# HexadecimalDigits ++# ++# HexadecimalDigits: ++# HexadecimalDigit { HexadecimalDigit } ++# ++# HexadecimalDigit: one of ++# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f ++# ++# Whitespace characters are ignored. ++# ++# The "DefinedDHEParameters" defines the custom group parameters, prime ++# modulus p and base generator g, for a particular size of prime modulus p. ++# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the ++# "DHEBaseGenerator" defines the hexadecimal base generator g of a group ++# parameter. It is recommended to use safe primes for the custom group ++# parameters. ++# ++# If this property is not defined or the value is empty, the underlying JSSE ++# provider's default group parameter is used for each connection. ++# ++# If the property value does not follow the grammar, or a particular group ++# parameter is not valid, the connection will fall back and use the ++# underlying JSSE provider's default group parameter. ++# ++# Note: This property is currently used by OpenJDK's JSSE implementation. It ++# is not guaranteed to be examined and used by other implementations. ++# ++# Example: ++# jdk.tls.server.defaultDHEParameters= ++# { \ ++# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \ ++# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \ ++# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \ ++# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \ ++# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \ ++# FFFFFFFF FFFFFFFF, 2} +--- ./jdk/src/share/lib/security/java.security-bsd 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/src/share/lib/security/java.security-bsd 2015-10-24 09:31:31.000000000 -0700 +@@ -0,0 +1,626 @@ +# +# This is the "master security properties file". +# @@ -12917,6 +14329,15 @@ +keystore.type=jks + +# ++# Controls compatibility mode for the JKS keystore type. ++# ++# When set to 'true', the JKS keystore type supports loading ++# keystore files in either JKS or PKCS12 format. When set to 'false' ++# it supports loading only JKS keystore files. ++# ++keystore.type.compat=true ++ ++# +# List of comma-separated packages that start with or equal this string +# will cause a security exception to be thrown when +# passed to checkPackageAccess unless the @@ -13225,8 +14646,12 @@ +# +# In some environments, certain algorithms or key lengths may be undesirable +# when using SSL/TLS. This section describes the mechanism for disabling -+# algorithms during SSL/TLS security parameters negotiation, including cipher -+# suites selection, peer authentication and key exchange mechanisms. ++# algorithms during SSL/TLS security parameters negotiation, including ++# protocol version negotiation, cipher suites selection, peer authentication ++# and key exchange mechanisms. ++# ++# Disabled algorithms will not be negotiated for SSL/TLS connections, even ++# if they are enabled explicitly in an application. +# +# For PKI-based peer authentication and key exchange mechanisms, this list +# of disabled algorithms will also be checked during certification path @@ -13241,10 +14666,125 @@ +# It is not guaranteed to be examined and used by other implementations. +# +# Example: -+# jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA keySize < 2048 ---- ./jdk/src/share/lib/security/java.security-linux Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/lib/security/java.security-linux Sat Sep 05 06:34:07 2015 -0700 -@@ -509,4 +509,61 @@ ++# jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048 ++jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 768 ++ ++# Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS) ++# processing in JSSE implementation. ++# ++# In some environments, a certain algorithm may be undesirable but it ++# cannot be disabled because of its use in legacy applications. Legacy ++# algorithms may still be supported, but applications should not use them ++# as the security strength of legacy algorithms are usually not strong enough ++# in practice. ++# ++# During SSL/TLS security parameters negotiation, legacy algorithms will ++# not be negotiated unless there are no other candidates. ++# ++# The syntax of the disabled algorithm string is described as this Java ++# BNF-style: ++# LegacyAlgorithms: ++# " LegacyAlgorithm { , LegacyAlgorithm } " ++# ++# LegacyAlgorithm: ++# AlgorithmName (standard JSSE algorithm name) ++# ++# See the specification of security property "jdk.certpath.disabledAlgorithms" ++# for the syntax and description of the "AlgorithmName" notation. ++# ++# Per SSL/TLS specifications, cipher suites have the form: ++# SSL_KeyExchangeAlg_WITH_CipherAlg_MacAlg ++# or ++# TLS_KeyExchangeAlg_WITH_CipherAlg_MacAlg ++# ++# For example, the cipher suite TLS_RSA_WITH_AES_128_CBC_SHA uses RSA as the ++# key exchange algorithm, AES_128_CBC (128 bits AES cipher algorithm in CBC ++# mode) as the cipher (encryption) algorithm, and SHA-1 as the message digest ++# algorithm for HMAC. ++# ++# The LegacyAlgorithm can be one of the following standard algorithm names: ++# 1. JSSE cipher suite name, e.g., TLS_RSA_WITH_AES_128_CBC_SHA ++# 2. JSSE key exchange algorithm name, e.g., RSA ++# 3. JSSE cipher (encryption) algorithm name, e.g., AES_128_CBC ++# 4. JSSE message digest algorithm name, e.g., SHA ++# ++# See SSL/TLS specifications and "Java Cryptography Architecture Standard ++# Algorithm Name Documentation" for information about the algorithm names. ++# ++# Note: This property is currently used by Oracle's JSSE implementation. ++# It is not guaranteed to be examined and used by other implementations. ++# There is no guarantee the property will continue to exist or be of the ++# same syntax in future releases. ++# ++# Example: ++# jdk.tls.legacyAlgorithms=DH_anon, DES_CBC, SSL_RSA_WITH_RC4_128_MD5 ++# ++jdk.tls.legacyAlgorithms= \ ++ K_NULL, C_NULL, M_NULL, \ ++ DHE_DSS_EXPORT, DHE_RSA_EXPORT, DH_anon_EXPORT, DH_DSS_EXPORT, \ ++ DH_RSA_EXPORT, RSA_EXPORT, \ ++ DH_anon, ECDH_anon, \ ++ RC4_128, RC4_40, DES_CBC, DES40_CBC ++ ++# The pre-defined default finite field Diffie-Hellman ephemeral (DHE) ++# parameters for Transport Layer Security (SSL/TLS/DTLS) processing. ++# ++# In traditional SSL/TLS/DTLS connections where finite field DHE parameters ++# negotiation mechanism is not used, the server offers the client group ++# parameters, base generator g and prime modulus p, for DHE key exchange. ++# It is recommended to use dynamic group parameters. This property defines ++# a mechanism that allows you to specify custom group parameters. ++# ++# The syntax of this property string is described as this Java BNF-style: ++# DefaultDHEParameters: ++# DefinedDHEParameters { , DefinedDHEParameters } ++# ++# DefinedDHEParameters: ++# "{" DHEPrimeModulus , DHEBaseGenerator "}" ++# ++# DHEPrimeModulus: ++# HexadecimalDigits ++# ++# DHEBaseGenerator: ++# HexadecimalDigits ++# ++# HexadecimalDigits: ++# HexadecimalDigit { HexadecimalDigit } ++# ++# HexadecimalDigit: one of ++# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f ++# ++# Whitespace characters are ignored. ++# ++# The "DefinedDHEParameters" defines the custom group parameters, prime ++# modulus p and base generator g, for a particular size of prime modulus p. ++# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the ++# "DHEBaseGenerator" defines the hexadecimal base generator g of a group ++# parameter. It is recommended to use safe primes for the custom group ++# parameters. ++# ++# If this property is not defined or the value is empty, the underlying JSSE ++# provider's default group parameter is used for each connection. ++# ++# If the property value does not follow the grammar, or a particular group ++# parameter is not valid, the connection will fall back and use the ++# underlying JSSE provider's default group parameter. ++# ++# Note: This property is currently used by OpenJDK's JSSE implementation. It ++# is not guaranteed to be examined and used by other implementations. ++# ++# Example: ++# jdk.tls.server.defaultDHEParameters= ++# { \ ++# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \ ++# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \ ++# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \ ++# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \ ++# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \ ++# FFFFFFFF FFFFFFFF, 2} +--- ./jdk/src/share/lib/security/java.security-linux 2015-12-12 10:53:29.817428000 -0800 ++++ ./jdk/src/share/lib/security/java.security-linux 2015-10-24 06:21:17.000000000 -0700 +@@ -509,4 +509,118 @@ # # Example: # jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048 @@ -13307,9 +14847,66 @@ + DH_RSA_EXPORT, RSA_EXPORT, \ + DH_anon, ECDH_anon, \ + RC4_128, RC4_40, DES_CBC, DES40_CBC ---- ./jdk/src/share/lib/security/java.security-macosx Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/lib/security/java.security-macosx Sat Sep 05 06:34:07 2015 -0700 -@@ -512,4 +512,61 @@ ++ ++# The pre-defined default finite field Diffie-Hellman ephemeral (DHE) ++# parameters for Transport Layer Security (SSL/TLS/DTLS) processing. ++# ++# In traditional SSL/TLS/DTLS connections where finite field DHE parameters ++# negotiation mechanism is not used, the server offers the client group ++# parameters, base generator g and prime modulus p, for DHE key exchange. ++# It is recommended to use dynamic group parameters. This property defines ++# a mechanism that allows you to specify custom group parameters. ++# ++# The syntax of this property string is described as this Java BNF-style: ++# DefaultDHEParameters: ++# DefinedDHEParameters { , DefinedDHEParameters } ++# ++# DefinedDHEParameters: ++# "{" DHEPrimeModulus , DHEBaseGenerator "}" ++# ++# DHEPrimeModulus: ++# HexadecimalDigits ++# ++# DHEBaseGenerator: ++# HexadecimalDigits ++# ++# HexadecimalDigits: ++# HexadecimalDigit { HexadecimalDigit } ++# ++# HexadecimalDigit: one of ++# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f ++# ++# Whitespace characters are ignored. ++# ++# The "DefinedDHEParameters" defines the custom group parameters, prime ++# modulus p and base generator g, for a particular size of prime modulus p. ++# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the ++# "DHEBaseGenerator" defines the hexadecimal base generator g of a group ++# parameter. It is recommended to use safe primes for the custom group ++# parameters. ++# ++# If this property is not defined or the value is empty, the underlying JSSE ++# provider's default group parameter is used for each connection. ++# ++# If the property value does not follow the grammar, or a particular group ++# parameter is not valid, the connection will fall back and use the ++# underlying JSSE provider's default group parameter. ++# ++# Note: This property is currently used by OpenJDK's JSSE implementation. It ++# is not guaranteed to be examined and used by other implementations. ++# ++# Example: ++# jdk.tls.server.defaultDHEParameters= ++# { \ ++# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \ ++# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \ ++# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \ ++# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \ ++# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \ ++# FFFFFFFF FFFFFFFF, 2} +--- ./jdk/src/share/lib/security/java.security-macosx 2015-12-12 10:53:29.817806000 -0800 ++++ ./jdk/src/share/lib/security/java.security-macosx 2015-10-24 06:21:17.000000000 -0700 +@@ -512,4 +512,118 @@ # # Example: # jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048 @@ -13372,9 +14969,66 @@ + DH_RSA_EXPORT, RSA_EXPORT, \ + DH_anon, ECDH_anon, \ + RC4_128, RC4_40, DES_CBC, DES40_CBC ---- ./jdk/src/share/lib/security/java.security-solaris Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/lib/security/java.security-solaris Sat Sep 05 06:34:07 2015 -0700 -@@ -511,4 +511,61 @@ ++ ++# The pre-defined default finite field Diffie-Hellman ephemeral (DHE) ++# parameters for Transport Layer Security (SSL/TLS/DTLS) processing. ++# ++# In traditional SSL/TLS/DTLS connections where finite field DHE parameters ++# negotiation mechanism is not used, the server offers the client group ++# parameters, base generator g and prime modulus p, for DHE key exchange. ++# It is recommended to use dynamic group parameters. This property defines ++# a mechanism that allows you to specify custom group parameters. ++# ++# The syntax of this property string is described as this Java BNF-style: ++# DefaultDHEParameters: ++# DefinedDHEParameters { , DefinedDHEParameters } ++# ++# DefinedDHEParameters: ++# "{" DHEPrimeModulus , DHEBaseGenerator "}" ++# ++# DHEPrimeModulus: ++# HexadecimalDigits ++# ++# DHEBaseGenerator: ++# HexadecimalDigits ++# ++# HexadecimalDigits: ++# HexadecimalDigit { HexadecimalDigit } ++# ++# HexadecimalDigit: one of ++# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f ++# ++# Whitespace characters are ignored. ++# ++# The "DefinedDHEParameters" defines the custom group parameters, prime ++# modulus p and base generator g, for a particular size of prime modulus p. ++# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the ++# "DHEBaseGenerator" defines the hexadecimal base generator g of a group ++# parameter. It is recommended to use safe primes for the custom group ++# parameters. ++# ++# If this property is not defined or the value is empty, the underlying JSSE ++# provider's default group parameter is used for each connection. ++# ++# If the property value does not follow the grammar, or a particular group ++# parameter is not valid, the connection will fall back and use the ++# underlying JSSE provider's default group parameter. ++# ++# Note: This property is currently used by OpenJDK's JSSE implementation. It ++# is not guaranteed to be examined and used by other implementations. ++# ++# Example: ++# jdk.tls.server.defaultDHEParameters= ++# { \ ++# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \ ++# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \ ++# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \ ++# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \ ++# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \ ++# FFFFFFFF FFFFFFFF, 2} +--- ./jdk/src/share/lib/security/java.security-solaris 2015-12-12 10:53:29.818188000 -0800 ++++ ./jdk/src/share/lib/security/java.security-solaris 2015-10-24 06:21:17.000000000 -0700 +@@ -511,4 +511,118 @@ # # Example: # jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048 @@ -13437,9 +15091,66 @@ + DH_RSA_EXPORT, RSA_EXPORT, \ + DH_anon, ECDH_anon, \ + RC4_128, RC4_40, DES_CBC, DES40_CBC ---- ./jdk/src/share/lib/security/java.security-windows Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/lib/security/java.security-windows Sat Sep 05 06:34:07 2015 -0700 -@@ -512,4 +512,61 @@ ++ ++# The pre-defined default finite field Diffie-Hellman ephemeral (DHE) ++# parameters for Transport Layer Security (SSL/TLS/DTLS) processing. ++# ++# In traditional SSL/TLS/DTLS connections where finite field DHE parameters ++# negotiation mechanism is not used, the server offers the client group ++# parameters, base generator g and prime modulus p, for DHE key exchange. ++# It is recommended to use dynamic group parameters. This property defines ++# a mechanism that allows you to specify custom group parameters. ++# ++# The syntax of this property string is described as this Java BNF-style: ++# DefaultDHEParameters: ++# DefinedDHEParameters { , DefinedDHEParameters } ++# ++# DefinedDHEParameters: ++# "{" DHEPrimeModulus , DHEBaseGenerator "}" ++# ++# DHEPrimeModulus: ++# HexadecimalDigits ++# ++# DHEBaseGenerator: ++# HexadecimalDigits ++# ++# HexadecimalDigits: ++# HexadecimalDigit { HexadecimalDigit } ++# ++# HexadecimalDigit: one of ++# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f ++# ++# Whitespace characters are ignored. ++# ++# The "DefinedDHEParameters" defines the custom group parameters, prime ++# modulus p and base generator g, for a particular size of prime modulus p. ++# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the ++# "DHEBaseGenerator" defines the hexadecimal base generator g of a group ++# parameter. It is recommended to use safe primes for the custom group ++# parameters. ++# ++# If this property is not defined or the value is empty, the underlying JSSE ++# provider's default group parameter is used for each connection. ++# ++# If the property value does not follow the grammar, or a particular group ++# parameter is not valid, the connection will fall back and use the ++# underlying JSSE provider's default group parameter. ++# ++# Note: This property is currently used by OpenJDK's JSSE implementation. It ++# is not guaranteed to be examined and used by other implementations. ++# ++# Example: ++# jdk.tls.server.defaultDHEParameters= ++# { \ ++# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \ ++# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \ ++# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \ ++# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \ ++# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \ ++# FFFFFFFF FFFFFFFF, 2} +--- ./jdk/src/share/lib/security/java.security-windows 2015-12-12 10:53:29.818592000 -0800 ++++ ./jdk/src/share/lib/security/java.security-windows 2015-10-24 06:21:17.000000000 -0700 +@@ -512,4 +512,118 @@ # # Example: # jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048 @@ -13502,8 +15213,65 @@ + DH_RSA_EXPORT, RSA_EXPORT, \ + DH_anon, ECDH_anon, \ + RC4_128, RC4_40, DES_CBC, DES40_CBC ---- ./jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp Sat Sep 05 06:34:07 2015 -0700 ++ ++# The pre-defined default finite field Diffie-Hellman ephemeral (DHE) ++# parameters for Transport Layer Security (SSL/TLS/DTLS) processing. ++# ++# In traditional SSL/TLS/DTLS connections where finite field DHE parameters ++# negotiation mechanism is not used, the server offers the client group ++# parameters, base generator g and prime modulus p, for DHE key exchange. ++# It is recommended to use dynamic group parameters. This property defines ++# a mechanism that allows you to specify custom group parameters. ++# ++# The syntax of this property string is described as this Java BNF-style: ++# DefaultDHEParameters: ++# DefinedDHEParameters { , DefinedDHEParameters } ++# ++# DefinedDHEParameters: ++# "{" DHEPrimeModulus , DHEBaseGenerator "}" ++# ++# DHEPrimeModulus: ++# HexadecimalDigits ++# ++# DHEBaseGenerator: ++# HexadecimalDigits ++# ++# HexadecimalDigits: ++# HexadecimalDigit { HexadecimalDigit } ++# ++# HexadecimalDigit: one of ++# 0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f ++# ++# Whitespace characters are ignored. ++# ++# The "DefinedDHEParameters" defines the custom group parameters, prime ++# modulus p and base generator g, for a particular size of prime modulus p. ++# The "DHEPrimeModulus" defines the hexadecimal prime modulus p, and the ++# "DHEBaseGenerator" defines the hexadecimal base generator g of a group ++# parameter. It is recommended to use safe primes for the custom group ++# parameters. ++# ++# If this property is not defined or the value is empty, the underlying JSSE ++# provider's default group parameter is used for each connection. ++# ++# If the property value does not follow the grammar, or a particular group ++# parameter is not valid, the connection will fall back and use the ++# underlying JSSE provider's default group parameter. ++# ++# Note: This property is currently used by OpenJDK's JSSE implementation. It ++# is not guaranteed to be examined and used by other implementations. ++# ++# Example: ++# jdk.tls.server.defaultDHEParameters= ++# { \ ++# FFFFFFFF FFFFFFFF C90FDAA2 2168C234 C4C6628B 80DC1CD1 \ ++# 29024E08 8A67CC74 020BBEA6 3B139B22 514A0879 8E3404DD \ ++# EF9519B3 CD3A431B 302B0A6D F25F1437 4FE1356D 6D51C245 \ ++# E485B576 625E7EC6 F44C42E9 A637ED6B 0BFF5CB6 F406B7ED \ ++# EE386BFB 5A899FA5 AE9F2411 7C4B1FE6 49286651 ECE65381 \ ++# FFFFFFFF FFFFFFFF, 2} +--- ./jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp 2015-12-12 10:53:22.129769000 -0800 ++++ ./jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp 2015-10-24 06:21:20.000000000 -0700 @@ -62,7 +62,7 @@ #endif // End of ZLIB @@ -13513,8 +15281,8 @@ #define SWAP_BYTES(a) \ ((((a) << 8) & 0xff00) | 0x00ff) & (((a) >> 8) | 0xff00) #else ---- ./jdk/src/share/native/com/sun/media/sound/DirectAudioDevice.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/com/sun/media/sound/DirectAudioDevice.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/com/sun/media/sound/DirectAudioDevice.c 2015-12-12 10:53:22.130522000 -0800 ++++ ./jdk/src/share/native/com/sun/media/sound/DirectAudioDevice.c 2015-10-24 06:21:20.000000000 -0700 @@ -121,7 +121,7 @@ } @@ -13542,8 +15310,8 @@ #define MAP_NATIVE2LE16(a) (a) #define MAP_NATIVE2BE16(a) MAP_SWAP16_impl(a) #define MAP_NATIVE2LE32(a) (a) ---- ./jdk/src/share/native/com/sun/media/sound/Utilities.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/com/sun/media/sound/Utilities.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/com/sun/media/sound/Utilities.c 2014-03-03 18:59:33.000000000 -0800 ++++ ./jdk/src/share/native/com/sun/media/sound/Utilities.c 2015-10-24 06:21:20.000000000 -0700 @@ -28,7 +28,7 @@ @@ -13553,8 +15321,8 @@ return 0; #else return 1; ---- ./jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h 2014-03-03 18:59:34.000000000 -0800 ++++ ./jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h 2015-10-24 06:21:20.000000000 -0700 @@ -40,7 +40,7 @@ #endif #endif @@ -13564,8 +15332,45 @@ #define __HI(x) *(1+(int*)&x) #define __LO(x) *(int*)&x #define __HIp(x) *(1+(int*)x) ---- ./jdk/src/share/native/sun/awt/image/awt_parseImage.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/image/awt_parseImage.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/java/net/InetAddress.c 2014-03-03 18:59:35.000000000 -0800 ++++ ./jdk/src/share/native/java/net/InetAddress.c 2015-10-24 06:21:18.000000000 -0700 +@@ -38,6 +38,7 @@ + jfieldID iac_addressID; + jfieldID iac_familyID; + jfieldID iac_hostNameID; ++jfieldID iac_origHostNameID; + jfieldID ia_preferIPv6AddressID; + + /* +@@ -64,4 +65,6 @@ + iac_familyID = (*env)->GetFieldID(env, iac_class, "family", "I"); + CHECK_NULL(iac_familyID); + iac_hostNameID = (*env)->GetFieldID(env, iac_class, "hostName", "Ljava/lang/String;"); ++ CHECK_NULL(iac_hostNameID); ++ iac_origHostNameID = (*env)->GetFieldID(env, iac_class, "originalHostName", "Ljava/lang/String;"); + } +--- ./jdk/src/share/native/java/net/net_util.c 2015-12-12 10:53:22.134059000 -0800 ++++ ./jdk/src/share/native/java/net/net_util.c 2015-10-24 06:21:18.000000000 -0700 +@@ -199,6 +199,7 @@ + initInetAddrs(env); + holder = (*env)->GetObjectField(env, iaObj, ia_holderID); + (*env)->SetObjectField(env, holder, iac_hostNameID, host); ++ (*env)->SetObjectField(env, holder, iac_origHostNameID, host); + } + + int getInetAddress_addr(JNIEnv *env, jobject iaObj) { +--- ./jdk/src/share/native/java/net/net_util.h 2015-12-12 10:53:29.819237000 -0800 ++++ ./jdk/src/share/native/java/net/net_util.h 2015-10-24 06:21:18.000000000 -0700 +@@ -53,6 +53,7 @@ + extern jfieldID iac_addressID; + extern jfieldID iac_familyID; + extern jfieldID iac_hostNameID; ++extern jfieldID iac_origHostNameID; + extern jfieldID ia_preferIPv6AddressID; + + /** (Inet6Address accessors) +--- ./jdk/src/share/native/sun/awt/image/awt_parseImage.c 2015-12-12 10:53:27.562370000 -0800 ++++ ./jdk/src/share/native/sun/awt/image/awt_parseImage.c 2015-10-24 06:21:20.000000000 -0700 @@ -624,7 +624,7 @@ switch(type) { case java_awt_image_BufferedImage_TYPE_INT_ARGB: @@ -13593,8 +15398,8 @@ colorOrder[0] = 2; colorOrder[1] = 1; colorOrder[2] = 0; ---- ./jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c 2015-12-12 10:53:22.241091000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c 2015-10-24 06:21:20.000000000 -0700 @@ -1176,7 +1176,7 @@ #define NLUT 8 @@ -13604,8 +15409,8 @@ #define INDEXES { 3, 2, 1, 0, 7, 6, 5, 4 } #else #define INDEXES { 0, 1, 2, 3, 4, 5, 6, 7 } ---- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c 2014-03-03 18:59:37.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c 2015-10-24 06:21:20.000000000 -0700 @@ -86,7 +86,7 @@ #endif /* MLIB_USE_FTOI_CLAMPING */ @@ -13645,8 +15450,8 @@ #endif /* _NO_LONGLONG */ ---- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c 2014-03-03 18:59:37.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c 2015-10-24 06:21:20.000000000 -0700 @@ -126,7 +126,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -13686,8 +15491,8 @@ #endif /* _NO_LONGLONG */ /***************************************************************/ ---- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c 2014-03-03 18:59:37.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c 2015-10-24 06:21:20.000000000 -0700 @@ -94,7 +94,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -13727,8 +15532,8 @@ #endif /* _NO_LONGLONG */ /***************************************************************/ ---- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c 2014-03-03 18:59:38.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c 2015-10-24 06:21:20.000000000 -0700 @@ -126,7 +126,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -13768,8 +15573,8 @@ #endif /* _NO_LONGLONG */ /***************************************************************/ ---- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c 2014-03-03 18:59:38.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c 2015-10-24 06:21:20.000000000 -0700 @@ -95,7 +95,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -13809,8 +15614,8 @@ #endif /* _NO_LONGLONG */ /***************************************************************/ ---- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c 2014-03-03 18:59:38.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c 2015-10-24 06:21:20.000000000 -0700 @@ -126,7 +126,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -13850,8 +15655,8 @@ #endif /* _NO_LONGLONG */ /***************************************************************/ ---- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c 2014-03-03 18:59:38.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c 2015-10-24 06:21:20.000000000 -0700 @@ -94,7 +94,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -13891,8 +15696,8 @@ #endif /* _NO_LONGLONG */ /***************************************************************/ ---- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c 2014-03-03 18:59:38.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c 2015-10-24 06:21:20.000000000 -0700 @@ -95,7 +95,7 @@ dst = dp[0]; if (ld_offset + size < 32) { @@ -14112,8 +15917,8 @@ } #else /* _LONGLONG */ ---- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c 2014-03-03 18:59:38.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c 2015-10-24 06:21:20.000000000 -0700 @@ -168,7 +168,7 @@ } @@ -14394,8 +16199,8 @@ dp[12] = t0; dp[13] = t1; dp[14] = t2; ---- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c 2014-03-03 18:59:38.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c 2015-10-24 06:21:20.000000000 -0700 @@ -88,7 +88,7 @@ } d64_2_f32; @@ -14547,8 +16352,8 @@ ((mlib_u32*)lh)[0] = l; ((mlib_u32*)lh)[1] = l; ((mlib_u32*)lh)[2] = l; ((mlib_u32*)lh)[3] = h; ---- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageUtils.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageUtils.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageUtils.c 2014-03-03 18:59:38.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageUtils.c 2015-10-24 06:21:21.000000000 -0700 @@ -30,7 +30,7 @@ typedef union { mlib_d64 db; @@ -14558,8 +16363,8 @@ mlib_s32 int1, int0; #else mlib_s32 int0, int1; ---- ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c 2014-03-03 18:59:38.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c 2015-10-24 06:21:21.000000000 -0700 @@ -275,11 +275,11 @@ for (i = 0; j <= (b_size - 4); j += 4, i++) { src0 = src1; @@ -14658,8 +16463,8 @@ s0 = s1; dp += SIZE; sp += SIZE; ---- ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c 2014-03-03 18:59:38.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c 2015-10-24 06:21:21.000000000 -0700 @@ -120,7 +120,7 @@ } \ } @@ -15892,8 +17697,8 @@ dp[12] = t0; dp[13] = t1; dp[14] = t2; ---- ./jdk/src/share/native/sun/awt/medialib/mlib_image.h Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_image.h Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_image.h 2014-03-03 18:59:38.000000000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_image.h 2015-10-24 06:21:21.000000000 -0700 @@ -27,9 +27,6 @@ #ifndef MLIB_IMAGE_H #define MLIB_IMAGE_H @@ -15904,8 +17709,8 @@ #include <mlib_types.h> #include <mlib_status.h> #include <mlib_sys.h> ---- ./jdk/src/share/native/sun/awt/medialib/mlib_sys.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_sys.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/awt/medialib/mlib_sys.c 2015-12-12 10:53:22.241478000 -0800 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_sys.c 2015-10-24 06:21:21.000000000 -0700 @@ -29,7 +29,7 @@ #ifdef MACOSX #include <unistd.h> @@ -15925,8 +17730,8 @@ #else return (void *) memalign(8, size); #endif /* _MSC_VER */ ---- ./jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.cpp 2015-12-12 10:53:29.826255000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.cpp 2015-07-18 13:32:31.000000000 -0700 @@ -53,6 +53,7 @@ Offset alternateSetTableOffset = SWAPW(alternateSetTableOffsetArray[coverageIndex]); const LEReferenceTo<AlternateSetTable> alternateSetTable(base, success, @@ -15935,15 +17740,14 @@ TTGlyphID alternate = SWAPW(alternateSetTable->alternateArray[0]); if (filter == NULL || filter->accept(LE_SET_GLYPH(glyph, alternate), success)) { ---- ./jdk/src/share/native/sun/font/layout/AnchorTables.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/AnchorTables.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/AnchorTables.cpp 2015-12-12 10:53:29.826572000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/AnchorTables.cpp 2015-07-18 13:32:32.000000000 -0700 @@ -44,21 +44,27 @@ case 1: { LEReferenceTo<Format1AnchorTable> f1(base, success); -- f1->getAnchor(f1, fontInstance, anchor, success); + if (LE_SUCCESS(success)) { -+ f1->getAnchor(f1, fontInstance, anchor, success); + f1->getAnchor(f1, fontInstance, anchor, success); + } break; } @@ -15951,9 +17755,8 @@ case 2: { LEReferenceTo<Format2AnchorTable> f2(base, success); -- f2->getAnchor(f2, glyphID, fontInstance, anchor, success); + if (LE_SUCCESS(success)) { -+ f2->getAnchor(f2, glyphID, fontInstance, anchor, success); + f2->getAnchor(f2, glyphID, fontInstance, anchor, success); + } break; } @@ -15961,9 +17764,8 @@ case 3: { LEReferenceTo<Format3AnchorTable> f3(base, success); -- f3->getAnchor(f3, fontInstance, anchor, success); + if (LE_SUCCESS(success)) { -+ f3->getAnchor(f3, fontInstance, anchor, success); + f3->getAnchor(f3, fontInstance, anchor, success); + } break; } @@ -15972,40 +17774,36 @@ { // unknown format: just use x, y coordinate, like format 1... LEReferenceTo<Format1AnchorTable> f1(base, success); -- f1->getAnchor(f1, fontInstance, anchor, success); + if (LE_SUCCESS(success)) { -+ f1->getAnchor(f1, fontInstance, anchor, success); + f1->getAnchor(f1, fontInstance, anchor, success); + } break; } } -@@ -112,16 +120,18 @@ +@@ -112,17 +120,19 @@ if (dtxOffset != 0) { LEReferenceTo<DeviceTable> dt(base, success, dtxOffset); -- le_int16 adjx = dt->getAdjustment(dt, (le_int16) fontInstance->getXPixelsPerEm(), success); -- -- pixels.fX += adjx; + if (LE_SUCCESS(success)) { -+ le_int16 adjx = dt->getAdjustment(dt, (le_int16) fontInstance->getXPixelsPerEm(), success); -+ pixels.fX += adjx; -+ } + le_int16 adjx = dt->getAdjustment(dt, (le_int16) fontInstance->getXPixelsPerEm(), success); +- + pixels.fX += adjx; } ++ } if (dtyOffset != 0) { LEReferenceTo<DeviceTable> dt(base, success, dtyOffset); -- le_int16 adjy = dt->getAdjustment(dt, (le_int16) fontInstance->getYPixelsPerEm(), success); -- -- pixels.fY += adjy; + if (LE_SUCCESS(success)) { -+ le_int16 adjy = dt->getAdjustment(dt, (le_int16) fontInstance->getYPixelsPerEm(), success); -+ pixels.fY += adjy; -+ } + le_int16 adjy = dt->getAdjustment(dt, (le_int16) fontInstance->getYPixelsPerEm(), success); +- + pixels.fY += adjy; } ++ } fontInstance->pixelsToUnits(pixels, anchor); ---- ./jdk/src/share/native/sun/font/layout/ContextualGlyphInsertionProc2.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ContextualGlyphInsertionProc2.cpp Sat Sep 05 06:34:07 2015 -0700 + } +--- ./jdk/src/share/native/sun/font/layout/ContextualGlyphInsertionProc2.cpp 2015-12-12 10:53:29.826855000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/ContextualGlyphInsertionProc2.cpp 2015-07-18 13:32:32.000000000 -0700 @@ -107,6 +107,10 @@ le_int16 markIndex = SWAPW(entry->markedInsertionListIndex); @@ -16028,8 +17826,8 @@ le_int16 count = flags & cgiCurrentInsertCountMask; le_bool isKashidaLike = (flags & cgiCurrentIsKashidaLike); le_bool isBefore = (flags & cgiCurrentInsertBefore); ---- ./jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc.cpp 2015-12-12 10:53:29.827170000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc.cpp 2015-07-18 13:32:32.000000000 -0700 @@ -76,6 +76,10 @@ WordOffset currOffset = SWAPW(entry->currOffset); @@ -16052,8 +17850,8 @@ LEGlyphID thisGlyph = glyphStorage[currGlyph]; TTGlyphID newGlyph = SWAPW(int16Table.getObject(currOffset + LE_GET_GLYPH(thisGlyph), success)); // whew. ---- ./jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc2.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc2.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc2.cpp 2015-12-12 10:53:29.827466000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc2.cpp 2015-07-18 13:32:32.000000000 -0700 @@ -70,17 +70,25 @@ if(LE_FAILURE(success)) return 0; le_uint16 newState = SWAPW(entry->newStateIndex); @@ -16084,8 +17882,8 @@ le_uint32 offset = SWAPL(perGlyphTable(currIndex, success)); LEGlyphID thisGlyph = glyphStorage[currGlyph]; TTGlyphID newGlyph = lookup(offset, thisGlyph, success); ---- ./jdk/src/share/native/sun/font/layout/Features.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/Features.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/Features.cpp 2015-12-12 10:53:29.827762000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/Features.cpp 2015-07-18 13:32:32.000000000 -0700 @@ -41,7 +41,7 @@ LEReferenceTo<FeatureTable> FeatureListTable::getFeatureTable(const LETableReference &base, le_uint16 featureIndex, LETag *featureTag, LEErrorCode &success) const { @@ -16095,8 +17893,8 @@ if (featureIndex >= SWAPW(featureCount) || LE_FAILURE(success)) { return LEReferenceTo<FeatureTable>(); ---- ./jdk/src/share/native/sun/font/layout/GXLayoutEngine.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/GXLayoutEngine.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/GXLayoutEngine.cpp 2015-12-12 10:53:29.828035000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/GXLayoutEngine.cpp 2015-07-18 13:32:32.000000000 -0700 @@ -73,7 +73,7 @@ fMorphTable->process(fMorphTable, glyphStorage, success); @@ -16106,8 +17904,8 @@ } // apply positional tables ---- ./jdk/src/share/native/sun/font/layout/GXLayoutEngine2.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/GXLayoutEngine2.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/GXLayoutEngine2.cpp 2015-12-12 10:53:29.828286000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/GXLayoutEngine2.cpp 2015-07-18 13:32:32.000000000 -0700 @@ -69,7 +69,7 @@ } @@ -16117,9 +17915,9 @@ } // apply positional tables ---- ./jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.cpp Sat Sep 05 06:34:07 2015 -0700 -@@ -70,6 +70,11 @@ +--- ./jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.cpp 2015-12-12 10:53:29.828623000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.cpp 2015-10-24 06:21:18.000000000 -0700 +@@ -70,15 +70,20 @@ ByteOffset newState = SWAPW(entry->newStateOffset); IndicRearrangementFlags flags = (IndicRearrangementFlags) SWAPW(entry->flags); @@ -16129,11 +17927,232 @@ + } + if (flags & irfMarkFirst) { - firstGlyph = currGlyph; +- firstGlyph = currGlyph; ++ firstGlyph = (le_uint32)currGlyph; } ---- ./jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor2.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor2.cpp Sat Sep 05 06:34:07 2015 -0700 -@@ -68,6 +68,11 @@ + + if (flags & irfMarkLast) { +- lastGlyph = currGlyph; ++ lastGlyph = (le_uint32)currGlyph; + } + +- doRearrangementAction(glyphStorage, (IndicRearrangementVerb) (flags & irfVerbMask)); ++ doRearrangementAction(glyphStorage, (IndicRearrangementVerb) (flags & irfVerbMask), success); + + if (!(flags & irfDontAdvance)) { + // XXX: Should handle reverse too... +@@ -92,18 +97,29 @@ + { + } + +-void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphStorage, IndicRearrangementVerb verb) const ++void IndicRearrangementProcessor::doRearrangementAction(LEGlyphStorage &glyphStorage, IndicRearrangementVerb verb, LEErrorCode &success) const + { + LEGlyphID a, b, c, d; + le_int32 ia, ib, ic, id, ix, x; +- LEErrorCode success = LE_NO_ERROR; ++ ++ if (LE_FAILURE(success)) return; ++ ++ if (verb == irvNoAction) { ++ return; ++ } ++ if (firstGlyph > lastGlyph) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ return; ++ } + + switch(verb) + { +- case irvNoAction: +- break; +- + case irvxA: ++ if (firstGlyph == lastGlyph) break; ++ if (firstGlyph + 1 < firstGlyph) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + ia = glyphStorage.getCharIndex(firstGlyph, success); + x = firstGlyph + 1; +@@ -120,6 +136,11 @@ + break; + + case irvDx: ++ if (firstGlyph == lastGlyph) break; ++ if (lastGlyph - 1 > lastGlyph) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + d = glyphStorage[lastGlyph]; + id = glyphStorage.getCharIndex(lastGlyph, success); + x = lastGlyph - 1; +@@ -148,6 +169,11 @@ + break; + + case irvxAB: ++ if ((firstGlyph + 2 < firstGlyph) || ++ (lastGlyph - firstGlyph < 1)) { // difference == 1 is a no-op, < 1 is an error. ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + ia = glyphStorage.getCharIndex(firstGlyph, success); +@@ -169,6 +195,11 @@ + break; + + case irvxBA: ++ if ((firstGlyph + 2 < firstGlyph) || ++ (lastGlyph - firstGlyph < 1)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + ia = glyphStorage.getCharIndex(firstGlyph, success); +@@ -190,6 +221,11 @@ + break; + + case irvCDx: ++ if ((lastGlyph - 2 > lastGlyph) || ++ (lastGlyph - firstGlyph < 1)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + c = glyphStorage[lastGlyph - 1]; + d = glyphStorage[lastGlyph]; + ic = glyphStorage.getCharIndex(lastGlyph - 1, success); +@@ -211,6 +247,11 @@ + break; + + case irvDCx: ++ if ((lastGlyph - 2 > lastGlyph) || ++ (lastGlyph - firstGlyph < 1)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + c = glyphStorage[lastGlyph - 1]; + d = glyphStorage[lastGlyph]; + ic = glyphStorage.getCharIndex(lastGlyph - 1, success); +@@ -232,6 +273,11 @@ + break; + + case irvCDxA: ++ if ((lastGlyph - 2 > lastGlyph) || ++ (lastGlyph - firstGlyph < 2)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + c = glyphStorage[lastGlyph - 1]; + d = glyphStorage[lastGlyph]; +@@ -257,6 +303,11 @@ + break; + + case irvDCxA: ++ if ((lastGlyph - 2 > lastGlyph) || ++ (lastGlyph - firstGlyph < 2)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + c = glyphStorage[lastGlyph - 1]; + d = glyphStorage[lastGlyph]; +@@ -282,6 +333,11 @@ + break; + + case irvDxAB: ++ if ((firstGlyph + 2 < firstGlyph) || ++ (lastGlyph - firstGlyph < 2)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + d = glyphStorage[lastGlyph]; +@@ -307,6 +363,11 @@ + break; + + case irvDxBA: ++ if ((firstGlyph + 2 < firstGlyph) || ++ (lastGlyph - firstGlyph < 2)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + d = glyphStorage[lastGlyph]; +@@ -332,6 +393,10 @@ + break; + + case irvCDxAB: ++ if (lastGlyph - firstGlyph < 3) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + +@@ -354,6 +419,10 @@ + break; + + case irvCDxBA: ++ if (lastGlyph - firstGlyph < 3) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + +@@ -376,6 +445,10 @@ + break; + + case irvDCxAB: ++ if (lastGlyph - firstGlyph < 3) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + +@@ -398,6 +471,10 @@ + break; + + case irvDCxBA: ++ if (lastGlyph - firstGlyph < 3) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + +--- ./jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.h 2014-03-03 18:59:39.000000000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor.h 2015-10-24 06:21:18.000000000 -0700 +@@ -56,7 +56,7 @@ + + virtual void endStateTable(); + +- void doRearrangementAction(LEGlyphStorage &glyphStorage, IndicRearrangementVerb verb) const; ++ void doRearrangementAction(LEGlyphStorage &glyphStorage, IndicRearrangementVerb verb, LEErrorCode &success) const; + + IndicRearrangementProcessor(const LEReferenceTo<MorphSubtableHeader> &morphSubtableHeader, LEErrorCode &success); + virtual ~IndicRearrangementProcessor(); +@@ -76,8 +76,8 @@ + static UClassID getStaticClassID(); + + protected: +- le_int32 firstGlyph; +- le_int32 lastGlyph; ++ le_uint32 firstGlyph; ++ le_uint32 lastGlyph; + + LEReferenceTo<IndicRearrangementSubtableHeader> indicRearrangementSubtableHeader; + LEReferenceToArrayOf<IndicRearrangementStateEntry> entryTable; +--- ./jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor2.cpp 2015-12-12 10:53:29.828965000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor2.cpp 2015-10-24 06:21:19.000000000 -0700 +@@ -68,15 +68,20 @@ le_uint16 newState = SWAPW(entry->newStateIndex); // index to the new state IndicRearrangementFlags flags = (IndicRearrangementFlags) SWAPW(entry->flags); @@ -16143,10 +18162,231 @@ + } + if (flags & irfMarkFirst) { - firstGlyph = currGlyph; +- firstGlyph = currGlyph; ++ firstGlyph = (le_uint32)currGlyph; } ---- ./jdk/src/share/native/sun/font/layout/LEStandalone.h Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LEStandalone.h Sat Sep 05 06:34:07 2015 -0700 + + if (flags & irfMarkLast) { +- lastGlyph = currGlyph; ++ lastGlyph = (le_uint32)currGlyph; + } + +- doRearrangementAction(glyphStorage, (IndicRearrangementVerb) (flags & irfVerbMask)); ++ doRearrangementAction(glyphStorage, (IndicRearrangementVerb) (flags & irfVerbMask), success); + + if (!(flags & irfDontAdvance)) { + currGlyph += dir; +@@ -89,18 +94,29 @@ + { + } + +-void IndicRearrangementProcessor2::doRearrangementAction(LEGlyphStorage &glyphStorage, IndicRearrangementVerb verb) const ++void IndicRearrangementProcessor2::doRearrangementAction(LEGlyphStorage &glyphStorage, IndicRearrangementVerb verb, LEErrorCode &success) const + { + LEGlyphID a, b, c, d; + le_int32 ia, ib, ic, id, ix, x; +- LEErrorCode success = LE_NO_ERROR; ++ ++ if (LE_FAILURE(success)) return; ++ ++ if (verb == irvNoAction) { ++ return; ++ } ++ if (firstGlyph > lastGlyph) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ return; ++ } + + switch(verb) + { +- case irvNoAction: +- break; +- + case irvxA: ++ if (firstGlyph == lastGlyph) break; ++ if (firstGlyph + 1 < firstGlyph) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + ia = glyphStorage.getCharIndex(firstGlyph, success); + x = firstGlyph + 1; +@@ -117,6 +133,11 @@ + break; + + case irvDx: ++ if (firstGlyph == lastGlyph) break; ++ if (lastGlyph - 1 > lastGlyph) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + d = glyphStorage[lastGlyph]; + id = glyphStorage.getCharIndex(lastGlyph, success); + x = lastGlyph - 1; +@@ -145,6 +166,11 @@ + break; + + case irvxAB: ++ if ((firstGlyph + 2 < firstGlyph) || ++ (lastGlyph - firstGlyph < 1)) { // difference == 1 is a no-op, < 1 is an error. ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + ia = glyphStorage.getCharIndex(firstGlyph, success); +@@ -166,6 +192,11 @@ + break; + + case irvxBA: ++ if ((firstGlyph + 2 < firstGlyph) || ++ (lastGlyph - firstGlyph < 1)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + ia = glyphStorage.getCharIndex(firstGlyph, success); +@@ -187,6 +218,11 @@ + break; + + case irvCDx: ++ if ((lastGlyph - 2 > lastGlyph) || ++ (lastGlyph - firstGlyph < 1)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + c = glyphStorage[lastGlyph - 1]; + d = glyphStorage[lastGlyph]; + ic = glyphStorage.getCharIndex(lastGlyph - 1, success); +@@ -208,6 +244,11 @@ + break; + + case irvDCx: ++ if ((lastGlyph - 2 > lastGlyph) || ++ (lastGlyph - firstGlyph < 1)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + c = glyphStorage[lastGlyph - 1]; + d = glyphStorage[lastGlyph]; + ic = glyphStorage.getCharIndex(lastGlyph - 1, success); +@@ -229,6 +270,11 @@ + break; + + case irvCDxA: ++ if ((lastGlyph - 2 > lastGlyph) || ++ (lastGlyph - firstGlyph < 2)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + c = glyphStorage[lastGlyph - 1]; + d = glyphStorage[lastGlyph]; +@@ -254,6 +300,11 @@ + break; + + case irvDCxA: ++ if ((lastGlyph - 2 > lastGlyph) || ++ (lastGlyph - firstGlyph < 2)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + c = glyphStorage[lastGlyph - 1]; + d = glyphStorage[lastGlyph]; +@@ -279,6 +330,11 @@ + break; + + case irvDxAB: ++ if ((firstGlyph + 2 < firstGlyph) || ++ (lastGlyph - firstGlyph < 2)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + d = glyphStorage[lastGlyph]; +@@ -304,6 +360,11 @@ + break; + + case irvDxBA: ++ if ((firstGlyph + 2 < firstGlyph) || ++ (lastGlyph - firstGlyph < 2)) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + d = glyphStorage[lastGlyph]; +@@ -329,6 +390,10 @@ + break; + + case irvCDxAB: ++ if (lastGlyph - firstGlyph < 3) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + +@@ -351,6 +416,10 @@ + break; + + case irvCDxBA: ++ if (lastGlyph - firstGlyph < 3) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + +@@ -373,6 +442,10 @@ + break; + + case irvDCxAB: ++ if (lastGlyph - firstGlyph < 3) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + +@@ -395,6 +468,10 @@ + break; + + case irvDCxBA: ++ if (lastGlyph - firstGlyph < 3) { ++ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; ++ break; ++ } + a = glyphStorage[firstGlyph]; + b = glyphStorage[firstGlyph + 1]; + +--- ./jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor2.h 2014-03-03 18:59:39.000000000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/IndicRearrangementProcessor2.h 2015-10-24 06:21:19.000000000 -0700 +@@ -56,7 +56,7 @@ + + virtual void endStateTable(); + +- void doRearrangementAction(LEGlyphStorage &glyphStorage, IndicRearrangementVerb verb) const; ++ void doRearrangementAction(LEGlyphStorage &glyphStorage, IndicRearrangementVerb verb, LEErrorCode &success) const; + + IndicRearrangementProcessor2(const LEReferenceTo<MorphSubtableHeader2> &morphSubtableHeader, LEErrorCode &success); + virtual ~IndicRearrangementProcessor2(); +@@ -76,8 +76,8 @@ + static UClassID getStaticClassID(); + + protected: +- le_int32 firstGlyph; +- le_int32 lastGlyph; ++ le_uint32 firstGlyph; ++ le_uint32 lastGlyph; + + LEReferenceToArrayOf<IndicRearrangementStateEntry2> entryTable; + LEReferenceTo<IndicRearrangementSubtableHeader2> indicRearrangementSubtableHeader; +--- ./jdk/src/share/native/sun/font/layout/LEStandalone.h 2014-03-03 18:59:40.000000000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/LEStandalone.h 2015-10-24 06:21:21.000000000 -0700 @@ -136,7 +136,7 @@ #define U_CAPI extern "C" @@ -16156,8 +18396,8 @@ #define U_IS_BIG_ENDIAN 0 #endif #endif ---- ./jdk/src/share/native/sun/font/layout/LETableReference.h Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LETableReference.h Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/LETableReference.h 2015-12-12 10:53:29.829386000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/LETableReference.h 2015-07-18 13:32:33.000000000 -0700 @@ -188,7 +188,7 @@ void addOffset(size_t offset, LEErrorCode &success) { @@ -16222,8 +18462,8 @@ } if(LE_FAILURE(success)) clear(); } ---- ./jdk/src/share/native/sun/font/layout/LigatureSubstProc.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LigatureSubstProc.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/LigatureSubstProc.cpp 2015-12-12 10:53:29.829712000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/LigatureSubstProc.cpp 2015-07-18 13:32:33.000000000 -0700 @@ -73,7 +73,7 @@ const LigatureSubstitutionStateEntry *entry = entryTable.getAlias(index, success); @@ -16254,8 +18494,8 @@ if (m < 0) { m = nComponents - 1; ---- ./jdk/src/share/native/sun/font/layout/LigatureSubstProc2.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LigatureSubstProc2.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/LigatureSubstProc2.cpp 2015-12-12 10:53:29.830029000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/LigatureSubstProc2.cpp 2015-07-18 13:32:33.000000000 -0700 @@ -98,7 +98,7 @@ ap.addObject(ligActionIndex, success); LEReferenceToArrayOf<TTGlyphID> ligatureTable(stHeader, success, ligatureOffset, LE_UNBOUNDED_ARRAY); @@ -16284,8 +18524,21 @@ } while (LE_SUCCESS(success) && !(action & lafLast) && (m>=0) ); // stop if last bit is set, or if run out of items while (mm >= 0) { ---- ./jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/LookupTables.cpp 2014-03-03 18:59:40.000000000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/LookupTables.cpp 2015-10-24 06:21:19.000000000 -0700 +@@ -91,6 +91,10 @@ + LEReferenceTo<LookupSingle> entry(base, success, entries); + LEReferenceTo<LookupSingle> trial(entry, success, extra); + ++ if (!LE_SUCCESS(success)) { ++ return NULL; ++ } ++ + if (SWAPW(trial->glyph) <= ttGlyph) { + entry = trial; + } +--- ./jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp 2015-12-12 10:53:29.830672000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp 2015-07-18 13:32:33.000000000 -0700 @@ -97,13 +97,9 @@ if( LE_FAILURE(success) ) { return 0; } @@ -16295,49 +18548,49 @@ - glyphIterator->setCurrGlyphBaseOffset(baseIterator.getCurrStreamPosition()); - return 0; - } -+ LEReferenceTo<AnchorTable> anchorTable(baseArray, success, anchorTableOffset); +- + LEReferenceTo<AnchorTable> anchorTable(baseArray, success, anchorTableOffset); + if( LE_FAILURE(success) ) { return 0; } - -- LEReferenceTo<AnchorTable> anchorTable(baseArray, success, anchorTableOffset); ++ LEPoint baseAnchor, markAdvance, pixels; ---- ./jdk/src/share/native/sun/font/layout/MorphTables.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/MorphTables.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/MorphTables.cpp 2015-12-12 10:53:29.831000000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/MorphTables.cpp 2015-10-24 06:21:19.000000000 -0700 @@ -52,8 +52,15 @@ le_uint32 chain; for (chain = 0; LE_SUCCESS(success) && (chain < chainCount); chain += 1) { +- FeatureFlags defaultFlags = SWAPL(chainHeader->defaultFlags); + if (chain > 0) { -+ le_uint32 chainLength = SWAPL(chainHeader->chainLength); + le_uint32 chainLength = SWAPL(chainHeader->chainLength); + if (chainLength & 0x03) { // incorrect alignment for 32 bit tables + success = LE_MEMORY_ALLOCATION_ERROR; // as good a choice as any + return; + } + chainHeader.addOffset(chainLength, success); + } - FeatureFlags defaultFlags = SWAPL(chainHeader->defaultFlags); -- le_uint32 chainLength = SWAPL(chainHeader->chainLength); ++ FeatureFlags defaultFlags = SWAPL(chainHeader->defaultFlags); le_int16 nFeatureEntries = SWAPW(chainHeader->nFeatureEntries); le_int16 nSubtables = SWAPW(chainHeader->nSubtables); LEReferenceTo<MorphSubtableHeader> subtableHeader = -@@ -61,7 +68,14 @@ +@@ -61,7 +68,15 @@ le_int16 subtable; for (subtable = 0; LE_SUCCESS(success) && (subtable < nSubtables); subtable += 1) { -- le_int16 length = SWAPW(subtableHeader->length); + if (subtable > 0) { -+ le_int16 length = SWAPW(subtableHeader->length); + le_int16 length = SWAPW(subtableHeader->length); + if (length & 0x03) { // incorrect alignment for 32 bit tables + success = LE_MEMORY_ALLOCATION_ERROR; // as good a choice as any + return; + } + subtableHeader.addOffset(length, success); ++ if (LE_FAILURE(success)) break; + } SubtableCoverage coverage = SWAPW(subtableHeader->coverage); FeatureFlags subtableFeatures = SWAPL(subtableHeader->subtableFeatures); -@@ -69,10 +83,7 @@ +@@ -69,10 +84,7 @@ if ((coverage & scfVertical) == 0 && (subtableFeatures & defaultFlags) != 0 && LE_SUCCESS(success)) { subtableHeader->process(subtableHeader, glyphStorage, success); } @@ -16348,8 +18601,17 @@ } } ---- ./jdk/src/share/native/sun/font/layout/MorphTables2.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/MorphTables2.cpp Sat Sep 05 06:34:07 2015 -0700 +@@ -80,6 +92,8 @@ + { + SubtableProcessor *processor = NULL; + ++ if (LE_FAILURE(success)) return; ++ + switch (SWAPW(coverage) & scfTypeMask) + { + case mstIndicRearrangement: +--- ./jdk/src/share/native/sun/font/layout/MorphTables2.cpp 2015-12-12 10:53:29.831324000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/MorphTables2.cpp 2015-10-24 06:21:19.000000000 -0700 @@ -59,6 +59,10 @@ for (chain = 0; LE_SUCCESS(success) && (chain < chainCount); chain++) { if (chain>0) { @@ -16361,7 +18623,7 @@ chainHeader.addOffset(chainLength, success); // Don't increment the first time } FeatureFlags flag = SWAPL(chainHeader->defaultFlags); -@@ -188,6 +192,10 @@ +@@ -188,7 +192,12 @@ for (subtable = 0; LE_SUCCESS(success) && subtable < nSubtables; subtable++) { if(subtable>0) { le_uint32 length = SWAPL(subtableHeader->length); @@ -16370,10 +18632,21 @@ + return; + } subtableHeader.addOffset(length, success); // Don't addOffset for the last entry. ++ if (LE_FAILURE(success)) break; } le_uint32 coverage = SWAPL(subtableHeader->coverage); ---- ./jdk/src/share/native/sun/font/layout/PairPositioningSubtables.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/PairPositioningSubtables.cpp Sat Sep 05 06:34:07 2015 -0700 + FeatureFlags subtableFeatures = SWAPL(subtableHeader->subtableFeatures); +@@ -204,6 +213,8 @@ + { + SubtableProcessor2 *processor = NULL; + ++ if (LE_FAILURE(success)) return; ++ + switch (SWAPL(coverage) & scfTypeMask2) + { + case mstIndicRearrangement: +--- ./jdk/src/share/native/sun/font/layout/PairPositioningSubtables.cpp 2015-12-12 10:53:29.831624000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/PairPositioningSubtables.cpp 2015-07-18 13:32:33.000000000 -0700 @@ -179,12 +179,13 @@ LEReferenceTo<PairValueRecord> record(records); @@ -16390,8 +18663,56 @@ } #else #error dead code - not updated. ---- ./jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/SegmentArrayProcessor.cpp 2015-12-12 10:53:19.989749000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/SegmentArrayProcessor.cpp 2015-10-24 06:21:19.000000000 -0700 +@@ -63,6 +63,8 @@ + le_int32 glyphCount = glyphStorage.getGlyphCount(); + le_int32 glyph; + ++ if (LE_FAILURE(success)) return; ++ + for (glyph = 0; glyph < glyphCount; glyph += 1) { + LEGlyphID thisGlyph = glyphStorage[glyph]; + const LookupSegment *lookupSegment = segmentArrayLookupTable->lookupSegment(segmentArrayLookupTable, segments, thisGlyph, success); +--- ./jdk/src/share/native/sun/font/layout/SegmentArrayProcessor2.cpp 2014-03-03 18:59:40.000000000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/SegmentArrayProcessor2.cpp 2015-10-24 06:21:19.000000000 -0700 +@@ -63,6 +63,8 @@ + le_int32 glyphCount = glyphStorage.getGlyphCount(); + le_int32 glyph; + ++ if (LE_FAILURE(success)) return; ++ + for (glyph = 0; glyph < glyphCount; glyph += 1) { + LEGlyphID thisGlyph = glyphStorage[glyph]; + // lookupSegment already range checked by lookupSegment() function. +--- ./jdk/src/share/native/sun/font/layout/SegmentSingleProcessor2.cpp 2014-03-03 18:59:40.000000000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/SegmentSingleProcessor2.cpp 2015-10-24 06:21:19.000000000 -0700 +@@ -64,6 +64,8 @@ + le_int32 glyphCount = glyphStorage.getGlyphCount(); + le_int32 glyph; + ++ if (LE_FAILURE(success)) return; ++ + for (glyph = 0; glyph < glyphCount; glyph += 1) { + LEGlyphID thisGlyph = glyphStorage[glyph]; + const LookupSegment *lookupSegment = segmentSingleLookupTable->lookupSegment(segmentSingleLookupTable, segments, thisGlyph, success); +--- ./jdk/src/share/native/sun/font/layout/SimpleArrayProcessor2.cpp 2014-03-03 18:59:40.000000000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/SimpleArrayProcessor2.cpp 2015-10-24 06:21:19.000000000 -0700 +@@ -61,10 +61,11 @@ + + void SimpleArrayProcessor2::process(LEGlyphStorage &glyphStorage, LEErrorCode &success) + { +- if (LE_FAILURE(success)) return; + le_int32 glyphCount = glyphStorage.getGlyphCount(); + le_int32 glyph; + ++ if (LE_FAILURE(success)) return; ++ + for (glyph = 0; glyph < glyphCount; glyph += 1) { + LEGlyphID thisGlyph = glyphStorage[glyph]; + if (LE_GET_GLYPH(thisGlyph) < 0xFFFF) { +--- ./jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp 2015-12-12 10:53:29.831907000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp 2015-07-18 13:32:33.000000000 -0700 @@ -94,7 +94,9 @@ return 0; } @@ -16403,8 +18724,19 @@ TTGlyphID substitute = SWAPW(substituteArray[coverageIndex]); if (filter == NULL || filter->accept(LE_SET_GLYPH(glyph, substitute), success)) { ---- ./jdk/src/share/native/sun/font/layout/StateTableProcessor.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/StateTableProcessor.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/SingleTableProcessor.cpp 2014-03-03 18:59:40.000000000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/SingleTableProcessor.cpp 2015-10-24 06:21:19.000000000 -0700 +@@ -63,6 +63,8 @@ + le_int32 glyph; + le_int32 glyphCount = glyphStorage.getGlyphCount(); + ++ if (LE_FAILURE(success)) return; ++ + for (glyph = 0; glyph < glyphCount; glyph += 1) { + const LookupSingle *lookupSingle = singleTableLookupTable->lookupSingle(singleTableLookupTable, entries, glyphStorage[glyph], success); + +--- ./jdk/src/share/native/sun/font/layout/StateTableProcessor.cpp 2015-12-12 10:53:29.832189000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/StateTableProcessor.cpp 2015-07-18 13:32:33.000000000 -0700 @@ -85,6 +85,7 @@ if (currGlyph == glyphCount) { // XXX: How do we handle EOT vs. EOL? @@ -16413,8 +18745,8 @@ } else { TTGlyphID glyphCode = (TTGlyphID) LE_GET_GLYPH(glyphStorage[currGlyph]); ---- ./jdk/src/share/native/sun/font/layout/StateTableProcessor2.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/StateTableProcessor2.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/StateTableProcessor2.cpp 2015-12-12 10:53:29.832523000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/StateTableProcessor2.cpp 2015-07-18 13:32:33.000000000 -0700 @@ -103,6 +103,7 @@ if (currGlyph == glyphCount || currGlyph == -1) { // XXX: How do we handle EOT vs. EOL? @@ -16447,8 +18779,8 @@ } else { TTGlyphID glyphCode = (TTGlyphID) LE_GET_GLYPH(glyphStorage[currGlyph]); if (glyphCode == 0xFFFF) { ---- ./jdk/src/share/native/sun/font/layout/StateTables.h Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/font/layout/StateTables.h Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/font/layout/StateTables.h 2015-12-12 10:53:29.832810000 -0800 ++++ ./jdk/src/share/native/sun/font/layout/StateTables.h 2015-07-18 13:32:33.000000000 -0700 @@ -126,7 +126,7 @@ struct StateEntry { @@ -16458,8 +18790,8 @@ }; typedef le_uint16 EntryTableIndex2; ---- ./jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c 2014-03-03 18:59:41.000000000 -0800 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c 2015-10-24 06:21:21.000000000 -0700 @@ -182,7 +182,7 @@ return 0L; } @@ -16469,8 +18801,438 @@ /* Reversing data packed into int for LE archs */ if (isInIntPacked) { inFormatter ^= DOSWAP_SH(1); ---- ./jdk/src/share/native/sun/management/DiagnosticCommandImpl.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/management/DiagnosticCommandImpl.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/java2d/opengl/J2D_GL/glext.h 2014-03-03 18:59:42.000000000 -0800 ++++ ./jdk/src/share/native/sun/java2d/opengl/J2D_GL/glext.h 2015-10-24 06:21:19.000000000 -0700 +@@ -6506,6 +6506,13 @@ + typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string); + #endif + ++#ifndef GL_NV_texture_barrier ++#define GL_NV_texture_barrier 1 ++#ifdef GL_EXT_PROTOTYPES ++GLAPI void APIENTRY glTextureBarrierNV (void); ++#endif /* GL_EXT_PROTOTYPES */ ++typedef void (APIENTRYP PNFGLTEXTUREBARRIERNVPROC) (void); ++#endif + + #ifdef __cplusplus + } +--- ./jdk/src/share/native/sun/java2d/opengl/OGLContext.c 2015-12-12 10:53:29.845820000 -0800 ++++ ./jdk/src/share/native/sun/java2d/opengl/OGLContext.c 2015-10-24 06:21:19.000000000 -0700 +@@ -911,6 +911,10 @@ + } + } + } ++ if (OGLContext_IsExtensionAvailable(e, "GL_NV_texture_barrier")) { ++ *caps |= CAPS_EXT_TEXBARRIER; ++ } ++ + // stuff vendor descriptor in the upper bits of the caps + if (vendor != NULL) { + if (strncmp(vendor, "ATI", 3) == 0) { +--- ./jdk/src/share/native/sun/java2d/opengl/OGLContext.h 2015-12-12 10:53:27.583297000 -0800 ++++ ./jdk/src/share/native/sun/java2d/opengl/OGLContext.h 2015-10-24 06:21:19.000000000 -0700 +@@ -134,6 +134,8 @@ + sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_EXT_GRAD_SHADER + #define CAPS_EXT_TEXRECT \ + sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_EXT_TEXRECT ++#define CAPS_EXT_TEXBARRIER \ ++ sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_EXT_TEXBARRIER + + /** + * Evaluates to true if the given capability bitmask is present for the +--- ./jdk/src/share/native/sun/java2d/opengl/OGLFuncs.h 2014-03-03 18:59:43.000000000 -0800 ++++ ./jdk/src/share/native/sun/java2d/opengl/OGLFuncs.h 2015-10-24 06:21:19.000000000 -0700 +@@ -173,6 +173,11 @@ + typedef void (GLAPIENTRY *glDeleteObjectARBType)(GLhandleARB); + + /** ++ * GL_NV_texture_barrier extension function typedef's ++ */ ++typedef void (GLAPIENTRY *glTextureBarrierNVType) (void); ++ ++/** + * REMIND: this caused an internal error in the MS compiler!?!? + * + *#define OGL_CHECK_FUNC_ERR(f) \ +@@ -316,7 +321,8 @@ + OGL_##action##_EXT_FUNC(glGetProgramivARB); \ + OGL_##action##_EXT_FUNC(glGetInfoLogARB); \ + OGL_##action##_EXT_FUNC(glGetObjectParameterivARB); \ +- OGL_##action##_EXT_FUNC(glDeleteObjectARB); ++ OGL_##action##_EXT_FUNC(glDeleteObjectARB); \ ++ OGL_##action##_EXT_FUNC(glTextureBarrierNV); + + #define OGL_EXPRESS_ALL_FUNCS(action) \ + OGL_EXPRESS_BASE_FUNCS(action) \ +--- ./jdk/src/share/native/sun/java2d/opengl/OGLTextRenderer.c 2015-12-12 10:53:29.846484000 -0800 ++++ ./jdk/src/share/native/sun/java2d/opengl/OGLTextRenderer.c 2015-10-24 06:21:19.000000000 -0700 +@@ -46,8 +46,8 @@ + */ + #define OGLTR_CACHE_WIDTH 512 + #define OGLTR_CACHE_HEIGHT 512 +-#define OGLTR_CACHE_CELL_WIDTH 16 +-#define OGLTR_CACHE_CELL_HEIGHT 16 ++#define OGLTR_CACHE_CELL_WIDTH 32 ++#define OGLTR_CACHE_CELL_HEIGHT 32 + + /** + * The current "glyph mode" state. This variable is used to track the +@@ -68,26 +68,17 @@ + static GlyphMode glyphMode = MODE_NOT_INITED; + + /** +- * This enum indicates the current state of the hardware glyph cache. +- * Initially the CacheStatus is set to CACHE_NOT_INITED, and then it is +- * set to either GRAY or LCD when the glyph cache is initialized. +- */ +-typedef enum { +- CACHE_NOT_INITED, +- CACHE_GRAY, +- CACHE_LCD +-} CacheStatus; +-static CacheStatus cacheStatus = CACHE_NOT_INITED; +- +-/** +- * This is the one glyph cache. Once it is initialized as either GRAY or +- * LCD, it stays in that mode for the duration of the application. It should ++ * There are two separate glyph caches: for AA and for LCD. ++ * Once one of them is initialized as either GRAY or LCD, it ++ * stays in that mode for the duration of the application. It should + * be safe to use this one glyph cache for all screens in a multimon + * environment, since the glyph cache texture is shared between all contexts, + * and (in theory) OpenGL drivers should be smart enough to manage that + * texture across all screens. + */ +-static GlyphCacheInfo *glyphCache = NULL; ++ ++static GlyphCacheInfo *glyphCacheLCD = NULL; ++static GlyphCacheInfo *glyphCacheAA = NULL; + + /** + * The handle to the LCD text fragment program object. +@@ -138,7 +129,7 @@ + * (OGLTR_CACHED_DEST_HEIGHT >= OGLTR_NOCACHE_TILE_SIZE) + */ + #define OGLTR_CACHED_DEST_WIDTH 512 +-#define OGLTR_CACHED_DEST_HEIGHT 32 ++#define OGLTR_CACHED_DEST_HEIGHT (OGLTR_CACHE_CELL_HEIGHT * 2) + + /** + * The handle to the "cached destination" texture object. +@@ -212,8 +203,11 @@ + OGLTR_CACHE_WIDTH, OGLTR_CACHE_HEIGHT, 0, + pixelFormat, GL_UNSIGNED_BYTE, NULL); + +- cacheStatus = (lcdCache ? CACHE_LCD : CACHE_GRAY); +- glyphCache = gcinfo; ++ if (lcdCache) { ++ glyphCacheLCD = gcinfo; ++ } else { ++ glyphCacheAA = gcinfo; ++ } + + return JNI_TRUE; + } +@@ -223,24 +217,24 @@ + * associated with the given OGLContext. + */ + static void +-OGLTR_AddToGlyphCache(GlyphInfo *glyph, jboolean rgbOrder) ++OGLTR_AddToGlyphCache(GlyphInfo *glyph, GLenum pixelFormat) + { +- GLenum pixelFormat; + CacheCellInfo *ccinfo; ++ GlyphCacheInfo *gcinfo; + + J2dTraceLn(J2D_TRACE_INFO, "OGLTR_AddToGlyphCache"); + +- if ((glyphCache == NULL) || (glyph->image == NULL)) { +- return; ++ if (pixelFormat == GL_LUMINANCE) { ++ gcinfo = glyphCacheAA; ++ } else { ++ gcinfo = glyphCacheLCD; + } + +- if (cacheStatus == CACHE_LCD) { +- pixelFormat = rgbOrder ? GL_RGB : GL_BGR; +- } else { +- pixelFormat = GL_LUMINANCE; ++ if ((gcinfo == NULL) || (glyph->image == NULL)) { ++ return; + } + +- AccelGlyphCache_AddGlyph(glyphCache, glyph); ++ AccelGlyphCache_AddGlyph(gcinfo, glyph); + ccinfo = (CacheCellInfo *) glyph->cellInfo; + + if (ccinfo != NULL) { +@@ -413,14 +407,20 @@ + * gamma lookup table textures. + */ + static jboolean +-OGLTR_EnableLCDGlyphModeState(GLuint glyphTextureID, jint contrast) ++OGLTR_EnableLCDGlyphModeState(GLuint glyphTextureID, ++ GLuint dstTextureID, ++ jint contrast) + { + // bind the texture containing glyph data to texture unit 0 + j2d_glActiveTextureARB(GL_TEXTURE0_ARB); + j2d_glBindTexture(GL_TEXTURE_2D, glyphTextureID); ++ j2d_glEnable(GL_TEXTURE_2D); + + // bind the texture tile containing destination data to texture unit 1 + j2d_glActiveTextureARB(GL_TEXTURE1_ARB); ++ if (dstTextureID != 0) { ++ j2d_glBindTexture(GL_TEXTURE_2D, dstTextureID); ++ } else { + if (cachedDestTextureID == 0) { + cachedDestTextureID = + OGLContext_CreateBlitTexture(GL_RGB8, GL_RGB, +@@ -431,6 +431,7 @@ + } + } + j2d_glBindTexture(GL_TEXTURE_2D, cachedDestTextureID); ++ } + + // note that GL_TEXTURE_2D was already enabled for texture unit 0, + // but we need to explicitly enable it for texture unit 1 +@@ -472,14 +473,14 @@ + return; + } + +- if (glyphCache == NULL) { ++ if (glyphCacheAA == NULL) { + if (!OGLTR_InitGlyphCache(JNI_FALSE)) { + return; + } + } + + j2d_glEnable(GL_TEXTURE_2D); +- j2d_glBindTexture(GL_TEXTURE_2D, glyphCache->cacheID); ++ j2d_glBindTexture(GL_TEXTURE_2D, glyphCacheAA->cacheID); + j2d_glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + + // for grayscale/monochrome text, the current OpenGL source color +@@ -522,6 +523,7 @@ + j2d_glActiveTextureARB(GL_TEXTURE1_ARB); + j2d_glDisable(GL_TEXTURE_2D); + j2d_glActiveTextureARB(GL_TEXTURE0_ARB); ++ j2d_glDisable(GL_TEXTURE_2D); + break; + + case MODE_NO_CACHE_GRAY: +@@ -547,7 +549,7 @@ + + if (ginfo->cellInfo == NULL) { + // attempt to add glyph to accelerated glyph cache +- OGLTR_AddToGlyphCache(ginfo, JNI_FALSE); ++ OGLTR_AddToGlyphCache(ginfo, GL_LUMINANCE); + + if (ginfo->cellInfo == NULL) { + // we'll just no-op in the rare case that the cell is NULL +@@ -707,7 +709,8 @@ + OGLTR_DrawLCDGlyphViaCache(OGLContext *oglc, OGLSDOps *dstOps, + GlyphInfo *ginfo, jint x, jint y, + jint glyphIndex, jint totalGlyphs, +- jboolean rgbOrder, jint contrast) ++ jboolean rgbOrder, jint contrast, ++ GLuint dstTextureID) + { + CacheCellInfo *cell; + jint dx1, dy1, dx2, dy2; +@@ -718,7 +721,7 @@ + CHECK_PREVIOUS_OP(GL_TEXTURE_2D); + j2d_glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + +- if (glyphCache == NULL) { ++ if (glyphCacheLCD == NULL) { + if (!OGLTR_InitGlyphCache(JNI_TRUE)) { + return JNI_FALSE; + } +@@ -727,11 +730,13 @@ + if (rgbOrder != lastRGBOrder) { + // need to invalidate the cache in this case; see comments + // for lastRGBOrder above +- AccelGlyphCache_Invalidate(glyphCache); ++ AccelGlyphCache_Invalidate(glyphCacheLCD); + lastRGBOrder = rgbOrder; + } + +- if (!OGLTR_EnableLCDGlyphModeState(glyphCache->cacheID, contrast)) { ++ if (!OGLTR_EnableLCDGlyphModeState(glyphCacheLCD->cacheID, ++ dstTextureID, contrast)) ++ { + return JNI_FALSE; + } + +@@ -750,7 +755,7 @@ + j2d_glActiveTextureARB(GL_TEXTURE0_ARB); + + // attempt to add glyph to accelerated glyph cache +- OGLTR_AddToGlyphCache(ginfo, rgbOrder); ++ OGLTR_AddToGlyphCache(ginfo, rgbOrder ? GL_RGB : GL_BGR); + + if (ginfo->cellInfo == NULL) { + // we'll just no-op in the rare case that the cell is NULL +@@ -767,6 +772,7 @@ + dx2 = dx1 + ginfo->width; + dy2 = dy1 + ginfo->height; + ++ if (dstTextureID == 0) { + // copy destination into second cached texture, if necessary + OGLTR_UpdateCachedDestination(dstOps, ginfo, + dx1, dy1, dx2, dy2, +@@ -777,6 +783,23 @@ + dty1 = ((jfloat)(cachedDestBounds.y2 - dy1)) / OGLTR_CACHED_DEST_HEIGHT; + dtx2 = ((jfloat)(dx2 - cachedDestBounds.x1)) / OGLTR_CACHED_DEST_WIDTH; + dty2 = ((jfloat)(cachedDestBounds.y2 - dy2)) / OGLTR_CACHED_DEST_HEIGHT; ++ } else { ++ jint gw = ginfo->width; ++ jint gh = ginfo->height; ++ ++ // this accounts for lower-left origin of the destination region ++ jint dxadj = dstOps->xOffset + x; ++ jint dyadj = dstOps->yOffset + dstOps->height - (y + gh); ++ ++ // update the remaining destination texture coordinates ++ dtx1 =((GLfloat)dxadj) / dstOps->textureWidth; ++ dtx2 = ((GLfloat)dxadj + gw) / dstOps->textureWidth; ++ ++ dty1 = ((GLfloat)dyadj + gh) / dstOps->textureHeight; ++ dty2 = ((GLfloat)dyadj) / dstOps->textureHeight; ++ ++ j2d_glTextureBarrierNV(); ++ } + + // render composed texture to the destination surface + j2d_glBegin(GL_QUADS); +@@ -837,7 +860,8 @@ + OGLTR_DrawLCDGlyphNoCache(OGLContext *oglc, OGLSDOps *dstOps, + GlyphInfo *ginfo, jint x, jint y, + jint rowBytesOffset, +- jboolean rgbOrder, jint contrast) ++ jboolean rgbOrder, jint contrast, ++ GLuint dstTextureID) + { + GLfloat tx1, ty1, tx2, ty2; + GLfloat dtx1, dty1, dtx2, dty2; +@@ -859,7 +883,9 @@ + } + } + +- if (!OGLTR_EnableLCDGlyphModeState(oglc->blitTextureID, contrast)) { ++ if (!OGLTR_EnableLCDGlyphModeState(oglc->blitTextureID, ++ dstTextureID, contrast)) ++ { + return JNI_FALSE; + } + +@@ -907,6 +933,7 @@ + dxadj = dstOps->xOffset + x; + dyadj = dstOps->yOffset + dstOps->height - (y + sh); + ++ if (dstTextureID == 0) { + // copy destination into cached texture tile (the lower-left + // corner of the destination region will be positioned at the + // lower-left corner (0,0) of the texture) +@@ -915,10 +942,20 @@ + 0, 0, + dxadj, dyadj, + sw, sh); +- + // update the remaining destination texture coordinates + dtx2 = ((GLfloat)sw) / OGLTR_CACHED_DEST_WIDTH; + dty1 = ((GLfloat)sh) / OGLTR_CACHED_DEST_HEIGHT; ++ } else { ++ // use the destination texture directly ++ // update the remaining destination texture coordinates ++ dtx1 =((GLfloat)dxadj) / dstOps->textureWidth; ++ dtx2 = ((GLfloat)dxadj + sw) / dstOps->textureWidth; ++ ++ dty1 = ((GLfloat)dyadj + sh) / dstOps->textureHeight; ++ dty2 = ((GLfloat)dyadj) / dstOps->textureHeight; ++ ++ j2d_glTextureBarrierNV(); ++ } + + // render composed texture to the destination surface + j2d_glBegin(GL_QUADS); +@@ -953,6 +990,7 @@ + unsigned char *images, unsigned char *positions) + { + int glyphCounter; ++ GLuint dstTextureID = 0; + + J2dTraceLn(J2D_TRACE_INFO, "OGLTR_DrawGlyphList"); + +@@ -966,6 +1004,29 @@ + glyphMode = MODE_NOT_INITED; + isCachedDestValid = JNI_FALSE; + ++ // We have to obtain an information about destination content ++ // in order to render lcd glyphs. It could be done by copying ++ // a part of desitination buffer into an intermediate texture ++ // using glCopyTexSubImage2D(). However, on macosx this path is ++ // slow, and it dramatically reduces the overall speed of lcd ++ // text rendering. ++ // ++ // In some cases, we can use a texture from the destination ++ // surface data in oredr to avoid this slow reading routine. ++ // It requires: ++ // * An appropriate textureTarget for the destination SD. ++ // In particular, we need GL_TEXTURE_2D ++ // * Means to prevent read-after-write problem. ++ // At the moment, a GL_NV_texture_barrier extension is used ++ // to achieve this. ++#ifdef MACOSX ++ if (OGLC_IS_CAP_PRESENT(oglc, CAPS_EXT_TEXBARRIER) && ++ dstOps->textureTarget == GL_TEXTURE_2D) ++ { ++ dstTextureID = dstOps->textureID; ++ } ++#endif ++ + for (glyphCounter = 0; glyphCounter < totalGlyphs; glyphCounter++) { + jint x, y; + jfloat glyphx, glyphy; +@@ -1003,8 +1064,7 @@ + + if (grayscale) { + // grayscale or monochrome glyph data +- if (cacheStatus != CACHE_LCD && +- ginfo->width <= OGLTR_CACHE_CELL_WIDTH && ++ if (ginfo->width <= OGLTR_CACHE_CELL_WIDTH && + ginfo->height <= OGLTR_CACHE_CELL_HEIGHT) + { + ok = OGLTR_DrawGrayscaleGlyphViaCache(oglc, ginfo, x, y); +@@ -1024,19 +1084,20 @@ + } + + if (rowBytesOffset == 0 && +- cacheStatus != CACHE_GRAY && + ginfo->width <= OGLTR_CACHE_CELL_WIDTH && + ginfo->height <= OGLTR_CACHE_CELL_HEIGHT) + { + ok = OGLTR_DrawLCDGlyphViaCache(oglc, dstOps, + ginfo, x, y, + glyphCounter, totalGlyphs, +- rgbOrder, lcdContrast); ++ rgbOrder, lcdContrast, ++ dstTextureID); + } else { + ok = OGLTR_DrawLCDGlyphNoCache(oglc, dstOps, + ginfo, x, y, + rowBytesOffset, +- rgbOrder, lcdContrast); ++ rgbOrder, lcdContrast, ++ dstTextureID); + } + } + +--- ./jdk/src/share/native/sun/management/DiagnosticCommandImpl.c 2015-12-12 10:53:22.246499000 -0800 ++++ ./jdk/src/share/native/sun/management/DiagnosticCommandImpl.c 2015-10-24 06:21:21.000000000 -0700 @@ -27,6 +27,7 @@ #include <jni.h> #include "management.h" @@ -16479,8 +19241,142 @@ JNIEXPORT void JNICALL Java_sun_management_DiagnosticCommandImpl_setNotificationEnabled (JNIEnv *env, jobject dummy, jboolean enabled) { ---- ./jdk/src/share/native/sun/security/ec/impl/ec.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/security/ec/impl/ec.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/nio/ch/genSocketOptionRegistry.c 2015-12-12 10:53:27.584337000 -0800 ++++ ./jdk/src/share/native/sun/nio/ch/genSocketOptionRegistry.c 1969-12-31 16:00:00.000000000 -0800 +@@ -1,131 +0,0 @@ +-/* +- * Copyright (c) 2008, 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 +- * under the terms of the GNU General Public License version 2 only, as +- * published by the Free Software Foundation. Oracle designates this +- * particular file as subject to the "Classpath" exception as provided +- * by Oracle in the LICENSE file that accompanied this code. +- * +- * This code is distributed in the hope that it will be useful, but WITHOUT +- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +- * version 2 for more details (a copy is included in the LICENSE file that +- * accompanied this code). +- * +- * You should have received a copy of the GNU General Public License version +- * 2 along with this work; if not, write to the Free Software Foundation, +- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +- * or visit www.oracle.com if you need additional information or have any +- * questions. +- */ +- +-#include <stdio.h> +-#ifdef _WIN32 +-#include <winsock2.h> +-#include <ws2tcpip.h> +-#else +-#include <sys/types.h> +-#include <sys/socket.h> +-#include <netinet/in.h> +-#include <netinet/tcp.h> +-#endif +- +-/** +- * Generates sun.nio.ch.SocketOptionRegistry, a class that maps Java-level +- * socket options to the platform specific level and option. +- */ +- +-static void out(char* s) { +- printf("%s\n", s); +-} +- +-static void emit(const char *name, char * family, int level, int optname) { +- printf(" map.put(new RegistryKey(%s, %s),", name, family); +- printf(" new OptionKey(%d, %d));\n", level, optname); +-} +- +-static void emit_unspec(const char *name, int level, int optname) { +- emit(name, "Net.UNSPEC", level, optname); +-} +- +-static void emit_inet(const char *name, int level, int optname) { +- emit(name, "StandardProtocolFamily.INET", level, optname); +-} +- +-static void emit_inet6(const char *name, int level, int optname) { +- emit(name, "StandardProtocolFamily.INET6", level, optname); +-} +- +-int main(int argc, const char* argv[]) { +- out("// AUTOMATICALLY GENERATED FILE - DO NOT EDIT "); +- out("package sun.nio.ch; "); +- out("import java.net.SocketOption; "); +- out("import java.net.StandardSocketOptions; "); +- out("import java.net.ProtocolFamily; "); +- out("import java.net.StandardProtocolFamily; "); +- out("import java.util.Map; "); +- out("import java.util.HashMap; "); +- out("class SocketOptionRegistry { "); +- out(" private SocketOptionRegistry() { } "); +- out(" private static class RegistryKey { "); +- out(" private final SocketOption<?> name; "); +- out(" private final ProtocolFamily family; "); +- out(" RegistryKey(SocketOption<?> name, ProtocolFamily family) { "); +- out(" this.name = name; "); +- out(" this.family = family; "); +- out(" } "); +- out(" public int hashCode() { "); +- out(" return name.hashCode() + family.hashCode(); "); +- out(" } "); +- out(" public boolean equals(Object ob) { "); +- out(" if (ob == null) return false; "); +- out(" if (!(ob instanceof RegistryKey)) return false; "); +- out(" RegistryKey other = (RegistryKey)ob; "); +- out(" if (this.name != other.name) return false; "); +- out(" if (this.family != other.family) return false; "); +- out(" return true; "); +- out(" } "); +- out(" } "); +- out(" private static class LazyInitialization { "); +- out(" static final Map<RegistryKey,OptionKey> options = options(); "); +- out(" private static Map<RegistryKey,OptionKey> options() { "); +- out(" Map<RegistryKey,OptionKey> map = "); +- out(" new HashMap<RegistryKey,OptionKey>(); "); +- +- emit_unspec("StandardSocketOptions.SO_BROADCAST", SOL_SOCKET, SO_BROADCAST); +- emit_unspec("StandardSocketOptions.SO_KEEPALIVE", SOL_SOCKET, SO_KEEPALIVE); +- emit_unspec("StandardSocketOptions.SO_LINGER", SOL_SOCKET, SO_LINGER); +- emit_unspec("StandardSocketOptions.SO_SNDBUF", SOL_SOCKET, SO_SNDBUF); +- emit_unspec("StandardSocketOptions.SO_RCVBUF", SOL_SOCKET, SO_RCVBUF); +- emit_unspec("StandardSocketOptions.SO_REUSEADDR", SOL_SOCKET, SO_REUSEADDR); +- emit_unspec("StandardSocketOptions.TCP_NODELAY", IPPROTO_TCP, TCP_NODELAY); +- +- emit_inet("StandardSocketOptions.IP_TOS", IPPROTO_IP, IP_TOS); +- emit_inet("StandardSocketOptions.IP_MULTICAST_IF", IPPROTO_IP, IP_MULTICAST_IF); +- emit_inet("StandardSocketOptions.IP_MULTICAST_TTL", IPPROTO_IP, IP_MULTICAST_TTL); +- emit_inet("StandardSocketOptions.IP_MULTICAST_LOOP", IPPROTO_IP, IP_MULTICAST_LOOP); +- +-#ifdef AF_INET6 +- emit_inet6("StandardSocketOptions.IP_TOS", IPPROTO_IPV6, IPV6_TCLASS); +- emit_inet6("StandardSocketOptions.IP_MULTICAST_IF", IPPROTO_IPV6, IPV6_MULTICAST_IF); +- emit_inet6("StandardSocketOptions.IP_MULTICAST_TTL", IPPROTO_IPV6, IPV6_MULTICAST_HOPS); +- emit_inet6("StandardSocketOptions.IP_MULTICAST_LOOP", IPPROTO_IPV6, IPV6_MULTICAST_LOOP); +-#endif +- +- emit_unspec("ExtendedSocketOption.SO_OOBINLINE", SOL_SOCKET, SO_OOBINLINE); +- +- out(" return map; "); +- out(" } "); +- out(" } "); +- out(" public static OptionKey findOption(SocketOption<?> name, ProtocolFamily family) { "); +- out(" RegistryKey key = new RegistryKey(name, family); "); +- out(" return LazyInitialization.options.get(key); "); +- out(" } "); +- out("} "); +- +- return 0; +-} +--- ./jdk/src/share/native/sun/security/ec/impl/ec.c 2015-12-12 10:53:29.846969000 -0800 ++++ ./jdk/src/share/native/sun/security/ec/impl/ec.c 2015-07-18 13:32:33.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. @@ -16507,8 +19403,8 @@ memset(derivedSecret, 0, sizeof *derivedSecret); len = (ecParams->fieldID.size + 7) >> 3; pointQ.len = 2*len + 1; ---- ./jdk/src/share/native/sun/security/ec/impl/ecc_impl.h Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/security/ec/impl/ecc_impl.h Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/security/ec/impl/ecc_impl.h 2015-12-12 10:53:29.847295000 -0800 ++++ ./jdk/src/share/native/sun/security/ec/impl/ecc_impl.h 2015-07-18 13:32:33.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved. @@ -16524,8 +19420,8 @@ *********************************************************************** */ #ifndef _ECC_IMPL_H ---- ./jdk/src/share/native/sun/security/ec/impl/ecdecode.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/security/ec/impl/ecdecode.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/security/ec/impl/ecdecode.c 2015-12-12 10:53:29.847665000 -0800 ++++ ./jdk/src/share/native/sun/security/ec/impl/ecdecode.c 2015-07-18 13:32:33.000000000 -0700 @@ -34,6 +34,7 @@ * Dr Vipul Gupta <vipul.gupta@sun.com> and * Douglas Stebila <douglas@stebila.ca>, Sun Microsystems Laboratories @@ -16534,8 +19430,8 @@ *********************************************************************** */ #include <sys/types.h> ---- ./jdk/src/share/native/sun/security/ec/impl/mpi.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/security/ec/impl/mpi.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/security/ec/impl/mpi.c 2015-12-12 10:53:29.848605000 -0800 ++++ ./jdk/src/share/native/sun/security/ec/impl/mpi.c 2015-07-18 13:32:33.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. @@ -16551,8 +19447,8 @@ *********************************************************************** */ /* Arbitrary precision integer arithmetic library */ ---- ./jdk/src/share/native/sun/security/ec/impl/oid.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/security/ec/impl/oid.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/security/ec/impl/oid.c 2015-12-12 10:53:29.848993000 -0800 ++++ ./jdk/src/share/native/sun/security/ec/impl/oid.c 2015-07-18 13:32:33.000000000 -0700 @@ -33,6 +33,7 @@ * Contributor(s): * Dr Vipul Gupta <vipul.gupta@sun.com>, Sun Microsystems Laboratories @@ -16561,8 +19457,8 @@ *********************************************************************** */ #include <sys/types.h> ---- ./jdk/src/share/native/sun/security/ec/impl/secitem.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/share/native/sun/security/ec/impl/secitem.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/share/native/sun/security/ec/impl/secitem.c 2015-12-12 10:53:29.849270000 -0800 ++++ ./jdk/src/share/native/sun/security/ec/impl/secitem.c 2015-07-18 13:32:33.000000000 -0700 @@ -32,6 +32,7 @@ * * Contributor(s): @@ -16571,8 +19467,8 @@ *********************************************************************** */ /* ---- ./jdk/src/solaris/back/util_md.h Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/back/util_md.h Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/back/util_md.h 2014-03-03 18:59:47.000000000 -0800 ++++ ./jdk/src/solaris/back/util_md.h 2015-10-24 06:21:21.000000000 -0700 @@ -51,7 +51,7 @@ /* On little endian machines, convert java big endian numbers. */ @@ -16582,8 +19478,8 @@ #define HOST_TO_JAVA_CHAR(x) (((x & 0xff) << 8) | ((x >> 8) & (0xff))) #define HOST_TO_JAVA_SHORT(x) (((x & 0xff) << 8) | ((x >> 8) & (0xff))) ---- ./jdk/src/solaris/bin/ergo_i586.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/bin/ergo_i586.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/bin/ergo_i586.c 2014-03-03 18:59:47.000000000 -0800 ++++ ./jdk/src/solaris/bin/ergo_i586.c 2015-10-24 06:21:21.000000000 -0700 @@ -106,7 +106,7 @@ #endif /* __solaris__ */ @@ -16602,8 +19498,8 @@ /* * Routines shared by solaris-i586 and linux-i586. ---- ./jdk/src/solaris/bin/java_md_solinux.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/bin/java_md_solinux.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/bin/java_md_solinux.c 2015-12-12 10:53:29.850313000 -0800 ++++ ./jdk/src/solaris/bin/java_md_solinux.c 2015-10-24 06:21:21.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. @@ -16744,8 +19640,8 @@ } int ---- ./jdk/src/solaris/bin/java_md_solinux.h Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/bin/java_md_solinux.h Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/bin/java_md_solinux.h 2015-12-12 10:53:22.249973000 -0800 ++++ ./jdk/src/solaris/bin/java_md_solinux.h 2015-10-24 06:21:21.000000000 -0700 @@ -26,17 +26,26 @@ #ifndef JAVA_MD_SOLINUX_H #define JAVA_MD_SOLINUX_H @@ -16786,8 +19682,8 @@ #else /* !__solaris__, i.e. Linux, AIX,.. */ static const char *system_dir = "/usr/java"; static const char *user_dir = "/java"; ---- ./jdk/src/solaris/classes/java/lang/UNIXProcess.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/classes/java/lang/UNIXProcess.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/classes/java/lang/UNIXProcess.java 2015-12-12 10:53:29.850939000 -0800 ++++ ./jdk/src/solaris/classes/java/lang/UNIXProcess.java 2015-10-24 06:21:21.000000000 -0700 @@ -82,6 +82,8 @@ LINUX(LaunchMechanism.VFORK, LaunchMechanism.FORK), @@ -16835,8 +19731,8 @@ case BSD: case AIX: // There is a risk that pid will be recycled, causing us to ---- ./jdk/src/solaris/classes/sun/awt/X11FontManager.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11FontManager.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/classes/sun/awt/X11FontManager.java 2015-12-12 10:53:27.600468000 -0800 ++++ ./jdk/src/solaris/classes/sun/awt/X11FontManager.java 2015-10-24 06:21:21.000000000 -0700 @@ -236,7 +236,7 @@ if (fontID != null) { fileName = (String)fontNameMap.get(fontID); @@ -16864,8 +19760,18 @@ (!mFontConfig.foundOsSpecificFile() || !mFontConfig.fontFilesArePresent()) || (FontUtilities.isSolaris && !mFontConfig.fontFilesArePresent()))) { ---- ./jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java 2015-12-12 10:53:29.855676000 -0800 ++++ ./jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java 2015-10-24 06:21:19.000000000 -0700 +@@ -318,6 +318,7 @@ + @Override + public boolean isDisplayChangeSupported() { + return (isFullScreenSupported() ++ && (getFullScreenWindow() != null) + && !((X11GraphicsEnvironment) GraphicsEnvironment + .getLocalGraphicsEnvironment()).runningXinerama()); + } +--- ./jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties 2014-03-03 18:59:49.000000000 -0800 ++++ ./jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties 2015-10-24 06:21:21.000000000 -0700 @@ -26,134 +26,134 @@ # Version @@ -17090,36 +19996,39 @@ -filename.DejaVu_LGC_Sans_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-Bold.ttf -filename.DejaVu_LGC_Sans_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-Oblique.ttf -filename.DejaVu_LGC_Sans_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-BoldOblique.ttf -+## FIXME: Should not hardcode /usr/local -+filename.DejaVu_Sans=/usr/local/lib/X11/fonts/dejavu/DejaVuSans.ttf -+filename.DejaVu_Sans_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-Bold.ttf -+filename.DejaVu_Sans_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-Oblique.ttf -+filename.DejaVu_Sans_Bold_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-BoldOblique.ttf - +- -filename.DejaVu_LGC_Sans_Mono=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono.ttf -filename.DejaVu_LGC_Sans_Mono_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-Bold.ttf -filename.DejaVu_LGC_Sans_Mono_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-Oblique.ttf -filename.DejaVu_LGC_Sans_Mono_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-BoldOblique.ttf -+filename.DejaVu_Sans_Mono=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono.ttf -+filename.DejaVu_Sans_Mono_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-Bold.ttf -+filename.DejaVu_Sans_Mono_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-Oblique.ttf -+filename.DejaVu_Sans_Mono_Bold_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf - +- -filename.DejaVu_LGC_Serif=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif.ttf -filename.DejaVu_LGC_Serif_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-Bold.ttf -filename.DejaVu_LGC_Serif_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-Oblique.ttf -filename.DejaVu_LGC_Serif_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-BoldOblique.ttf -+filename.DejaVu_Serif=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif.ttf -+filename.DejaVu_Serif_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-Bold.ttf -+filename.DejaVu_Serif_Italic=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-Italic.ttf -+filename.DejaVu_Serif_Bold_Italic=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-BoldItalic.ttf - +- -filename.Sazanami_Gothic=/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf -filename.Sazanami_Mincho=/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf -filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/chinese/TrueType/uming.ttf -filename.AR_PL_ZenKai_Uni=/usr/share/fonts/chinese/TrueType/ukai.ttf -filename.Baekmuk_Gulim=/usr/share/fonts/korean/TrueType/gulim.ttf -filename.Baekmuk_Batang=/usr/share/fonts/korean/TrueType/batang.ttf ++## FIXME: Should not hardcode /usr/local ++filename.DejaVu_Sans=/usr/local/lib/X11/fonts/dejavu/DejaVuSans.ttf ++filename.DejaVu_Sans_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-Bold.ttf ++filename.DejaVu_Sans_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-Oblique.ttf ++filename.DejaVu_Sans_Bold_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSans-BoldOblique.ttf ++ ++filename.DejaVu_Sans_Mono=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono.ttf ++filename.DejaVu_Sans_Mono_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-Bold.ttf ++filename.DejaVu_Sans_Mono_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-Oblique.ttf ++filename.DejaVu_Sans_Mono_Bold_Oblique=/usr/local/lib/X11/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf ++ ++filename.DejaVu_Serif=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif.ttf ++filename.DejaVu_Serif_Bold=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-Bold.ttf ++filename.DejaVu_Serif_Italic=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-Italic.ttf ++filename.DejaVu_Serif_Bold_Italic=/usr/local/lib/X11/fonts/dejavu/DejaVuSerif-BoldItalic.ttf ++ +filename.Sazanami_Gothic=/usr/local/share/font-sazanami/sazanami-gothic.ttf +filename.Sazanami_Mincho=/usr/local/share/font-sazanami/sazanami-mincho.ttf +filename.AR_PL_ShanHeiSun_Uni=/usr/local/share/fonts/TrueType/uming.ttc @@ -17128,8 +20037,8 @@ +filename.NanumGothic_Bold=/usr/local/lib/X11/fonts/nanum-ttf/NanumGothicBold.ttf +filename.NanumMyeongjo=/usr/local/lib/X11/fonts/nanum-ttf/NanumMyeongjo.ttf +filename.NanumMyeongjo_Bold=/usr/local/lib/X11/fonts/nanum-ttf/NanumMyeongjoBold.ttf ---- ./jdk/src/solaris/classes/sun/net/PortConfig.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/classes/sun/net/PortConfig.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/classes/sun/net/PortConfig.java 2015-12-12 10:53:22.258458000 -0800 ++++ ./jdk/src/solaris/classes/sun/net/PortConfig.java 2015-10-24 06:21:21.000000000 -0700 @@ -52,7 +52,7 @@ } else if (os.startsWith("SunOS")) { defaultLower = 32768; @@ -17139,8 +20048,8 @@ defaultLower = 49152; defaultUpper = 65535; } else if (os.startsWith("AIX")) { ---- ./jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java 2015-12-12 10:53:22.258684000 -0800 ++++ ./jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java 2015-10-24 06:21:21.000000000 -0700 @@ -66,7 +66,7 @@ return createProvider("sun.nio.ch.SolarisAsynchronousChannelProvider"); if (osname.equals("Linux")) @@ -17150,8 +20059,8 @@ return createProvider("sun.nio.ch.BsdAsynchronousChannelProvider"); if (osname.equals("AIX")) return createProvider("sun.nio.ch.AixAsynchronousChannelProvider"); ---- ./jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java 2014-03-03 18:59:51.000000000 -0800 ++++ ./jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java 2015-10-24 06:21:21.000000000 -0700 @@ -25,10 +25,14 @@ package sun.nio.fs; @@ -17185,8 +20094,8 @@ + new MagicFileTypeDetector()); + } } ---- ./jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java 2015-12-12 10:53:22.262778000 -0800 ++++ ./jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java 2015-10-24 06:21:21.000000000 -0700 @@ -61,6 +61,8 @@ return createProvider("sun.nio.fs.SolarisFileSystemProvider"); if (osname.equals("Linux")) @@ -17196,8 +20105,8 @@ if (osname.contains("OS X")) return createProvider("sun.nio.fs.MacOSXFileSystemProvider"); if (osname.equals("AIX")) ---- ./jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java 2015-12-12 10:53:22.266397000 -0800 ++++ ./jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java 2015-10-24 06:21:21.000000000 -0700 @@ -161,6 +161,7 @@ static boolean isBSD() { @@ -17221,8 +20130,8 @@ "/usr/sbin/lpc status all | grep -E '^[ 0-9a-zA-Z_-]*@' | awk -F'@' '{print $1}' | sort" }; ---- ./jdk/src/solaris/classes/sun/tools/attach/BsdVirtualMachine.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/classes/sun/tools/attach/BsdVirtualMachine.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/classes/sun/tools/attach/BsdVirtualMachine.java 2015-12-12 10:53:27.602992000 -0800 ++++ ./jdk/src/solaris/classes/sun/tools/attach/BsdVirtualMachine.java 2015-10-24 06:21:21.000000000 -0700 @@ -273,7 +273,7 @@ try { b = s.getBytes("UTF-8"); @@ -17232,8 +20141,8 @@ } BsdVirtualMachine.write(fd, b, 0, b.length); } ---- ./jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_PCM.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_PCM.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_PCM.c 2014-03-03 18:59:54.000000000 -0800 ++++ ./jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_PCM.c 2015-10-24 06:21:21.000000000 -0700 @@ -140,7 +140,7 @@ (float) ((int) sr->samp_rates[s]), DAUDIO_PCM, /* encoding - let's only do PCM */ @@ -17243,8 +20152,8 @@ FALSE /* little endian */ #else (bits[b] > 8)?TRUE:FALSE /* big endian */ ---- ./jdk/src/solaris/native/common/jni_util_md.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/common/jni_util_md.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/common/jni_util_md.c 2014-03-03 18:59:55.000000000 -0800 ++++ ./jdk/src/solaris/native/common/jni_util_md.c 2015-10-24 06:21:21.000000000 -0700 @@ -28,6 +28,7 @@ #include "jni.h" #include "jni_util.h" @@ -17253,8 +20162,8 @@ jstring nativeNewStringPlatform(JNIEnv *env, const char *str) { return NULL; ---- ./jdk/src/solaris/native/java/lang/java_props_md.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/java/lang/java_props_md.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/java/lang/java_props_md.c 2014-03-03 18:59:55.000000000 -0800 ++++ ./jdk/src/solaris/native/java/lang/java_props_md.c 2015-10-24 06:21:21.000000000 -0700 @@ -151,7 +151,7 @@ lc = setlocale(cat, NULL); #endif @@ -17270,27 +20179,27 @@ -#ifdef _ALLBSD_SOURCE -#if BYTE_ORDER == _LITTLE_ENDIAN -- sprops.unicode_encoding = "UnicodeLittle"; ++#ifdef VM_LITTLE_ENDIAN + sprops.unicode_encoding = "UnicodeLittle"; - #else - sprops.unicode_encoding = "UnicodeBig"; - #endif -#else /* !_ALLBSD_SOURCE */ -#ifdef __linux__ -#if __BYTE_ORDER == __LITTLE_ENDIAN -+#ifdef VM_LITTLE_ENDIAN - sprops.unicode_encoding = "UnicodeLittle"; - #else - sprops.unicode_encoding = "UnicodeBig"; - #endif +- sprops.unicode_encoding = "UnicodeLittle"; -#else - sprops.unicode_encoding = "UnicodeBig"; -#endif + #else + sprops.unicode_encoding = "UnicodeBig"; + #endif -#endif /* _ALLBSD_SOURCE */ /* user properties */ { ---- ./jdk/src/solaris/native/java/net/Inet4AddressImpl.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/java/net/Inet4AddressImpl.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/java/net/Inet4AddressImpl.c 2015-12-12 10:53:29.898927000 -0800 ++++ ./jdk/src/solaris/native/java/net/Inet4AddressImpl.c 2015-10-24 06:21:21.000000000 -0700 @@ -36,20 +36,13 @@ #include <stdlib.h> #include <ctype.h> @@ -17331,8 +20240,8 @@ error = getaddrinfo(hostname, NULL, &hints, &res); if (error) { ---- ./jdk/src/solaris/native/java/net/Inet6AddressImpl.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/java/net/Inet6AddressImpl.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/java/net/Inet6AddressImpl.c 2015-12-12 10:53:29.899348000 -0800 ++++ ./jdk/src/solaris/native/java/net/Inet6AddressImpl.c 2015-10-24 06:21:21.000000000 -0700 @@ -33,7 +33,7 @@ #include <strings.h> #include <stdlib.h> @@ -17374,8 +20283,8 @@ #ifdef AF_INET6 /* Try once, with our static buffer. */ memset(&hints, 0, sizeof(hints)); ---- ./jdk/src/solaris/native/java/net/NetworkInterface.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/java/net/NetworkInterface.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/java/net/NetworkInterface.c 2015-12-12 10:53:29.899957000 -0800 ++++ ./jdk/src/solaris/native/java/net/NetworkInterface.c 2015-10-24 06:21:21.000000000 -0700 @@ -67,14 +67,19 @@ #include <sys/param.h> #include <sys/ioctl.h> @@ -17398,8 +20307,8 @@ #include "jvm.h" #include "jni_util.h" ---- ./jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c 2015-12-12 10:53:29.900716000 -0800 ++++ ./jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c 2015-10-24 06:21:21.000000000 -0700 @@ -2200,7 +2200,7 @@ } } @@ -17409,8 +20318,8 @@ if (family == AF_INET6 && index == 0) { index = getDefaultScopeID(env); } ---- ./jdk/src/solaris/native/java/net/bsd_close.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/java/net/bsd_close.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/java/net/bsd_close.c 2015-12-12 10:53:20.087762000 -0800 ++++ ./jdk/src/solaris/native/java/net/bsd_close.c 2015-10-24 06:21:21.000000000 -0700 @@ -316,11 +316,8 @@ } @@ -17425,8 +20334,8 @@ } int NET_Connect(int s, struct sockaddr *addr, int addrlen) { ---- ./jdk/src/solaris/native/java/net/net_util_md.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/java/net/net_util_md.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/java/net/net_util_md.c 2015-12-12 10:53:31.079229000 -0800 ++++ ./jdk/src/solaris/native/java/net/net_util_md.c 2015-10-24 06:21:22.000000000 -0700 @@ -45,6 +45,10 @@ #endif #endif @@ -17447,84 +20356,8 @@ static jclass ni_class = NULL; static jfieldID ni_defaultIndexID; if (ni_class == NULL) { -@@ -1518,6 +1522,7 @@ - int exclbind = -1; - #endif - int rv; -+ int arg, alen; - - #ifdef __linux__ - /* -@@ -1534,7 +1539,7 @@ - } - #endif - --#if defined(__solaris__) && defined(AF_INET6) -+#if defined(__solaris__) - /* - * Solaris has separate IPv4 and IPv6 port spaces so we - * use an exclusive bind when SO_REUSEADDR is not used to -@@ -1544,35 +1549,31 @@ - * results in a late bind that fails because the - * corresponding IPv4 port is in use. - */ -- if (ipv6_available()) { -- int arg, len; -+ alen = sizeof(arg); -+ if (useExclBind || getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, -+ (char *)&arg, &alen) == 0) { -+ if (useExclBind || arg == 0) { -+ /* -+ * SO_REUSEADDR is disabled or sun.net.useExclusiveBind -+ * property is true so enable TCP_EXCLBIND or -+ * UDP_EXCLBIND -+ */ -+ alen = sizeof(arg); -+ if (getsockopt(fd, SOL_SOCKET, SO_TYPE, (char *)&arg, -+ &alen) == 0) { -+ if (arg == SOCK_STREAM) { -+ level = IPPROTO_TCP; -+ exclbind = TCP_EXCLBIND; -+ } else { -+ level = IPPROTO_UDP; -+ exclbind = UDP_EXCLBIND; -+ } -+ } - -- len = sizeof(arg); -- if (useExclBind || getsockopt(fd, SOL_SOCKET, SO_REUSEADDR, -- (char *)&arg, &len) == 0) { -- if (useExclBind || arg == 0) { -- /* -- * SO_REUSEADDR is disabled or sun.net.useExclusiveBind -- * property is true so enable TCP_EXCLBIND or -- * UDP_EXCLBIND -- */ -- len = sizeof(arg); -- if (getsockopt(fd, SOL_SOCKET, SO_TYPE, (char *)&arg, -- &len) == 0) { -- if (arg == SOCK_STREAM) { -- level = IPPROTO_TCP; -- exclbind = TCP_EXCLBIND; -- } else { -- level = IPPROTO_UDP; -- exclbind = UDP_EXCLBIND; -- } -- } -- -- arg = 1; -- setsockopt(fd, level, exclbind, (char *)&arg, -- sizeof(arg)); -+ arg = 1; -+ setsockopt(fd, level, exclbind, (char *)&arg, -+ sizeof(arg)); - } -- } - } - - #endif ---- ./jdk/src/solaris/native/java/net/net_util_md.h Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/java/net/net_util_md.h Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/java/net/net_util_md.h 2015-12-12 10:53:22.306909000 -0800 ++++ ./jdk/src/solaris/native/java/net/net_util_md.h 2015-10-24 06:21:21.000000000 -0700 @@ -47,7 +47,7 @@ close subroutine does not return until the select call returns. ... @@ -17534,8 +20367,8 @@ extern int NET_Timeout(int s, long timeout); extern int NET_Read(int s, void* buf, size_t len); extern int NET_RecvFrom(int s, void *buf, int len, unsigned int flags, ---- ./jdk/src/solaris/native/java/util/TimeZone_md.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/java/util/TimeZone_md.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/java/util/TimeZone_md.c 2015-12-12 10:53:27.630963000 -0800 ++++ ./jdk/src/solaris/native/java/util/TimeZone_md.c 2015-10-24 06:21:21.000000000 -0700 @@ -52,7 +52,11 @@ #if defined(__linux__) || defined(_ALLBSD_SOURCE) @@ -17620,8 +20453,8 @@ } #endif - ---- ./jdk/src/solaris/native/sun/awt/awt_Font.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_Font.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/awt/awt_Font.c 2015-12-12 10:53:29.902615000 -0800 ++++ ./jdk/src/solaris/native/sun/awt/awt_Font.c 2015-10-24 06:21:21.000000000 -0700 @@ -255,7 +255,7 @@ if (strcmp(style, "regular") == 0) { altstyle = "roman"; @@ -17631,8 +20464,8 @@ if (!strcmp(family, "lucidasans")) { family = "lucida"; } ---- ./jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c 2015-12-12 10:53:29.903360000 -0800 ++++ ./jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c 2015-10-24 06:21:21.000000000 -0700 @@ -121,7 +121,7 @@ */ @@ -17717,8 +20550,8 @@ #endif /* HEADLESS */ return point; } ---- ./jdk/src/solaris/native/sun/awt/awt_InputMethod.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_InputMethod.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/awt/awt_InputMethod.c 2015-12-12 10:53:29.904002000 -0800 ++++ ./jdk/src/solaris/native/sun/awt/awt_InputMethod.c 2015-10-24 06:21:21.000000000 -0700 @@ -52,7 +52,7 @@ XIMPreeditDrawCallbackStruct *); static void PreeditCaretCallback(XIC, XPointer, @@ -17938,8 +20771,8 @@ AWT_LOCK(); adjustStatusWindow(window); AWT_UNLOCK(); ---- ./jdk/src/solaris/native/sun/awt/awt_Robot.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_Robot.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/awt/awt_Robot.c 2015-12-12 10:53:22.312921000 -0800 ++++ ./jdk/src/solaris/native/sun/awt/awt_Robot.c 2015-10-24 06:21:21.000000000 -0700 @@ -45,7 +45,7 @@ #include "wsutils.h" #include "list.h" @@ -17949,8 +20782,8 @@ #include <sys/socket.h> #endif ---- ./jdk/src/solaris/native/sun/awt/extutil.h Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/awt/extutil.h Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/awt/extutil.h 2014-03-03 18:59:55.000000000 -0800 ++++ ./jdk/src/solaris/native/sun/awt/extutil.h 2015-10-24 06:21:21.000000000 -0700 @@ -58,7 +58,7 @@ */ /* $XFree86: xc/include/extensions/extutil.h,v 1.5 2001/01/17 17:53:20 dawes Exp $ */ @@ -17966,8 +20799,8 @@ -#endif /* __linux__ || MACOSX */ +#endif /* __linux__ || _ALLBSD_SOURCE */ ---- ./jdk/src/solaris/native/sun/awt/fontpath.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/awt/fontpath.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/awt/fontpath.c 2015-12-12 10:53:22.314468000 -0800 ++++ ./jdk/src/solaris/native/sun/awt/fontpath.c 2015-10-24 06:21:21.000000000 -0700 @@ -23,9 +23,9 @@ * questions. */ @@ -18056,8 +20889,8 @@ && (strcmp((char*)fontformat, "Type 1") != 0) #endif ) { ---- ./jdk/src/solaris/native/sun/java2d/j2d_md.h Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/java2d/j2d_md.h Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/java2d/j2d_md.h 2014-03-03 18:59:57.000000000 -0800 ++++ ./jdk/src/solaris/native/sun/java2d/j2d_md.h 2015-10-24 06:21:21.000000000 -0700 @@ -28,11 +28,11 @@ #include <sys/types.h> @@ -18073,8 +20906,8 @@ typedef unsigned char jubyte; typedef unsigned short jushort; ---- ./jdk/src/solaris/native/sun/java2d/loops/mlib_ImageZoom_NN.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/java2d/loops/mlib_ImageZoom_NN.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/java2d/loops/mlib_ImageZoom_NN.c 2014-03-03 18:59:57.000000000 -0800 ++++ ./jdk/src/solaris/native/sun/java2d/loops/mlib_ImageZoom_NN.c 2015-10-24 06:21:21.000000000 -0700 @@ -63,9 +63,6 @@ * MLIB_EDGE_SRC_PADDED */ @@ -18179,8 +21012,8 @@ LOGIC(da[0], dtmp, dtmp1, |); } else { /* aligned */ ---- ./jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c 2014-03-03 18:59:57.000000000 -0800 ++++ ./jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c 2015-10-24 06:21:21.000000000 -0700 @@ -804,7 +804,7 @@ static int initialized; static int usevis = JNI_TRUE; @@ -18190,8 +21023,8 @@ # define ULTRA_CHIP "sparc64" #else # define ULTRA_CHIP "sun4u" ---- ./jdk/src/solaris/native/sun/management/OperatingSystemImpl.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/management/OperatingSystemImpl.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/management/OperatingSystemImpl.c 2015-12-12 10:53:22.318168000 -0800 ++++ ./jdk/src/solaris/native/sun/management/OperatingSystemImpl.c 2015-10-24 06:21:21.000000000 -0700 @@ -56,6 +56,9 @@ #include <limits.h> #include <stdlib.h> @@ -18346,8 +21179,8 @@ return -1; } ---- ./jdk/src/solaris/native/sun/net/portconfig.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/net/portconfig.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/net/portconfig.c 2014-03-03 18:59:58.000000000 -0800 ++++ ./jdk/src/solaris/native/sun/net/portconfig.c 2015-10-24 06:21:21.000000000 -0700 @@ -67,6 +67,24 @@ range->lower = net_getParam("/dev/tcp", "tcp_smallest_anon_port"); return 0; @@ -18373,8 +21206,8 @@ #elif defined(_ALLBSD_SOURCE) { int ret; ---- ./jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h 2014-03-03 18:59:58.000000000 -0800 ++++ ./jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h 2015-10-24 06:21:21.000000000 -0700 @@ -67,7 +67,7 @@ @@ -18423,8 +21256,8 @@ jboolean loadSocketExtensionFuncs(JNIEnv* env); #endif /* !SUN_NIO_CH_SCTP_H */ ---- ./jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c 2015-12-12 10:53:29.908334000 -0800 ++++ ./jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c 2015-10-24 06:21:21.000000000 -0700 @@ -58,6 +58,7 @@ */ jboolean loadSocketExtensionFuncs @@ -18441,8 +21274,8 @@ funcsLoaded = JNI_TRUE; return JNI_TRUE; ---- ./jdk/src/solaris/native/sun/nio/fs/MagicFileTypeDetector.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/nio/fs/MagicFileTypeDetector.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/nio/fs/MagicFileTypeDetector.c 2014-03-03 18:59:58.000000000 -0800 ++++ ./jdk/src/solaris/native/sun/nio/fs/MagicFileTypeDetector.c 2015-10-24 06:21:21.000000000 -0700 @@ -31,6 +31,12 @@ #include <dlfcn.h> #include <string.h> @@ -18465,8 +21298,8 @@ if (magic_handle == NULL) { return JNI_FALSE; } ---- ./jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c 2015-12-12 10:53:22.321284000 -0800 ++++ ./jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c 2015-10-24 06:21:21.000000000 -0700 @@ -54,7 +54,7 @@ } @@ -18476,8 +21309,8 @@ void *hModule = dlopen(libName, RTLD_LAZY); #else void *hModule = dlopen(libName, RTLD_NOLOAD); ---- ./jdk/src/solaris/native/sun/tools/attach/BsdVirtualMachine.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/tools/attach/BsdVirtualMachine.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/tools/attach/BsdVirtualMachine.c 2015-12-12 10:53:27.639188000 -0800 ++++ ./jdk/src/solaris/native/sun/tools/attach/BsdVirtualMachine.c 2015-10-24 06:21:21.000000000 -0700 @@ -37,7 +37,9 @@ #include <sys/types.h> #include <sys/socket.h> @@ -18488,8 +21321,8 @@ #include <sys/un.h> #include <fcntl.h> ---- ./jdk/src/solaris/native/sun/xawt/XWindow.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/solaris/native/sun/xawt/XWindow.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/solaris/native/sun/xawt/XWindow.c 2015-12-12 10:53:22.323453000 -0800 ++++ ./jdk/src/solaris/native/sun/xawt/XWindow.c 2015-10-24 06:21:21.000000000 -0700 @@ -886,7 +886,7 @@ { KeySym originalKeysym = *keysym; @@ -18499,30 +21332,8 @@ /* The following code on Linux will cause the keypad keys * not to echo on JTextField when the NumLock is on. The * keysyms will be 0, because the last parameter 2 is not defined. ---- ./jdk/src/windows/bin/java_md.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/windows/bin/java_md.c Sat Sep 05 06:34:07 2015 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2015, 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 -@@ -318,7 +318,11 @@ - JLI_TraceLauncher("JRE path is %s\n", path); - return JNI_TRUE; - } -- -+ /* ensure storage for path + \jre + NULL */ -+ if ((JLI_StrLen(path) + 4 + 1) > pathsize) { -+ JLI_TraceLauncher("Insufficient space to store JRE path\n"); -+ return JNI_FALSE; -+ } - /* Does this app ship a private JRE in <apphome>\jre directory? */ - JLI_Snprintf(javadll, sizeof (javadll), "%s\\jre\\bin\\" JAVA_DLL, path); - if (stat(javadll, &s) == 0) { ---- ./jdk/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_DirectSound.cpp Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_DirectSound.cpp Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_DirectSound.cpp 2014-03-03 19:00:02.000000000 -0800 ++++ ./jdk/src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_DirectSound.cpp 2015-10-24 06:21:21.000000000 -0700 @@ -308,7 +308,7 @@ DAUDIO_PCM, (bitsArray[bitIndex]==8)?FALSE:TRUE, /* signed */ @@ -18541,3 +21352,90 @@ isBigEndian #else !isBigEndian +--- ./langtools/.hgtags 2015-12-12 10:53:31.105737000 -0800 ++++ ./langtools/.hgtags 2015-10-24 06:21:02.000000000 -0700 +@@ -489,4 +489,3 @@ + 70489ab07527a3ef65e2a30f23b164220466775a jdk8u66-b14 + 8063e4ac4caabe1756f8393859ab56da3bb29122 jdk8u66-b15 + 01e7f91d993b341986f574d0eb3fbfe3d7cae68e jdk8u66-b16 +-c5d4ffa220f3824c2ea5d39dc99d41a9df9e5ae5 jdk8u40-b24 +--- ./make/Javadoc.gmk 2015-12-12 10:53:29.277538000 -0800 ++++ ./make/Javadoc.gmk 2015-10-24 06:20:55.000000000 -0700 +@@ -46,8 +46,18 @@ + + BUILD_NUMBER=$(JDK_BUILD_NUMBER) + ++ifeq ($(OPENJDK_TARGET_OS_VENDOR), openbsd) ++ ifeq ($(OPENJDK_TARGET_CPU_BITS), 32) ++ JAVADOC_CMD_MEM = "-Xmx768m" ++ else ++ JAVADOC_CMD_MEM = "-Xmx1024m" ++ endif ++else ++ JAVADOC_CMD_MEM = "-Xmx1024m" ++endif ++ + JAVADOC_CMD = $(JAVA) \ +- -Xmx1024m \ ++ $(JAVADOC_CMD_MEM) \ + -Djava.awt.headless=true \ + $(NEW_JAVADOC) \ + -bootclasspath $(JDK_OUTPUTDIR)/classes +--- ./make/Main.gmk 2015-12-12 10:53:29.277828000 -0800 ++++ ./make/Main.gmk 2015-10-24 06:20:55.000000000 -0700 +@@ -58,7 +58,11 @@ + + # Setup number of jobs to use. -jN is unfortunately not available for us to parse from the command line, + # hence this workaround. ++ifdef JOBS ++ifneq ($(JOBS),0) + MAKE_ARGS:=$(MAKE_ARGS) -j$(JOBS) ++endif ++endif + + ### Main targets + +--- ./make/common/MakeBase.gmk 2014-03-03 18:49:57.000000000 -0800 ++++ ./make/common/MakeBase.gmk 2015-10-24 06:20:55.000000000 -0700 +@@ -338,7 +338,7 @@ + # (and causing a crash on Cygwin). + # Default shell seems to always be /bin/sh. Must override with bash to get this to work on Solaris. + # Only use time if it's GNU time which supports format and output file. +- WRAPPER_SHELL:=/bin/bash $$(SRC_ROOT)/common/bin/shell-tracer.sh $$(if $$(findstring yes,$$(IS_GNU_TIME)),$$(TIME),-) $$(OUTPUT_ROOT)/build-trace-time.log /bin/bash ++ WRAPPER_SHELL:=bash $$(SRC_ROOT)/common/bin/shell-tracer.sh $$(if $$(findstring yes,$$(IS_GNU_TIME)),$$(TIME),-) $$(OUTPUT_ROOT)/build-trace-time.log bash + SHELL=$$(warning $$(if $$@,Building $$@,Running shell command) $$(if $$<, (from $$<))$$(if $$?, ($$(wordlist 1, 20, $$?) $$(if $$(wordlist 21, 22, $$?), ... [in total $$(words $$?) files]) newer)))$$(WRAPPER_SHELL) + endif + # Never remove warning messages; this is just for completeness +@@ -365,8 +365,8 @@ + + # This is to be called by all SetupFoo macros + define LogSetupMacroEntry +- $(if $(27),$(error Internal makefile error: Too many arguments to LogSetupMacroEntry, please update MakeBase.gmk)) +- $(if $(findstring $(LOG_LEVEL),debug trace), $(info $1 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26,$(if $($i),$(NEWLINE) $(strip [$i] $($i)))))) ++ $(if $(30),$(error Internal makefile error: Too many arguments to LogSetupMacroEntry, please update MakeBase.gmk)) ++ $(if $(findstring $(LOG_LEVEL),debug trace), $(info $1 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29,$(if $($i),$(NEWLINE) $(strip [$i] $($i)))))) + endef + + # Make directory without forking mkdir if not needed +--- ./make/common/NativeCompilation.gmk 2015-12-12 10:53:29.278425000 -0800 ++++ ./make/common/NativeCompilation.gmk 2015-10-24 06:20:55.000000000 -0700 +@@ -151,9 +151,9 @@ + # CC the compiler to use, default is $(CC) + # LDEXE the linker to use for linking executables, default is $(LDEXE) + # OPTIMIZATION sets optimization level to NONE, LOW, HIGH, HIGHEST +- $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26, $(if $($i),$1_$(strip $($i)))$(NEWLINE)) +- $(call LogSetupMacroEntry,SetupNativeCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26)) +- $(if $(27),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) ++ $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29, $(if $($i),$1_$(strip $($i)))$(NEWLINE)) ++ $(call LogSetupMacroEntry,SetupNativeCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26),$(27),$(28),$(29)) ++ $(if $(30),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) + + ifneq (,$$($1_BIN)) + $$(error BIN has been replaced with OBJECT_DIR) +--- ./nashorn/.hgtags 2015-12-12 10:53:31.107727000 -0800 ++++ ./nashorn/.hgtags 2015-10-24 06:21:04.000000000 -0700 +@@ -473,4 +473,3 @@ + 165ed6982da8dc7dc5562d5b4a8f07dba55c7448 jdk8u66-b14 + 9a3b86240761e602469c41bd720c7791997253e6 jdk8u66-b15 + c0ce5c308f5e2c42ac0d2e7367355663312a3128 jdk8u66-b16 +-b2ce5df33715583c898530560d4202853b9ff9bc jdk8u40-b24 diff --git a/java/openjdk8/files/patch-bsd-test b/java/openjdk8/files/patch-bsd-test index c206d3055b01..b9c672300975 100644 --- a/java/openjdk8/files/patch-bsd-test +++ b/java/openjdk8/files/patch-bsd-test @@ -1,5 +1,5 @@ ---- ./hotspot/test/compiler/5091921/Test7005594.sh Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/test/compiler/5091921/Test7005594.sh Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/test/compiler/5091921/Test7005594.sh 2014-03-03 18:52:39.000000000 -0800 ++++ ./hotspot/test/compiler/5091921/Test7005594.sh 2015-10-24 06:21:09.000000000 -0700 @@ -60,6 +60,15 @@ # Windows/MKS MEM=`"$ROOTDIR/mksnt/sysinf" memory -v | grep "Total Physical Memory: " | sed 's/Total Physical Memory: *//g'` @@ -16,8 +16,8 @@ else echo "Unable to determine amount of physical memory on the machine" fi ---- ./hotspot/test/compiler/6894807/Test6894807.sh Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/test/compiler/6894807/Test6894807.sh Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/test/compiler/6894807/Test6894807.sh 2014-03-03 18:52:40.000000000 -0800 ++++ ./hotspot/test/compiler/6894807/Test6894807.sh 2015-10-24 06:21:09.000000000 -0700 @@ -21,7 +21,7 @@ # set platform-dependent variables OS=`uname -s` @@ -27,8 +27,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./hotspot/test/runtime/7110720/Test7110720.sh Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/test/runtime/7110720/Test7110720.sh Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/test/runtime/7110720/Test7110720.sh 2014-03-03 18:52:45.000000000 -0800 ++++ ./hotspot/test/runtime/7110720/Test7110720.sh 2015-10-24 06:21:09.000000000 -0700 @@ -28,7 +28,7 @@ # set platform-dependent variables OS=`uname -s` @@ -38,8 +38,8 @@ FS="/" RM=/bin/rm CP=/bin/cp ---- ./hotspot/test/runtime/XCheckJniJsig/XCheckJSig.java Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/test/runtime/XCheckJniJsig/XCheckJSig.java Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/test/runtime/XCheckJniJsig/XCheckJSig.java 2014-03-03 18:52:46.000000000 -0800 ++++ ./hotspot/test/runtime/XCheckJniJsig/XCheckJSig.java 2015-10-24 06:21:09.000000000 -0700 @@ -37,8 +37,8 @@ public static void main(String args[]) throws Throwable { @@ -51,8 +51,8 @@ return; } ---- ./hotspot/test/test_env.sh Wed Jul 01 21:52:18 2015 -0700 -+++ ./hotspot/test/test_env.sh Sat Sep 05 06:33:34 2015 -0700 +--- ./hotspot/test/test_env.sh 2015-12-12 10:53:29.526985000 -0800 ++++ ./hotspot/test/test_env.sh 2015-10-24 06:21:09.000000000 -0700 @@ -53,7 +53,7 @@ # set platform-dependent variables OS=`uname -s` @@ -62,8 +62,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/com/sun/corba/5036554/TestCorbaBug.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/com/sun/corba/5036554/TestCorbaBug.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/com/sun/corba/5036554/TestCorbaBug.sh 2015-12-12 10:53:30.090391000 -0800 ++++ ./jdk/test/com/sun/corba/5036554/TestCorbaBug.sh 2015-10-24 06:21:21.000000000 -0700 @@ -48,7 +48,7 @@ # set platform-dependent variables OS=`uname -s` @@ -73,8 +73,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/com/sun/corba/cachedSocket/7056731.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/com/sun/corba/cachedSocket/7056731.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/com/sun/corba/cachedSocket/7056731.sh 2015-12-12 10:53:30.090638000 -0800 ++++ ./jdk/test/com/sun/corba/cachedSocket/7056731.sh 2015-10-24 06:21:21.000000000 -0700 @@ -31,7 +31,7 @@ OS=`uname -s` @@ -84,8 +84,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/com/sun/jdi/ImmutableResourceTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/com/sun/jdi/ImmutableResourceTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/com/sun/jdi/ImmutableResourceTest.sh 2015-12-12 10:53:22.388848000 -0800 ++++ ./jdk/test/com/sun/jdi/ImmutableResourceTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -56,7 +56,7 @@ OS=`uname -s` @@ -95,8 +95,8 @@ PATHSEP=":" ;; ---- ./jdk/test/com/sun/jdi/JITDebug.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/com/sun/jdi/JITDebug.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/com/sun/jdi/JITDebug.sh 2015-12-12 10:53:22.389099000 -0800 ++++ ./jdk/test/com/sun/jdi/JITDebug.sh 2015-10-24 06:21:21.000000000 -0700 @@ -63,7 +63,7 @@ OS=`uname -s` export TRANSPORT_METHOD @@ -106,8 +106,8 @@ PATHSEP=":" TRANSPORT_METHOD=dt_socket ;; ---- ./jdk/test/com/sun/jdi/PrivateTransportTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/com/sun/jdi/PrivateTransportTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/com/sun/jdi/PrivateTransportTest.sh 2015-12-12 10:53:22.389387000 -0800 ++++ ./jdk/test/com/sun/jdi/PrivateTransportTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -106,7 +106,7 @@ xx=`find ${jreloc}/lib -name libdt_socket.so` libloc=`dirname ${xx}` @@ -117,8 +117,8 @@ libloc=${jreloc}/lib ;; Windows*) ---- ./jdk/test/com/sun/jdi/ShellScaffold.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/com/sun/jdi/ShellScaffold.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/com/sun/jdi/ShellScaffold.sh 2015-12-12 10:53:22.389886000 -0800 ++++ ./jdk/test/com/sun/jdi/ShellScaffold.sh 2015-10-24 06:21:21.000000000 -0700 @@ -295,7 +295,7 @@ psCmd=ps jstack=jstack.exe @@ -128,8 +128,8 @@ transport=dt_socket address= devnull=/dev/null ---- ./jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh 2015-12-12 10:53:22.390155000 -0800 ++++ ./jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh 2015-10-24 06:21:21.000000000 -0700 @@ -45,7 +45,7 @@ OS=`uname -s` @@ -139,8 +139,8 @@ PS=":" ;; Windows* | CYGWIN*) ---- ./jdk/test/java/awt/JAWT/JAWT.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/awt/JAWT/JAWT.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/awt/JAWT/JAWT.sh 2014-03-03 19:00:24.000000000 -0800 ++++ ./jdk/test/java/awt/JAWT/JAWT.sh 2015-10-24 06:21:21.000000000 -0700 @@ -62,6 +62,23 @@ MAKE="make" LD_LIBRARY_PATH="." @@ -174,8 +174,8 @@ exit 0; ;; * ) ---- ./jdk/test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh 2015-12-12 10:53:22.414055000 -0800 ++++ ./jdk/test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -86,6 +86,14 @@ TMP="/tmp" ;; @@ -191,8 +191,8 @@ Windows* ) VAR="A different value for Win32" DEFAULT_JDK="C:/Program Files/Java/jdk1.8.0" ---- ./jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh 2015-12-12 10:53:22.414355000 -0800 ++++ ./jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -59,7 +59,7 @@ # Checking for proper OS OS=`uname -s` @@ -202,8 +202,8 @@ FILESEP="/" ;; ---- ./jdk/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh 2015-12-12 10:53:22.420145000 -0800 ++++ ./jdk/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -119,6 +119,14 @@ TMP="/tmp" ;; @@ -219,8 +219,8 @@ Windows* ) VAR="A different value for Win32" DEFAULT_JDK="C:/Program Files/Java/jdk1.8.0" ---- ./jdk/test/java/io/File/GetXSpace.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/io/File/GetXSpace.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/io/File/GetXSpace.java 2014-03-03 19:00:42.000000000 -0800 ++++ ./jdk/test/java/io/File/GetXSpace.java 2015-10-24 06:21:21.000000000 -0700 @@ -51,7 +51,7 @@ private static final String dfFormat; static { @@ -230,8 +230,8 @@ // FileSystem Total Used Available Use% MountedOn dfFormat = "([^\\s]+)\\s+(\\d+)\\s+\\d+\\s+(\\d+)\\s+\\d+%\\s+([^\\s]+)"; } else if (name.startsWith("Windows")) { ---- ./jdk/test/java/io/File/GetXSpace.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/io/File/GetXSpace.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/io/File/GetXSpace.sh 2014-03-03 19:00:42.000000000 -0800 ++++ ./jdk/test/java/io/File/GetXSpace.sh 2015-10-24 06:21:21.000000000 -0700 @@ -26,7 +26,7 @@ # set platform-dependent variable OS=`uname -s` @@ -241,8 +241,8 @@ Windows_98 ) return ;; Windows* ) SID=`sid`; TMP="c:/temp" ;; * ) ---- ./jdk/test/java/io/Serializable/evolution/RenamePackage/run.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/io/Serializable/evolution/RenamePackage/run.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/io/Serializable/evolution/RenamePackage/run.sh 2015-12-12 10:53:22.450535000 -0800 ++++ ./jdk/test/java/io/Serializable/evolution/RenamePackage/run.sh 2015-10-24 06:21:21.000000000 -0700 @@ -45,7 +45,7 @@ # Need to determine the classpath separator and filepath separator based on the # operating system. @@ -252,8 +252,8 @@ PS=":" ;; Windows* | CYGWIN* ) PS=";" ;; ---- ./jdk/test/java/io/Serializable/serialver/classpath/run.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/io/Serializable/serialver/classpath/run.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/io/Serializable/serialver/classpath/run.sh 2015-12-12 10:53:22.450789000 -0800 ++++ ./jdk/test/java/io/Serializable/serialver/classpath/run.sh 2015-10-24 06:21:21.000000000 -0700 @@ -47,7 +47,7 @@ # set platform-dependent variables OS=`uname -s` @@ -263,8 +263,8 @@ PS=":" ;; Windows* | CYGWIN* ) PS=";" ;; ---- ./jdk/test/java/io/Serializable/serialver/nested/run.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/io/Serializable/serialver/nested/run.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/io/Serializable/serialver/nested/run.sh 2015-12-12 10:53:22.451017000 -0800 ++++ ./jdk/test/java/io/Serializable/serialver/nested/run.sh 2015-10-24 06:21:21.000000000 -0700 @@ -47,7 +47,7 @@ # set platform-dependent variables OS=`uname -s` @@ -274,8 +274,8 @@ PS=":" ;; Windows* | CYGWIN* ) PS=";" ;; ---- ./jdk/test/java/lang/ClassLoader/Assert.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/lang/ClassLoader/Assert.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/lang/ClassLoader/Assert.sh 2015-12-12 10:53:22.451979000 -0800 ++++ ./jdk/test/java/lang/ClassLoader/Assert.sh 2015-10-24 06:21:21.000000000 -0700 @@ -25,7 +25,7 @@ OS=`uname -s` @@ -285,8 +285,8 @@ FS="/" CHMOD="${FS}bin${FS}chmod" ;; ---- ./jdk/test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh 2015-12-12 10:53:22.452192000 -0800 ++++ ./jdk/test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh 2015-10-24 06:21:21.000000000 -0700 @@ -55,7 +55,7 @@ Linux ) FS="/" @@ -296,8 +296,8 @@ FS="/" ;; AIX ) ---- ./jdk/test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh 2015-12-12 10:53:22.452434000 -0800 ++++ ./jdk/test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh 2015-10-24 06:21:21.000000000 -0700 @@ -60,7 +60,7 @@ Linux ) FS="/" @@ -307,8 +307,8 @@ FS="/" ;; AIX ) ---- ./jdk/test/java/lang/ProcessBuilder/DestroyTest.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/lang/ProcessBuilder/DestroyTest.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/lang/ProcessBuilder/DestroyTest.java 2015-12-12 10:53:22.454950000 -0800 ++++ ./jdk/test/java/lang/ProcessBuilder/DestroyTest.java 2015-10-24 06:21:21.000000000 -0700 @@ -148,6 +148,9 @@ } else if (osName.startsWith("Linux") == true) { return new UnixTest( @@ -319,8 +319,8 @@ } else if (osName.startsWith("Mac OS")) { return new MacTest( File.createTempFile("ProcessTrap-", ".sh",null)); ---- ./jdk/test/java/lang/ProcessBuilder/Zombies.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/lang/ProcessBuilder/Zombies.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/lang/ProcessBuilder/Zombies.java 2014-03-03 19:00:59.000000000 -0800 ++++ ./jdk/test/java/lang/ProcessBuilder/Zombies.java 2015-10-24 06:21:21.000000000 -0700 @@ -34,7 +34,7 @@ static final String os = System.getProperty("os.name"); @@ -330,8 +330,8 @@ "/usr/bin/true" : "/bin/true"; public static void main(String[] args) throws Throwable { ---- ./jdk/test/java/lang/StringCoding/CheckEncodings.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/lang/StringCoding/CheckEncodings.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/lang/StringCoding/CheckEncodings.sh 2015-12-12 10:53:22.455757000 -0800 ++++ ./jdk/test/java/lang/StringCoding/CheckEncodings.sh 2015-10-24 06:21:21.000000000 -0700 @@ -30,7 +30,7 @@ # set platform-dependent variables OS=`uname -s` @@ -341,8 +341,8 @@ Windows* | CYGWIN* ) echo "Passed"; exit 0 ;; * ) echo "Unrecognized system!" ; exit 1 ;; ---- ./jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh 2015-12-12 10:53:22.456885000 -0800 ++++ ./jdk/test/java/lang/annotation/loaderLeak/LoaderLeak.sh 2015-10-24 06:21:21.000000000 -0700 @@ -48,7 +48,7 @@ # set platform-dependent variables OS=`uname -s` @@ -352,8 +352,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/java/lang/instrument/MakeJAR2.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/lang/instrument/MakeJAR2.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/lang/instrument/MakeJAR2.sh 2014-03-03 19:01:05.000000000 -0800 ++++ ./jdk/test/java/lang/instrument/MakeJAR2.sh 2015-10-24 06:21:21.000000000 -0700 @@ -55,7 +55,7 @@ OS=`uname -s` @@ -363,8 +363,8 @@ PATHSEP=":" ;; ---- ./jdk/test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh 2015-12-12 10:53:22.461498000 -0800 ++++ ./jdk/test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh 2015-10-24 06:21:21.000000000 -0700 @@ -43,7 +43,7 @@ PS=":" FS="/" @@ -374,8 +374,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java 2014-03-03 19:01:08.000000000 -0800 ++++ ./jdk/test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java 2015-10-24 06:21:21.000000000 -0700 @@ -79,8 +79,10 @@ System.out.println("Test passed."); } @@ -397,8 +397,8 @@ ? output.split(" ") : output.split(","); double expected = Double.parseDouble(lavg[0]); ---- ./jdk/test/java/lang/management/OperatingSystemMXBean/TestSystemLoadAvg.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/lang/management/OperatingSystemMXBean/TestSystemLoadAvg.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/lang/management/OperatingSystemMXBean/TestSystemLoadAvg.sh 2015-12-12 10:53:22.471355000 -0800 ++++ ./jdk/test/java/lang/management/OperatingSystemMXBean/TestSystemLoadAvg.sh 2015-10-24 06:21:21.000000000 -0700 @@ -61,7 +61,7 @@ while true; do echo "Run $i: TestSystemLoadAvg" @@ -408,8 +408,8 @@ runOne GetSystemLoadAverage ;; * ) ---- ./jdk/test/java/net/Authenticator/B4933582.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/net/Authenticator/B4933582.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/net/Authenticator/B4933582.sh 2015-12-12 10:53:22.477427000 -0800 ++++ ./jdk/test/java/net/Authenticator/B4933582.sh 2015-10-24 06:21:21.000000000 -0700 @@ -26,7 +26,7 @@ OS=`uname -s` @@ -419,8 +419,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/java/net/DatagramSocket/Send12k.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/net/DatagramSocket/Send12k.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/net/DatagramSocket/Send12k.java 2015-12-12 10:53:22.478901000 -0800 ++++ ./jdk/test/java/net/DatagramSocket/Send12k.java 2015-10-24 06:21:21.000000000 -0700 @@ -36,9 +36,10 @@ public static void main(String args[]) throws Exception { @@ -434,8 +434,8 @@ SEND_SIZE = 16 * 576; } else { SEND_SIZE = 16 * 1024; ---- ./jdk/test/java/net/DatagramSocket/SendDatagramToBadAddress.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/net/DatagramSocket/SendDatagramToBadAddress.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/net/DatagramSocket/SendDatagramToBadAddress.java 2014-03-03 19:01:17.000000000 -0800 ++++ ./jdk/test/java/net/DatagramSocket/SendDatagramToBadAddress.java 2015-10-24 06:21:21.000000000 -0700 @@ -45,6 +45,8 @@ return (true); if (p.getProperty ("os.name").equals ("Linux")) @@ -445,8 +445,8 @@ if (p.getProperty ("os.name").startsWith ("Mac OS")) return (true); // Check for specific Solaris version from here ---- ./jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh 2015-12-12 10:53:22.479117000 -0800 ++++ ./jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh 2015-10-24 06:21:21.000000000 -0700 @@ -27,11 +27,7 @@ # set platform-dependent variables OS=`uname -s` @@ -460,8 +460,8 @@ PATHSEP=":" FILESEP="/" ;; ---- ./jdk/test/java/net/Socket/OldSocketImpl.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/net/Socket/OldSocketImpl.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/net/Socket/OldSocketImpl.sh 2015-12-12 10:53:22.481561000 -0800 ++++ ./jdk/test/java/net/Socket/OldSocketImpl.sh 2015-10-24 06:21:21.000000000 -0700 @@ -28,7 +28,7 @@ OS=`uname -s` @@ -471,8 +471,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/java/net/URL/B5086147.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/net/URL/B5086147.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/net/URL/B5086147.sh 2015-12-12 10:53:22.481780000 -0800 ++++ ./jdk/test/java/net/URL/B5086147.sh 2015-10-24 06:21:21.000000000 -0700 @@ -26,7 +26,7 @@ OS=`uname -s` @@ -482,8 +482,8 @@ exit 0 ;; CYGWIN* ) ---- ./jdk/test/java/net/URLClassLoader/B5077773.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/net/URLClassLoader/B5077773.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/net/URLClassLoader/B5077773.sh 2015-12-12 10:53:22.481969000 -0800 ++++ ./jdk/test/java/net/URLClassLoader/B5077773.sh 2015-10-24 06:21:21.000000000 -0700 @@ -34,11 +34,7 @@ OS=`uname -s` @@ -497,8 +497,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/java/net/URLClassLoader/sealing/checksealed.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/net/URLClassLoader/sealing/checksealed.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/net/URLClassLoader/sealing/checksealed.sh 2015-12-12 10:53:22.482686000 -0800 ++++ ./jdk/test/java/net/URLClassLoader/sealing/checksealed.sh 2015-10-24 06:21:21.000000000 -0700 @@ -27,11 +27,7 @@ OS=`uname -s` @@ -512,8 +512,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/java/net/URLConnection/6212146/test.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/net/URLConnection/6212146/test.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/net/URLConnection/6212146/test.sh 2015-12-12 10:53:22.482899000 -0800 ++++ ./jdk/test/java/net/URLConnection/6212146/test.sh 2015-10-24 06:21:21.000000000 -0700 @@ -33,11 +33,7 @@ OS=`uname -s` @@ -527,8 +527,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/java/nio/channels/FileChannel/Transfer.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/nio/channels/FileChannel/Transfer.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/nio/channels/FileChannel/Transfer.java 2014-03-03 19:01:23.000000000 -0800 ++++ ./jdk/test/java/nio/channels/FileChannel/Transfer.java 2015-10-24 06:21:21.000000000 -0700 @@ -228,7 +228,7 @@ // Windows and Linux can't handle the really large file sizes for a // truncate or a positional write required by the test for 4563125 @@ -538,8 +538,8 @@ return; File source = File.createTempFile("blah", null); source.deleteOnExit(); ---- ./jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.c Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.c Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.c 2014-03-03 19:01:25.000000000 -0800 ++++ ./jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.c 2015-10-24 06:21:21.000000000 -0700 @@ -17,6 +17,12 @@ #include "Launcher.h" @@ -562,8 +562,8 @@ _exit(-1); } ---- ./jdk/test/java/nio/charset/coders/CheckSJISMappingProp.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/nio/charset/coders/CheckSJISMappingProp.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/nio/charset/coders/CheckSJISMappingProp.sh 2015-12-12 10:53:22.483391000 -0800 ++++ ./jdk/test/java/nio/charset/coders/CheckSJISMappingProp.sh 2015-10-24 06:21:21.000000000 -0700 @@ -34,7 +34,7 @@ OS=`uname -s` @@ -573,8 +573,8 @@ # Skip locale test for Windows Windows* | CYGWIN* ) echo "Passed"; exit 0 ;; ---- ./jdk/test/java/nio/charset/spi/basic.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/nio/charset/spi/basic.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/nio/charset/spi/basic.sh 2015-12-12 10:53:22.483637000 -0800 ++++ ./jdk/test/java/nio/charset/spi/basic.sh 2015-10-24 06:21:21.000000000 -0700 @@ -48,7 +48,7 @@ DIR=`pwd` @@ -584,8 +584,8 @@ Windows* ) CPS=';' ;; CYGWIN* ) DIR=`/usr/bin/cygpath -a -s -m $DIR` ---- ./jdk/test/java/nio/file/FileSystem/Basic.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/nio/file/FileSystem/Basic.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/nio/file/FileSystem/Basic.java 2014-03-03 19:01:26.000000000 -0800 ++++ ./jdk/test/java/nio/file/FileSystem/Basic.java 2015-10-24 06:21:21.000000000 -0700 @@ -76,7 +76,7 @@ checkSupported(fs, "posix", "unix", "owner", "acl", "user"); if (os.equals("Linux")) @@ -595,8 +595,8 @@ checkSupported(fs, "posix", "unix", "owner"); if (os.equals("Windows")) checkSupported(fs, "owner", "dos", "acl", "user"); ---- ./jdk/test/java/nio/file/Files/CopyAndMove.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/nio/file/Files/CopyAndMove.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/nio/file/Files/CopyAndMove.java 2014-03-03 19:01:26.000000000 -0800 ++++ ./jdk/test/java/nio/file/Files/CopyAndMove.java 2015-10-24 06:21:21.000000000 -0700 @@ -651,7 +651,7 @@ // check POSIX attributes are copied @@ -615,8 +615,8 @@ boolean isDirectory = isDirectory(file, NOFOLLOW_LINKS); if (isUnix) { ---- ./jdk/test/java/rmi/activation/Activatable/extLoadedImpl/ext.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/rmi/activation/Activatable/extLoadedImpl/ext.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/rmi/activation/Activatable/extLoadedImpl/ext.sh 2015-12-12 10:53:22.485144000 -0800 ++++ ./jdk/test/java/rmi/activation/Activatable/extLoadedImpl/ext.sh 2015-10-24 06:21:21.000000000 -0700 @@ -33,7 +33,7 @@ OS=`uname -s` @@ -626,8 +626,8 @@ PS=":" ;; Windows* | CYGWIN* ) ---- ./jdk/test/java/rmi/registry/readTest/readTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/rmi/registry/readTest/readTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/rmi/registry/readTest/readTest.sh 2015-12-12 10:53:22.485393000 -0800 ++++ ./jdk/test/java/rmi/registry/readTest/readTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -34,7 +34,7 @@ REGARGS="" @@ -637,8 +637,8 @@ PS=":" FS="/" CHMOD="${FS}bin${FS}chmod" ---- ./jdk/test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh 2015-12-12 10:53:22.485604000 -0800 ++++ ./jdk/test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh 2015-10-24 06:21:21.000000000 -0700 @@ -58,7 +58,7 @@ PATHSEP=":" FILESEP="/" @@ -648,8 +648,8 @@ PATHSEP=":" FILESEP="/" ;; ---- ./jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh 2015-12-12 10:53:22.485811000 -0800 ++++ ./jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh 2015-10-24 06:21:21.000000000 -0700 @@ -42,7 +42,7 @@ PATHSEP=":" FILESEP="/" @@ -659,8 +659,8 @@ PATHSEP=":" FILESEP="/" ;; ---- ./jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh 2015-12-12 10:53:22.486036000 -0800 ++++ ./jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh 2015-10-24 06:21:21.000000000 -0700 @@ -66,7 +66,7 @@ PATHSEP=";" FILESEP="/" @@ -670,8 +670,8 @@ PATHSEP=":" FILESEP="/" ;; ---- ./jdk/test/java/security/Security/signedfirst/Dyn.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/security/Security/signedfirst/Dyn.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/security/Security/signedfirst/Dyn.sh 2015-12-12 10:53:22.486242000 -0800 ++++ ./jdk/test/java/security/Security/signedfirst/Dyn.sh 2015-10-24 06:21:21.000000000 -0700 @@ -58,7 +58,7 @@ PATHSEP=":" FILESEP="/" @@ -681,8 +681,8 @@ PATHSEP=":" FILESEP="/" ;; ---- ./jdk/test/java/security/Security/signedfirst/Static.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/security/Security/signedfirst/Static.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/security/Security/signedfirst/Static.sh 2015-12-12 10:53:22.486466000 -0800 ++++ ./jdk/test/java/security/Security/signedfirst/Static.sh 2015-10-24 06:21:21.000000000 -0700 @@ -58,7 +58,7 @@ PATHSEP=":" FILESEP="/" @@ -692,8 +692,8 @@ PATHSEP=":" FILESEP="/" ;; ---- ./jdk/test/java/util/Currency/PropertiesTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/util/Currency/PropertiesTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/util/Currency/PropertiesTest.sh 2015-12-12 10:53:30.197211000 -0800 ++++ ./jdk/test/java/util/Currency/PropertiesTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -52,7 +52,7 @@ # set platform-dependent variables OS=`uname -s` @@ -703,8 +703,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/java/util/PluggableLocale/ExecTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/util/PluggableLocale/ExecTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/util/PluggableLocale/ExecTest.sh 2015-12-12 10:53:22.499744000 -0800 ++++ ./jdk/test/java/util/PluggableLocale/ExecTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -62,7 +62,7 @@ # set platform-dependent variables OS=`uname -s` @@ -714,8 +714,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/java/util/ResourceBundle/Bug6299235Test.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/util/ResourceBundle/Bug6299235Test.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/util/ResourceBundle/Bug6299235Test.sh 2015-12-12 10:53:22.499941000 -0800 ++++ ./jdk/test/java/util/ResourceBundle/Bug6299235Test.sh 2015-10-24 06:21:21.000000000 -0700 @@ -31,7 +31,7 @@ # set platform-dependent variables OS=`uname -s` @@ -725,8 +725,8 @@ PATHSEP=":" FILESEP="/" ;; ---- ./jdk/test/java/util/ServiceLoader/basic.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/util/ServiceLoader/basic.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/util/ServiceLoader/basic.sh 2015-12-12 10:53:22.500159000 -0800 ++++ ./jdk/test/java/util/ServiceLoader/basic.sh 2015-10-24 06:21:21.000000000 -0700 @@ -43,9 +43,7 @@ OS=`uname -s` @@ -738,8 +738,8 @@ SEP=':' ;; * ) SEP='\;' ;; ---- ./jdk/test/java/util/prefs/CheckUserPrefsStorage.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/java/util/prefs/CheckUserPrefsStorage.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/java/util/prefs/CheckUserPrefsStorage.sh 2015-12-12 10:53:22.506216000 -0800 ++++ ./jdk/test/java/util/prefs/CheckUserPrefsStorage.sh 2015-10-24 06:21:21.000000000 -0700 @@ -31,7 +31,7 @@ OS=`uname -s` @@ -749,8 +749,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/javax/crypto/SecretKeyFactory/FailOverTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/javax/crypto/SecretKeyFactory/FailOverTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/javax/crypto/SecretKeyFactory/FailOverTest.sh 2015-12-12 10:53:22.507911000 -0800 ++++ ./jdk/test/javax/crypto/SecretKeyFactory/FailOverTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -56,7 +56,7 @@ # set platform-dependent variables OS=`uname -s` @@ -760,8 +760,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatTest.sh 2015-12-12 10:53:22.508176000 -0800 ++++ ./jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -89,7 +89,7 @@ FILESEP="/" ;; @@ -771,8 +771,8 @@ VAR="A different value for Linux" DEFAULT_JDK=/none #DEFAULT_JDK=/usr/local/java/jdk1.4/linux-i386 ---- ./jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatThreadTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatThreadTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatThreadTest.sh 2015-12-12 10:53:22.508457000 -0800 ++++ ./jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatThreadTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -90,7 +90,7 @@ FILESEP="/" ;; @@ -782,8 +782,8 @@ VAR="A different value for Linux" DEFAULT_JDK=/none #DEFAULT_JDK=/usr/local/java/jdk1.4/linux-i386 ---- ./jdk/test/javax/imageio/stream/StreamCloserLeak/run_test.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/javax/imageio/stream/StreamCloserLeak/run_test.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/javax/imageio/stream/StreamCloserLeak/run_test.sh 2015-12-12 10:53:22.508726000 -0800 ++++ ./jdk/test/javax/imageio/stream/StreamCloserLeak/run_test.sh 2015-10-24 06:21:21.000000000 -0700 @@ -108,6 +108,14 @@ TMP="/tmp" ;; @@ -799,8 +799,8 @@ Windows* ) VAR="A different value for Win32" DEFAULT_JDK="C:/Program Files/Java/jdk1.8.0" ---- ./jdk/test/javax/script/CommonSetup.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/javax/script/CommonSetup.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/javax/script/CommonSetup.sh 2015-12-12 10:53:22.510678000 -0800 ++++ ./jdk/test/javax/script/CommonSetup.sh 2015-10-24 06:21:21.000000000 -0700 @@ -36,7 +36,7 @@ OS=`uname -s` @@ -810,8 +810,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/javax/security/auth/Subject/doAs/Test.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/javax/security/auth/Subject/doAs/Test.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/javax/security/auth/Subject/doAs/Test.sh 2015-12-12 10:53:22.510908000 -0800 ++++ ./jdk/test/javax/security/auth/Subject/doAs/Test.sh 2015-10-24 06:21:21.000000000 -0700 @@ -43,7 +43,7 @@ FS="/" RM="/bin/rm -f" @@ -821,8 +821,8 @@ PS=":" FS="/" RM="/bin/rm -f" ---- ./jdk/test/lib/security/java.policy/Ext_AllPolicy.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/lib/security/java.policy/Ext_AllPolicy.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/lib/security/java.policy/Ext_AllPolicy.sh 2015-12-12 10:53:22.545913000 -0800 ++++ ./jdk/test/lib/security/java.policy/Ext_AllPolicy.sh 2015-10-24 06:21:21.000000000 -0700 @@ -53,7 +53,7 @@ # set platform-dependent variables OS=`uname -s` @@ -832,38 +832,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/lib/testlibrary/AssertsTest.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/lib/testlibrary/AssertsTest.java Sat Sep 05 06:34:07 2015 -0700 -@@ -25,7 +25,6 @@ - - /* @test - * @summary Tests the different assertions in the Assert class -- * @library /testlibrary - */ - public class AssertsTest { - private static class Foo implements Comparable<Foo> { ---- ./jdk/test/lib/testlibrary/OutputAnalyzerReportingTest.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/lib/testlibrary/OutputAnalyzerReportingTest.java Sat Sep 05 06:34:07 2015 -0700 -@@ -27,7 +27,6 @@ - * @summary Test the OutputAnalyzer reporting functionality, - * such as printing additional diagnostic info - * (exit code, stdout, stderr, command line, etc.) -- * @library /testlibrary - */ - - import java.io.ByteArrayOutputStream; ---- ./jdk/test/lib/testlibrary/OutputAnalyzerTest.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/lib/testlibrary/OutputAnalyzerTest.java Sat Sep 05 06:34:07 2015 -0700 -@@ -24,7 +24,6 @@ - /* - * @test - * @summary Test the OutputAnalyzer utility class -- * @library /testlibrary - */ - - import jdk.testlibrary.OutputAnalyzer; ---- ./jdk/test/lib/testlibrary/jdk/testlibrary/Platform.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/lib/testlibrary/jdk/testlibrary/Platform.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/lib/testlibrary/jdk/testlibrary/Platform.java 2014-03-03 19:02:35.000000000 -0800 ++++ ./jdk/test/lib/testlibrary/jdk/testlibrary/Platform.java 2015-10-24 06:21:21.000000000 -0700 @@ -53,8 +53,13 @@ return isOs("linux"); } @@ -879,8 +849,8 @@ } public static String getOsName() { ---- ./jdk/test/sun/awt/dnd/8024061/bug8024061.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/awt/dnd/8024061/bug8024061.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/awt/dnd/8024061/bug8024061.java 2015-12-12 10:53:27.749973000 -0800 ++++ ./jdk/test/sun/awt/dnd/8024061/bug8024061.java 2015-10-24 06:21:21.000000000 -0700 @@ -107,8 +107,8 @@ public static void main(String[] args) throws AWTException, InvocationTargetException, InterruptedException { @@ -892,8 +862,8 @@ "skipping!"); return; } ---- ./jdk/test/sun/management/jmxremote/bootstrap/GeneratePropertyPassword.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/management/jmxremote/bootstrap/GeneratePropertyPassword.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/management/jmxremote/bootstrap/GeneratePropertyPassword.sh 2015-12-12 10:53:22.554693000 -0800 ++++ ./jdk/test/sun/management/jmxremote/bootstrap/GeneratePropertyPassword.sh 2015-10-24 06:21:21.000000000 -0700 @@ -42,7 +42,7 @@ fi @@ -903,93 +873,8 @@ PATHSEP=":" FILESEP="/" DFILESEP=$FILESEP ---- ./jdk/test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java Sat Sep 05 06:34:07 2015 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2003, 2015, 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 sun.management.AgentConfigurationError; - -+import java.security.Security; -+ - import util.TestLogger; - - /** -@@ -133,6 +135,8 @@ - "com.sun.management.jmxremote.ssl.enabled.protocols"; - public static final String SSL_NEED_CLIENT_AUTH = - "com.sun.management.jmxremote.ssl.need.client.auth"; -+ public static final String SSL_CLIENT_ENABLED_CIPHER_SUITES = -+ "javax.rmi.ssl.client.enabledCipherSuites"; - } - - /** -@@ -434,7 +438,7 @@ - } - - -- private void setSslProperties() { -+ private void setSslProperties(String clientEnabledCipherSuites) { - final String defaultKeyStore = - getDefaultStoreName(DefaultValues.KEYSTORE); - final String defaultTrustStore = -@@ -465,6 +469,13 @@ - System.setProperty(PropertyNames.TRUSTSTORE_PASSWD,trustword); - log.trace("setSslProperties", - PropertyNames.TRUSTSTORE_PASSWD+"="+trustword); -+ -+ if (clientEnabledCipherSuites != null) { -+ System.setProperty("javax.rmi.ssl.client.enabledCipherSuites", -+ clientEnabledCipherSuites); -+ } else { -+ System.clearProperty("javax.rmi.ssl.client.enabledCipherSuites"); -+ } - } - - private void checkSslConfiguration() { -@@ -517,7 +528,10 @@ - PropertyNames.SSL_ENABLED_PROTOCOLS + "=" + - sslProtocols); - -- if (useSsl) setSslProperties(); -+ if (useSsl) { -+ setSslProperties(props.getProperty( -+ PropertyNames.SSL_CLIENT_ENABLED_CIPHER_SUITES)); -+ } - } catch (Exception x) { - System.out.println("Failed to setup SSL configuration: " + x); - log.debug("checkSslConfiguration",x); -@@ -871,6 +885,8 @@ - * exit(1) if the test fails. - **/ - public static void main(String args[]) throws Exception { -+ Security.setProperty("jdk.tls.disabledAlgorithms", ""); -+ - setupBasePort(); - RmiBootstrapTest manager = new RmiBootstrapTest(); - try { ---- ./jdk/test/sun/management/jmxremote/bootstrap/management_ssltest07_ok.properties.in Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/management/jmxremote/bootstrap/management_ssltest07_ok.properties.in Sat Sep 05 06:34:07 2015 -0700 -@@ -2,3 +2,4 @@ - com.sun.management.jmxremote.ssl.enabled.protocols=SSLv2Hello,SSLv3,TLSv1 - com.sun.management.jmxremote.ssl.need.client.auth=true - com.sun.management.jmxremote.authenticate=false -+javax.rmi.ssl.client.enabledCipherSuites=SSL_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_RC4_128_MD5 ---- ./jdk/test/sun/management/jmxremote/bootstrap/management_ssltest11_ok.properties.in Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/management/jmxremote/bootstrap/management_ssltest11_ok.properties.in Sat Sep 05 06:34:07 2015 -0700 -@@ -3,3 +3,4 @@ - com.sun.management.jmxremote.ssl.need.client.auth=true - com.sun.management.jmxremote.ssl.config.file=@TEST-SRC@/jmxremote_ssltest11_ok.ssl - com.sun.management.jmxremote.authenticate=false -+javax.rmi.ssl.client.enabledCipherSuites=SSL_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_RC4_128_MD5 ---- ./jdk/test/sun/net/ftp/MarkResetTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/net/ftp/MarkResetTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/net/ftp/MarkResetTest.sh 2015-12-12 10:53:22.556402000 -0800 ++++ ./jdk/test/sun/net/ftp/MarkResetTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -28,7 +28,7 @@ OS=`uname -s` @@ -999,8 +884,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/sun/net/www/http/HttpClient/RetryPost.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/net/www/http/HttpClient/RetryPost.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/net/www/http/HttpClient/RetryPost.sh 2015-12-12 10:53:22.558980000 -0800 ++++ ./jdk/test/sun/net/www/http/HttpClient/RetryPost.sh 2015-10-24 06:21:21.000000000 -0700 @@ -28,7 +28,7 @@ OS=`uname -s` @@ -1010,8 +895,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/sun/net/www/protocol/jar/B5105410.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/net/www/protocol/jar/B5105410.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/net/www/protocol/jar/B5105410.sh 2015-12-12 10:53:22.559186000 -0800 ++++ ./jdk/test/sun/net/www/protocol/jar/B5105410.sh 2015-10-24 06:21:21.000000000 -0700 @@ -31,7 +31,7 @@ OS=`uname -s` @@ -1021,8 +906,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/sun/net/www/protocol/jar/jarbug/run.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/net/www/protocol/jar/jarbug/run.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/net/www/protocol/jar/jarbug/run.sh 2015-12-12 10:53:22.559427000 -0800 ++++ ./jdk/test/sun/net/www/protocol/jar/jarbug/run.sh 2015-10-24 06:21:21.000000000 -0700 @@ -31,7 +31,7 @@ OS=`uname -s` @@ -1032,8 +917,8 @@ PS=":" FS="/" CHMOD="${FS}bin${FS}chmod" ---- ./jdk/test/sun/nio/ch/SelProvider.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/nio/ch/SelProvider.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/nio/ch/SelProvider.java 2014-03-03 19:02:43.000000000 -0800 ++++ ./jdk/test/sun/nio/ch/SelProvider.java 2015-10-24 06:21:21.000000000 -0700 @@ -39,7 +39,7 @@ expected = "sun.nio.ch.DevPollSelectorProvider"; } else if ("Linux".equals(osname)) { @@ -1043,40 +928,8 @@ expected = "sun.nio.ch.KQueueSelectorProvider"; } else { return; ---- ./jdk/test/sun/security/ec/TestEC.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/ec/TestEC.java Sat Sep 05 06:34:07 2015 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2009, 2015, 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 -@@ -59,6 +59,11 @@ - public class TestEC { - - public static void main(String[] args) throws Exception { -+ // reset security properties to make sure that the algorithms -+ // and keys used in this test are not disabled. -+ Security.setProperty("jdk.tls.disabledAlgorithms", ""); -+ Security.setProperty("jdk.certpath.disabledAlgorithms", ""); -+ - ProvidersSnapshot snapshot = ProvidersSnapshot.create(); - try { - main0(args); -@@ -68,10 +73,6 @@ - } - - public static void main0(String[] args) throws Exception { -- // reset the security property to make sure that the algorithms -- // and keys used in this test are not disabled. -- Security.setProperty("jdk.tls.disabledAlgorithms", ""); -- - Provider p = Security.getProvider("SunEC"); - - if (p == null) { ---- ./jdk/test/sun/security/krb5/runNameEquals.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/krb5/runNameEquals.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/krb5/runNameEquals.sh 2015-12-12 10:53:22.564782000 -0800 ++++ ./jdk/test/sun/security/krb5/runNameEquals.sh 2015-10-24 06:21:21.000000000 -0700 @@ -52,7 +52,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1086,8 +939,8 @@ PATHSEP=":" FILESEP="/" NATIVE=true ---- ./jdk/test/sun/security/mscapi/ShortRSAKey1024.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/mscapi/ShortRSAKey1024.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/mscapi/ShortRSAKey1024.sh 2014-03-03 19:02:53.000000000 -0800 ++++ ./jdk/test/sun/security/mscapi/ShortRSAKey1024.sh 2015-10-24 06:21:21.000000000 -0700 @@ -49,7 +49,7 @@ OS=`uname -s` @@ -1097,8 +950,8 @@ FS="/" ;; Windows_* ) ---- ./jdk/test/sun/security/pkcs11/Provider/ConfigQuotedString.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/pkcs11/Provider/ConfigQuotedString.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/pkcs11/Provider/ConfigQuotedString.sh 2015-12-12 10:53:22.565675000 -0800 ++++ ./jdk/test/sun/security/pkcs11/Provider/ConfigQuotedString.sh 2015-10-24 06:21:21.000000000 -0700 @@ -66,7 +66,7 @@ CP="${FS}bin${FS}cp" CHMOD="${FS}bin${FS}chmod" @@ -1108,8 +961,8 @@ FS="/" PS=":" CP="${FS}bin${FS}cp" ---- ./jdk/test/sun/security/pkcs11/Provider/Login.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/pkcs11/Provider/Login.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/pkcs11/Provider/Login.sh 2015-12-12 10:53:22.565893000 -0800 ++++ ./jdk/test/sun/security/pkcs11/Provider/Login.sh 2015-10-24 06:21:21.000000000 -0700 @@ -67,7 +67,7 @@ CP="${FS}bin${FS}cp" CHMOD="${FS}bin${FS}chmod" @@ -1119,29 +972,8 @@ FS="/" PS=":" CP="${FS}bin${FS}cp" ---- ./jdk/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java Sat Sep 05 06:34:07 2015 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2002, 2015, 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,9 +43,10 @@ - private static String[] cmdArgs; - - public static void main(String[] args) throws Exception { -- // reset the security property to make sure that the algorithms -+ // reset security properties to make sure that the algorithms - // and keys used in this test are not disabled. - Security.setProperty("jdk.tls.disabledAlgorithms", ""); -+ Security.setProperty("jdk.certpath.disabledAlgorithms", ""); - - cmdArgs = args; - main(new ClientJSSEServerJSSE()); ---- ./jdk/test/sun/security/provider/KeyStore/DKSTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/provider/KeyStore/DKSTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/provider/KeyStore/DKSTest.sh 2015-12-12 10:53:22.567575000 -0800 ++++ ./jdk/test/sun/security/provider/KeyStore/DKSTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -50,7 +50,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1151,8 +983,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.sh 2014-03-03 19:02:58.000000000 -0800 ++++ ./jdk/test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.sh 2015-10-24 06:21:21.000000000 -0700 @@ -52,7 +52,7 @@ PATHSEP=":" FILESEP="/" @@ -1162,8 +994,8 @@ PATHSEP=":" FILESEP="/" ;; ---- ./jdk/test/sun/security/provider/PolicyFile/getinstance/getinstance.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/provider/PolicyFile/getinstance/getinstance.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/provider/PolicyFile/getinstance/getinstance.sh 2015-12-12 10:53:22.567788000 -0800 ++++ ./jdk/test/sun/security/provider/PolicyFile/getinstance/getinstance.sh 2015-10-24 06:21:21.000000000 -0700 @@ -59,7 +59,7 @@ PS=":" FS="/" @@ -1173,30 +1005,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/DHKeyExchange/DHEKeySizing.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/DHKeyExchange/DHEKeySizing.java Sat Sep 05 06:34:07 2015 -0700 -@@ -100,6 +100,7 @@ - import javax.net.ssl.SSLEngineResult.*; - import java.io.*; - import java.nio.*; -+import java.security.Security; - import java.security.KeyStore; - import java.security.KeyFactory; - import java.security.Security; -@@ -377,9 +378,10 @@ - } - - public static void main(String args[]) throws Exception { -- // reset the security property to make sure that the algorithms -+ // reset security properties to make sure that the algorithms - // and keys used in this test are not disabled. - Security.setProperty("jdk.tls.disabledAlgorithms", ""); -+ Security.setProperty("jdk.certpath.disabledAlgorithms", ""); - - if (args.length != 4) { - System.out.println( ---- ./jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/EngineArgs/DebugReportsOneExtraByte.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/EngineArgs/DebugReportsOneExtraByte.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/EngineArgs/DebugReportsOneExtraByte.sh 2015-12-12 10:53:22.569052000 -0800 ++++ ./jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/EngineArgs/DebugReportsOneExtraByte.sh 2015-10-24 06:21:21.000000000 -0700 @@ -33,7 +33,7 @@ OS=`uname -s` @@ -1206,8 +1016,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh 2015-12-12 10:53:22.569658000 -0800 ++++ ./jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -46,7 +46,7 @@ OS=`uname -s` @@ -1217,156 +1027,8 @@ FILESEP="/" PATHSEP=":" ;; ---- ./jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/AnonCipherWithWantClientAuth.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/AnonCipherWithWantClientAuth.java Sat Sep 05 06:34:07 2015 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2001, 2015, 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 -@@ -21,6 +21,11 @@ - * questions. - */ - -+// -+// SunJSSE does not support dynamic system properties, no way to re-use -+// system properties in samevm/agentvm mode. -+// -+ - /* - * @test - * @bug 4392475 -@@ -34,6 +39,7 @@ - import java.io.*; - import java.net.*; - import javax.net.ssl.*; -+import java.security.Security; - - public class AnonCipherWithWantClientAuth { - -@@ -156,6 +162,11 @@ - volatile Exception clientException = null; - - public static void main(String[] args) throws Exception { -+ // reset security properties to make sure that the algorithms -+ // and keys used in this test are not disabled. -+ Security.setProperty("jdk.tls.disabledAlgorithms", ""); -+ Security.setProperty("jdk.certpath.disabledAlgorithms", ""); -+ - String keyFilename = - System.getProperty("test.src", "./") + "/" + pathToStores + - "/" + keyStoreFile; ---- ./jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java Sat Sep 05 06:34:07 2015 -0700 -@@ -81,6 +81,9 @@ - ssle1.setEnabledCipherSuites(new String [] { - "SSL_RSA_WITH_RC4_128_MD5"}); - -+ ssle2.setEnabledCipherSuites(new String [] { -+ "SSL_RSA_WITH_RC4_128_MD5"}); -+ - createBuffers(); - } - ---- ./jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/LargeBufs.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/LargeBufs.java Sat Sep 05 06:34:07 2015 -0700 -@@ -92,6 +92,7 @@ - createSSLEngines(); - - System.out.println("Using " + cipher); -+ ssle1.setEnabledCipherSuites(new String [] { cipher }); - ssle2.setEnabledCipherSuites(new String [] { cipher }); - - createBuffers(); ---- ./jdk/test/sun/security/ssl/javax/net/ssl/SSLParameters/UseCipherSuitesOrder.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/ssl/javax/net/ssl/SSLParameters/UseCipherSuitesOrder.java Sat Sep 05 06:34:07 2015 -0700 -@@ -31,7 +31,7 @@ - * @bug 7188657 - * @summary There should be a way to reorder the JSSE ciphers - * @run main/othervm UseCipherSuitesOrder -- * TLS_RSA_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA -+ * TLS_RSA_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA - */ - - import java.io.*; ---- ./jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericStreamCipher.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/ssl/javax/net/ssl/TLSv11/GenericStreamCipher.java Sat Sep 05 06:34:07 2015 -0700 -@@ -93,6 +93,10 @@ - SSLServerSocket sslServerSocket = - (SSLServerSocket) sslssf.createServerSocket(serverPort); - -+ // enable a stream cipher -+ sslServerSocket.setEnabledCipherSuites( -+ new String[] {"SSL_RSA_WITH_RC4_128_MD5"}); -+ - serverPort = sslServerSocket.getLocalPort(); - - /* ---- ./jdk/test/sun/security/ssl/sanity/ciphersuites/CipherSuitesInOrder.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/ssl/sanity/ciphersuites/CipherSuitesInOrder.java Sat Sep 05 06:34:07 2015 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2012, 2015, 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 -@@ -93,13 +93,6 @@ - "SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA", - "SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA", - -- "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", -- "TLS_ECDHE_RSA_WITH_RC4_128_SHA", -- "SSL_RSA_WITH_RC4_128_SHA", -- "TLS_ECDH_ECDSA_WITH_RC4_128_SHA", -- "TLS_ECDH_RSA_WITH_RC4_128_SHA", -- "SSL_RSA_WITH_RC4_128_MD5", -- - "TLS_EMPTY_RENEGOTIATION_INFO_SCSV", - - "TLS_DH_anon_WITH_AES_256_GCM_SHA384", -@@ -113,8 +106,16 @@ - "TLS_DH_anon_WITH_AES_128_CBC_SHA", - "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA", - "SSL_DH_anon_WITH_3DES_EDE_CBC_SHA", -+ -+ "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", -+ "TLS_ECDHE_RSA_WITH_RC4_128_SHA", -+ "SSL_RSA_WITH_RC4_128_SHA", -+ "TLS_ECDH_ECDSA_WITH_RC4_128_SHA", -+ "TLS_ECDH_RSA_WITH_RC4_128_SHA", -+ "SSL_RSA_WITH_RC4_128_MD5", - "TLS_ECDH_anon_WITH_RC4_128_SHA", - "SSL_DH_anon_WITH_RC4_128_MD5", -+ - "SSL_RSA_WITH_DES_CBC_SHA", - "SSL_DHE_RSA_WITH_DES_CBC_SHA", - "SSL_DHE_DSS_WITH_DES_CBC_SHA", ---- ./jdk/test/sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java Sat Sep 05 06:34:07 2015 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2002, 2015, 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 -@@ -34,9 +34,10 @@ - public class ClientJSSEServerJSSE { - - public static void main(String[] args) throws Exception { -- // reset the security property to make sure that the algorithms -+ // reset security properties to make sure that the algorithms - // and keys used in this test are not disabled. - Security.setProperty("jdk.tls.disabledAlgorithms", ""); -+ Security.setProperty("jdk.certpath.disabledAlgorithms", ""); - - CipherTest.main(new JSSEFactory(), args); - } ---- ./jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh 2015-12-12 10:53:22.569895000 -0800 ++++ ./jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh 2015-10-24 06:21:21.000000000 -0700 @@ -32,7 +32,7 @@ HOSTNAME=`uname -n` OS=`uname -s` @@ -1376,8 +1038,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh 2015-12-12 10:53:22.570134000 -0800 ++++ ./jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh 2015-10-24 06:21:21.000000000 -0700 @@ -32,7 +32,7 @@ HOSTNAME=`uname -n` OS=`uname -s` @@ -1387,8 +1049,8 @@ PS=":" FS="/" ;; ---- ./jdk/test/sun/security/tools/jarsigner/AlgOptions.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/jarsigner/AlgOptions.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/jarsigner/AlgOptions.sh 2015-12-12 10:53:22.570379000 -0800 ++++ ./jdk/test/sun/security/tools/jarsigner/AlgOptions.sh 2015-10-24 06:21:21.000000000 -0700 @@ -46,7 +46,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1398,8 +1060,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/security/tools/jarsigner/PercentSign.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/jarsigner/PercentSign.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/jarsigner/PercentSign.sh 2015-12-12 10:53:22.570595000 -0800 ++++ ./jdk/test/sun/security/tools/jarsigner/PercentSign.sh 2015-10-24 06:21:21.000000000 -0700 @@ -46,7 +46,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1409,8 +1071,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/security/tools/jarsigner/diffend.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/jarsigner/diffend.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/jarsigner/diffend.sh 2015-12-12 10:53:22.571436000 -0800 ++++ ./jdk/test/sun/security/tools/jarsigner/diffend.sh 2015-10-24 06:21:21.000000000 -0700 @@ -47,6 +47,13 @@ FS="/" CP="${FS}bin${FS}cp -f" @@ -1425,8 +1087,8 @@ CYGWIN* ) NULL=/dev/null PS=";" ---- ./jdk/test/sun/security/tools/jarsigner/emptymanifest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/jarsigner/emptymanifest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/jarsigner/emptymanifest.sh 2014-03-03 19:03:04.000000000 -0800 ++++ ./jdk/test/sun/security/tools/jarsigner/emptymanifest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -39,6 +39,11 @@ Windows_* ) FS="\\" @@ -1439,8 +1101,8 @@ * ) FS="/" ;; ---- ./jdk/test/sun/security/tools/jarsigner/oldsig.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/jarsigner/oldsig.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/jarsigner/oldsig.sh 2015-12-12 10:53:22.571643000 -0800 ++++ ./jdk/test/sun/security/tools/jarsigner/oldsig.sh 2015-10-24 06:21:21.000000000 -0700 @@ -42,7 +42,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1450,8 +1112,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/security/tools/keytool/AltProviderPath.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/keytool/AltProviderPath.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/keytool/AltProviderPath.sh 2015-12-12 10:53:22.571851000 -0800 ++++ ./jdk/test/sun/security/tools/keytool/AltProviderPath.sh 2015-10-24 06:21:21.000000000 -0700 @@ -46,7 +46,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1461,8 +1123,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/security/tools/keytool/CloneKeyAskPassword.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/keytool/CloneKeyAskPassword.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/keytool/CloneKeyAskPassword.sh 2015-12-12 10:53:22.572052000 -0800 ++++ ./jdk/test/sun/security/tools/keytool/CloneKeyAskPassword.sh 2015-10-24 06:21:21.000000000 -0700 @@ -55,7 +55,7 @@ PATHSEP=":" FILESEP="/" @@ -1472,8 +1134,8 @@ PATHSEP=":" FILESEP="/" ;; ---- ./jdk/test/sun/security/tools/keytool/NoExtNPE.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/keytool/NoExtNPE.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/keytool/NoExtNPE.sh 2015-12-12 10:53:22.572261000 -0800 ++++ ./jdk/test/sun/security/tools/keytool/NoExtNPE.sh 2015-10-24 06:21:21.000000000 -0700 @@ -48,7 +48,7 @@ Linux ) FILESEP="/" @@ -1483,8 +1145,8 @@ FILESEP="/" ;; AIX ) ---- ./jdk/test/sun/security/tools/keytool/SecretKeyKS.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/keytool/SecretKeyKS.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/keytool/SecretKeyKS.sh 2015-12-12 10:53:22.572464000 -0800 ++++ ./jdk/test/sun/security/tools/keytool/SecretKeyKS.sh 2015-10-24 06:21:21.000000000 -0700 @@ -45,7 +45,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1494,8 +1156,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/security/tools/keytool/StandardAlgName.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/keytool/StandardAlgName.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/keytool/StandardAlgName.sh 2015-12-12 10:53:22.572670000 -0800 ++++ ./jdk/test/sun/security/tools/keytool/StandardAlgName.sh 2015-10-24 06:21:21.000000000 -0700 @@ -46,7 +46,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1505,8 +1167,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/security/tools/keytool/StorePasswordsByShell.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/keytool/StorePasswordsByShell.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/keytool/StorePasswordsByShell.sh 2015-12-12 10:53:22.572890000 -0800 ++++ ./jdk/test/sun/security/tools/keytool/StorePasswordsByShell.sh 2015-10-24 06:21:21.000000000 -0700 @@ -46,7 +46,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1516,8 +1178,8 @@ PATHSEP=":" FILESEP="/" ;; ---- ./jdk/test/sun/security/tools/keytool/i18n.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/keytool/i18n.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/keytool/i18n.sh 2014-03-03 19:03:04.000000000 -0800 ++++ ./jdk/test/sun/security/tools/keytool/i18n.sh 2015-10-24 06:21:21.000000000 -0700 @@ -46,7 +46,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1527,8 +1189,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/security/tools/keytool/printssl.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/keytool/printssl.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/keytool/printssl.sh 2015-12-12 10:53:22.573306000 -0800 ++++ ./jdk/test/sun/security/tools/keytool/printssl.sh 2015-10-24 06:21:21.000000000 -0700 @@ -40,7 +40,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1538,8 +1200,8 @@ FS="/" ;; CYGWIN* ) ---- ./jdk/test/sun/security/tools/keytool/resource.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/keytool/resource.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/keytool/resource.sh 2015-12-12 10:53:22.573517000 -0800 ++++ ./jdk/test/sun/security/tools/keytool/resource.sh 2015-10-24 06:21:21.000000000 -0700 @@ -43,7 +43,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1549,8 +1211,8 @@ NULL=/dev/null FS="/" ;; ---- ./jdk/test/sun/security/tools/keytool/standard.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/keytool/standard.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/keytool/standard.sh 2015-12-12 10:53:22.573715000 -0800 ++++ ./jdk/test/sun/security/tools/keytool/standard.sh 2015-10-24 06:21:21.000000000 -0700 @@ -45,7 +45,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1560,8 +1222,8 @@ FS="/" ;; Windows_* ) ---- ./jdk/test/sun/security/tools/policytool/Alias.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/policytool/Alias.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/policytool/Alias.sh 2015-12-12 10:53:22.573914000 -0800 ++++ ./jdk/test/sun/security/tools/policytool/Alias.sh 2015-10-24 06:21:21.000000000 -0700 @@ -47,7 +47,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1571,8 +1233,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/security/tools/policytool/ChangeUI.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/policytool/ChangeUI.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/policytool/ChangeUI.sh 2015-12-12 10:53:22.574124000 -0800 ++++ ./jdk/test/sun/security/tools/policytool/ChangeUI.sh 2015-10-24 06:21:21.000000000 -0700 @@ -46,7 +46,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1582,8 +1244,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/security/tools/policytool/OpenPolicy.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/policytool/OpenPolicy.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/policytool/OpenPolicy.sh 2015-12-12 10:53:22.574318000 -0800 ++++ ./jdk/test/sun/security/tools/policytool/OpenPolicy.sh 2015-10-24 06:21:21.000000000 -0700 @@ -46,7 +46,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1593,8 +1255,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/security/tools/policytool/SaveAs.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/policytool/SaveAs.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/policytool/SaveAs.sh 2015-12-12 10:53:22.574517000 -0800 ++++ ./jdk/test/sun/security/tools/policytool/SaveAs.sh 2015-10-24 06:21:21.000000000 -0700 @@ -47,7 +47,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1604,8 +1266,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/security/tools/policytool/UpdatePermissions.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/policytool/UpdatePermissions.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/policytool/UpdatePermissions.sh 2015-12-12 10:53:22.574731000 -0800 ++++ ./jdk/test/sun/security/tools/policytool/UpdatePermissions.sh 2015-10-24 06:21:21.000000000 -0700 @@ -47,7 +47,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1615,8 +1277,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/security/tools/policytool/UsePolicy.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/policytool/UsePolicy.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/policytool/UsePolicy.sh 2015-12-12 10:53:22.574927000 -0800 ++++ ./jdk/test/sun/security/tools/policytool/UsePolicy.sh 2015-10-24 06:21:21.000000000 -0700 @@ -46,7 +46,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1626,8 +1288,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/security/tools/policytool/i18n.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/security/tools/policytool/i18n.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/security/tools/policytool/i18n.sh 2015-12-12 10:53:22.575135000 -0800 ++++ ./jdk/test/sun/security/tools/policytool/i18n.sh 2015-10-24 06:21:21.000000000 -0700 @@ -49,7 +49,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1637,8 +1299,8 @@ NULL=/dev/null PS=":" FS="/" ---- ./jdk/test/sun/tools/common/CommonSetup.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/tools/common/CommonSetup.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/tools/common/CommonSetup.sh 2015-12-12 10:53:22.709729000 -0800 ++++ ./jdk/test/sun/tools/common/CommonSetup.sh 2015-10-24 06:21:21.000000000 -0700 @@ -47,6 +47,7 @@ # isLinux - true if OS is Linux # isSolaris - true if OS is Solaris @@ -1666,8 +1328,8 @@ Darwin ) OS="Mac OS X" isMacos=true ---- ./jdk/test/sun/tools/jconsole/ResourceCheckTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/tools/jconsole/ResourceCheckTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/tools/jconsole/ResourceCheckTest.sh 2015-12-12 10:53:22.709942000 -0800 ++++ ./jdk/test/sun/tools/jconsole/ResourceCheckTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -54,7 +54,7 @@ OS=`uname -s` @@ -1677,8 +1339,8 @@ PATHSEP=":" ;; ---- ./jdk/test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh 2015-12-12 10:53:22.711964000 -0800 ++++ ./jdk/test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh 2015-10-24 06:21:21.000000000 -0700 @@ -56,7 +56,7 @@ OS=`uname -s` @@ -1688,8 +1350,8 @@ PATHSEP=":" ;; ---- ./jdk/test/tools/launcher/ExecutionEnvironment.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/tools/launcher/ExecutionEnvironment.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/tools/launcher/ExecutionEnvironment.java 2015-12-12 10:53:22.730360000 -0800 ++++ ./jdk/test/tools/launcher/ExecutionEnvironment.java 2015-10-24 06:21:21.000000000 -0700 @@ -194,7 +194,7 @@ Map<String, String> env = new HashMap<>(); @@ -1699,8 +1361,8 @@ for (String x : LD_PATH_STRINGS) { String pairs[] = x.split("="); env.put(pairs[0], pairs[1]); ---- ./jdk/test/tools/launcher/RunpathTest.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/tools/launcher/RunpathTest.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/tools/launcher/RunpathTest.java 2014-03-03 19:03:12.000000000 -0800 ++++ ./jdk/test/tools/launcher/RunpathTest.java 2015-10-24 06:21:21.000000000 -0700 @@ -69,7 +69,7 @@ } @@ -1710,8 +1372,8 @@ RunpathTest rp = new RunpathTest(); rp.testRpath(); } ---- ./jdk/test/tools/launcher/Test7029048.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/tools/launcher/Test7029048.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/tools/launcher/Test7029048.java 2014-03-03 19:03:12.000000000 -0800 ++++ ./jdk/test/tools/launcher/Test7029048.java 2015-10-24 06:21:21.000000000 -0700 @@ -223,7 +223,7 @@ } else if (isSolaris && passes < 9) { throw new Exception("Test7029048: FAIL: " + @@ -1721,8 +1383,8 @@ throw new Exception("Test7029048: FAIL: " + "all tests did not run, expected " + 6 + " got " + passes); } else { ---- ./jdk/test/tools/launcher/TestHelper.java Wed Jul 01 21:53:30 2015 -0700 -+++ ./jdk/test/tools/launcher/TestHelper.java Sat Sep 05 06:34:07 2015 -0700 +--- ./jdk/test/tools/launcher/TestHelper.java 2015-12-12 10:53:22.730904000 -0800 ++++ ./jdk/test/tools/launcher/TestHelper.java 2015-10-24 06:21:21.000000000 -0700 @@ -94,6 +94,8 @@ System.getProperty("os.name", "unknown").startsWith("Linux"); static final boolean isAIX = @@ -1732,8 +1394,8 @@ static final String LIBJVM = isWindows ? "jvm.dll" : "libjvm" + (isMacOSX ? ".dylib" : ".so"); ---- ./langtools/test/Makefile Wed Jul 01 21:54:20 2015 -0700 -+++ ./langtools/test/Makefile Sat Aug 29 06:20:27 2015 -0700 +--- ./langtools/test/Makefile 2015-12-12 10:53:30.585701000 -0800 ++++ ./langtools/test/Makefile 2015-10-24 06:21:02.000000000 -0700 @@ -34,6 +34,14 @@ ARCH=i586 endif @@ -1749,8 +1411,8 @@ ifeq ($(OSNAME), Darwin) PLATFORM = bsd ARCH = $(shell uname -m) ---- ./langtools/test/tools/javah/ReadOldClass.sh Wed Jul 01 21:54:20 2015 -0700 -+++ ./langtools/test/tools/javah/ReadOldClass.sh Sat Aug 29 06:20:27 2015 -0700 +--- ./langtools/test/tools/javah/ReadOldClass.sh 2014-03-03 18:53:04.000000000 -0800 ++++ ./langtools/test/tools/javah/ReadOldClass.sh 2015-10-24 06:21:02.000000000 -0700 @@ -43,7 +43,7 @@ # set platform-dependent variables OS=`uname -s` @@ -1760,8 +1422,8 @@ PS=":" FS="/" ;; ---- ./nashorn/test/script/jfx.js Wed Jul 01 21:54:30 2015 -0700 -+++ ./nashorn/test/script/jfx.js Sat Aug 29 06:20:30 2015 -0700 +--- ./nashorn/test/script/jfx.js 2015-12-12 10:53:19.839811000 -0800 ++++ ./nashorn/test/script/jfx.js 2015-10-24 06:21:05.000000000 -0700 @@ -93,6 +93,8 @@ f2 = new File(sb.append(fsep + "linux.png").toString()); } else if (OSInfo.getOSType() == OSType.MACOSX) { |