Merge
authorlana
Wed, 18 Jun 2014 10:55:17 -0700
changeset 24987 36497704fcc9
parent 24908 2dcf544eb7ed (current diff)
parent 24986 81e3c2e485d4 (diff)
child 24988 8c82c02495e7
child 25086 f5f41ed620d5
Merge
jdk/make/mapfiles/libnpt/mapfile-vers
jdk/src/share/classes/sun/management/manifest
jdk/src/share/classes/sun/misc/Timeable.java
jdk/src/share/classes/sun/misc/Timer.java
jdk/src/share/npt/README.txt
jdk/src/share/npt/npt.c
jdk/src/share/npt/npt.h
jdk/src/share/npt/utf.c
jdk/src/share/npt/utf.h
jdk/src/solaris/npt/npt_md.h
jdk/src/solaris/npt/utf_md.c
jdk/src/solaris/npt/utf_md.h
jdk/src/windows/npt/npt_md.h
jdk/src/windows/npt/utf_md.c
jdk/src/windows/npt/utf_md.h
jdk/test/sun/security/pkcs11/nss/src/MD5SUMS
jdk/test/sun/security/pkcs11/nss/src/SHA1SUMS
jdk/test/sun/security/pkcs11/nss/src/nss-3.13.1.tar.gz
jdk/test/sun/tools/jhat/HatRun.java
--- a/jdk/THIRD_PARTY_README	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/THIRD_PARTY_README	Wed Jun 18 10:55:17 2014 -0700
@@ -1471,7 +1471,7 @@
 version 2.0.
 
 The NSS libraries are supplied in executable form, built from unmodified
-NSS source code labeled with the "NSS_3.13.1_RTM" release tag.
+NSS source code labeled with the "NSS_3_16_RTM" HG tag.
 
 The NSS source code is available in the OpenJDK source code repository at:
     jdk/test/sun/security/pkcs11/nss/src
--- a/jdk/make/CompileDemos.gmk	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/make/CompileDemos.gmk	Wed Jun 18 10:55:17 2014 -0700
@@ -1,6 +1,5 @@
-
 #
-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, 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
@@ -320,7 +319,6 @@
 endif
 
 $(eval $(call SetupJVMTIDemo,hprof, java_crw_demo, \
-    -I$(JDK_TOPDIR)/src/share/npt -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \
     $(BUILD_LIBHPROF_AIX_EXTRA_CFLAGS), C, \
     -ldl, ws2_32.lib winmm.lib, -lsocket -lnsl, -lpthread, $(BUILD_LIBHPROF_AIX_EXTRA_SRC)))
 
--- a/jdk/make/CreateJars.gmk	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/make/CreateJars.gmk	Wed Jun 18 10:55:17 2014 -0700
@@ -676,15 +676,6 @@
 
 ##########################################################################################
 
-#
-# This is an empty jar (only contains manifest) and fits poorly into framework...
-# create simple rule instead
-#
-$(IMAGES_OUTPUTDIR)/lib/management-agent.jar: $(JDK_TOPDIR)/src/share/classes/sun/management/manifest
-	$(JAR) cfm $@ $<
-
-##########################################################################################
-
 # This file is imported from hotspot in Import.gmk. Copying it into images/lib so that
 # all jars can be found in one place when creating images in Images.gmk. It needs to be
 # done here so that clean targets can be simple and accurate.
--- a/jdk/make/lib/CoreLibraries.gmk	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/make/lib/CoreLibraries.gmk	Wed Jun 18 10:55:17 2014 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, 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
@@ -526,30 +526,3 @@
   BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a
 
 endif
-
-##########################################################################################
-
-$(eval $(call SetupNativeCompilation,BUILD_LIBNPT, \
-    LIBRARY := npt, \
-    OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
-    SRC := $(JDK_TOPDIR)/src/share/npt $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \
-    LANG := C, \
-    OPTIMIZATION := LOW, \
-    CFLAGS := $(CFLAGS_JDKLIB) \
-        -I$(JDK_TOPDIR)/src/share/npt \
-        -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \
-    MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnpt/mapfile-vers, \
-    LDFLAGS := $(LDFLAGS_JDKLIB) \
-        $(call SET_SHARED_LIBRARY_ORIGIN), \
-    LDFLAGS_macosx := -liconv, \
-    LDFLAGS_SUFFIX_windows := -export:nptInitialize -export:nptTerminate, \
-    LDFLAGS_SUFFIX_solaris := -lc, \
-    VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
-    RC_FLAGS := $(RC_FLAGS) \
-        -D "JDK_FNAME=npt.dll" \
-        -D "JDK_INTERNAL_NAME=npt" \
-        -D "JDK_FTYPE=0x2L", \
-    OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnpt, \
-    DEBUG_SYMBOLS := true))
-
-BUILD_LIBRARIES += $(BUILD_LIBNPT)
--- a/jdk/make/lib/ServiceabilityLibraries.gmk	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/make/lib/ServiceabilityLibraries.gmk	Wed Jun 18 10:55:17 2014 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, 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
@@ -147,8 +147,6 @@
     CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_WARNINGS_ARE_ERRORS) -DJDWP_LOGGING \
         -I$(JDK_TOPDIR)/src/share/transport/export \
         -I$(JDK_TOPDIR)/src/share/back/export \
-        -I$(JDK_TOPDIR)/src/share/npt \
-        -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \
         -I$(JDK_TOPDIR)/src/share/back \
         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/back \
         -I$(JDK_OUTPUTDIR)/gensrc_jdwp_headers, \
@@ -158,6 +156,7 @@
     LDFLAGS_SUFFIX_linux := $(LIBDL), \
     LDFLAGS_SUFFIX_solaris := $(LIBDL) -lc, \
     LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX), \
+    LDFLAGS_SUFFIX_macosx := -liconv, \
     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
     RC_FLAGS := $(RC_FLAGS) \
         -D "JDK_FNAME=jdwp.dll" \
@@ -340,8 +339,6 @@
 
 BUILD_LIBHPROF_SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/hprof $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/demo/jvmti/hprof
 BUILD_LIBHPROF_CFLAGS := -I$(JDK_TOPDIR)/src/share/demo/jvmti/hprof \
-    -I$(JDK_TOPDIR)/src/share/npt \
-    -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \
     -I$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo
 
 ifeq ($(OPENJDK_TARGET_OS), aix)
--- a/jdk/make/mapfiles/libnpt/mapfile-vers	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-#
-# Copyright (c) 2004, 2013, 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.
-#
-
-# Define public interface.
-
-SUNWprivate_1.1 {
-	global:
-	    nptInitialize;
-	    nptTerminate;
-	local:
-	    *;
-};
--- a/jdk/make/profile-includes.txt	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/make/profile-includes.txt	Wed Jun 18 10:55:17 2014 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2014, 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
@@ -127,12 +127,9 @@
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)jsdt.diz \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)management$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)management.diz \
-    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)npt$(SHARED_LIBRARY_SUFFIX) \
-    $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)npt.diz \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)prefs$(SHARED_LIBRARY_SUFFIX) \
     $(OPENJDK_TARGET_CPU_LEGACY_LIB)/$(LIBRARY_PREFIX)sctp$(SHARED_LIBRARY_SUFFIX) \
     jvm.hprof.txt \
-    management-agent.jar \
     management/jmxremote.access \
     management/jmxremote.password.template \
     management/management.properties \
@@ -140,8 +137,7 @@
 
 PROFILE_3_JRE_OTHER_FILES :=
 
-PROFILE_3_JRE_JAR_FILES := \
-    management-agent.jar
+PROFILE_3_JRE_JAR_FILES :=
 
 
 FULL_JRE_BIN_FILES := \
--- a/jdk/make/src/classes/build/tools/buildmetaindex/BuildMetaIndex.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/make/src/classes/build/tools/buildmetaindex/BuildMetaIndex.java	Wed Jun 18 10:55:17 2014 -0700
@@ -53,7 +53,6 @@
 com/sun/net/
 javax/
 com/sun/security/
-# management-agent.jar
 ! rt.jar
 org/w3c/
 com/sun/image/
--- a/jdk/src/share/back/debugInit.c	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/back/debugInit.c	Wed Jun 18 10:55:17 2014 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, 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
@@ -202,8 +202,6 @@
     jint              jvmtiCompileTimeMajorVersion;
     jint              jvmtiCompileTimeMinorVersion;
     jint              jvmtiCompileTimeMicroVersion;
-    char              *boot_path = NULL;
-    char              npt_lib[MAXPATHLEN];
 
     /* See if it's already loaded */
     if ( gdata!=NULL && gdata->isLoaded==JNI_TRUE ) {
@@ -268,24 +266,6 @@
         forceExit(1); /* Kill entire process, no core dump wanted */
     }
 
-    JVMTI_FUNC_PTR(gdata->jvmti, GetSystemProperty)
-        (gdata->jvmti, (const char *)"sun.boot.library.path",
-         &boot_path);
-
-    dbgsysBuildLibName(npt_lib, sizeof(npt_lib), boot_path, NPT_LIBNAME);
-    /* Npt and Utf function init */
-    NPT_INITIALIZE(npt_lib, &(gdata->npt), NPT_VERSION, NULL);
-    jvmtiDeallocate(boot_path);
-    if (gdata->npt == NULL) {
-        ERROR_MESSAGE(("JDWP: unable to initialize NPT library"));
-        return JNI_ERR;
-    }
-    gdata->npt->utf = (gdata->npt->utfInitialize)(NULL);
-    if (gdata->npt->utf == NULL) {
-        ERROR_MESSAGE(("JDWP: UTF function initialization failed"));
-        return JNI_ERR;
-    }
-
     /* Parse input options */
     if (!parseOptions(options)) {
         /* No message necessary, should have been printed out already */
@@ -1307,22 +1287,26 @@
     if ( error != JVMTI_ERROR_NONE ) {
         exit_code = 1;
         if ( docoredump ) {
+            LOG_MISC(("Dumping core as requested by command line"));
             finish_logging(exit_code);
             abort();
         }
     }
+
     if ( msg==NULL ) {
         msg = "";
     }
 
     LOG_MISC(("Exiting with error %s(%d): %s", jvmtiErrorText(error), error, msg));
 
-    gdata->vmDead = JNI_TRUE;
+    if (gdata != NULL) {
+        gdata->vmDead = JNI_TRUE;
 
-    /* Let's try and cleanup the JVMTI, if we even have one */
-    if ( gdata->jvmti != NULL ) {
-        /* Dispose of jvmti (gdata->jvmti becomes NULL) */
-        disposeEnvironment(gdata->jvmti);
+        /* Let's try and cleanup the JVMTI, if we even have one */
+        if ( gdata->jvmti != NULL ) {
+            /* Dispose of jvmti (gdata->jvmti becomes NULL) */
+            disposeEnvironment(gdata->jvmti);
+        }
     }
 
     /* Finish up logging. We reach here if JDWP is doing the exiting. */
--- a/jdk/src/share/back/error_messages.c	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/back/error_messages.c	Wed Jun 18 10:55:17 2014 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, 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
@@ -47,6 +47,7 @@
 #include <errno.h>
 
 #include "util.h"
+#include "utf_util.h"
 #include "proc_md.h"
 
 /* Maximim length of a message */
@@ -70,13 +71,8 @@
     len = (int)strlen((char*)utf8buf);
 
     /* Convert to platform encoding (ignore errors, dangerous area) */
-    if (gdata->npt != NULL) {
-        (void)(gdata->npt->utf8ToPlatform)(gdata->npt->utf,
-               utf8buf, len, pbuf, MAX_MESSAGE_LEN);
-    } else {
-        /* May be called before NPT is initialized so don't fault */
-        strncpy(pbuf, (char*)utf8buf, len);
-    }
+    (void)utf8ToPlatform(utf8buf, len, pbuf, MAX_MESSAGE_LEN);
+
     (void)fprintf(fp, "%s%s%s", prefix, pbuf, suffix);
 }
 
--- a/jdk/src/share/back/inStream.c	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/back/inStream.c	Wed Jun 18 10:55:17 2014 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, 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 @@
  */
 
 #include "util.h"
+#include "utf_util.h"
 #include "stream.h"
 #include "inStream.h"
 #include "transport.h"
@@ -379,15 +380,12 @@
         string[length] = '\0';
 
         /* This is Standard UTF-8, convert to Modified UTF-8 if necessary */
-        new_length = (gdata->npt->utf8sToUtf8mLength)
-                             (gdata->npt->utf, (jbyte*)string, length);
+        new_length = utf8sToUtf8mLength((jbyte*)string, length);
         if ( new_length != length ) {
             char *new_string;
 
             new_string = jvmtiAllocate(new_length+1);
-            (gdata->npt->utf8sToUtf8m)
-                             (gdata->npt->utf, (jbyte*)string, length,
-                              (jbyte*)new_string, new_length);
+            utf8sToUtf8m((jbyte*)string, length, (jbyte*)new_string, new_length);
             jvmtiDeallocate(string);
             return new_string;
         }
--- a/jdk/src/share/back/outStream.c	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/back/outStream.c	Wed Jun 18 10:55:17 2014 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, 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 @@
  */
 
 #include "util.h"
+#include "utf_util.h"
 #include "stream.h"
 #include "outStream.h"
 #include "inStream.h"
@@ -307,8 +308,7 @@
     } else {
         jint      new_length;
 
-        new_length = (gdata->npt->utf8mToUtf8sLength)
-                            (gdata->npt->utf, (jbyte*)string, length);
+        new_length = utf8mToUtf8sLength((jbyte*)string, length);
         if ( new_length == length ) {
             (void)outStream_writeInt(stream, length);
             error = writeBytes(stream, (jbyte *)string, length);
@@ -316,9 +316,7 @@
             char *new_string;
 
             new_string = jvmtiAllocate(new_length+1);
-            (gdata->npt->utf8mToUtf8s)
-                            (gdata->npt->utf, (jbyte*)string, length,
-                             (jbyte*)new_string, new_length);
+            utf8mToUtf8s((jbyte*)string, length, (jbyte*)new_string, new_length);
             (void)outStream_writeInt(stream, new_length);
             error = writeBytes(stream, (jbyte *)new_string, new_length);
             jvmtiDeallocate(new_string);
--- a/jdk/src/share/back/transport.c	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/back/transport.c	Wed Jun 18 10:55:17 2014 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, 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 @@
  */
 
 #include "util.h"
+#include "utf_util.h"
 #include "transport.h"
 #include "debugLoop.h"
 #include "sys.h"
@@ -65,8 +66,7 @@
         len = (int)strlen(msg);
         maxlen = len+len/2+2; /* Should allow for plenty of room */
         utf8msg = (jbyte*)jvmtiAllocate(maxlen+1);
-        (void)(gdata->npt->utf8FromPlatform)(gdata->npt->utf,
-            msg, len, utf8msg, maxlen);
+        (void)utf8FromPlatform(msg, len, utf8msg, maxlen);
         utf8msg[maxlen] = 0;
     }
     if (rv == JDWPTRANSPORT_ERROR_NONE) {
@@ -110,8 +110,7 @@
         int  len;
 
         len = (int)strlen(libdir);
-        (void)(gdata->npt->utf8ToPlatform)(gdata->npt->utf,
-            (jbyte*)libdir, len, buf, (int)sizeof(buf));
+        (void)utf8ToPlatform((jbyte*)libdir, len, buf, (int)sizeof(buf));
         plibdir = buf;
     }
 
@@ -392,8 +391,7 @@
     /* Convert commandLine from UTF-8 to platform encoding */
     len = (int)strlen(commandLine);
     buf = jvmtiAllocate(len*3+3);
-    (void)(gdata->npt->utf8ToPlatform)(gdata->npt->utf,
-        (jbyte*)commandLine, len, buf, len*3+3);
+    (void)utf8ToPlatform((jbyte*)commandLine, len, buf, len*3+3);
 
     /* Exec commandLine */
     rc = dbgsysExec(buf);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/back/utf_util.c	Wed Jun 18 10:55:17 2014 -0700
@@ -0,0 +1,540 @@
+/*
+ * Copyright (c) 1998, 2014, 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 <stdlib.h>
+#include <ctype.h>
+
+#include "jni.h"
+
+#include "utf_util.h"
+
+
+/* Error and assert macros */
+#define UTF_ERROR(m) utfError(__FILE__, __LINE__,  m)
+#define UTF_ASSERT(x) ( (x)==0 ? UTF_ERROR("ASSERT ERROR " #x) : (void)0 )
+
+// Platform independed part
+
+static void utfError(char *file, int line, char *message) {
+    (void)fprintf(stderr, "UTF ERROR [\"%s\":%d]: %s\n", file, line, message);
+    abort();
+}
+
+/* Determine length of this Standard UTF-8 in Modified UTF-8.
+ *    Validation is done of the basic UTF encoding rules, returns
+ *    length (no change) when errors are detected in the UTF encoding.
+ *
+ *    Note: Accepts Modified UTF-8 also, no verification on the
+ *          correctness of Standard UTF-8 is done. e,g, 0xC080 input is ok.
+ */
+int JNICALL utf8sToUtf8mLength(jbyte *string, int length) {
+  int newLength;
+  int i;
+
+  newLength = 0;
+  for ( i = 0 ; i < length ; i++ ) {
+    unsigned byte;
+
+    byte = (unsigned char)string[i];
+    if ( (byte & 0x80) == 0 ) { /* 1byte encoding */
+      newLength++;
+      if ( byte == 0 ) {
+        newLength++; /* We gain one byte in length on NULL bytes */
+      }
+    } else if ( (byte & 0xE0) == 0xC0 ) { /* 2byte encoding */
+      /* Check encoding of following bytes */
+      if ( (i+1) >= length || (string[i+1] & 0xC0) != 0x80 ) {
+        break; /* Error condition */
+      }
+      i++; /* Skip next byte */
+      newLength += 2;
+    } else if ( (byte & 0xF0) == 0xE0 ) { /* 3byte encoding */
+      /* Check encoding of following bytes */
+      if ( (i+2) >= length || (string[i+1] & 0xC0) != 0x80
+        || (string[i+2] & 0xC0) != 0x80 ) {
+        break; /* Error condition */
+        }
+        i += 2; /* Skip next two bytes */
+        newLength += 3;
+    } else if ( (byte & 0xF8) == 0xF0 ) { /* 4byte encoding */
+      /* Check encoding of following bytes */
+      if ( (i+3) >= length || (string[i+1] & 0xC0) != 0x80
+        || (string[i+2] & 0xC0) != 0x80
+        || (string[i+3] & 0xC0) != 0x80 ) {
+        break; /* Error condition */
+        }
+        i += 3; /* Skip next 3 bytes */
+        newLength += 6; /* 4byte encoding turns into 2 3byte ones */
+    } else {
+      break; /* Error condition */
+    }
+  }
+  if ( i != length ) {
+    /* Error in finding new length, return old length so no conversion */
+    /* FIXUP: ERROR_MESSAGE? */
+    return length;
+  }
+  return newLength;
+}
+
+/* Convert Standard UTF-8 to Modified UTF-8.
+ *    Assumes the UTF-8 encoding was validated by utf8mLength() above.
+ *
+ *    Note: Accepts Modified UTF-8 also, no verification on the
+ *          correctness of Standard UTF-8 is done. e,g, 0xC080 input is ok.
+ */
+void JNICALL utf8sToUtf8m(jbyte *string, int length, jbyte *newString, int newLength) {
+    int i;
+    int j;
+
+    j = 0;
+    for ( i = 0 ; i < length ; i++ ) {
+        unsigned byte1;
+
+        byte1 = (unsigned char)string[i];
+
+        /* NULL bytes and bytes starting with 11110xxx are special */
+        if ( (byte1 & 0x80) == 0 ) { /* 1byte encoding */
+            if ( byte1 == 0 ) {
+                /* Bits out: 11000000 10000000 */
+                newString[j++] = (jbyte)0xC0;
+                newString[j++] = (jbyte)0x80;
+            } else {
+                /* Single byte */
+                newString[j++] = byte1;
+            }
+        } else if ( (byte1 & 0xE0) == 0xC0 ) { /* 2byte encoding */
+            newString[j++] = byte1;
+            newString[j++] = string[++i];
+        } else if ( (byte1 & 0xF0) == 0xE0 ) { /* 3byte encoding */
+            newString[j++] = byte1;
+            newString[j++] = string[++i];
+            newString[j++] = string[++i];
+        } else if ( (byte1 & 0xF8) == 0xF0 ) { /* 4byte encoding */
+            /* Beginning of 4byte encoding, turn into 2 3byte encodings */
+            unsigned byte2, byte3, byte4, u21;
+
+            /* Bits in: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */
+            byte2 = (unsigned char)string[++i];
+            byte3 = (unsigned char)string[++i];
+            byte4 = (unsigned char)string[++i];
+            /* Reconstruct full 21bit value */
+            u21  = (byte1 & 0x07) << 18;
+            u21 += (byte2 & 0x3F) << 12;
+            u21 += (byte3 & 0x3F) << 6;
+            u21 += (byte4 & 0x3F);
+            /* Bits out: 11101101 1010xxxx 10xxxxxx */
+            newString[j++] = (jbyte)0xED;
+            newString[j++] = (jbyte)(0xA0 + (((u21 >> 16) - 1) & 0x0F));
+            newString[j++] = (jbyte)(0x80 + ((u21 >> 10) & 0x3F));
+            /* Bits out: 11101101 1011xxxx 10xxxxxx */
+            newString[j++] = (jbyte)0xED;
+            newString[j++] = (jbyte)(0xB0 + ((u21 >>  6) & 0x0F));
+            newString[j++] = byte4;
+        }
+    }
+    UTF_ASSERT(i==length);
+    UTF_ASSERT(j==newLength);
+    newString[j] = (jbyte)0;
+}
+
+/* Given a Modified UTF-8 string, calculate the Standard UTF-8 length.
+ *   Basic validation of the UTF encoding rules is done, and length is
+ *   returned (no change) when errors are detected.
+ *
+ *   Note: No validation is made that this is indeed Modified UTF-8 coming in.
+ *
+ */
+int JNICALL utf8mToUtf8sLength(jbyte *string, int length) {
+    int newLength;
+    int i;
+
+    newLength = 0;
+    for ( i = 0 ; i < length ; i++ ) {
+        unsigned byte1, byte2, byte3, byte4, byte5, byte6;
+
+        byte1 = (unsigned char)string[i];
+        if ( (byte1 & 0x80) == 0 ) { /* 1byte encoding */
+            newLength++;
+        } else if ( (byte1 & 0xE0) == 0xC0 ) { /* 2byte encoding */
+            /* Check encoding of following bytes */
+            if ( (i+1) >= length || (string[i+1] & 0xC0) != 0x80 ) {
+                break; /* Error condition */
+            }
+            byte2 = (unsigned char)string[++i];
+            if ( byte1 != 0xC0 || byte2 != 0x80 ) {
+                newLength += 2; /* Normal 2byte encoding, not 0xC080 */
+            } else {
+                newLength++;    /* We will turn 0xC080 into 0 */
+            }
+        } else if ( (byte1 & 0xF0) == 0xE0 ) { /* 3byte encoding */
+            /* Check encoding of following bytes */
+            if ( (i+2) >= length || (string[i+1] & 0xC0) != 0x80
+                                 || (string[i+2] & 0xC0) != 0x80 ) {
+                break; /* Error condition */
+            }
+            byte2 = (unsigned char)string[++i];
+            byte3 = (unsigned char)string[++i];
+            newLength += 3;
+            /* Possible process a second 3byte encoding */
+            if ( (i+3) < length && byte1 == 0xED && (byte2 & 0xF0) == 0xA0 ) {
+                /* See if this is a pair of 3byte encodings */
+                byte4 = (unsigned char)string[i+1];
+                byte5 = (unsigned char)string[i+2];
+                byte6 = (unsigned char)string[i+3];
+                if ( byte4 == 0xED && (byte5 & 0xF0) == 0xB0 ) {
+                    /* Check encoding of 3rd byte */
+                    if ( (byte6 & 0xC0) != 0x80 ) {
+                        break; /* Error condition */
+                    }
+                    newLength++; /* New string will have 4byte encoding */
+                    i += 3;       /* Skip next 3 bytes */
+                }
+            }
+        } else {
+            break; /* Error condition */
+        }
+    }
+    if ( i != length ) {
+        /* Error in UTF encoding */
+        /*  FIXUP: ERROR_MESSAGE()? */
+        return length;
+    }
+    return newLength;
+}
+
+/* Convert a Modified UTF-8 string into a Standard UTF-8 string
+ *   It is assumed that this string has been validated in terms of the
+ *   basic UTF encoding rules by utf8Length() above.
+ *
+ *   Note: No validation is made that this is indeed Modified UTF-8 coming in.
+ *
+ */
+void JNICALL utf8mToUtf8s(jbyte *string, int length, jbyte *newString, int newLength) {
+    int i;
+    int j;
+
+    j = 0;
+    for ( i = 0 ; i < length ; i++ ) {
+        unsigned byte1, byte2, byte3, byte4, byte5, byte6;
+
+        byte1 = (unsigned char)string[i];
+        if ( (byte1 & 0x80) == 0 ) { /* 1byte encoding */
+            /* Single byte */
+            newString[j++] = byte1;
+        } else if ( (byte1 & 0xE0) == 0xC0 ) { /* 2byte encoding */
+            byte2 = (unsigned char)string[++i];
+            if ( byte1 != 0xC0 || byte2 != 0x80 ) {
+                newString[j++] = byte1;
+                newString[j++] = byte2;
+            } else {
+                newString[j++] = 0;
+            }
+        } else if ( (byte1 & 0xF0) == 0xE0 ) { /* 3byte encoding */
+            byte2 = (unsigned char)string[++i];
+            byte3 = (unsigned char)string[++i];
+            if ( i+3 < length && byte1 == 0xED && (byte2 & 0xF0) == 0xA0 ) {
+                /* See if this is a pair of 3byte encodings */
+                byte4 = (unsigned char)string[i+1];
+                byte5 = (unsigned char)string[i+2];
+                byte6 = (unsigned char)string[i+3];
+                if ( byte4 == 0xED && (byte5 & 0xF0) == 0xB0 ) {
+                    unsigned u21;
+
+                    /* Bits in: 11101101 1010xxxx 10xxxxxx */
+                    /* Bits in: 11101101 1011xxxx 10xxxxxx */
+                    i += 3;
+
+                    /* Reconstruct 21 bit code */
+                    u21  = ((byte2 & 0x0F) + 1) << 16;
+                    u21 += (byte3 & 0x3F) << 10;
+                    u21 += (byte5 & 0x0F) << 6;
+                    u21 += (byte6 & 0x3F);
+
+                    /* Bits out: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */
+
+                    /* Convert to 4byte encoding */
+                    newString[j++] = 0xF0 + ((u21 >> 18) & 0x07);
+                    newString[j++] = 0x80 + ((u21 >> 12) & 0x3F);
+                    newString[j++] = 0x80 + ((u21 >>  6) & 0x3F);
+                    newString[j++] = 0x80 + (u21 & 0x3F);
+                    continue;
+                }
+            }
+            /* Normal 3byte encoding */
+            newString[j++] = byte1;
+            newString[j++] = byte2;
+            newString[j++] = byte3;
+        }
+    }
+    UTF_ASSERT(i==length);
+    UTF_ASSERT(j==newLength);
+    newString[j] = 0;
+}
+
+#ifdef _WIN32
+// Microsoft Windows specific part
+
+#include <windows.h>
+
+static UINT getCodepage() {
+    LANGID langID;
+    LCID localeID;
+    TCHAR strCodePage[7];       // ANSI code page id
+
+    static UINT intCodePage = -1;
+
+    if (intCodePage == -1) {
+        // Firts call, get codepage from the os
+        langID = LANGIDFROMLCID(GetUserDefaultLCID());
+        localeID = MAKELCID(langID, SORT_DEFAULT);
+        if (GetLocaleInfo(localeID, LOCALE_IDEFAULTANSICODEPAGE,
+                         strCodePage, sizeof(strCodePage)/sizeof(TCHAR)) > 0 ) {
+            intCodePage = atoi(strCodePage);
+        }
+        else {
+            intCodePage = GetACP();
+        }
+    }
+
+    return intCodePage;
+}
+
+/*
+ * Get wide string  (assumes len>0)
+ */
+static WCHAR* getWideString(UINT codePage, char* str, int len, int *pwlen) {
+    int wlen;
+    WCHAR* wstr;
+
+    /* Convert the string to WIDE string */
+    wlen = MultiByteToWideChar(codePage, 0, str, len, NULL, 0);
+    *pwlen = wlen;
+    if (wlen <= 0) {
+        UTF_ERROR(("Can't get WIDE string length"));
+        return NULL;
+    }
+    wstr = (WCHAR*)malloc(wlen * sizeof(WCHAR));
+    if (wstr == NULL) {
+        UTF_ERROR(("Can't malloc() any space"));
+        return NULL;
+    }
+    if (MultiByteToWideChar(codePage, 0, str, len, wstr, wlen) == 0) {
+        UTF_ERROR(("Can't get WIDE string"));
+        return NULL;
+    }
+    return wstr;
+}
+
+/*
+ * Convert UTF-8 to a platform string
+ */
+int JNICALL utf8ToPlatform(jbyte *utf8, int len, char* output, int outputMaxLen) {
+    int wlen;
+    int plen;
+    WCHAR* wstr;
+    UINT codepage;
+
+    UTF_ASSERT(utf8);
+    UTF_ASSERT(output);
+    UTF_ASSERT(outputMaxLen > len);
+
+    /* Zero length is ok, but we don't need to do much */
+    if ( len == 0 ) {
+        output[0] = 0;
+        return 0;
+    }
+
+    /* Get WIDE string version (assumes len>0) */
+    wstr = getWideString(CP_UTF8, (char*)utf8, len, &wlen);
+    if ( wstr == NULL ) {
+        // Can't allocate WIDE string
+        goto just_copy_bytes;
+    }
+
+    /* Convert WIDE string to MultiByte string */
+    codepage = getCodepage();
+    plen = WideCharToMultiByte(codepage, 0, wstr, wlen,
+                               output, outputMaxLen, NULL, NULL);
+    free(wstr);
+    if (plen <= 0) {
+        // Can't convert WIDE string to multi-byte
+        goto just_copy_bytes;
+    }
+    output[plen] = '\0';
+    return plen;
+
+just_copy_bytes:
+    (void)memcpy(output, utf8, len);
+    output[len] = 0;
+    return len;
+}
+
+/*
+ * Convert Platform Encoding to UTF-8.
+ */
+int JNICALL utf8FromPlatform(char *str, int len, jbyte *output, int outputMaxLen) {
+    int wlen;
+    int plen;
+    WCHAR* wstr;
+    UINT codepage;
+
+    UTF_ASSERT(str);
+    UTF_ASSERT(output);
+    UTF_ASSERT(outputMaxLen > len);
+
+    /* Zero length is ok, but we don't need to do much */
+    if ( len == 0 ) {
+        output[0] = 0;
+        return 0;
+    }
+
+    /* Get WIDE string version (assumes len>0) */
+    codepage = getCodepage();
+    wstr = getWideString(codepage, str, len, &wlen);
+    if ( wstr == NULL ) {
+        goto just_copy_bytes;
+    }
+
+    /* Convert WIDE string to UTF-8 string */
+    plen = WideCharToMultiByte(CP_UTF8, 0, wstr, wlen,
+                               (char*)output, outputMaxLen, NULL, NULL);
+    free(wstr);
+    if (plen <= 0) {
+        UTF_ERROR(("Can't convert WIDE string to multi-byte"));
+        goto just_copy_bytes;
+    }
+    output[plen] = '\0';
+    return plen;
+
+just_copy_bytes:
+    (void)memcpy(output, str, len);
+    output[len] = 0;
+    return len;
+}
+
+
+#else
+// *NIX specific part
+
+#include <iconv.h>
+#include <locale.h>
+#include <langinfo.h>
+#include <string.h>
+
+typedef enum {TO_UTF8, FROM_UTF8} conv_direction;
+
+/*
+ * Do iconv() conversion.
+ *    Returns length or -1 if output overflows.
+ */
+static int iconvConvert(conv_direction drn, char *bytes, size_t len, char *output, size_t outputMaxLen) {
+
+    static char *codeset = 0;
+    iconv_t func;
+    size_t bytes_converted;
+    size_t inLeft, outLeft;
+    char *inbuf, *outbuf;
+
+    UTF_ASSERT(bytes);
+    UTF_ASSERT(output);
+    UTF_ASSERT(outputMaxLen > len);
+
+    /* Zero length is ok, but we don't need to do much */
+    if ( len == 0 ) {
+        output[0] = 0;
+        return 0;
+    }
+
+    if (codeset == NULL && codeset != (char *) -1) {
+        // locale is not initialized, do it now
+        if (setlocale(LC_ALL, "") != NULL) {
+            // nl_langinfo returns ANSI_X3.4-1968 by default
+            codeset = (char*)nl_langinfo(CODESET);
+        }
+
+        if (codeset == NULL) {
+           // Not able to intialize process locale from platform one.
+           codeset = (char *) -1;
+        }
+    }
+
+    if (codeset == (char *) -1) {
+      // There was an error during initialization, so just bail out
+      goto just_copy_bytes;
+    }
+
+    func = (drn == TO_UTF8) ? iconv_open(codeset, "UTF-8") : iconv_open("UTF-8", codeset);
+    if (func == (iconv_t) -1) {
+        // Requested charset combination is not supported, conversion couldn't be done.
+        // make sure we will not try it again
+        codeset = (char *) -1;
+        goto just_copy_bytes;
+    }
+
+    // perform conversion
+    inbuf = bytes;
+    outbuf = output;
+    inLeft = len;
+    outLeft = outputMaxLen;
+
+    bytes_converted = iconv(func, (void*)&inbuf, &inLeft, &outbuf, &outLeft);
+    if (bytes_converted == (size_t) -1 || bytes_converted == 0 || inLeft != 0) {
+        // Input string is invalid, not able to convert entire string
+        // or some other iconv error happens.
+        iconv_close(func);
+        goto just_copy_bytes;
+    }
+
+    iconv_close(func);
+    // Overwrite bytes_converted with value of actually stored bytes
+    bytes_converted = outputMaxLen-outLeft;
+    output[bytes_converted] = 0;
+    return bytes_converted;
+
+
+just_copy_bytes:
+    (void)memcpy(output, bytes, len);
+    output[len] = 0;
+    return len;
+ }
+
+/*
+ * Convert UTF-8 to Platform Encoding.
+ *    Returns length or -1 if output overflows.
+ */
+int JNICALL utf8ToPlatform(jbyte *utf8, int len, char *output, int outputMaxLen) {
+    return iconvConvert(FROM_UTF8, (char*)utf8, len, output, outputMaxLen);
+}
+
+/*
+ * Convert Platform Encoding to UTF-8.
+ *    Returns length or -1 if output overflows.
+ */
+int JNICALL utf8FromPlatform(char *str, int len, jbyte *output, int outputMaxLen) {
+    return iconvConvert(TO_UTF8, str, len, (char*) output, outputMaxLen);
+}
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/back/utf_util.h	Wed Jun 18 10:55:17 2014 -0700
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 1998, 2014, 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.
+ */
+
+#ifndef _utf_util_h_
+#define _utf_util_h_
+
+#include "jni.h"
+
+
+int JNICALL utf8sToUtf8mLength(jbyte *string, int length);
+void JNICALL utf8sToUtf8m(jbyte *string, int length, jbyte *newString, int newLength);
+int JNICALL utf8mToUtf8sLength(jbyte *string, int length);
+void JNICALL utf8mToUtf8s(jbyte *string, int length, jbyte *newString, int newLength);
+
+int JNICALL utf8ToPlatform(jbyte *utf8, int len, char* output, int outputMaxLen);
+int JNICALL utf8FromPlatform(char *str, int len, jbyte *output, int outputMaxLen);
+
+#endif
--- a/jdk/src/share/back/util.h	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/back/util.h	Wed Jun 18 10:55:17 2014 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, 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
@@ -53,9 +53,6 @@
 #include "error_messages.h"
 #include "debugInit.h"
 
-/* Get access to Native Platform Toolkit functions */
-#include "npt.h"
-
 /* Definition of a CommonRef tracked by the backend for the frontend */
 typedef struct RefNode {
     jlong        seqNum;        /* ID of reference, also key for hash table */
@@ -123,9 +120,6 @@
 
     unsigned log_flags;
 
-    /* The Native Platform Toolkit access */
-    NptEnv *npt;
-
     /* Common References static data */
     jrawMonitorID refLock;
     jlong         nextSeqNum;
--- a/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageReader.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageReader.java	Wed Jun 18 10:55:17 2014 -0700
@@ -509,7 +509,7 @@
             byte[] signature = new byte[6];
             stream.readFully(signature);
 
-            StringBuffer version = new StringBuffer(3);
+            StringBuilder version = new StringBuilder(3);
             version.append((char)signature[3]);
             version.append((char)signature[4]);
             version.append((char)signature[5]);
--- a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java	Wed Jun 18 10:55:17 2014 -0700
@@ -900,7 +900,7 @@
         if (times == 1) {
             return s;
         }
-        StringBuffer sb = new StringBuffer((s.length() + 1)*times - 1);
+        StringBuilder sb = new StringBuilder((s.length() + 1)*times - 1);
         sb.append(s);
         for (int i = 1; i < times; i++) {
             sb.append(" ");
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java	Wed Jun 18 10:55:17 2014 -0700
@@ -169,23 +169,23 @@
             result.add(typedInName);
         }
 
-        StringBuffer buf = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         len = result.size();
 
         // construct the resulting string
         for (int i=0; i<len; i++) {
             if (i > 0) {
-                buf.append(" ");
+                sb.append(" ");
             }
             if (len > 1) {
-                buf.append("\"");
+                sb.append("\"");
             }
-            buf.append(result.get(i));
+            sb.append(result.get(i));
             if (len > 1) {
-                buf.append("\"");
+                sb.append("\"");
             }
         }
-        return buf.toString();
+        return sb.toString();
     }
 
     public void setFileName(String fileName) {
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java	Wed Jun 18 10:55:17 2014 -0700
@@ -533,13 +533,13 @@
                     // Pending: verify character encoding spec for gconf
                     Reader reader = new InputStreamReader(url.openStream(), "ISO-8859-1");
                     char[] buf = new char[1024];
-                    StringBuffer strBuf = new StringBuffer();
+                    StringBuilder sb = new StringBuilder();
                     int n;
                     while ((n = reader.read(buf)) >= 0) {
-                        strBuf.append(buf, 0, n);
+                        sb.append(buf, 0, n);
                     }
                     reader.close();
-                    String str = strBuf.toString();
+                    String str = sb.toString();
                     if (str != null) {
                         String strLowerCase = str.toLowerCase();
                         int i = strLowerCase.indexOf("<entry name=\"theme\"");
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifFileChooserUI.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifFileChooserUI.java	Wed Jun 18 10:55:17 2014 -0700
@@ -121,20 +121,20 @@
     }
 
     private String fileNameString(File[] files) {
-        StringBuffer buf = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (int i = 0; files != null && i < files.length; i++) {
             if (i > 0) {
-                buf.append(" ");
+                sb.append(" ");
             }
             if (files.length > 1) {
-                buf.append("\"");
+                sb.append("\"");
             }
-            buf.append(fileNameString(files[i]));
+            sb.append(fileNameString(files[i]));
             if (files.length > 1) {
-                buf.append("\"");
+                sb.append("\"");
             }
         }
-        return buf.toString();
+        return sb.toString();
     }
 
     public MotifFileChooserUI(JFileChooser filechooser) {
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java	Wed Jun 18 10:55:17 2014 -0700
@@ -690,7 +690,7 @@
     }
 
     private String fileNameString(File[] files) {
-        StringBuffer buf = new StringBuffer();
+        StringBuilder buf = new StringBuilder();
         for (int i = 0; files != null && i < files.length; i++) {
             if (i > 0) {
                 buf.append(" ");
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/BandStructure.java	Wed Jun 18 10:55:17 2014 -0700
@@ -628,7 +628,7 @@
             }
             if (metaCoding.length > 0
                 && (verbose > 2 || verbose > 1 && metaCoding.length > 1)) {
-                StringBuffer sb = new StringBuffer();
+                StringBuilder sb = new StringBuilder();
                 for (int i = 0; i < metaCoding.length; i++) {
                     if (i == 1)  sb.append(" /");
                     sb.append(" ").append(metaCoding[i] & 0xFF);
@@ -756,7 +756,7 @@
                          " size="+outputSize()+
                          irr+" coding="+bandCoding);
                 if (metaCoding != noMetaCoding) {
-                    StringBuffer sb = new StringBuffer();
+                    StringBuilder sb = new StringBuilder();
                     for (int i = 0; i < metaCoding.length; i++) {
                         if (i == 1)  sb.append(" /");
                         sb.append(" ").append(metaCoding[i] & 0xFF);
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1026,7 +1026,7 @@
         }
         static
         String stringValueOf(MethodHandleEntry bsmRef, Entry[] argRefs) {
-            StringBuffer sb = new StringBuffer(bsmRef.stringValue());
+            StringBuilder sb = new StringBuilder(bsmRef.stringValue());
             // Arguments are formatted as "<foo;bar;baz>" instead of "[foo,bar,baz]".
             // This ensures there will be no confusion if "[,]" appear inside of names.
             char nextSep = '<';
--- a/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -63,12 +63,12 @@
         if (SNMP_LOGGER.isLoggable(Level.FINEST)) {
             SNMP_LOGGER.logp(Level.FINEST, NetMaskImpl.class.getName(),
                 "extractSubNet", "BINARY ARRAY :");
-            StringBuffer buff = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
             for(int i =0; i < addrLength; i++) {
-                buff.append((b[i] &0xFF) +":");
+                sb.append((b[i] & 0xFF) + ":");
             }
             SNMP_LOGGER.logp(Level.FINEST, NetMaskImpl.class.getName(),
-                "extractSubNet", buff.toString());
+                "extractSubNet", sb.toString());
         }
 
         // 8 is a byte size. Common to any InetAddress (V4 or V6).
--- a/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java	Wed Jun 18 10:55:17 2014 -0700
@@ -170,7 +170,7 @@
    * string literal.
    */
   protected String add_escapes(String str) {
-      StringBuffer retval = new StringBuffer();
+      StringBuilder retval = new StringBuilder();
       char ch;
       for (int i = 0; i < str.length(); i++) {
         switch (str.charAt(i))
--- a/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/SnmpAcl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/SnmpAcl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -186,8 +186,8 @@
     public static String getDefaultAclFileName() {
         final String fileSeparator =
             System.getProperty("file.separator");
-        final StringBuffer defaultAclName =
-            new StringBuffer(System.getProperty("java.home")).
+        final StringBuilder defaultAclName =
+            new StringBuilder(System.getProperty("java.home")).
             append(fileSeparator).append("lib").append(fileSeparator).
             append("snmp.acl");
         return defaultAclName.toString();
--- a/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java	Wed Jun 18 10:55:17 2014 -0700
@@ -65,7 +65,7 @@
     * equivalents in the given string
     */
    protected static final String addEscapes(String str) {
-      StringBuffer retval = new StringBuffer();
+      StringBuilder retval = new StringBuilder();
       char ch;
       for (int i = 0; i < str.length(); i++) {
         switch (str.charAt(i))
--- a/jdk/src/share/classes/com/sun/jmx/snmp/SnmpMessage.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/SnmpMessage.java	Wed Jun 18 10:55:17 2014 -0700
@@ -347,7 +347,7 @@
      * @return The string containing the dump.
      */
     public String printMessage() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         if (community == null) {
             sb.append("Community: null") ;
         }
--- a/jdk/src/share/classes/com/sun/jmx/snmp/SnmpMsg.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/SnmpMsg.java	Wed Jun 18 10:55:17 2014 -0700
@@ -181,22 +181,22 @@
      * @return The string containing the dump.
      */
     public static String dumpHexBuffer(byte [] b, int offset, int len) {
-        StringBuffer buf = new StringBuffer(len << 1) ;
+        StringBuilder sb = new StringBuilder(len << 1) ;
         int k = 1 ;
         int flen = offset + len ;
 
         for (int i = offset; i < flen ; i++) {
             int j = b[i] & 0xFF ;
-            buf.append(Character.forDigit((j >>> 4) , 16)) ;
-            buf.append(Character.forDigit((j & 0x0F), 16)) ;
+            sb.append(Character.forDigit((j >>> 4), 16)) ;
+            sb.append(Character.forDigit((j & 0x0F), 16)) ;
             k++ ;
             if (k%16 == 0) {
-                buf.append('\n') ;
+                sb.append('\n') ;
                 k = 1 ;
             } else
-                buf.append(' ') ;
+                sb.append(' ') ;
         }
-        return buf.toString() ;
+        return sb.toString() ;
     }
 
     /**
@@ -205,7 +205,7 @@
      * @return The string containing the dump.
      */
     public String printMessage() {
-        StringBuffer sb = new StringBuffer() ;
+        StringBuilder sb = new StringBuilder() ;
         sb.append("Version: ") ;
         sb.append(version) ;
         sb.append("\n") ;
--- a/jdk/src/share/classes/com/sun/jmx/snmp/SnmpOpaque.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/SnmpOpaque.java	Wed Jun 18 10:55:17 2014 -0700
@@ -73,7 +73,7 @@
      * @return The <CODE>String</CODE> representation of the value.
      */
     public String toString() {
-        StringBuffer result = new StringBuffer() ;
+        StringBuilder result = new StringBuilder() ;
         for (int i = 0 ; i < value.length ; i++) {
             byte b = value[i] ;
             int n = (b >= 0) ? b : b + 256 ;
--- a/jdk/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java	Wed Jun 18 10:55:17 2014 -0700
@@ -478,7 +478,7 @@
      * @return The string containing the dump.
      */
     public String printMessage() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("msgId : " + msgId + "\n");
         sb.append("msgMaxSize : " + msgMaxSize + "\n");
         sb.append("msgFlags : " + msgFlags + "\n");
--- a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java	Wed Jun 18 10:55:17 2014 -0700
@@ -96,7 +96,7 @@
      * Used by CNCtx.getNameInNamespace(), CNCompoundName.toString().
      */
     static String cosNameToInsString(NameComponent[] cname) {
-      StringBuffer str = new StringBuffer();
+      StringBuilder str = new StringBuilder();
       for ( int i = 0; i < cname.length; i++) {
           if ( i > 0) {
               str.append(compSeparator);
@@ -254,7 +254,7 @@
     }
 
     private static String stringifyComponent(NameComponent comp) {
-        StringBuffer one = new StringBuffer(escape(comp.id));
+        StringBuilder one = new StringBuilder(escape(comp.id));
         if (comp.kind != null && !comp.kind.equals("")) {
             one.append(kindSeparator + escape(comp.kind));
         }
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsContextFactory.java	Wed Jun 18 10:55:17 2014 -0700
@@ -198,14 +198,14 @@
             }
         }
 
-        StringBuffer buf = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (int i = 0; i < servers.length; i++) {
             if (i > 0) {
-                buf.append(' ');
+                sb.append(' ');
             }
-            buf.append("dns://").append(servers[i]).append(path);
+            sb.append("dns://").append(servers[i]).append(path);
         }
-        return buf.toString();
+        return sb.toString();
     }
 
     /*
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsName.java	Wed Jun 18 10:55:17 2014 -0700
@@ -415,7 +415,7 @@
      */
     private void parse(String name) throws InvalidNameException {
 
-        StringBuffer label = new StringBuffer();        // label being parsed
+        StringBuilder label = new StringBuilder();      // label being parsed
 
         for (int i = 0; i < name.length(); i++) {
             char c = name.charAt(i);
@@ -564,15 +564,15 @@
      * into account.  See compareLabels().
      */
     private static String keyForLabel(String label) {
-        StringBuffer buf = new StringBuffer(label.length());
+        StringBuilder sb = new StringBuilder(label.length());
         for (int i = 0; i < label.length(); i++) {
             char c = label.charAt(i);
             if (c >= 'A' && c <= 'Z') {
                 c += 'a' - 'A';                         // to lower case
             }
-            buf.append(c);
+            sb.append(c);
         }
-        return buf.toString();
+        return sb.toString();
     }
 
 
--- a/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecord.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecord.java	Wed Jun 18 10:55:17 2014 -0700
@@ -596,21 +596,21 @@
         // If bestBase != -1, compress zeros in [bestBase, bestBase+bestLen)
         boolean compress = (bestBase != -1);
 
-        StringBuffer buf = new StringBuffer(40);
+        StringBuilder sb = new StringBuilder(40);
         if (bestBase == 0) {
-            buf.append(':');
+            sb.append(':');
         }
         for (int i = 0; i < 8; i++) {
             if (!compress || (i < bestBase) || (i >= bestBase + bestLen)) {
-                buf.append(Integer.toHexString(addr6[i]));
+                sb.append(Integer.toHexString(addr6[i]));
                 if (i < 7) {
-                    buf.append(':');
+                    sb.append(':');
                 }
             } else if (compress && (i == bestBase)) {  // first compressed zero
-                buf.append(':');
+                sb.append(':');
             }
         }
 
-        return buf.toString();
+        return sb.toString();
     }
 }
--- a/jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java	Wed Jun 18 10:55:17 2014 -0700
@@ -210,7 +210,7 @@
         if (ctls == null) {
             return "";
         }
-        StringBuffer str = new StringBuffer();
+        StringBuilder str = new StringBuilder();
         for (int i = 0; i < ctls.length; i++) {
             str.append(ctls[i].getID());
             str.append(' ');
--- a/jdk/src/share/classes/com/sun/jndi/ldap/DigestClientId.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/DigestClientId.java	Wed Jun 18 10:55:17 2014 -0700
@@ -103,14 +103,14 @@
 
     public String toString() {
         if (propvals != null) {
-            StringBuffer buf = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
             for (int i = 0; i < propvals.length; i++) {
-                buf.append(':');
+                sb.append(':');
                 if (propvals[i] != null) {
-                    buf.append(propvals[i]);
+                    sb.append(propvals[i]);
                 }
             }
-            return super.toString() + buf.toString();
+            return super.toString() + sb.toString();
         } else {
             return super.toString();
         }
--- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java	Wed Jun 18 10:55:17 2014 -0700
@@ -767,7 +767,7 @@
     final private String classDef2ObjectDesc(Attributes attrs)
         throws NamingException {
 
-        StringBuffer objectDesc = new StringBuffer("( ");
+        StringBuilder objectDesc = new StringBuilder("( ");
 
         Attribute attr = null;
         int count = 0;
@@ -879,7 +879,7 @@
     final private String attrDef2AttrDesc(Attributes attrs)
         throws NamingException {
 
-        StringBuffer attrDesc = new StringBuffer("( "); // opening parens
+        StringBuilder attrDesc = new StringBuilder("( "); // opening parens
 
         Attribute attr = null;
         int count = 0;
@@ -1012,7 +1012,7 @@
     final private String syntaxDef2SyntaxDesc(Attributes attrs)
         throws NamingException {
 
-        StringBuffer syntaxDesc = new StringBuffer("( "); // opening parens
+        StringBuilder syntaxDesc = new StringBuilder("( "); // opening parens
 
         Attribute attr = null;
         int count = 0;
@@ -1068,7 +1068,7 @@
     final private String matchRuleDef2MatchRuleDesc(Attributes attrs)
         throws NamingException {
 
-        StringBuffer matchRuleDesc = new StringBuffer("( "); // opening parens
+        StringBuilder matchRuleDesc = new StringBuilder("( "); // opening parens
 
         Attribute attr = null;
         int count = 0;
@@ -1196,7 +1196,7 @@
 
         // write QDList
 
-        StringBuffer qdList = new StringBuffer(attr.getID());
+        StringBuilder qdList = new StringBuilder(attr.getID());
         qdList.append(WHSP);
         qdList.append(OID_LIST_BEGIN);
 
@@ -1233,7 +1233,7 @@
 
         // write OID List
 
-        StringBuffer oidList = new StringBuffer(oidsAttr.getID());
+        StringBuilder oidList = new StringBuilder(oidsAttr.getID());
         oidList.append(WHSP);
         oidList.append(OID_LIST_BEGIN);
 
--- a/jdk/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java	Wed Jun 18 10:55:17 2014 -0700
@@ -68,7 +68,7 @@
         if (dn == null) {
             return null;
         }
-        StringBuffer domain = new StringBuffer();
+        StringBuilder domain = new StringBuilder();
         LdapName ldapName = new LdapName(dn);
 
         // process RDNs left-to-right
--- a/jdk/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java	Wed Jun 18 10:55:17 2014 -0700
@@ -88,7 +88,7 @@
                             }
                         }
                         if (selected == -1) {
-                            StringBuffer allChoices = new StringBuffer();
+                            StringBuilder allChoices = new StringBuilder();
                             for (int j = 0; j <  choices.length; j++) {
                                 allChoices.append(choices[j] + ",");
                             }
--- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java	Wed Jun 18 10:55:17 2014 -0700
@@ -520,30 +520,30 @@
             str = (String)obj;
         }
         int len = str.length();
-        StringBuffer buf = new StringBuffer(len);
+        StringBuilder sb = new StringBuilder(len);
         char ch;
         for (int i = 0; i < len; i++) {
             switch (ch=str.charAt(i)) {
             case '*':
-                buf.append("\\2a");
+                sb.append("\\2a");
                 break;
             case '(':
-                buf.append("\\28");
+                sb.append("\\28");
                 break;
             case ')':
-                buf.append("\\29");
+                sb.append("\\29");
                 break;
             case '\\':
-                buf.append("\\5c");
+                sb.append("\\5c");
                 break;
             case 0:
-                buf.append("\\00");
+                sb.append("\\00");
                 break;
             default:
-                buf.append(ch);
+                sb.append(ch);
             }
         }
-        return buf.toString();
+        return sb.toString();
     }
 
 
@@ -585,7 +585,7 @@
 
          int param;
          int where = 0, start = 0;
-         StringBuffer answer = new StringBuffer(expr.length());
+         StringBuilder answer = new StringBuilder(expr.length());
 
          while ((where = findUnescaped('{', expr, start)) >= 0) {
              int pstart = where + 1; // skip '{'
--- a/jdk/src/share/classes/com/sun/media/sound/SoftPerformer.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/media/sound/SoftPerformer.java	Wed Jun 18 10:55:17 2014 -0700
@@ -326,7 +326,7 @@
     private static KeySortComparator keySortComparator = new KeySortComparator();
 
     private String extractKeys(ModelConnectionBlock conn) {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         if (conn.getSources() != null) {
             sb.append("[");
             ModelSource[] srcs = conn.getSources();
--- a/jdk/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java	Wed Jun 18 10:55:17 2014 -0700
@@ -162,7 +162,7 @@
             0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
 
     private String decodeChannelMask(long channelmask) {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         long m = 1;
         for (int i = 0; i < allchannelnames.length; i++) {
             if ((channelmask & m) != 0L) {
--- a/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/Base64.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/Base64.java	Wed Jun 18 10:55:17 2014 -0700
@@ -257,7 +257,7 @@
     public static final byte[] decode(Element element) throws Base64DecodingException {
 
         Node sibling = element.getFirstChild();
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
         while (sibling != null) {
             if (sibling.getNodeType() == Node.TEXT_NODE) {
--- a/jdk/src/share/classes/com/sun/security/sasl/CramMD5Base.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/security/sasl/CramMD5Base.java	Wed Jun 18 10:55:17 2014 -0700
@@ -195,7 +195,7 @@
         digest = md5.digest();
 
         // Get character representation of digest
-        StringBuffer digestString = new StringBuffer();
+        StringBuilder digestString = new StringBuilder();
 
         for (i = 0; i < digest.length; i++) {
             if ((digest[i] & 0x000000ff) < 0x10) {
--- a/jdk/src/share/classes/com/sun/security/sasl/CramMD5Server.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/security/sasl/CramMD5Server.java	Wed Jun 18 10:55:17 2014 -0700
@@ -117,15 +117,15 @@
                 long rand = random.nextLong();
                 long timestamp = System.currentTimeMillis();
 
-                StringBuffer buf = new StringBuffer();
-                buf.append('<');
-                buf.append(rand);
-                buf.append('.');
-                buf.append(timestamp);
-                buf.append('@');
-                buf.append(fqdn);
-                buf.append('>');
-                String challengeStr = buf.toString();
+                StringBuilder sb = new StringBuilder();
+                sb.append('<');
+                sb.append(rand);
+                sb.append('.');
+                sb.append(timestamp);
+                sb.append('@');
+                sb.append(fqdn);
+                sb.append('>');
+                String challengeStr = sb.toString();
 
                 logger.log(Level.FINE,
                     "CRAMSRV01:Generated challenge: {0}", challengeStr);
--- a/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java	Wed Jun 18 10:55:17 2014 -0700
@@ -387,7 +387,7 @@
     protected byte[] binaryToHex(byte[] digest) throws
     UnsupportedEncodingException {
 
-        StringBuffer digestString = new StringBuffer();
+        StringBuilder digestString = new StringBuilder();
 
         for (int i = 0; i < digest.length; i ++) {
             if ((digest[i] & 0x000000ff) < 0x10) {
@@ -598,7 +598,7 @@
     protected static String nonceCountToHex(int count) {
 
         String str = Integer.toHexString(count);
-        StringBuffer pad = new StringBuffer();
+        StringBuilder pad = new StringBuilder();
 
         if (str.length() < 8) {
             for (int i = 0; i < 8-str.length(); i ++) {
--- a/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java	Wed Jun 18 10:55:17 2014 -0700
@@ -203,19 +203,19 @@
             String supportedCiphers = null;
             if ((allQop&PRIVACY_PROTECTION) != 0) {
                 myCiphers = getPlatformCiphers();
-                StringBuffer buf = new StringBuffer();
+                StringBuilder sb = new StringBuilder();
 
                 // myCipher[i] is a byte that indicates whether CIPHER_TOKENS[i]
                 // is supported
                 for (int i = 0; i < CIPHER_TOKENS.length; i++) {
                     if (myCiphers[i] != 0) {
-                        if (buf.length() > 0) {
-                            buf.append(',');
+                        if (sb.length() > 0) {
+                            sb.append(',');
                         }
-                        buf.append(CIPHER_TOKENS[i]);
+                        sb.append(CIPHER_TOKENS[i]);
                     }
                 }
-                supportedCiphers = buf.toString();
+                supportedCiphers = sb.toString();
             }
 
             try {
--- a/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -80,13 +80,13 @@
                     "SASLIMPL02:Preferred qop mask: {0}", new Byte(allQop));
 
                 if (qop.length > 0) {
-                    StringBuffer qopbuf = new StringBuffer();
+                    StringBuilder str = new StringBuilder();
                     for (int i = 0; i < qop.length; i++) {
-                        qopbuf.append(Byte.toString(qop[i]));
-                        qopbuf.append(' ');
+                        str.append(Byte.toString(qop[i]));
+                        str.append(' ');
                     }
                     logger.logp(Level.FINE, myClassName, "constructor",
-                        "SASLIMPL03:Preferred qops : {0}", qopbuf.toString());
+                            "SASLIMPL03:Preferred qops : {0}", str.toString());
                 }
             }
 
@@ -95,13 +95,13 @@
             logger.logp(Level.FINE, myClassName, "constructor",
                 "SASLIMPL04:Preferred strength property: {0}", prop);
             if (logger.isLoggable(Level.FINE) && strength.length > 0) {
-                StringBuffer strbuf = new StringBuffer();
+                StringBuilder str = new StringBuilder();
                 for (int i = 0; i < strength.length; i++) {
-                    strbuf.append(Byte.toString(strength[i]));
-                    strbuf.append(' ');
+                    str.append(Byte.toString(strength[i]));
+                    str.append(' ');
                 }
                 logger.logp(Level.FINE, myClassName, "constructor",
-                    "SASLIMPL05:Cipher strengths: {0}", strbuf.toString());
+                        "SASLIMPL05:Cipher strengths: {0}", str.toString());
             }
 
             // Max receive buffer size
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExceptionSpec.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExceptionSpec.java	Wed Jun 18 10:55:17 2014 -0700
@@ -102,8 +102,8 @@
 
     @Override
     public String toString() {
-        StringBuffer buffer = new StringBuffer("exception catch ");
-        buffer.append(refSpec.toString());
-        return buffer.toString();
+        StringBuilder sb = new StringBuilder("exception catch ");
+        sb.append(refSpec.toString());
+        return sb.toString();
     }
 }
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineBreakpointSpec.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineBreakpointSpec.java	Wed Jun 18 10:55:17 2014 -0700
@@ -118,13 +118,13 @@
 
     @Override
     public String toString() {
-        StringBuffer buffer = new StringBuffer("breakpoint ");
-        buffer.append(refSpec.toString());
-        buffer.append(':');
-        buffer.append(lineNumber);
-        buffer.append(" (");
-        buffer.append(getStatusString());
-        buffer.append(')');
-        return buffer.toString();
+        StringBuilder sb = new StringBuilder("breakpoint ");
+        sb.append(refSpec.toString());
+        sb.append(':');
+        sb.append(lineNumber);
+        sb.append(" (");
+        sb.append(getStatusString());
+        sb.append(')');
+        return sb.toString();
     }
 }
--- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java	Wed Jun 18 10:55:17 2014 -0700
@@ -126,26 +126,26 @@
 
     @Override
     public String toString() {
-        StringBuffer buffer = new StringBuffer("breakpoint ");
-        buffer.append(refSpec.toString());
-        buffer.append('.');
-        buffer.append(methodId);
+        StringBuilder sb = new StringBuilder("breakpoint ");
+        sb.append(refSpec.toString());
+        sb.append('.');
+        sb.append(methodId);
         if (methodArgs != null) {
             boolean first = true;
-            buffer.append('(');
+            sb.append('(');
             for (String name : methodArgs) {
                 if (!first) {
-                    buffer.append(',');
+                    sb.append(',');
                 }
-                buffer.append(name);
+                sb.append(name);
                 first = false;
             }
-            buffer.append(")");
+            sb.append(")");
         }
-        buffer.append(" (");
-        buffer.append(getStatusString());
-        buffer.append(')');
-        return buffer.toString();
+        sb.append(" (");
+        sb.append(getStatusString());
+        sb.append(')');
+        return sb.toString();
     }
 
     private boolean isValidMethodName(String s) {
@@ -225,8 +225,8 @@
          * stripping whitespace after the name ends.
          */
         int i = 0;
-        StringBuffer typePart = new StringBuffer();
-        StringBuffer arrayPart = new StringBuffer();
+        StringBuilder typePart = new StringBuilder();
+        StringBuilder arrayPart = new StringBuilder();
         name = name.trim();
         int nameLength = name.length();
         /*
--- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java	Wed Jun 18 10:55:17 2014 -0700
@@ -185,7 +185,7 @@
   }
 
   final public String Name() throws ParseException {
- StringBuffer sb = new StringBuffer();
+    StringBuilder sb = new StringBuilder();
     jj_consume_token(IDENTIFIER);
                  sb.append(token);
     label_2:
--- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java	Wed Jun 18 10:55:17 2014 -0700
@@ -114,7 +114,7 @@
                            int[][] expectedTokenSequences,
                            String[] tokenImage) {
     String eol = System.getProperty("line.separator", "\n");
-    StringBuffer expected = new StringBuffer();
+    StringBuilder expected = new StringBuilder();
     int maxSize = 0;
     for (int i = 0; i < expectedTokenSequences.length; i++) {
       if (maxSize < expectedTokenSequences[i].length) {
@@ -164,7 +164,7 @@
    * string literal.
    */
   static String add_escapes(String str) {
-      StringBuffer retval = new StringBuffer();
+      StringBuilder retval = new StringBuilder();
       char ch;
       for (int i = 0; i < str.length(); i++) {
         switch (str.charAt(i))
--- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java	Wed Jun 18 10:55:17 2014 -0700
@@ -73,7 +73,7 @@
    * equivalents in the given string
    */
   protected static final String addEscapes(String str) {
-    StringBuffer retval = new StringBuffer();
+    StringBuilder retval = new StringBuilder();
     char ch;
     for (int i = 0; i < str.length(); i++) {
       switch (str.charAt(i))
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java	Wed Jun 18 10:55:17 2014 -0700
@@ -267,7 +267,7 @@
                 buf[j] = ' ';
             }
             buf[79] = '\0';
-            StringBuffer sbOut = new StringBuffer();
+            StringBuilder sbOut = new StringBuilder();
             sbOut.append(buf);
 
             // Right-justify the thread number at start of output string
@@ -381,16 +381,16 @@
             }
         } else {
             clname = t.nextToken();
-            StringBuffer sbuf = new StringBuffer();
+            StringBuilder str = new StringBuilder();
             // Allow VM arguments to be specified here?
             while (t.hasMoreTokens()) {
                 String tok = t.nextToken();
-                sbuf.append(tok);
+                str.append(tok);
                 if (t.hasMoreTokens()) {
-                    sbuf.append(' ');
+                    str.append(' ');
                 }
             }
-            String args = sbuf.toString();
+            String args = str.toString();
             try {
                 String vmArgs = context.getVmArguments();
                 runtime.run(suspended, vmArgs, clname, args);
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java	Wed Jun 18 10:55:17 2014 -0700
@@ -333,7 +333,7 @@
 
     private String processClasspathDefaults(String javaArgs) {
         if (javaArgs.indexOf("-classpath ") == -1) {
-            StringBuffer munged = new StringBuffer(javaArgs);
+            StringBuilder munged = new StringBuilder(javaArgs);
             SearchPath classpath = classManager.getClassPath();
             if (classpath.isEmpty()) {
                 String envcp = System.getProperty("env.class.path");
--- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceModel.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceModel.java	Wed Jun 18 10:55:17 2014 -0700
@@ -236,7 +236,7 @@
     private String expandTabs(String s) {
         int col = 0;
         int len = s.length();
-        StringBuffer sb = new StringBuffer(132);
+        StringBuilder sb = new StringBuilder(132);
         for (int i = 0; i < len; i++) {
             char c = s.charAt(i);
             sb.append(c);
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java	Wed Jun 18 10:55:17 2014 -0700
@@ -154,27 +154,27 @@
 
     @Override
     public String toString() {
-        StringBuffer buffer = new StringBuffer(refSpec.toString());
+        StringBuilder sb = new StringBuilder(refSpec.toString());
         if (isMethodBreakpoint()) {
-            buffer.append('.');
-            buffer.append(methodId);
+            sb.append('.');
+            sb.append(methodId);
             if (methodArgs != null) {
                 boolean first = true;
-                buffer.append('(');
+                sb.append('(');
                 for (String arg : methodArgs) {
                     if (!first) {
-                        buffer.append(',');
+                        sb.append(',');
                     }
-                    buffer.append(arg);
+                    sb.append(arg);
                     first = false;
                 }
-                buffer.append(")");
+                sb.append(")");
             }
         } else {
-            buffer.append(':');
-            buffer.append(lineNumber);
+            sb.append(':');
+            sb.append(lineNumber);
         }
-        return MessageOutput.format("breakpoint", buffer.toString());
+        return MessageOutput.format("breakpoint", sb.toString());
     }
 
     private Location location(ReferenceType refType) throws
@@ -275,8 +275,8 @@
          * stripping whitespace after the name ends
          */
         int i = 0;
-        StringBuffer typePart = new StringBuffer();
-        StringBuffer arrayPart = new StringBuffer();
+        StringBuilder typePart = new StringBuilder();
+        StringBuilder arrayPart = new StringBuilder();
         name = name.trim();
         int nameLength = name.length();
         /*
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/Commands.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/Commands.java	Wed Jun 18 10:55:17 2014 -0700
@@ -164,30 +164,30 @@
     }
 
     String typedName(Method method) {
-        StringBuffer buf = new StringBuffer();
-        buf.append(method.name());
-        buf.append("(");
+        StringBuilder sb = new StringBuilder();
+        sb.append(method.name());
+        sb.append("(");
 
         List<String> args = method.argumentTypeNames();
         int lastParam = args.size() - 1;
         // output param types except for the last
         for (int ii = 0; ii < lastParam; ii++) {
-            buf.append(args.get(ii));
-            buf.append(", ");
+            sb.append(args.get(ii));
+            sb.append(", ");
         }
         if (lastParam >= 0) {
             // output the last param
             String lastStr = args.get(lastParam);
             if (method.isVarArgs()) {
                 // lastParam is an array.  Replace the [] with ...
-                buf.append(lastStr.substring(0, lastStr.length() - 2));
-                buf.append("...");
+                sb.append(lastStr.substring(0, lastStr.length() - 2));
+                sb.append("...");
             } else {
-                buf.append(lastStr);
+                sb.append(lastStr);
             }
         }
-        buf.append(")");
-        return buf.toString();
+        sb.append(")");
+        return sb.toString();
     }
 
     void commandConnectors(VirtualMachineManager vmm) {
@@ -226,7 +226,7 @@
     }
 
     void commandClasses() {
-        StringBuffer classList = new StringBuffer();
+        StringBuilder classList = new StringBuilder();
         for (ReferenceType refType : Env.vm().allClasses()) {
             classList.append(refType.name());
             classList.append("\n");
@@ -309,7 +309,7 @@
         String idClass = t.nextToken();
         ReferenceType cls = Env.getReferenceTypeFromToken(idClass);
         if (cls != null) {
-            StringBuffer methodsList = new StringBuffer();
+            StringBuilder methodsList = new StringBuilder();
             for (Method method : cls.allMethods()) {
                 methodsList.append(method.declaringType().name());
                 methodsList.append(" ");
@@ -333,7 +333,7 @@
         if (cls != null) {
             List<Field> fields = cls.allFields();
             List<Field> visible = cls.visibleFields();
-            StringBuffer fieldsList = new StringBuffer();
+            StringBuilder fieldsList = new StringBuilder();
             for (Field field : fields) {
                 String s;
                 if (!visible.contains(field)) {
@@ -391,11 +391,11 @@
              * very long thread names, at the possible cost of lines
              * being wrapped by the display device.
              */
-            StringBuffer idBuffer = new StringBuffer(Env.description(thr));
+            StringBuilder idBuffer = new StringBuilder(Env.description(thr));
             for (int i = idBuffer.length(); i < maxIdLength; i++) {
                 idBuffer.append(" ");
             }
-            StringBuffer nameBuffer = new StringBuffer(thr.name());
+            StringBuilder nameBuffer = new StringBuilder(thr.name());
             for (int i = nameBuffer.length(); i < maxNameLength; i++) {
                 nameBuffer.append(" ");
             }
@@ -1606,16 +1606,16 @@
     private void dump(ObjectReference obj, ReferenceType refType,
                       ReferenceType refTypeBase) {
         for (Field field : refType.fields()) {
-            StringBuffer o = new StringBuffer();
-            o.append("    ");
+            StringBuilder sb = new StringBuilder();
+            sb.append("    ");
             if (!refType.equals(refTypeBase)) {
-                o.append(refType.name());
-                o.append(".");
+                sb.append(refType.name());
+                sb.append(".");
             }
-            o.append(field.name());
-            o.append(MessageOutput.format("colon space"));
-            o.append(obj.getValue(field));
-            MessageOutput.printDirectln(o.toString()); // Special case: use printDirectln()
+            sb.append(field.name());
+            sb.append(MessageOutput.format("colon space"));
+            sb.append(obj.getValue(field));
+            MessageOutput.printDirectln(sb.toString()); // Special case: use printDirectln()
         }
         if (refType instanceof ClassType) {
             ClassType sup = ((ClassType)refType).superclass();
@@ -1954,7 +1954,7 @@
             }
         }
 
-        StringBuffer line = new StringBuffer(80);
+        StringBuilder line = new StringBuilder(80);
         line.append("0000: ");
         for (int i = 0; i < bytecodes.length; i++) {
             if ((i > 0) && (i % 16 == 0)) {
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/Env.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/Env.java	Wed Jun 18 10:55:17 2014 -0700
@@ -114,12 +114,12 @@
     }
 
     static String excludesString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (String pattern : excludes()) {
-            buffer.append(pattern);
-            buffer.append(",");
+            sb.append(pattern);
+            sb.append(",");
         }
-        return buffer.toString();
+        return sb.toString();
     }
 
     static void addExcludes(StepRequest request) {
--- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTY.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTY.java	Wed Jun 18 10:55:17 2014 -0700
@@ -827,17 +827,17 @@
     private static String addArgument(String string, String argument) {
         if (hasWhitespace(argument) || argument.indexOf(',') != -1) {
             // Quotes were stripped out for this argument, add 'em back.
-            StringBuffer buffer = new StringBuffer(string);
-            buffer.append('"');
+            StringBuilder sb = new StringBuilder(string);
+            sb.append('"');
             for (int i = 0; i < argument.length(); i++) {
                 char c = argument.charAt(i);
                 if (c == '"') {
-                    buffer.append('\\');
+                    sb.append('\\');
                 }
-                buffer.append(c);
+                sb.append(c);
             }
-            buffer.append("\" ");
-            return buffer.toString();
+            sb.append("\" ");
+            return sb.toString();
         } else {
             return string + argument + ' ';
         }
--- a/jdk/src/share/classes/com/sun/tools/example/trace/Trace.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/example/trace/Trace.java	Wed Jun 18 10:55:17 2014 -0700
@@ -121,7 +121,7 @@
             usage();
             System.exit(1);
         }
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append(args[inx]);
         for (++inx; inx < args.length; ++inx) {
             sb.append(' ');
--- a/jdk/src/share/classes/com/sun/tools/hat/internal/util/Misc.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/hat/internal/util/Misc.java	Wed Jun 18 10:55:17 2014 -0700
@@ -83,30 +83,30 @@
 
     public static String encodeHtml(String str) {
         final int len = str.length();
-        StringBuffer buf = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (int i = 0; i < len; i++) {
             char ch = str.charAt(i);
             if (ch == '<') {
-                buf.append("&lt;");
+                sb.append("&lt;");
             } else if (ch == '>') {
-                buf.append("&gt;");
+                sb.append("&gt;");
             } else if (ch == '"') {
-                buf.append("&quot;");
+                sb.append("&quot;");
             } else if (ch == '\'') {
-                buf.append("&#039;");
+                sb.append("&#039;");
             } else if (ch == '&') {
-                buf.append("&amp;");
+                sb.append("&amp;");
             } else if (ch < ' ') {
-                buf.append("&#" + Integer.toString(ch) + ";");
+                sb.append("&#" + Integer.toString(ch) + ";");
             } else {
                 int c = (ch & 0xFFFF);
                 if (c > 127) {
-                    buf.append("&#" + Integer.toString(c) + ";");
+                    sb.append("&#" + Integer.toString(c) + ";");
                 } else {
-                    buf.append(ch);
+                    sb.append(ch);
                 }
             }
         }
-        return buf.toString();
+        return sb.toString();
     }
 }
--- a/jdk/src/share/classes/com/sun/tools/jdi/FieldImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/jdi/FieldImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -95,12 +95,12 @@
     }
 
     public String toString() {
-        StringBuffer buf = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buf.append(declaringType().name());
-        buf.append('.');
-        buf.append(name());
+        sb.append(declaringType().name());
+        sb.append('.');
+        sb.append(name());
 
-        return buf.toString();
+        return sb.toString();
     }
 }
--- a/jdk/src/share/classes/com/sun/tools/jdi/JNITypeParser.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/jdi/JNITypeParser.java	Wed Jun 18 10:55:17 2014 -0700
@@ -44,11 +44,11 @@
     }
 
     static String typeNameToSignature(String signature) {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         int firstIndex = signature.indexOf('[');
         int index = firstIndex;
         while (index != -1) {
-            buffer.append('[');
+            sb.append('[');
             index = signature.indexOf('[', index + 1);
         }
 
@@ -57,28 +57,28 @@
         }
 
         if (signature.equals("boolean")) {
-            buffer.append('Z');
+            sb.append('Z');
         } else if (signature.equals("byte")) {
-            buffer.append('B');
+            sb.append('B');
         } else if (signature.equals("char")) {
-            buffer.append('C');
+            sb.append('C');
         } else if (signature.equals("short")) {
-            buffer.append('S');
+            sb.append('S');
         } else if (signature.equals("int")) {
-            buffer.append('I');
+            sb.append('I');
         } else if (signature.equals("long")) {
-            buffer.append('J');
+            sb.append('J');
         } else if (signature.equals("float")) {
-            buffer.append('F');
+            sb.append('F');
         } else if (signature.equals("double")) {
-            buffer.append('D');
+            sb.append('D');
         } else {
-            buffer.append('L');
-            buffer.append(signature.replace('.', '/'));
-            buffer.append(';');
+            sb.append('L');
+            sb.append(signature.replace('.', '/'));
+            sb.append(';');
         }
 
-        return buffer.toString();
+        return sb.toString();
     }
 
     String typeName() {
--- a/jdk/src/share/classes/com/sun/tools/jdi/MethodImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/jdi/MethodImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -387,7 +387,7 @@
     }
 
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append(declaringType().name());
         sb.append(".");
         sb.append(name());
--- a/jdk/src/share/classes/com/sun/tools/jdi/ReferenceTypeImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/jdi/ReferenceTypeImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -751,7 +751,7 @@
     String baseSourceDir() {
         if (baseSourceDir == null) {
             String typeName = name();
-            StringBuffer sb = new StringBuffer(typeName.length() + 10);
+            StringBuilder sb = new StringBuilder(typeName.length() + 10);
             int index = 0;
             int nextIndex;
 
--- a/jdk/src/share/classes/com/sun/tools/jdi/SDE.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/jdi/SDE.java	Wed Jun 18 10:55:17 2014 -0700
@@ -56,16 +56,16 @@
                 if (sourcePath == null) {
                     sourcePath = refType.baseSourceDir() + sourceName;
                 } else {
-                    StringBuffer buf = new StringBuffer();
+                    StringBuilder sb = new StringBuilder();
                     for (int i = 0; i < sourcePath.length(); ++i) {
                         char ch = sourcePath.charAt(i);
                         if (ch == '/') {
-                            buf.append(File.separatorChar);
+                            sb.append(File.separatorChar);
                         } else {
-                            buf.append(ch);
+                            sb.append(ch);
                         }
                     }
-                    sourcePath = buf.toString();
+                    sourcePath = sb.toString();
                 }
                 isConverted = true;
             }
@@ -327,7 +327,7 @@
     }
 
     String readLine() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         char ch;
 
         ignoreWhite();
--- a/jdk/src/share/classes/com/sun/tools/jdi/TargetVM.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/jdi/TargetVM.java	Wed Jun 18 10:55:17 2014 -0700
@@ -78,7 +78,7 @@
                           ", errorCode=" + packet.errorCode +
                           ", flags=" + packet.flags);
         }
-        StringBuffer line = new StringBuffer(80);
+        StringBuilder line = new StringBuilder(80);
         line.append("0000: ");
         for (int i = 0; i < packet.data.length; i++) {
             if ((i > 0) && (i % 16 == 0)) {
--- a/jdk/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -742,7 +742,7 @@
     }
 
     void printReceiveTrace(int depth, String string) {
-        StringBuffer sb = new StringBuffer("Receiving:");
+        StringBuilder sb = new StringBuilder("Receiving:");
         for (int i = depth; i > 0; --i) {
             sb.append("    ");
         }
@@ -872,7 +872,7 @@
     ReferenceTypeImpl referenceType(long id, int tag,
                                                  String signature) {
         if ((vm.traceFlags & VirtualMachine.TRACE_REFTYPES) != 0) {
-            StringBuffer sb = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
             sb.append("Looking up ");
             if (tag == JDWP.TypeTag.CLASS) {
                 sb.append("Class");
--- a/jdk/src/share/classes/java/beans/Introspector.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/beans/Introspector.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1282,7 +1282,7 @@
      * Creates a key for a method in a method cache.
      */
     private static String makeQualifiedMethodName(String name, String[] params) {
-        StringBuffer sb = new StringBuffer(name);
+        StringBuilder sb = new StringBuilder(name);
         sb.append('=');
         for (int i = 0; i < params.length; i++) {
             sb.append(':');
--- a/jdk/src/share/classes/java/beans/Statement.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/beans/Statement.java	Wed Jun 18 10:55:17 2014 -0700
@@ -340,7 +340,7 @@
         if (arguments == null) {
             arguments = emptyArray;
         }
-        StringBuffer result = new StringBuffer(instanceName(target) + "." + methodName + "(");
+        StringBuilder result = new StringBuilder(instanceName(target) + "." + methodName + "(");
         int n = arguments.length;
         for(int i = 0; i < n; i++) {
             result.append(instanceName(arguments[i]));
--- a/jdk/src/share/classes/java/io/RandomAccessFile.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/io/RandomAccessFile.java	Wed Jun 18 10:55:17 2014 -0700
@@ -890,7 +890,7 @@
      */
 
     public final String readLine() throws IOException {
-        StringBuffer input = new StringBuffer();
+        StringBuilder input = new StringBuilder();
         int c = -1;
         boolean eol = false;
 
--- a/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java	Wed Jun 18 10:55:17 2014 -0700
@@ -40,6 +40,7 @@
 import static java.lang.invoke.MethodHandleNatives.Constants.*;
 import static java.lang.invoke.LambdaForm.BasicType.*;
 import sun.invoke.util.VerifyType;
+import sun.reflect.misc.ReflectUtil;
 
 /**
  * Code generation backend for LambdaForm.
@@ -594,6 +595,8 @@
             return false;  // inner class of some sort
         if (cls.getClassLoader() != MethodHandle.class.getClassLoader())
             return false;  // not on BCP
+        if (ReflectUtil.isVMAnonymousClass(cls)) // FIXME: switch to supported API once it is added
+            return false;
         MethodType mtype = member.getMethodOrFieldType();
         if (!isStaticallyNameable(mtype.returnType()))
             return false;
@@ -612,6 +615,8 @@
             cls = cls.getComponentType();
         if (cls.isPrimitive())
             return true;  // int[].class, for example
+        if (ReflectUtil.isVMAnonymousClass(cls)) // FIXME: switch to supported API once it is added
+            return false;
         // could use VerifyAccess.isClassAccessible but the following is a safe approximation
         if (cls.getClassLoader() != Object.class.getClassLoader())
             return false;
--- a/jdk/src/share/classes/java/net/IDN.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/net/IDN.java	Wed Jun 18 10:55:17 2014 -0700
@@ -111,7 +111,7 @@
     public static String toASCII(String input, int flag)
     {
         int p = 0, q = 0;
-        StringBuffer out = new StringBuffer();
+        StringBuilder out = new StringBuilder();
 
         if (isRootLabel(input)) {
             return ".";
@@ -172,7 +172,7 @@
      */
     public static String toUnicode(String input, int flag) {
         int p = 0, q = 0;
-        StringBuffer out = new StringBuffer();
+        StringBuilder out = new StringBuilder();
 
         if (isRootLabel(input)) {
             return ".";
--- a/jdk/src/share/classes/java/net/SocketPermission.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/net/SocketPermission.java	Wed Jun 18 10:55:17 2014 -0700
@@ -733,7 +733,7 @@
         InetAddress auth;
 
         try {
-            StringBuffer sb = new StringBuffer(39);
+            StringBuilder sb = new StringBuilder(39);
 
             for (int i = 15; i >= 0; i--) {
                 sb.append(Integer.toHexString(((addr[i]) & 0x0f)));
--- a/jdk/src/share/classes/java/net/URI.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/net/URI.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1957,7 +1957,7 @@
     private void defineString() {
         if (string != null) return;
 
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         if (scheme != null) {
             sb.append(scheme);
             sb.append(':');
@@ -2015,7 +2015,7 @@
             if (i >= 0)
                 path = base.substring(0, i + 1);
         } else {
-            StringBuffer sb = new StringBuffer(base.length() + cn);
+            StringBuilder sb = new StringBuilder(base.length() + cn);
             // 5.2 (6a)
             if (i >= 0)
                 sb.append(base.substring(0, i + 1));
@@ -2778,7 +2778,7 @@
         if (s.indexOf('%') < 0)
             return s;
 
-        StringBuffer sb = new StringBuffer(n);
+        StringBuilder sb = new StringBuilder(n);
         ByteBuffer bb = ByteBuffer.allocate(n);
         CharBuffer cb = CharBuffer.allocate(n);
         CharsetDecoder dec = ThreadLocalCoders.decoderFor("UTF-8")
--- a/jdk/src/share/classes/java/net/URISyntaxException.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/net/URISyntaxException.java	Wed Jun 18 10:55:17 2014 -0700
@@ -121,7 +121,7 @@
      * @return  A string describing the parse error
      */
     public String getMessage() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append(getReason());
         if (index > -1) {
             sb.append(" at index ");
--- a/jdk/src/share/classes/java/net/URLDecoder.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/net/URLDecoder.java	Wed Jun 18 10:55:17 2014 -0700
@@ -134,7 +134,7 @@
 
         boolean needToChange = false;
         int numChars = s.length();
-        StringBuffer sb = new StringBuffer(numChars > 500 ? numChars / 2 : numChars);
+        StringBuilder sb = new StringBuilder(numChars > 500 ? numChars / 2 : numChars);
         int i = 0;
 
         if (enc.length() == 0) {
--- a/jdk/src/share/classes/java/net/URLEncoder.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/net/URLEncoder.java	Wed Jun 18 10:55:17 2014 -0700
@@ -201,7 +201,7 @@
         throws UnsupportedEncodingException {
 
         boolean needToChange = false;
-        StringBuffer out = new StringBuffer(s.length());
+        StringBuilder out = new StringBuilder(s.length());
         Charset charset;
         CharArrayWriter charArrayWriter = new CharArrayWriter();
 
--- a/jdk/src/share/classes/java/net/URLStreamHandler.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/net/URLStreamHandler.java	Wed Jun 18 10:55:17 2014 -0700
@@ -486,7 +486,7 @@
         if (u.getRef() != null)
             len += 1 + u.getRef().length();
 
-        StringBuffer result = new StringBuffer(len);
+        StringBuilder result = new StringBuilder(len);
         result.append(u.getProtocol());
         result.append(":");
         if (u.getAuthority() != null && u.getAuthority().length() > 0) {
--- a/jdk/src/share/classes/java/nio/file/InvalidPathException.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/nio/file/InvalidPathException.java	Wed Jun 18 10:55:17 2014 -0700
@@ -117,7 +117,7 @@
      * @return  a string describing the error
      */
     public String getMessage() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append(getReason());
         if (index > -1) {
             sb.append(" at index ");
--- a/jdk/src/share/classes/java/rmi/dgc/VMID.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/rmi/dgc/VMID.java	Wed Jun 18 10:55:17 2014 -0700
@@ -120,15 +120,15 @@
      * Return string representation of this VMID.
      */
     public String toString() {
-        StringBuffer result = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         if (addr != null)
             for (int i = 0; i < addr.length; ++ i) {
                 int x = addr[i] & 0xFF;
-                result.append((x < 0x10 ? "0" : "") +
-                              Integer.toString(x, 16));
+                sb.append((x < 0x10 ? "0" : "") +
+                          Integer.toString(x, 16));
             }
-        result.append(':');
-        result.append(uid.toString());
-        return result.toString();
+        sb.append(':');
+        sb.append(uid.toString());
+        return sb.toString();
     }
 }
--- a/jdk/src/share/classes/java/security/CodeSigner.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/security/CodeSigner.java	Wed Jun 18 10:55:17 2014 -0700
@@ -154,7 +154,7 @@
      *         if present.
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("(");
         sb.append("Signer: " + signerCertPath.getCertificates().get(0));
         if (timestamp != null) {
--- a/jdk/src/share/classes/java/security/Timestamp.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/security/Timestamp.java	Wed Jun 18 10:55:17 2014 -0700
@@ -141,7 +141,7 @@
      *         its signer's certificate.
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("(");
         sb.append("timestamp: " + timestamp);
         List<? extends Certificate> certs = signerCertPath.getCertificates();
--- a/jdk/src/share/classes/java/security/cert/CertPath.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/security/cert/CertPath.java	Wed Jun 18 10:55:17 2014 -0700
@@ -220,7 +220,7 @@
      * @return a string representation of this certification path
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         Iterator<? extends Certificate> stringIterator =
                                         getCertificates().iterator();
 
--- a/jdk/src/share/classes/java/security/cert/CollectionCertStoreParameters.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/security/cert/CollectionCertStoreParameters.java	Wed Jun 18 10:55:17 2014 -0700
@@ -132,7 +132,7 @@
      * @return a formatted string describing the parameters
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("CollectionCertStoreParameters: [\n");
         sb.append("  collection: " + coll + "\n");
         sb.append("]");
--- a/jdk/src/share/classes/java/security/cert/LDAPCertStoreParameters.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/security/cert/LDAPCertStoreParameters.java	Wed Jun 18 10:55:17 2014 -0700
@@ -138,7 +138,7 @@
      * @return a formatted string describing the parameters
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("LDAPCertStoreParameters: [\n");
 
         sb.append("  serverName: " + serverName + "\n");
--- a/jdk/src/share/classes/java/security/cert/PKIXBuilderParameters.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/security/cert/PKIXBuilderParameters.java	Wed Jun 18 10:55:17 2014 -0700
@@ -189,7 +189,7 @@
      * @return a formatted string describing the parameters
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("[\n");
         sb.append(super.toString());
         sb.append("  Maximum Path Length: " + maxPathLength + "\n");
--- a/jdk/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java	Wed Jun 18 10:55:17 2014 -0700
@@ -107,7 +107,7 @@
      *         {@code PKIXCertPathBuilderResult}
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("PKIXCertPathBuilderResult: [\n");
         sb.append("  Certification Path: " + certPath + "\n");
         sb.append("  Trust Anchor: " + getTrustAnchor().toString() + "\n");
--- a/jdk/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java	Wed Jun 18 10:55:17 2014 -0700
@@ -148,7 +148,7 @@
      *         {@code PKIXCertPathValidatorResult}
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("PKIXCertPathValidatorResult: [\n");
         sb.append("  Trust Anchor: " + trustAnchor.toString() + "\n");
         sb.append("  Policy Tree: " + String.valueOf(policyTree) + "\n");
--- a/jdk/src/share/classes/java/security/cert/PKIXParameters.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/security/cert/PKIXParameters.java	Wed Jun 18 10:55:17 2014 -0700
@@ -693,7 +693,7 @@
      * @return a formatted string describing the parameters.
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("[\n");
 
         /* start with trusted anchor info */
--- a/jdk/src/share/classes/java/security/cert/PolicyQualifierInfo.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/security/cert/PolicyQualifierInfo.java	Wed Jun 18 10:55:17 2014 -0700
@@ -161,7 +161,7 @@
         if (pqiString != null)
             return pqiString;
         HexDumpEncoder enc = new HexDumpEncoder();
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("PolicyQualifierInfo: [\n");
         sb.append("  qualifierID: " + mId + "\n");
         sb.append("  qualifier: " +
--- a/jdk/src/share/classes/java/security/cert/TrustAnchor.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/security/cert/TrustAnchor.java	Wed Jun 18 10:55:17 2014 -0700
@@ -317,7 +317,7 @@
      * @return a formatted string describing the {@code TrustAnchor}
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("[\n");
         if (pubKey != null) {
             sb.append("  Trusted CA Public Key: " + pubKey.toString() + "\n");
--- a/jdk/src/share/classes/java/security/cert/X509CRLSelector.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/security/cert/X509CRLSelector.java	Wed Jun 18 10:55:17 2014 -0700
@@ -566,7 +566,7 @@
      *         {@code X509CRLSelector}.
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("X509CRLSelector: [\n");
         if (issuerNames != null) {
             sb.append("  IssuerNames:\n");
--- a/jdk/src/share/classes/java/security/cert/X509CertSelector.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/security/cert/X509CertSelector.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1811,7 +1811,7 @@
      *         {@code CertSelector}
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("X509CertSelector: [\n");
         if (x509Cert != null) {
             sb.append("  Certificate: " + x509Cert.toString() + "\n");
--- a/jdk/src/share/classes/java/text/AttributedString.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/text/AttributedString.java	Wed Jun 18 10:55:17 2014 -0700
@@ -243,11 +243,11 @@
             throw new IllegalArgumentException("Invalid substring range");
 
         // Copy the given string
-        StringBuffer textBuffer = new StringBuffer();
+        StringBuilder textBuilder = new StringBuilder();
         text.setIndex(beginIndex);
         for (char c = text.current(); text.getIndex() < endIndex; c = text.next())
-            textBuffer.append(c);
-        this.text = textBuffer.toString();
+            textBuilder.append(c);
+        this.text = textBuilder.toString();
 
         if (beginIndex == endIndex)
             return;
--- a/jdk/src/share/classes/java/text/ChoiceFormat.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/text/ChoiceFormat.java	Wed Jun 18 10:55:17 2014 -0700
@@ -259,7 +259,7 @@
      * @return the pattern string
      */
     public String toPattern() {
-        StringBuffer result = new StringBuffer();
+        StringBuilder result = new StringBuilder();
         for (int i = 0; i < choiceLimits.length; ++i) {
             if (i != 0) {
                 result.append('|');
--- a/jdk/src/share/classes/java/time/Instant.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/time/Instant.java	Wed Jun 18 10:55:17 2014 -0700
@@ -375,7 +375,7 @@
             return Instant.ofEpochSecond(instantSecs, nanoOfSecond);
         } catch (DateTimeException ex) {
             throw new DateTimeException("Unable to obtain Instant from TemporalAccessor: " +
-                    temporal + " of type " + temporal.getClass().getName());
+                    temporal + " of type " + temporal.getClass().getName(), ex);
         }
     }
 
@@ -1058,7 +1058,8 @@
         }
         // inline TemporalAccessor.super.query(query) as an optimization
         if (query == TemporalQueries.chronology() || query == TemporalQueries.zoneId() ||
-                query == TemporalQueries.zone() || query == TemporalQueries.offset()) {
+                query == TemporalQueries.zone() || query == TemporalQueries.offset() ||
+                query == TemporalQueries.localDate() || query == TemporalQueries.localTime()) {
             return null;
         }
         return query.queryFrom(this);
--- a/jdk/src/share/classes/java/time/OffsetDateTime.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/time/OffsetDateTime.java	Wed Jun 18 10:55:17 2014 -0700
@@ -357,10 +357,11 @@
         }
         try {
             ZoneOffset offset = ZoneOffset.from(temporal);
-            try {
-                LocalDateTime ldt = LocalDateTime.from(temporal);
-                return OffsetDateTime.of(ldt, offset);
-            } catch (DateTimeException ignore) {
+            LocalDate date = temporal.query(TemporalQueries.localDate());
+            LocalTime time = temporal.query(TemporalQueries.localTime());
+            if (date != null && time != null) {
+                return OffsetDateTime.of(date, time, offset);
+            } else {
                 Instant instant = Instant.from(temporal);
                 return OffsetDateTime.ofInstant(instant, offset);
             }
--- a/jdk/src/share/classes/java/time/ZonedDateTime.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/time/ZonedDateTime.java	Wed Jun 18 10:55:17 2014 -0700
@@ -81,6 +81,7 @@
 import java.time.temporal.TemporalAdjuster;
 import java.time.temporal.TemporalAmount;
 import java.time.temporal.TemporalField;
+import java.time.temporal.TemporalQueries;
 import java.time.temporal.TemporalQuery;
 import java.time.temporal.TemporalUnit;
 import java.time.temporal.UnsupportedTemporalTypeException;
@@ -551,14 +552,14 @@
         }
         try {
             ZoneId zone = ZoneId.from(temporal);
-            try {
+            if (temporal.isSupported(INSTANT_SECONDS)) {
                 long epochSecond = temporal.getLong(INSTANT_SECONDS);
                 int nanoOfSecond = temporal.get(NANO_OF_SECOND);
                 return create(epochSecond, nanoOfSecond, zone);
-
-            } catch (DateTimeException ex1) {
-                LocalDateTime ldt = LocalDateTime.from(temporal);
-                return of(ldt, zone);
+            } else {
+                LocalDate date = LocalDate.from(temporal);
+                LocalTime time = LocalTime.from(temporal);
+                return of(date, time, zone);
             }
         } catch (DateTimeException ex) {
             throw new DateTimeException("Unable to obtain ZonedDateTime from TemporalAccessor: " +
@@ -2039,8 +2040,12 @@
      * @throws DateTimeException if unable to query (defined by the query)
      * @throws ArithmeticException if numeric overflow occurs (defined by the query)
      */
+    @SuppressWarnings("unchecked")
     @Override  // override for Javadoc
     public <R> R query(TemporalQuery<R> query) {
+        if (query == TemporalQueries.localDate()) {
+            return (R) toLocalDate();
+        }
         return ChronoZonedDateTime.super.query(query);
     }
 
--- a/jdk/src/share/classes/java/time/format/DateTimeFormatterBuilder.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/time/format/DateTimeFormatterBuilder.java	Wed Jun 18 10:55:17 2014 -0700
@@ -3283,7 +3283,7 @@
             } catch (RuntimeException ex) {
                 return ~position;
             }
-            int successPos = text.length();
+            int successPos = pos;
             successPos = context.setParsedField(INSTANT_SECONDS, instantSecs, position, successPos);
             return context.setParsedField(NANO_OF_SECOND, nano, position, successPos);
         }
--- a/jdk/src/share/classes/java/time/format/Parsed.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/time/format/Parsed.java	Wed Jun 18 10:55:17 2014 -0700
@@ -66,6 +66,7 @@
 import static java.time.temporal.ChronoField.CLOCK_HOUR_OF_DAY;
 import static java.time.temporal.ChronoField.HOUR_OF_AMPM;
 import static java.time.temporal.ChronoField.HOUR_OF_DAY;
+import static java.time.temporal.ChronoField.INSTANT_SECONDS;
 import static java.time.temporal.ChronoField.MICRO_OF_DAY;
 import static java.time.temporal.ChronoField.MICRO_OF_SECOND;
 import static java.time.temporal.ChronoField.MILLI_OF_DAY;
@@ -74,14 +75,17 @@
 import static java.time.temporal.ChronoField.MINUTE_OF_HOUR;
 import static java.time.temporal.ChronoField.NANO_OF_DAY;
 import static java.time.temporal.ChronoField.NANO_OF_SECOND;
+import static java.time.temporal.ChronoField.OFFSET_SECONDS;
 import static java.time.temporal.ChronoField.SECOND_OF_DAY;
 import static java.time.temporal.ChronoField.SECOND_OF_MINUTE;
 
 import java.time.DateTimeException;
+import java.time.Instant;
 import java.time.LocalDate;
 import java.time.LocalTime;
 import java.time.Period;
 import java.time.ZoneId;
+import java.time.ZoneOffset;
 import java.time.chrono.ChronoLocalDate;
 import java.time.chrono.ChronoLocalDateTime;
 import java.time.chrono.ChronoZonedDateTime;
@@ -241,12 +245,15 @@
         resolveTimeLenient();
         crossCheck();
         resolvePeriod();
+        resolveFractional();
+        resolveInstant();
         return this;
     }
 
     //-----------------------------------------------------------------------
     private void resolveFields() {
         // resolve ChronoField
+        resolveInstantFields();
         resolveDateFields();
         resolveTimeFields();
 
@@ -300,6 +307,7 @@
             }
             // if something changed then have to redo ChronoField resolve
             if (changedCount > 0) {
+                resolveInstantFields();
                 resolveDateFields();
                 resolveTimeFields();
             }
@@ -316,6 +324,29 @@
     }
 
     //-----------------------------------------------------------------------
+    private void resolveInstantFields() {
+        // resolve parsed instant seconds to date and time if zone available
+        if (fieldValues.containsKey(INSTANT_SECONDS)) {
+            if (zone != null) {
+                resolveInstantFields0(zone);
+            } else {
+                Long offsetSecs = fieldValues.get(OFFSET_SECONDS);
+                if (offsetSecs != null) {
+                    ZoneOffset offset = ZoneOffset.ofTotalSeconds(offsetSecs.intValue());
+                    resolveInstantFields0(offset);
+                }
+            }
+        }
+    }
+
+    private void resolveInstantFields0(ZoneId selectedZone) {
+        Instant instant = Instant.ofEpochSecond(fieldValues.remove(INSTANT_SECONDS));
+        ChronoZonedDateTime<?> zdt = chrono.zonedDateTime(instant, selectedZone);
+        updateCheckConflict(zdt.toLocalDate());
+        updateCheckConflict(INSTANT_SECONDS, SECOND_OF_DAY, (long) zdt.toLocalTime().toSecondOfDay());
+    }
+
+    //-----------------------------------------------------------------------
     private void resolveDateFields() {
         updateCheckConflict(chrono.resolveDate(fieldValues, resolverStyle));
     }
@@ -533,6 +564,42 @@
         }
     }
 
+    private void resolveFractional() {
+        // ensure fractional seconds available as ChronoField requires
+        // resolveTimeLenient() will have merged MICRO_OF_SECOND/MILLI_OF_SECOND to NANO_OF_SECOND
+        if (time == null &&
+                (fieldValues.containsKey(INSTANT_SECONDS) ||
+                    fieldValues.containsKey(SECOND_OF_DAY) ||
+                    fieldValues.containsKey(SECOND_OF_MINUTE))) {
+            if (fieldValues.containsKey(NANO_OF_SECOND)) {
+                long nos = fieldValues.get(NANO_OF_SECOND);
+                fieldValues.put(MICRO_OF_SECOND, nos / 1000);
+                fieldValues.put(MILLI_OF_SECOND, nos / 1000000);
+            } else {
+                fieldValues.put(NANO_OF_SECOND, 0L);
+                fieldValues.put(MICRO_OF_SECOND, 0L);
+                fieldValues.put(MILLI_OF_SECOND, 0L);
+            }
+        }
+    }
+
+    private void resolveInstant() {
+        // add instant seconds if we have date, time and zone
+        if (date != null && time != null) {
+            if (zone != null) {
+                long instant = date.atTime(time).atZone(zone).getLong(ChronoField.INSTANT_SECONDS);
+                fieldValues.put(INSTANT_SECONDS, instant);
+            } else {
+                Long offsetSecs = fieldValues.get(OFFSET_SECONDS);
+                if (offsetSecs != null) {
+                    ZoneOffset offset = ZoneOffset.ofTotalSeconds(offsetSecs.intValue());
+                    long instant = date.atTime(time).atZone(offset).getLong(ChronoField.INSTANT_SECONDS);
+                    fieldValues.put(INSTANT_SECONDS, instant);
+                }
+            }
+        }
+    }
+
     private void updateCheckConflict(LocalTime timeToSet, Period periodToSet) {
         if (time != null) {
             if (time.equals(timeToSet) == false) {
@@ -568,18 +635,20 @@
         for (Iterator<Entry<TemporalField, Long>> it = fieldValues.entrySet().iterator(); it.hasNext(); ) {
             Entry<TemporalField, Long> entry = it.next();
             TemporalField field = entry.getKey();
-            long val1;
-            try {
-                val1 = target.getLong(field);
-            } catch (RuntimeException ex) {
-                continue;
+            if (target.isSupported(field)) {
+                long val1;
+                try {
+                    val1 = target.getLong(field);
+                } catch (RuntimeException ex) {
+                    continue;
+                }
+                long val2 = entry.getValue();
+                if (val1 != val2) {
+                    throw new DateTimeException("Conflict found: Field " + field + " " + val1 +
+                            " differs from " + field + " " + val2 + " derived from " + target);
+                }
+                it.remove();
             }
-            long val2 = entry.getValue();
-            if (val1 != val2) {
-                throw new DateTimeException("Conflict found: Field " + field + " " + val1 +
-                        " differs from " + field + " " + val2 + " derived from " + target);
-            }
-            it.remove();
         }
     }
 
--- a/jdk/src/share/classes/java/util/Properties.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/util/Properties.java	Wed Jun 18 10:55:17 2014 -0700
@@ -602,7 +602,7 @@
         if (bufLen < 0) {
             bufLen = Integer.MAX_VALUE;
         }
-        StringBuffer outBuffer = new StringBuffer(bufLen);
+        StringBuilder outBuffer = new StringBuilder(bufLen);
 
         for(int x=0; x<len; x++) {
             char aChar = theString.charAt(x);
--- a/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java	Wed Jun 18 10:55:17 2014 -0700
@@ -133,12 +133,12 @@
  * mapped values are (perhaps transiently) not used or all take the
  * same mapping value.
  *
- * <p>A ConcurrentHashMap can be used as scalable frequency map (a
+ * <p>A ConcurrentHashMap can be used as a scalable frequency map (a
  * form of histogram or multiset) by using {@link
  * java.util.concurrent.atomic.LongAdder} values and initializing via
  * {@link #computeIfAbsent computeIfAbsent}. For example, to add a count
  * to a {@code ConcurrentHashMap<String,LongAdder> freqs}, you can use
- * {@code freqs.computeIfAbsent(k -> new LongAdder()).increment();}
+ * {@code freqs.computeIfAbsent(key, k -> new LongAdder()).increment();}
  *
  * <p>This class and its views and iterators implement all of the
  * <em>optional</em> methods of the {@link Map} and {@link Iterator}
--- a/jdk/src/share/classes/java/util/concurrent/atomic/LongAdder.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/util/concurrent/atomic/LongAdder.java	Wed Jun 18 10:55:17 2014 -0700
@@ -57,7 +57,7 @@
  * frequency map (a form of histogram or multiset). For example, to
  * add a count to a {@code ConcurrentHashMap<String,LongAdder> freqs},
  * initializing if not already present, you can use {@code
- * freqs.computeIfAbsent(k -> new LongAdder()).increment();}
+ * freqs.computeIfAbsent(key, k -> new LongAdder()).increment();}
  *
  * <p>This class extends {@link Number}, but does <em>not</em> define
  * methods such as {@code equals}, {@code hashCode} and {@code
--- a/jdk/src/share/classes/java/util/prefs/Base64.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/util/prefs/Base64.java	Wed Jun 18 10:55:17 2014 -0700
@@ -57,7 +57,7 @@
         int numFullGroups = aLen/3;
         int numBytesInPartialGroup = aLen - 3*numFullGroups;
         int resultLen = 4*((aLen + 2)/3);
-        StringBuffer result = new StringBuffer(resultLen);
+        StringBuilder result = new StringBuilder(resultLen);
         char[] intToAlpha = (alternate ? intToAltBase64 : intToBase64);
 
         // Translate all full groups from byte array elements to Base64
--- a/jdk/src/share/classes/java/util/regex/PatternSyntaxException.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/java/util/regex/PatternSyntaxException.java	Wed Jun 18 10:55:17 2014 -0700
@@ -105,7 +105,7 @@
      * @return  The full detail message
      */
     public String getMessage() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append(desc);
         if (index >= 0) {
             sb.append(" near index ");
--- a/jdk/src/share/classes/javax/imageio/stream/ImageInputStreamImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/imageio/stream/ImageInputStreamImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -289,7 +289,7 @@
     }
 
     public String readLine() throws IOException {
-        StringBuffer input = new StringBuffer();
+        StringBuilder input = new StringBuilder();
         int c = -1;
         boolean eol = false;
 
--- a/jdk/src/share/classes/javax/naming/BinaryRefAddr.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/naming/BinaryRefAddr.java	Wed Jun 18 10:55:17 2014 -0700
@@ -165,7 +165,7 @@
       * @return The non-null string representation of this address.
       */
     public String toString(){
-        StringBuffer str = new StringBuffer("Address Type: " + addrType + "\n");
+        StringBuilder str = new StringBuilder("Address Type: " + addrType + "\n");
 
         str.append("AddressContents: ");
         for (int i = 0; i<buf.length && i < 32; i++) {
--- a/jdk/src/share/classes/javax/naming/NameImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/naming/NameImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -104,7 +104,7 @@
         String endQuote;
         boolean start = true;
         boolean one = false;
-        StringBuffer answer = new StringBuffer(len);
+        StringBuilder answer = new StringBuilder(len);
 
         while (i < len) {
             // handle quoted strings
--- a/jdk/src/share/classes/javax/naming/RefAddr.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/naming/RefAddr.java	Wed Jun 18 10:55:17 2014 -0700
@@ -139,7 +139,7 @@
       * @return The non-null string representation of this address.
       */
     public String toString(){
-        StringBuffer str = new StringBuffer("Type: " + addrType + "\n");
+        StringBuilder str = new StringBuilder("Type: " + addrType + "\n");
 
         str.append("Content: " + getContent() + "\n");
         return (str.toString());
--- a/jdk/src/share/classes/javax/naming/Reference.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/naming/Reference.java	Wed Jun 18 10:55:17 2014 -0700
@@ -364,13 +364,13 @@
       * @return The non-null string representation of this reference.
       */
     public String toString() {
-        StringBuffer buf = new StringBuffer("Reference Class Name: " +
-                                            className + "\n");
+        StringBuilder sb = new StringBuilder("Reference Class Name: " +
+                                             className + "\n");
         int len = addrs.size();
         for (int i = 0; i < len; i++)
-            buf.append(get(i).toString());
+            sb.append(get(i).toString());
 
-        return buf.toString();
+        return sb.toString();
     }
 
     /**
--- a/jdk/src/share/classes/javax/naming/directory/BasicAttribute.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/naming/directory/BasicAttribute.java	Wed Jun 18 10:55:17 2014 -0700
@@ -211,7 +211,7 @@
       * @return The non-null string representation of this attribute.
       */
     public String toString() {
-        StringBuffer answer = new StringBuffer(attrID + ": ");
+        StringBuilder answer = new StringBuilder(attrID + ": ");
         if (values.size() == 0) {
             answer.append("No values");
         } else {
--- a/jdk/src/share/classes/javax/print/MimeType.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/print/MimeType.java	Wed Jun 18 10:55:17 2014 -0700
@@ -285,7 +285,7 @@
      */
     private String getStringValue() {
         if (myStringValue == null) {
-            StringBuffer result = new StringBuffer();
+            StringBuilder result = new StringBuilder();
             result.append (myPieces[0]);
             result.append ('/');
             result.append (myPieces[1]);
@@ -510,7 +510,7 @@
         int n = s.length();
         int i;
         char c;
-        StringBuffer result = new StringBuffer (n+2);
+        StringBuilder result = new StringBuilder (n+2);
         result.append ('\"');
         for (i = 0; i < n; ++ i) {
             c = s.charAt (i);
--- a/jdk/src/share/classes/javax/print/attribute/ResolutionSyntax.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/print/attribute/ResolutionSyntax.java	Wed Jun 18 10:55:17 2014 -0700
@@ -241,7 +241,7 @@
      *     (unchecked exception) Thrown if {@code units < 1}.
      */
     public String toString(int units, String unitsName) {
-        StringBuffer result = new StringBuffer();
+        StringBuilder result = new StringBuilder();
         result.append(getCrossFeedResolution (units));
         result.append('x');
         result.append(getFeedResolution (units));
@@ -326,7 +326,7 @@
      * resolution. The values are reported in the internal units of dphi.
      */
     public String toString() {
-        StringBuffer result = new StringBuffer();
+        StringBuilder result = new StringBuilder();
         result.append(crossFeedResolution);
         result.append('x');
         result.append(feedResolution);
--- a/jdk/src/share/classes/javax/print/attribute/SetOfIntegerSyntax.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/print/attribute/SetOfIntegerSyntax.java	Wed Jun 18 10:55:17 2014 -0700
@@ -540,7 +540,7 @@
      * <CODE>"<I>i</I>-<I>j</I>"</CODE> otherwise.
      */
     public String toString() {
-        StringBuffer result = new StringBuffer();
+        StringBuilder result = new StringBuilder();
         int n = members.length;
         for (int i = 0; i < n; i++) {
             if (i > 0) {
--- a/jdk/src/share/classes/javax/print/attribute/Size2DSyntax.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/print/attribute/Size2DSyntax.java	Wed Jun 18 10:55:17 2014 -0700
@@ -257,7 +257,7 @@
      *     (unchecked exception) Thrown if {@code units < 1}.
      */
     public String toString(int units, String unitsName) {
-        StringBuffer result = new StringBuffer();
+        StringBuilder result = new StringBuilder();
         result.append(getX (units));
         result.append('x');
         result.append(getY (units));
@@ -312,7 +312,7 @@
      * The values are reported in the internal units of micrometers.
      */
     public String toString() {
-        StringBuffer result = new StringBuffer();
+        StringBuilder result = new StringBuilder();
         result.append(x);
         result.append('x');
         result.append(y);
--- a/jdk/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/security/auth/kerberos/KerberosTicket.java	Wed Jun 18 10:55:17 2014 -0700
@@ -636,11 +636,11 @@
     public String toString() {
         if (destroyed)
             throw new IllegalStateException("This ticket is no longer valid");
-        StringBuffer caddrBuf = new StringBuffer();
+        StringBuilder caddrString = new StringBuilder();
         if (clientAddresses != null) {
             for (int i = 0; i < clientAddresses.length; i++) {
-                caddrBuf.append("clientAddresses[" + i + "] = " +
-                                 clientAddresses[i].toString());
+                caddrString.append("clientAddresses[" + i + "] = " +
+                        clientAddresses[i].toString());
             }
         }
         return ("Ticket (hex) = " + "\n" +
@@ -660,7 +660,7 @@
                 "End Time = " + endTime.toString() + "\n" +
                 "Renew Till = " + String.valueOf(renewTill) + "\n" +
                 "Client Addresses " +
-                (clientAddresses == null ? " Null " : caddrBuf.toString() +
+                (clientAddresses == null ? " Null " : caddrString.toString() +
                 "\n"));
     }
 
--- a/jdk/src/share/classes/javax/sound/sampled/CompoundControl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sound/sampled/CompoundControl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -94,18 +94,18 @@
      */
     public String toString() {
 
-        StringBuffer buf = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (int i = 0; i < controls.length; i++) {
             if (i != 0) {
-                buf.append(", ");
+                sb.append(", ");
                 if ((i + 1) == controls.length) {
-                    buf.append("and ");
+                    sb.append("and ");
                 }
             }
-            buf.append(controls[i].getType());
+            sb.append(controls[i].getType());
         }
 
-        return new String(getType() + " Control containing " + buf + " Controls.");
+        return new String(getType() + " Control containing " + sb + " Controls.");
     }
 
 
--- a/jdk/src/share/classes/javax/sound/sampled/DataLine.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sound/sampled/DataLine.java	Wed Jun 18 10:55:17 2014 -0700
@@ -471,23 +471,23 @@
          */
         public String toString() {
 
-            StringBuffer buf = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
 
             if ( (formats.length == 1) && (formats[0] != null) ) {
-                buf.append(" supporting format " + formats[0]);
+                sb.append(" supporting format " + formats[0]);
             } else if (getFormats().length > 1) {
-                buf.append(" supporting " + getFormats().length + " audio formats");
+                sb.append(" supporting " + getFormats().length + " audio formats");
             }
 
             if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (maxBufferSize != AudioSystem.NOT_SPECIFIED) ) {
-                buf.append(", and buffers of " + minBufferSize + " to " + maxBufferSize + " bytes");
+                sb.append(", and buffers of " + minBufferSize + " to " + maxBufferSize + " bytes");
             } else if ( (minBufferSize != AudioSystem.NOT_SPECIFIED) && (minBufferSize > 0) ) {
-                buf.append(", and buffers of at least " + minBufferSize + " bytes");
+                sb.append(", and buffers of at least " + minBufferSize + " bytes");
             } else if (maxBufferSize != AudioSystem.NOT_SPECIFIED) {
-                buf.append(", and buffers of up to " + minBufferSize + " bytes");
+                sb.append(", and buffers of up to " + minBufferSize + " bytes");
             }
 
-            return new String(super.toString() + buf);
+            return new String(super.toString() + sb);
         }
     } // class Info
 
--- a/jdk/src/share/classes/javax/sql/CommonDataSource.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/CommonDataSource.java	Wed Jun 18 10:55:17 2014 -0700
@@ -34,6 +34,7 @@
  * Interface that defines the methods which are common between <code>DataSource</code>,
  * <code>XADataSource</code> and <code>ConnectionPoolDataSource</code>.
  *
+ * @since 1.6
  */
 public interface CommonDataSource {
 
--- a/jdk/src/share/classes/javax/sql/rowset/BaseRowSet.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/BaseRowSet.java	Wed Jun 18 10:55:17 2014 -0700
@@ -291,6 +291,8 @@
 * extending class overrides and reimplements any <code>BaseRowSet</code> method and encounters
 * connectivity or underlying data source issues, that method <b>may</b> in addition throw an
 * <code>SQLException</code> object for that reason.
+*
+* @since 1.5
 */
 
 public abstract class BaseRowSet implements Serializable, Cloneable {
--- a/jdk/src/share/classes/javax/sql/rowset/CachedRowSet.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/CachedRowSet.java	Wed Jun 18 10:55:17 2014 -0700
@@ -626,6 +626,7 @@
  * </PRE>
  *
  * @author Jonathan Bruce
+ * @since 1.5
  */
 
 public interface CachedRowSet extends RowSet, Joinable {
--- a/jdk/src/share/classes/javax/sql/rowset/FilteredRowSet.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/FilteredRowSet.java	Wed Jun 18 10:55:17 2014 -0700
@@ -122,6 +122,7 @@
  * synchronized with the data source.
  *
  * @author Jonathan Bruce
+ * @since 1.5
  */
 
 public interface FilteredRowSet extends WebRowSet {
--- a/jdk/src/share/classes/javax/sql/rowset/JdbcRowSet.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/JdbcRowSet.java	Wed Jun 18 10:55:17 2014 -0700
@@ -118,6 +118,7 @@
  * requirements of connected and disconnected <code>RowSet</code> objects.
  *
  * @author Jonathan Bruce
+ * @since 1.5
  */
 
 public interface JdbcRowSet extends RowSet, Joinable {
--- a/jdk/src/share/classes/javax/sql/rowset/JoinRowSet.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/JoinRowSet.java	Wed Jun 18 10:55:17 2014 -0700
@@ -217,6 +217,7 @@
  *       This method creates a copy that can be persisted to the data source.
  * </UL>
  *
+ * @since 1.5
  */
 
 public interface JoinRowSet extends WebRowSet {
--- a/jdk/src/share/classes/javax/sql/rowset/Joinable.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/Joinable.java	Wed Jun 18 10:55:17 2014 -0700
@@ -129,6 +129,7 @@
  *
  * @see JoinRowSet
  * @author  Jonathan Bruce
+ * @since 1.5
  */
 public interface Joinable {
 
--- a/jdk/src/share/classes/javax/sql/rowset/Predicate.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/Predicate.java	Wed Jun 18 10:55:17 2014 -0700
@@ -97,6 +97,7 @@
  * applications that use both column identification conventions.
  *
  * @author Jonathan Bruce, Amit Handa
+ * @since 1.5
  *
  */
 
--- a/jdk/src/share/classes/javax/sql/rowset/RowSetMetaDataImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/RowSetMetaDataImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -48,6 +48,8 @@
  * Therefore, any <code>RowSetMetaDataImpl</code> method that retrieves information
  * is defined as having unspecified behavior when it is called
  * before the <code>RowSet</code> object contains data.
+ *
+ * @since 1.5
  */
 public class RowSetMetaDataImpl implements RowSetMetaData,  Serializable {
 
--- a/jdk/src/share/classes/javax/sql/rowset/RowSetWarning.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/RowSetWarning.java	Wed Jun 18 10:55:17 2014 -0700
@@ -50,6 +50,8 @@
  * The inherited methods <code>getMessage</code>, <code>getSQLState</code>,
  * and <code>getErrorCode</code> retrieve information contained in a
  * <code>RowSetWarning</code> object.
+ *
+ * @since 1.5
  */
 public class RowSetWarning extends SQLException {
 
--- a/jdk/src/share/classes/javax/sql/rowset/WebRowSet.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/WebRowSet.java	Wed Jun 18 10:55:17 2014 -0700
@@ -408,6 +408,7 @@
  * @see javax.sql.rowset.CachedRowSet
  * @see javax.sql.rowset.FilteredRowSet
  * @see javax.sql.rowset.JoinRowSet
+ * @since 1.5
  */
 
 public interface WebRowSet extends CachedRowSet {
--- a/jdk/src/share/classes/javax/sql/rowset/serial/SQLOutputImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/serial/SQLOutputImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -52,6 +52,8 @@
  * to write data from the <code>SQLData</code> object to
  * the <code>SQLOutputImpl</code> output stream as the
  * representation of an SQL user-defined type.
+ *
+ * @since 1.5
  */
 public class SQLOutputImpl implements SQLOutput {
 
--- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialArray.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialArray.java	Wed Jun 18 10:55:17 2014 -0700
@@ -56,6 +56,7 @@
  * SerialArray is to be used by more than one thread then access to the
  * SerialArray should be controlled by appropriate synchronization.
  *
+ * @since 1.5
  */
 public class SerialArray implements Array, Serializable, Cloneable {
 
--- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialBlob.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialBlob.java	Wed Jun 18 10:55:17 2014 -0700
@@ -58,6 +58,7 @@
  * should be controlled by appropriate synchronization.
  *
  * @author Jonathan Bruce
+ * @since 1.5
  */
 public class SerialBlob implements Blob, Serializable, Cloneable {
 
--- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialClob.java	Wed Jun 18 10:55:17 2014 -0700
@@ -49,7 +49,9 @@
  * <p> A SerialClob is not safe for use by multiple concurrent threads.  If a
  * SerialClob is to be used by more than one thread then access to the SerialClob
  * should be controlled by appropriate synchronization.
+ *
  * @author Jonathan Bruce
+ * @since 1.5
  */
 public class SerialClob implements Clob, Serializable, Cloneable {
 
--- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialDatalink.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialDatalink.java	Wed Jun 18 10:55:17 2014 -0700
@@ -48,6 +48,8 @@
  * A SerialDatalink is not safe for use by multiple concurrent threads.  If a
  * SerialDatalink is to be used by more than one thread then access to the
  * SerialDatalink should be controlled by appropriate synchronization.
+ *
+ * @since 1.5
  */
 public class SerialDatalink implements Serializable, Cloneable {
 
--- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialException.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialException.java	Wed Jun 18 10:55:17 2014 -0700
@@ -32,6 +32,7 @@
  * SQL types such as <code>BLOB, CLOB, STRUCT or ARRAY</code> in
  * addition to SQL types such as <code>DATALINK and JAVAOBJECT</code>
  *
+ * @since 1.5
  */
 public class SerialException extends java.sql.SQLException {
 
--- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialJavaObject.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialJavaObject.java	Wed Jun 18 10:55:17 2014 -0700
@@ -54,6 +54,7 @@
  * SerialJavaObject should be controlled by appropriate synchronization.
  *
  * @author Jonathan Bruce
+ * @since 1.5
  */
 public class SerialJavaObject implements Serializable, Cloneable {
 
--- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialRef.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialRef.java	Wed Jun 18 10:55:17 2014 -0700
@@ -43,6 +43,7 @@
  * SerialRef is to be used by more than one thread then access to the SerialRef
  * should be controlled by appropriate synchronization.
  *
+ * @since 1.5
  */
 public class SerialRef implements Ref, Serializable, Cloneable {
 
--- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialStruct.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialStruct.java	Wed Jun 18 10:55:17 2014 -0700
@@ -57,6 +57,7 @@
  * SerialStruct is to be used by more than one thread then access to the
  * SerialStruct should be controlled by appropriate synchronization.
  *
+ * @since 1.5
  */
 public class SerialStruct implements Struct, Serializable, Cloneable {
 
--- a/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	Wed Jun 18 10:55:17 2014 -0700
@@ -200,6 +200,7 @@
  * @author  Jonathan Bruce
  * @see javax.sql.rowset.spi.SyncProvider
  * @see javax.sql.rowset.spi.SyncFactoryException
+ * @since 1.5
  */
 public class SyncFactory {
 
--- a/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactoryException.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/spi/SyncFactoryException.java	Wed Jun 18 10:55:17 2014 -0700
@@ -35,6 +35,7 @@
  * @author Jonathan Bruce
  * @see javax.sql.rowset.spi.SyncFactory
  * @see javax.sql.rowset.spi.SyncFactoryException
+ * @since 1.5
  */
 public class SyncFactoryException extends java.sql.SQLException {
 
--- a/jdk/src/share/classes/javax/sql/rowset/spi/SyncProvider.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/spi/SyncProvider.java	Wed Jun 18 10:55:17 2014 -0700
@@ -209,6 +209,7 @@
  * @author Jonathan Bruce
  * @see javax.sql.rowset.spi.SyncFactory
  * @see javax.sql.rowset.spi.SyncFactoryException
+ * @since 1.5
  */
 public abstract class SyncProvider {
 
--- a/jdk/src/share/classes/javax/sql/rowset/spi/SyncProviderException.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/spi/SyncProviderException.java	Wed Jun 18 10:55:17 2014 -0700
@@ -61,6 +61,7 @@
  * @see javax.sql.rowset.spi.SyncFactory
  * @see javax.sql.rowset.spi.SyncResolver
  * @see javax.sql.rowset.spi.SyncFactoryException
+ * @since 1.5
  */
 public class SyncProviderException extends java.sql.SQLException {
 
--- a/jdk/src/share/classes/javax/sql/rowset/spi/SyncResolver.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/spi/SyncResolver.java	Wed Jun 18 10:55:17 2014 -0700
@@ -231,7 +231,9 @@
  *          }
  *      }
  * }</PRE>
+ *
  * @author  Jonathan Bruce
+ * @since 1.5
  */
 
 public interface SyncResolver extends RowSet {
--- a/jdk/src/share/classes/javax/sql/rowset/spi/TransactionalWriter.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/spi/TransactionalWriter.java	Wed Jun 18 10:55:17 2014 -0700
@@ -44,6 +44,8 @@
  * the <code>CachedRowSet</code> constant <code>COMMIT_ON_ACCEPT_CHANGES</code>
  * to <code>false</code> and use the <code>commit</code> and <code>rollback</code>
  * methods defined in this interface to manage transaction boundaries.
+ *
+ * @since 1.5
  */
 public interface TransactionalWriter extends RowSetWriter {
 
--- a/jdk/src/share/classes/javax/sql/rowset/spi/XmlReader.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/spi/XmlReader.java	Wed Jun 18 10:55:17 2014 -0700
@@ -46,6 +46,8 @@
  * rowset's <code>xmlReader</code> field. When the <code>WebRowSet</code>
  * object's <code>readXml</code> method is invoked, it in turn invokes
  * its XML reader's <code>readXML</code> method.
+ *
+ * @since 1.5
  */
 public interface XmlReader extends RowSetReader {
 
--- a/jdk/src/share/classes/javax/sql/rowset/spi/XmlWriter.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/sql/rowset/spi/XmlWriter.java	Wed Jun 18 10:55:17 2014 -0700
@@ -44,6 +44,8 @@
  * Writing a <code>WebRowSet</code> object includes printing the
  * rowset's data, metadata, and properties, all with the
  * appropriate XML tags.
+ *
+ * @since 1.5
  */
 public interface XmlWriter extends RowSetWriter {
 
--- a/jdk/src/share/classes/javax/swing/AbstractButton.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/AbstractButton.java	Wed Jun 18 10:55:17 2014 -0700
@@ -947,6 +947,7 @@
      * <p>
      * This is a JavaBeans bound property.
      *
+     * @param iconTextGap the space between icon and text if these properties are set.
      * @since 1.4
      * @see #getIconTextGap
      * @beaninfo
@@ -1337,6 +1338,7 @@
      * that of the <code>Action</code>.
      *
      * @param a the button's action
+     * @return the {@code PropertyChangeListener}
      * @since 1.3
      * @see Action
      * @see #setAction
@@ -2070,12 +2072,20 @@
         }
     }
 
-
+    /**
+     * Returns {@code ActionListener} that is added to model.
+     *
+     * @return the {@code ActionListener}
+     */
     protected ActionListener createActionListener() {
         return getHandler();
     }
 
-
+    /**
+     * Returns {@code ItemListener} that is added to model.
+     *
+     * @return the {@code ItemListener}
+     */
     protected ItemListener createItemListener() {
         return getHandler();
     }
@@ -2148,7 +2158,7 @@
         return listenerList.getListeners(ItemListener.class);
     }
 
-   /**
+    /**
      * Returns an array (length 1) containing the label or
      * <code>null</code> if the button is not selected.
      *
@@ -2164,6 +2174,12 @@
         return selectedObjects;
     }
 
+    /**
+     * Initialization of the {@code AbstractButton}.
+     *
+     * @param text  the text of the button
+     * @param icon  the Icon image to display on the button
+     */
     protected void init(String text, Icon icon) {
         if(text != null) {
             setText(text);
--- a/jdk/src/share/classes/javax/swing/AbstractSpinnerModel.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/AbstractSpinnerModel.java	Wed Jun 18 10:55:17 2014 -0700
@@ -131,6 +131,7 @@
      * myAbstractSpinnerModel.getListeners(ChangeListener.class);
      * </pre>
      *
+     * @param <T> the type of requested listeners
      * @param listenerType the type of listeners to return, e.g. ChangeListener.class
      * @return all of the objects receiving <em>listenerType</em> notifications
      *         from this model
--- a/jdk/src/share/classes/javax/swing/Action.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/Action.java	Wed Jun 18 10:55:17 2014 -0700
@@ -337,6 +337,9 @@
     /**
      * Gets one of this object's properties
      * using the associated key.
+     *
+     * @param key a {@code String} containing the key
+     * @return the {@code Object} value
      * @see #putValue
      */
     public Object getValue(String key);
--- a/jdk/src/share/classes/javax/swing/ActionMap.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/ActionMap.java	Wed Jun 18 10:55:17 2014 -0700
@@ -94,6 +94,9 @@
      * for <code>key</code>.
      * <p>In most instances, <code>key</code> will be
      * <code>action.getValue(NAME)</code>.
+     *
+     * @param key a key
+     * @param action a binding for {@code key}
      */
     public void put(Object key, Action action) {
         if (key == null) {
@@ -113,6 +116,9 @@
     /**
      * Returns the binding for <code>key</code>, messaging the
      * parent <code>ActionMap</code> if the binding is not locally defined.
+     *
+     * @param key a key
+     * @return the binding for {@code key}
      */
     public Action get(Object key) {
         Action value = (arrayTable == null) ? null :
@@ -130,6 +136,8 @@
 
     /**
      * Removes the binding for <code>key</code> from this <code>ActionMap</code>.
+     *
+     * @param key a key
      */
     public void remove(Object key) {
         if (arrayTable != null) {
@@ -148,6 +156,8 @@
 
     /**
      * Returns the <code>Action</code> names that are bound in this <code>ActionMap</code>.
+     *
+     * @return an array of the keys
      */
     public Object[] keys() {
         if (arrayTable == null) {
@@ -172,6 +182,8 @@
      * Returns an array of the keys defined in this <code>ActionMap</code> and
      * its parent. This method differs from <code>keys()</code> in that
      * this method includes the keys defined in the parent.
+     *
+     * @return an array of the keys
      */
     public Object[] allKeys() {
         int           count = size();
--- a/jdk/src/share/classes/javax/swing/ButtonGroup.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/ButtonGroup.java	Wed Jun 18 10:55:17 2014 -0700
@@ -167,9 +167,11 @@
     }
 
     /**
-     * Returns whether a <code>ButtonModel</code> is selected.
-     * @return <code>true</code> if the button is selected,
-     *   otherwise returns <code>false</code>
+     * Returns whether a {@code ButtonModel} is selected.
+     *
+     * @param m an isntance of {@code ButtonModel}
+     * @return {@code true} if the button is selected,
+     *   otherwise returns {@code false}
      */
     public boolean isSelected(ButtonModel m) {
         return (m == selection);
--- a/jdk/src/share/classes/javax/swing/ComboBoxEditor.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/ComboBoxEditor.java	Wed Jun 18 10:55:17 2014 -0700
@@ -34,23 +34,44 @@
  */
 public interface ComboBoxEditor {
 
-  /** Return the component that should be added to the tree hierarchy for
-    * this editor
-    */
+  /**
+   * Returns the component that should be added to the tree hierarchy for
+   * this editor
+   *
+   * @return the component
+   */
   public Component getEditorComponent();
 
-  /** Set the item that should be edited. Cancel any editing if necessary **/
+  /**
+   * Set the item that should be edited. Cancel any editing if necessary
+   *
+   * @param anObject an item
+   */
   public void setItem(Object anObject);
 
-  /** Return the edited item **/
+  /**
+   * Returns the edited item
+   *
+   * @return the edited item
+   */
   public Object getItem();
 
-  /** Ask the editor to start editing and to select everything **/
+  /**
+   * Ask the editor to start editing and to select everything
+   */
   public void selectAll();
 
-  /** Add an ActionListener. An action event is generated when the edited item changes **/
+  /**
+   * Add an ActionListener. An action event is generated when the edited item changes
+   *
+   * @param l an {@code ActionListener}
+   */
   public void addActionListener(ActionListener l);
 
-  /** Remove an ActionListener **/
+  /**
+   * Remove an ActionListener
+   *
+   * @param l an {@code ActionListener}
+   */
   public void removeActionListener(ActionListener l);
 }
--- a/jdk/src/share/classes/javax/swing/ComponentInputMap.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/ComponentInputMap.java	Wed Jun 18 10:55:17 2014 -0700
@@ -78,7 +78,9 @@
     }
 
     /**
-     * Returns the component the <code>InputMap</code> was created for.
+     * Returns the component the {@code InputMap} was created for.
+     *
+     * @return the component the {@code InputMap} was created for.
      */
     public JComponent getComponent() {
         return component;
--- a/jdk/src/share/classes/javax/swing/DefaultButtonModel.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/DefaultButtonModel.java	Wed Jun 18 10:55:17 2014 -0700
@@ -477,6 +477,7 @@
      * If no such listeners exist,
      * this method returns an empty array.
      *
+     * @param <T> the type of requested listeners
      * @param listenerType  the type of listeners requested;
      *          this parameter should specify an interface
      *          that descends from <code>java.util.EventListener</code>
--- a/jdk/src/share/classes/javax/swing/FocusManager.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/FocusManager.java	Wed Jun 18 10:55:17 2014 -0700
@@ -140,6 +140,7 @@
      * Returns whether the application has invoked
      * <code>disableSwingFocusManager()</code>.
      *
+     * @return {@code true} if focus manager is enabled.
      * @see #disableSwingFocusManager
      * @deprecated As of 1.4, replaced by
      *   <code>KeyboardFocusManager.getDefaultFocusTraversalPolicy()</code>
--- a/jdk/src/share/classes/javax/swing/GroupLayout.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/GroupLayout.java	Wed Jun 18 10:55:17 2014 -0700
@@ -670,6 +670,7 @@
      * @param resizable whether the group is resizable
      * @param anchorBaselineToTop whether the baseline is anchored to
      *        the top or bottom of the group
+     * @return the {@code ParallelGroup}
      * @see #createBaselineGroup
      * @see ParallelGroup
      */
--- a/jdk/src/share/classes/javax/swing/JColorChooser.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/JColorChooser.java	Wed Jun 18 10:55:17 2014 -0700
@@ -542,7 +542,7 @@
      * @return  a string representation of this <code>JColorChooser</code>
      */
     protected String paramString() {
-        StringBuffer chooserPanelsString = new StringBuffer("");
+        StringBuilder chooserPanelsString = new StringBuilder("");
         for (int i=0; i<chooserPanels.length; i++) {
             chooserPanelsString.append("[" + chooserPanels[i].toString()
                                        + "]");
--- a/jdk/src/share/classes/javax/swing/JComboBox.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/JComboBox.java	Wed Jun 18 10:55:17 2014 -0700
@@ -232,6 +232,13 @@
         updateUI();
     }
 
+    /**
+     * Registers ancestor listener so that it will receive
+     * {@code AncestorEvents} when it or any of its ancestors
+     * move or are made visible or invisible.
+     * Events are also sent when the component or its ancestors are added
+     * or removed from the containment hierarchy.
+     */
     protected void installAncestorListener() {
         addAncestorListener(new AncestorListener(){
                                 public void ancestorAdded(AncestorEvent event){ hidePopup();}
@@ -812,6 +819,8 @@
 
     /**
      * Sets the visibility of the popup.
+     *
+     * @param v if {@code true} shows the popup, otherwise, hides the popup.
      */
     public void setPopupVisible(boolean v) {
         getUI().setPopupVisible(this, v);
@@ -1144,6 +1153,7 @@
      * that of the <code>Action</code>.
      *
      * @param a the combobox's action
+     * @return the {@code PropertyChangeListener}
      * @since 1.3
      * @see Action
      * @see #setAction
@@ -1357,6 +1367,8 @@
      *
      * @param keyChar a char, typically this is a keyboard key
      *                  typed by the user
+     * @return {@code true} if there is an item corresponding to that character.
+     *         Otherwise, returns {@code false}.
      */
     public boolean selectWithKeyChar(char keyChar) {
         int index;
@@ -1443,6 +1455,7 @@
      * selection. Typically, the first selection with a matching first
      * character becomes the selected item.
      *
+     * @param aManager a key selection manager
      * @beaninfo
      *       expert: true
      *  description: The objects that changes the selection when a key is pressed.
--- a/jdk/src/share/classes/javax/swing/JOptionPane.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/JOptionPane.java	Wed Jun 18 10:55:17 2014 -0700
@@ -435,6 +435,7 @@
      * @exception HeadlessException if
      *   <code>GraphicsEnvironment.isHeadless</code> returns
      *   <code>true</code>
+     * @return user's input
      * @see java.awt.GraphicsEnvironment#isHeadless
      */
     public static String showInputDialog(Object message)
@@ -451,6 +452,7 @@
      * @param message the <code>Object</code> to display
      * @param initialSelectionValue the value used to initialize the input
      *                 field
+     * @return user's input
      * @since 1.4
      */
     public static String showInputDialog(Object message, Object initialSelectionValue) {
@@ -469,6 +471,7 @@
      * @exception HeadlessException if
      *    <code>GraphicsEnvironment.isHeadless</code> returns
      *    <code>true</code>
+     * @return user's input
      * @see java.awt.GraphicsEnvironment#isHeadless
      */
     public static String showInputDialog(Component parentComponent,
@@ -489,6 +492,7 @@
      * @param message the <code>Object</code> to display
      * @param initialSelectionValue the value used to initialize the input
      *                 field
+     * @return user's input
      * @since 1.4
      */
     public static String showInputDialog(Component parentComponent, Object message,
@@ -515,6 +519,7 @@
      *                  <code>WARNING_MESSAGE</code>,
      *                  <code>QUESTION_MESSAGE</code>,
      *                  or <code>PLAIN_MESSAGE</code>
+     * @return user's input
      * @exception HeadlessException if
      *   <code>GraphicsEnvironment.isHeadless</code> returns
      *   <code>true</code>
@@ -1348,6 +1353,7 @@
      * @param parentComponent  the parent <code>Component</code>
      *          for the dialog
      * @param message  the <code>Object</code> to display
+     * @return user's input
      */
     public static String showInternalInputDialog(Component parentComponent,
                                                  Object message) {
@@ -1368,6 +1374,7 @@
      * @param messageType the type of message that is to be displayed:
      *                    ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE,
      *                    QUESTION_MESSAGE, or PLAIN_MESSAGE
+     * @return user's input
      */
     public static String showInternalInputDialog(Component parentComponent,
                              Object message, String title, int messageType) {
@@ -2246,6 +2253,8 @@
      * <p>
      * This is a bound property.
      *
+     * @param newValue if true, an input component whose parent is {@code parentComponent}
+     *                 is provided to allow the user to input a value.
      * @see #setSelectionValues
      * @see #setInputValue
      * @beaninfo
--- a/jdk/src/share/classes/javax/swing/JProgressBar.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/JProgressBar.java	Wed Jun 18 10:55:17 2014 -0700
@@ -665,6 +665,7 @@
      * to the {@code ChangeListener}s that have been added directly to the
      * progress bar.
      *
+     * @return the instance of a custom {@code ChangeListener} implementation.
      * @see #changeListener
      * @see #fireStateChanged
      * @see javax.swing.event.ChangeListener
--- a/jdk/src/share/classes/javax/swing/JRadioButton.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/JRadioButton.java	Wed Jun 18 10:55:17 2014 -0700
@@ -118,6 +118,7 @@
      * Creates a radiobutton where properties are taken from the
      * Action supplied.
      *
+     * @param a an {@code Action}
      * @since 1.3
      */
     public JRadioButton(Action a) {
@@ -175,6 +176,8 @@
      *
      * @param text  the string displayed on the radio button
      * @param icon  the image that the button should display
+     * @param selected if {@code true}, the button is initially selected
+     *                 otherwise, the button is initially unselected
      */
     public JRadioButton (String text, Icon icon, boolean selected) {
         super(text, icon, selected);
--- a/jdk/src/share/classes/javax/swing/JRadioButtonMenuItem.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/JRadioButtonMenuItem.java	Wed Jun 18 10:55:17 2014 -0700
@@ -173,6 +173,8 @@
      *
      * @param text  the string displayed on the radio button
      * @param icon  the image that the button should display
+     * @param selected if {@code true}, the button is initially selected,
+     *                 otherwise, the button is initially unselected
      */
     public JRadioButtonMenuItem(String text, Icon icon, boolean selected) {
         super(text, icon);
--- a/jdk/src/share/classes/javax/swing/JScrollBar.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/JScrollBar.java	Wed Jun 18 10:55:17 2014 -0700
@@ -149,6 +149,12 @@
      * @see #setVisibleAmount
      * @see #setMinimum
      * @see #setMaximum
+     *
+     * @param orientation an orientation of the {@code JScrollBar}
+     * @param value an int giving the current value
+     * @param extent an int giving the amount by which the value can "jump"
+     * @param min an int giving the minimum value
+     * @param max an int giving the maximum value
      */
     public JScrollBar(int orientation, int value, int extent, int min, int max)
     {
@@ -172,6 +178,8 @@
      * value = 0
      * extent = 10
      * </pre>
+     *
+     * @param orientation an orientation of the {@code JScrollBar}
      */
     public JScrollBar(int orientation) {
         this(orientation, 0, 10, 0, 100);
@@ -213,6 +221,7 @@
      * Returns the delegate that implements the look and feel for
      * this component.
      *
+     * @return the scroll bar's current UI.
      * @see JComponent#setUI
      */
     public ScrollBarUI getUI() {
@@ -258,6 +267,7 @@
      * Set the scrollbar's orientation to either VERTICAL or
      * HORIZONTAL.
      *
+     * @param orientation an orientation of the {@code JScrollBar}
      * @exception IllegalArgumentException if orientation is not one of VERTICAL, HORIZONTAL
      * @see #getOrientation
      * @beaninfo
@@ -293,6 +303,8 @@
      * Returns data model that handles the scrollbar's four
      * fundamental properties: minimum, maximum, value, extent.
      *
+     * @return the data model
+     *
      * @see #setModel
      */
     public BoundedRangeModel getModel() {
@@ -304,6 +316,7 @@
      * Sets the model that handles the scrollbar's four
      * fundamental properties: minimum, maximum, value, extent.
      *
+     * @param newModel a new model
      * @see #getModel
      * @beaninfo
      *       bound: true
@@ -583,6 +596,8 @@
      * scrollbar model will not generate ChangeEvents while
      * valueIsAdjusting is true.
      *
+     * @param b {@code true} if the upcoming changes to the value property are part of a series
+     *
      * @see #getValueIsAdjusting
      * @see BoundedRangeModel#setValueIsAdjusting
      * @beaninfo
@@ -610,6 +625,10 @@
      * minimum &le; value &le; value+extent &le; maximum
      * </pre>
      *
+     * @param newValue an int giving the current value
+     * @param newExtent an int giving the amount by which the value can "jump"
+     * @param newMin an int giving the minimum value
+     * @param newMax an int giving the maximum value
      *
      * @see BoundedRangeModel#setRangeProperties
      * @see #setValue
@@ -681,6 +700,10 @@
     /**
      * Notify listeners that the scrollbar's model has changed.
      *
+     * @param id an integer indicating the type of event.
+     * @param type an integer indicating the adjustment type.
+     * @param value the current value of the adjustment
+     *
      * @see #addAdjustmentListener
      * @see EventListenerList
      */
--- a/jdk/src/share/classes/javax/swing/JToggleButton.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/JToggleButton.java	Wed Jun 18 10:55:17 2014 -0700
@@ -140,6 +140,7 @@
      * Creates a toggle button where properties are taken from the
      * Action supplied.
      *
+     * @param a an instance of an {@code Action}
      * @since 1.3
      */
     public JToggleButton(Action a) {
@@ -390,6 +391,9 @@
     protected class AccessibleJToggleButton extends AccessibleAbstractButton
             implements ItemListener {
 
+        /**
+         * Constructs {@code AccessibleJToggleButton}
+         */
         public AccessibleJToggleButton() {
             super();
             JToggleButton.this.addItemListener(this);
--- a/jdk/src/share/classes/javax/swing/JToolBar.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/JToolBar.java	Wed Jun 18 10:55:17 2014 -0700
@@ -161,6 +161,8 @@
 
     /**
      * Returns the tool bar's current UI.
+     *
+     * @return the tool bar's current UI.
      * @see #setUI
      */
     public ToolBarUI getUI() {
@@ -555,7 +557,8 @@
      * or <code>null</code> if the default
      * property change listener for the control is desired.
      *
-     * @return <code>null</code>
+     * @param b a {@code JButton}
+     * @return {@code null}
      */
     protected PropertyChangeListener createActionChangeListener(JButton b) {
         return null;
--- a/jdk/src/share/classes/javax/swing/JTree.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/JTree.java	Wed Jun 18 10:55:17 2014 -0700
@@ -986,6 +986,7 @@
      * or equal to 0 the height for each row is determined by the
      * renderer.
      *
+     * @return the height of each row
      */
     public int getRowHeight()
     {
@@ -1115,6 +1116,7 @@
      * <p>
      * This is a bound property.
      *
+     * @param clickCount the number of mouse clicks to get a node expanded or closed
      * @since 1.3
      * @beaninfo
      *        bound: true
@@ -1508,6 +1510,7 @@
      * is provided as an entry point for subclassers to add filtered
      * editing without having to resort to creating a new editor.
      *
+     * @param path a {@code TreePath} identifying a node
      * @return true if every parent node and the node itself is editable
      * @see #isEditable
      */
@@ -1984,6 +1987,8 @@
     /**
      * Returns true if the node identified by the path has ever been
      * expanded.
+     *
+     * @param path a {@code TreePath} identifying a node
      * @return true if the <code>path</code> has ever been expanded
      */
     public boolean hasBeenExpanded(TreePath path) {
@@ -2079,6 +2084,7 @@
      * which means it is either the root or all of its parents are expanded.
      * Otherwise, this method returns false.
      *
+     * @param path {@code TreePath} identifying a node
      * @return true if the node is viewable, otherwise false
      */
     public boolean isVisible(TreePath path) {
@@ -2472,6 +2478,7 @@
      * set the selection model to <code>null</code>, which forces an empty
      * selection model to be used.
      *
+     * @return the model for selections
      * @see #setSelectionModel
      */
     public TreeSelectionModel getSelectionModel() {
@@ -2817,6 +2824,7 @@
      *
      * @param path the <code>TreePath</code> indicating the node that was
      *          expanded
+     * @throws ExpandVetoException if the expansion is prevented from occurring
      * @see EventListenerList
      */
      public void fireTreeWillExpand(TreePath path) throws ExpandVetoException {
@@ -2843,6 +2851,7 @@
      *
      * @param path the <code>TreePath</code> indicating the node that was
      *          expanded
+     * @throws ExpandVetoException if the collapse is prevented from occurring
      * @see EventListenerList
      */
      public void fireTreeWillCollapse(TreePath path) throws ExpandVetoException {
@@ -3541,6 +3550,11 @@
      * <code>path</code> are marked EXPANDED, but <code>path</code> itself
      * is marked collapsed.<p>
      * This will fail if a <code>TreeWillExpandListener</code> vetos it.
+     *
+     * @param path a {@code TreePath} identifying a node
+     * @param state if {@code true}, all parents of @{code path} and path are marked as expanded.
+     *              Otherwise, all parents of {@code path} are marked EXPANDED,
+     *              but {@code path} itself is marked collapsed.
      */
     protected void setExpandedState(TreePath path, boolean state) {
         if(path != null) {
@@ -3636,9 +3650,12 @@
     }
 
     /**
-     * Returns an <code>Enumeration</code> of <code>TreePaths</code>
+     * Returns an {@code Enumeration} of {@code TreePaths}
      * that have been expanded that
-     * are descendants of <code>parent</code>.
+     * are descendants of {@code parent}.
+     *
+     * @param parent a path
+     * @return the {@code Enumeration} of {@code TreePaths}
      */
     protected Enumeration<TreePath>
         getDescendantToggledPaths(TreePath parent)
@@ -3701,6 +3718,8 @@
       * <p>
       * For more information on what expanded state means, see the
       * <a href=#jtree_description>JTree description</a> above.
+      *
+      * @return the instance of {@code TreeModelHandler}
       */
      protected TreeModelListener createTreeModelListener() {
          return new TreeModelHandler();
@@ -3711,6 +3730,9 @@
      * <code>path</code>. If <code>includePath</code> is true and
      * <code>path</code> is selected, it will be removed from the selection.
      *
+     * @param path a path
+     * @param includePath is {@code true} and {@code path} is selected,
+     *                    it will be removed from the selection.
      * @return true if a descendant was selected
      * @since 1.3
      */
@@ -3891,6 +3913,9 @@
          * elements are added is children, otherwise if <code>children</code>
          * is a hashtable all the key/value pairs are added in the order
          * <code>Enumeration</code> returns them.
+         *
+         * @param parent the parent node
+         * @param children the children
          */
         public static void createChildren(DefaultMutableTreeNode parent,
                                           Object children) {
@@ -4113,6 +4138,9 @@
         TreePath   leadSelectionPath;
         Accessible leadSelectionAccessible;
 
+        /**
+         * Constructs {@code AccessibleJTree}
+         */
         public AccessibleJTree() {
             // Add a tree model listener for JTree
             TreeModel model = JTree.this.getModel();
@@ -4551,7 +4579,11 @@
             private boolean isLeaf = false;
 
             /**
-             *  Constructs an AccessibleJTreeNode
+             * Constructs an AccessibleJTreeNode
+             *
+             * @param t an instance of {@code JTree}
+             * @param p an instance of {@code TreePath}
+             * @param ap an instance of {@code Accessible}
              * @since 1.4
              */
             public AccessibleJTreeNode(JTree t, TreePath p, Accessible ap) {
@@ -5183,6 +5215,11 @@
                 }
             }
 
+            /**
+             * Returns the relative location of the node
+             *
+             * @return the relative location of the node
+             */
             protected Point getLocationInJTree() {
                 Rectangle r = tree.getPathBounds(path);
                 if (r != null) {
--- a/jdk/src/share/classes/javax/swing/ListSelectionModel.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/ListSelectionModel.java	Wed Jun 18 10:55:17 2014 -0700
@@ -134,18 +134,25 @@
 
     /**
      * Returns the first selected index or -1 if the selection is empty.
+     *
+     * @return the first selected index or -1 if the selection is empty.
      */
     int getMinSelectionIndex();
 
 
     /**
      * Returns the last selected index or -1 if the selection is empty.
+     *
+     * @return the last selected index or -1 if the selection is empty.
      */
     int getMaxSelectionIndex();
 
 
     /**
      * Returns true if the specified index is selected.
+     *
+     * @param index an index
+     * @return {@code true} if the specified index is selected
      */
     boolean isSelectedIndex(int index);
 
@@ -158,6 +165,7 @@
      * indices specially, e.g. Windows95 displays the lead index with a
      * dotted yellow outline.
      *
+     * @return the anchor selection index
      * @see #getLeadSelectionIndex
      * @see #setSelectionInterval
      * @see #addSelectionInterval
@@ -168,6 +176,7 @@
     /**
      * Set the anchor selection index.
      *
+     * @param index the anchor selection index
      * @see #getAnchorSelectionIndex
      */
     void setAnchorSelectionIndex(int index);
@@ -177,6 +186,7 @@
      * Return the second index argument from the most recent call to
      * setSelectionInterval(), addSelectionInterval() or removeSelectionInterval().
      *
+     * @return the lead selection index.
      * @see #getAnchorSelectionIndex
      * @see #setSelectionInterval
      * @see #addSelectionInterval
@@ -186,6 +196,7 @@
     /**
      * Set the lead selection index.
      *
+     * @param index the lead selection index
      * @see #getLeadSelectionIndex
      */
     void setLeadSelectionIndex(int index);
@@ -200,20 +211,30 @@
 
     /**
      * Returns true if no indices are selected.
+     *
+     * @return {@code true} if no indices are selected.
      */
     boolean isSelectionEmpty();
 
     /**
-     * Insert length indices beginning before/after index.  This is typically
+     * Insert {@code length} indices beginning before/after {@code index}. This is typically
      * called to sync the selection model with a corresponding change
      * in the data model.
+     *
+     * @param index the beginning of the interval
+     * @param length the length of the interval
+     * @param before if {@code true}, interval inserts before the {@code index},
+     *               otherwise, interval inserts after the {@code index}
      */
     void insertIndexInterval(int index, int length, boolean before);
 
     /**
-     * Remove the indices in the interval index0,index1 (inclusive) from
+     * Remove the indices in the interval {@code index0,index1} (inclusive) from
      * the selection model.  This is typically called to sync the selection
      * model width a corresponding change in the data model.
+     *
+     * @param index0 the beginning of the interval
+     * @param index1 the end of the interval
      */
     void removeIndexInterval(int index0, int index1);
 
@@ -272,6 +293,7 @@
      *   In this mode, there's no restriction on what can be selected.
      * </ul>
      *
+     * @param selectionMode the selection mode
      * @see #getSelectionMode
      * @throws IllegalArgumentException if the selection mode isn't
      *         one of those allowed
--- a/jdk/src/share/classes/javax/swing/MultiUIDefaults.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/MultiUIDefaults.java	Wed Jun 18 10:55:17 2014 -0700
@@ -190,18 +190,18 @@
 
     @Override
     public synchronized String toString() {
-        StringBuffer buf = new StringBuffer();
-        buf.append("{");
+        StringBuilder sb = new StringBuilder();
+        sb.append("{");
         Enumeration keys = keys();
         while (keys.hasMoreElements()) {
             Object key = keys.nextElement();
-            buf.append(key + "=" + get(key) + ", ");
+            sb.append(key + "=" + get(key) + ", ");
         }
-        int length = buf.length();
+        int length = sb.length();
         if (length > 1) {
-            buf.delete(length-2, length);
+            sb.delete(length-2, length);
         }
-        buf.append("}");
-        return buf.toString();
+        sb.append("}");
+        return sb.toString();
     }
 }
--- a/jdk/src/share/classes/javax/swing/RepaintManager.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/RepaintManager.java	Wed Jun 18 10:55:17 2014 -0700
@@ -331,6 +331,7 @@
      * for the event dispatching thread that will validate the components
      * first isValidateRoot() ancestor.
      *
+     * @param invalidComponent a component
      * @see JComponent#isValidateRoot
      * @see #removeInvalidComponent
      */
@@ -374,6 +375,7 @@
     /**
      * Remove a component from the list of invalid components.
      *
+     * @param component a component
      * @see #addInvalidComponent
      */
     public synchronized void removeInvalidComponent(JComponent component) {
@@ -610,9 +612,13 @@
         return false;
     }
 
-    /** Return the current dirty region for a component.
-     *  Return an empty rectangle if the component is not
-     *  dirty.
+    /**
+     * Return the current dirty region for a component.
+     * Return an empty rectangle if the component is not
+     * dirty.
+     *
+     * @param aComponent a component
+     * @return the region
      */
     public Rectangle getDirtyRegion(JComponent aComponent) {
         RepaintManager delegate = getDelegate(aComponent);
@@ -632,6 +638,8 @@
     /**
      * Mark a component completely dirty. <b>aComponent</b> will be
      * completely painted during the next paintDirtyRegions() call.
+     *
+     * @param aComponent a component
      */
     public void markCompletelyDirty(JComponent aComponent) {
         RepaintManager delegate = getDelegate(aComponent);
@@ -645,6 +653,8 @@
     /**
      * Mark a component completely clean. <b>aComponent</b> will not
      * get painted during the next paintDirtyRegions() call.
+     *
+     * @param aComponent a component
      */
     public void markCompletelyClean(JComponent aComponent) {
         RepaintManager delegate = getDelegate(aComponent);
@@ -662,6 +672,10 @@
      * painted during the next paintDirtyRegions(). If computing dirty regions is
      * expensive for your component, use this method and avoid computing dirty region
      * if it return true.
+     *
+     * @param aComponent a component
+     * @return {@code true} if <b>aComponent</b> will be completely
+     *         painted during the next paintDirtyRegions().
      */
     public boolean isCompletelyDirty(JComponent aComponent) {
         RepaintManager delegate = getDelegate(aComponent);
@@ -975,20 +989,26 @@
      * @return a String representation of this object
      */
     public synchronized String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         if(dirtyComponents != null)
             sb.append("" + dirtyComponents);
         return sb.toString();
     }
 
 
-   /**
+    /**
      * Return the offscreen buffer that should be used as a double buffer with
      * the component <code>c</code>.
      * By default there is a double buffer per RepaintManager.
      * The buffer might be smaller than <code>(proposedWidth,proposedHeight)</code>
      * This happens when the maximum double buffer size as been set for the receiving
      * repaint manager.
+     *
+     * @param c the component
+     * @param proposedWidth the width of the buffer
+     * @param proposedHeight the height of the buffer
+     *
+     * @return the image
      */
     public Image getOffscreenBuffer(Component c,int proposedWidth,int proposedHeight) {
         RepaintManager delegate = getDelegate(c);
@@ -998,18 +1018,23 @@
         return _getOffscreenBuffer(c, proposedWidth, proposedHeight);
     }
 
-  /**
-   * Return a volatile offscreen buffer that should be used as a
-   * double buffer with the specified component <code>c</code>.
-   * The image returned will be an instance of VolatileImage, or null
-   * if a VolatileImage object could not be instantiated.
-   * This buffer might be smaller than <code>(proposedWidth,proposedHeight)</code>.
-   * This happens when the maximum double buffer size has been set for this
-   * repaint manager.
-   *
-   * @see java.awt.image.VolatileImage
-   * @since 1.4
-   */
+    /**
+     * Return a volatile offscreen buffer that should be used as a
+     * double buffer with the specified component <code>c</code>.
+     * The image returned will be an instance of VolatileImage, or null
+     * if a VolatileImage object could not be instantiated.
+     * This buffer might be smaller than <code>(proposedWidth,proposedHeight)</code>.
+     * This happens when the maximum double buffer size has been set for this
+     * repaint manager.
+     *
+     * @param c the component
+     * @param proposedWidth the width of the buffer
+     * @param proposedHeight the height of the buffer
+     *
+     * @return the volatile image
+     * @see java.awt.image.VolatileImage
+     * @since 1.4
+     */
     public Image getVolatileOffscreenBuffer(Component c,
                                             int proposedWidth,int proposedHeight) {
         RepaintManager delegate = getDelegate(c);
@@ -1104,7 +1129,11 @@
     }
 
 
-    /** Set the maximum double buffer size. **/
+    /**
+     * Set the maximum double buffer size.
+     *
+     * @param d the dimension
+     */
     public void setDoubleBufferMaximumSize(Dimension d) {
         doubleBufferMaxSize = d;
         if (doubleBufferMaxSize == null) {
--- a/jdk/src/share/classes/javax/swing/RootPaneContainer.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/RootPaneContainer.java	Wed Jun 18 10:55:17 2014 -0700
@@ -132,6 +132,7 @@
      * Generally implemented with<pre>
      *    getRootPane().setLayeredPane(layeredPane);</pre>
      *
+     * @param layeredPane the layered pane
      * @exception java.awt.IllegalComponentStateException (a runtime
      *            exception) if the layered pane parameter is null
      * @see #getLayeredPane
@@ -162,6 +163,7 @@
      * Generally implemented with
      * <code>getRootPane().setGlassPane(glassPane);</code>
      *
+     * @param glassPane the glass pane
      * @see #getGlassPane
      * @see JRootPane#setGlassPane
      */
--- a/jdk/src/share/classes/javax/swing/ScrollPaneLayout.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/ScrollPaneLayout.java	Wed Jun 18 10:55:17 2014 -0700
@@ -168,6 +168,8 @@
      * };
      * scrollpane.setLayout(mySPLayout):
      * </pre>
+     *
+     * @param sp an instance of the {@code JScrollPane}
      */
     public void syncWithScrollPane(JScrollPane sp) {
         viewport = sp.getViewport();
@@ -1106,6 +1108,7 @@
      * Returns the bounds of the border around the specified scroll pane's
      * viewport.
      *
+     * @param scrollpane an instance of the {@code JScrollPane}
      * @return the size and position of the viewport border
      * @deprecated As of JDK version Swing1.1
      *    replaced by <code>JScrollPane.getViewportBorderBounds()</code>.
--- a/jdk/src/share/classes/javax/swing/SwingUtilities.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/SwingUtilities.java	Wed Jun 18 10:55:17 2014 -0700
@@ -103,15 +103,23 @@
     }
 
     /**
-     * Return true if <code>a</code> contains <code>b</code>
+     * Return {@code true} if @{code a} contains {@code b}
+     *
+     * @param a the first rectangle
+     * @param b the second rectangle
+     *
+     * @return {@code true} if @{code a} contains {@code b}
      */
-    public static final boolean isRectangleContainingRectangle(Rectangle a,Rectangle b) {
+    public static boolean isRectangleContainingRectangle(Rectangle a,Rectangle b) {
         return b.x >= a.x && (b.x + b.width) <= (a.x + a.width) &&
                 b.y >= a.y && (b.y + b.height) <= (a.y + a.height);
     }
 
     /**
-     * Return the rectangle (0,0,bounds.width,bounds.height) for the component <code>aComponent</code>
+     * Return the rectangle (0,0,bounds.width,bounds.height) for the component {@code aComponent}
+     *
+     * @param aComponent a component
+     * @return the local bounds for the component {@code aComponent}
      */
     public static Rectangle getLocalBounds(Component aComponent) {
         Rectangle b = new Rectangle(aComponent.getBounds());
@@ -165,6 +173,12 @@
      * root component coordinate system.
      * If both <code>source</code> and <code>destination</code> are {@code null}, return <code>aPoint</code>
      * without any conversion.
+     *
+     * @param source the source component
+     * @param aPoint the point
+     * @param destination the destination component
+     *
+     * @return the converted coordinate
      */
     public static Point convertPoint(Component source,Point aPoint,Component destination) {
         Point p;
@@ -196,6 +210,13 @@
      * root component coordinate system.
      * If both <code>source</code> and <code>destination</code> are {@code null}, return <code>(x,y)</code>
      * without any conversion.
+     *
+     * @param source the source component
+     * @param x the x-coordinate of the point
+     * @param y the y-coordinate of the point
+     * @param destination the destination component
+     *
+     * @return the converted coordinate
      */
     public static Point convertPoint(Component source,int x, int y,Component destination) {
         Point point = new Point(x,y);
@@ -211,6 +232,12 @@
      * root component coordinate system.
      * If both <code>source</code> and <code>destination</code> are {@code null}, return <code>aRectangle</code>
      * without any conversion.
+     *
+     * @param source the source component
+     * @param aRectangle a rectangle
+     * @param destination the destination component
+     *
+     * @return the converted rectangle
      */
     public static Rectangle convertRectangle(Component source,Rectangle aRectangle,Component destination) {
         Point point = new Point(aRectangle.x,aRectangle.y);
@@ -222,6 +249,12 @@
      * Convenience method for searching above <code>comp</code> in the
      * component hierarchy and returns the first object of class <code>c</code> it
      * finds. Can return {@code null}, if a class <code>c</code> cannot be found.
+     *
+     * @param c the class of a component
+     * @param comp the component
+     *
+     * @return the ancestor of the {@code comp},
+     *         or {@code null} if {@code c} cannot be found.
      */
     public static Container getAncestorOfClass(Class<?> c, Component comp)
     {
@@ -238,6 +271,12 @@
      * Convenience method for searching above <code>comp</code> in the
      * component hierarchy and returns the first object of <code>name</code> it
      * finds. Can return {@code null}, if <code>name</code> cannot be found.
+     *
+     * @param name the name of a component
+     * @param comp the component
+     *
+     * @return the ancestor of the {@code comp},
+     *         or {@code null} if {@code name} cannot be found.
      */
     public static Container getAncestorNamed(String name, Component comp) {
         if(comp == null || name == null)
@@ -260,6 +299,8 @@
      * @param parent the root component to begin the search
      * @param x the x target location
      * @param y the y target location
+     *
+     * @return the deepest component
      */
     public static Component getDeepestComponentAt(Component parent, int x, int y) {
         if (!parent.contains(x, y)) {
@@ -297,6 +338,12 @@
      * to <code>destination</code> if destination is non-{@code null}
      * use the translateMouseEvent() method to translate a mouse event from
      * one component to another without changing the source.
+     *
+     * @param source the source component
+     * @param sourceEvent the source mouse event
+     * @param destination the destination component
+     *
+     * @return the new mouse event
      */
     public static MouseEvent convertMouseEvent(Component source,
                                                MouseEvent sourceEvent,
@@ -456,7 +503,11 @@
     }
 
     /**
-     * Return <code>true</code> if a component <code>a</code> descends from a component <code>b</code>
+     * Return {@code true} if a component {@code a} descends from a component {@code b}
+     *
+     * @param a the first component
+     * @param b the second component
+     * @return {@code true} if a component {@code a} descends from a component {@code b}
      */
     public static boolean isDescendingFrom(Component a,Component b) {
         if(a == b)
@@ -531,6 +582,12 @@
      * Convenience returning an array of rect representing the regions within
      * <code>rectA</code> that do not overlap with <code>rectB</code>. If the
      * two Rects do not overlap, returns an empty array
+     *
+     * @param rectA the first rectangle
+     * @param rectB the second rectangle
+     *
+     * @return an array of rectangles representing the regions within {@code rectA}
+     *         that do not overlap with {@code rectB}.
      */
     public static Rectangle[] computeDifference(Rectangle rectA,Rectangle rectB) {
         if (rectB == null || !rectA.intersects(rectB) || isRectangleContainingRectangle(rectB,rectA)) {
@@ -841,6 +898,21 @@
      * relative to the viewR rectangle.
      * The JComponents orientation (LEADING/TRAILING) will also be taken
      * into account and translated into LEFT/RIGHT values accordingly.
+     *
+     * @param c the component
+     * @param fm the instance of {@code FontMetrics}
+     * @param text the text
+     * @param icon the icon
+     * @param verticalAlignment the vertical alignment
+     * @param horizontalAlignment the horizontal alignment
+     * @param verticalTextPosition the vertical text position
+     * @param horizontalTextPosition the horizontal text position
+     * @param viewR the available rectangle
+     * @param iconR the rectangle for the icon
+     * @param textR the rectangle for the text
+     * @param textIconGap the gap between text and icon
+     *
+     * @return the possibly clipped version of the compound labels string
      */
     public static String layoutCompoundLabel(JComponent c,
                                              FontMetrics fm,
@@ -910,6 +982,20 @@
      * values in horizontalTextPosition (they will default to RIGHT) and in
      * horizontalAlignment (they will default to CENTER).
      * Use the other version of layoutCompoundLabel() instead.
+     *
+     * @param fm the instance of {@code FontMetrics}
+     * @param text the text
+     * @param icon the icon
+     * @param verticalAlignment the vertical alignment
+     * @param horizontalAlignment the horizontal alignment
+     * @param verticalTextPosition the vertical text position
+     * @param horizontalTextPosition the horizontal text position
+     * @param viewR the available rectangle
+     * @param iconR the rectangle for the icon
+     * @param textR the rectangle for the text
+     * @param textIconGap the gap between text and icon
+     *
+     * @return the possibly clipped version of the compound labels string
      */
     public static String layoutCompoundLabel(
         FontMetrics fm,
@@ -1219,6 +1305,8 @@
      * A simple minded look and feel change: ask each node in the tree
      * to <code>updateUI()</code> -- that is, to initialize its UI property
      * with the current look and feel.
+     *
+     * @param c the component
      */
     public static void updateComponentTreeUI(Component c) {
         updateComponentTreeUI0(c);
@@ -1284,6 +1372,7 @@
      * <p>
      * Unlike the rest of Swing, this method can be invoked from any thread.
      *
+     * @param doRun the instance of {@code Runnable}
      * @see #invokeAndWait
      */
     public static void invokeLater(Runnable doRun) {
@@ -1334,6 +1423,7 @@
      * As of 1.3 this method is just a cover for
      * <code>java.awt.EventQueue.invokeAndWait()</code>.
      *
+     * @param doRun the instance of {@code Runnable}
      * @exception  InterruptedException if we're interrupted while waiting for
      *             the event dispatching thread to finish executing
      *             <code>doRun.run()</code>
@@ -1374,6 +1464,7 @@
      * Component.AccessibleAWTComponent.getAccessibleIndexInParent() instead
      * of using this method.
      *
+     * @param c the component
      * @return -1 of this object does not have an accessible parent.
      * Otherwise, the index of the child in its accessible parent.
      */
@@ -1386,6 +1477,8 @@
      * local coordinate <code>Point</code>, if one exists.
      * Otherwise returns <code>null</code>.
      *
+     * @param c the component
+     * @param p the local coordinate
      * @return the <code>Accessible</code> at the specified location,
      *    if it exists; otherwise <code>null</code>
      */
@@ -1431,6 +1524,7 @@
      * Component.AccessibleAWTComponent.getAccessibleIndexInParent() instead
      * of using this method.
      *
+     * @param c the component
      * @return an instance of AccessibleStateSet containing the current state
      * set of the object
      * @see AccessibleState
@@ -1448,6 +1542,7 @@
      * Component.AccessibleAWTComponent.getAccessibleIndexInParent() instead
      * of using this method.
      *
+     * @param c the component
      * @return the number of accessible children in the object.
      */
     public static int getAccessibleChildrenCount(Component c) {
@@ -1461,6 +1556,7 @@
      * Component.AccessibleAWTComponent.getAccessibleIndexInParent() instead
      * of using this method.
      *
+     * @param c the component
      * @param i zero-based index of child
      * @return the nth Accessible child of the object
      */
@@ -1502,6 +1598,8 @@
     /**
      * If c is a JRootPane descendant return its JRootPane ancestor.
      * If c is a RootPaneContainer then return its JRootPane.
+     *
+     * @param c the component
      * @return the JRootPane for Component c or {@code null}.
      */
     public static JRootPane getRootPane(Component c) {
@@ -1519,6 +1617,8 @@
 
     /**
      * Returns the root component for the current component tree.
+     *
+     * @param c the component
      * @return the first ancestor of c that's a Window or the last Applet ancestor
      */
     public static Component getRoot(Component c) {
@@ -1616,6 +1716,14 @@
      * This will return true if <code>action</code> is non-{@code null} and
      * actionPerformed is invoked on it.
      *
+     * @param action an action
+     * @param ks a key stroke
+     * @param event a key event
+     * @param sender a sender
+     * @param modifiers action modifiers
+     * @return {@code true} if {@code action} is non-{@code null} and
+     *         actionPerformed is invoked on it.
+     *
      * @since 1.3
      */
     public static boolean notifyAction(Action action, KeyStroke ks,
@@ -1672,6 +1780,9 @@
      * to <code>uiInputMap</code>. If <code>uiInputMap</code> is {@code null},
      * this removes any previously installed UI InputMap.
      *
+     * @param component a component
+     * @param type a type
+     * @param uiInputMap an {@code InputMap}
      * @since 1.3
      */
     public static void replaceUIInputMap(JComponent component, int type,
@@ -1694,6 +1805,8 @@
      * to <code>uiActionMap</code>. If <code>uiActionMap</code> is {@code null},
      * this removes any previously installed UI ActionMap.
      *
+     * @param component a component
+     * @param uiActionMap an {@code ActionMap}
      * @since 1.3
      */
     public static void replaceUIActionMap(JComponent component,
@@ -1714,9 +1827,14 @@
     /**
      * Returns the InputMap provided by the UI for condition
      * <code>condition</code> in component <code>component</code>.
-     * <p>This will return {@code null} if the UI has not installed a InputMap
+     * <p>This will return {@code null} if the UI has not installed an InputMap
      * of the specified type.
      *
+     * @param component a component
+     * @param condition a condition
+     * @return the {@code ActionMap} provided by the UI for {@code condition}
+     *         in the component, or {@code null} if the UI has not installed
+     *         an InputMap of the specified type.
      * @since 1.3
      */
     public static InputMap getUIInputMap(JComponent component, int condition) {
@@ -1736,6 +1854,9 @@
      * in component <code>component</code>.
      * <p>This will return {@code null} if the UI has not installed an ActionMap.
      *
+     * @param component a component
+     * @return the {@code ActionMap} provided by the UI in the component,
+     *         or {@code null} if the UI has not installed an ActionMap.
      * @since 1.3
      */
     public static ActionMap getUIActionMap(JComponent component) {
--- a/jdk/src/share/classes/javax/swing/event/TreeModelEvent.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/event/TreeModelEvent.java	Wed Jun 18 10:55:17 2014 -0700
@@ -292,24 +292,24 @@
      * @return a String representation of this object
      */
     public String toString() {
-        StringBuffer   retBuffer = new StringBuffer();
+        StringBuilder   sb = new StringBuilder();
 
-        retBuffer.append(getClass().getName() + " " +
-                         Integer.toString(hashCode()));
+        sb.append(getClass().getName() + " " +
+                  Integer.toString(hashCode()));
         if(path != null)
-            retBuffer.append(" path " + path);
+            sb.append(" path " + path);
         if(childIndices != null) {
-            retBuffer.append(" indices [ ");
+            sb.append(" indices [ ");
             for(int counter = 0; counter < childIndices.length; counter++)
-                retBuffer.append(Integer.toString(childIndices[counter])+ " ");
-            retBuffer.append("]");
+                sb.append(Integer.toString(childIndices[counter])+ " ");
+            sb.append("]");
         }
         if(children != null) {
-            retBuffer.append(" children [ ");
+            sb.append(" children [ ");
             for(int counter = 0; counter < children.length; counter++)
-                retBuffer.append(children[counter] + " ");
-            retBuffer.append("]");
+                sb.append(children[counter] + " ");
+            sb.append("]");
         }
-        return retBuffer.toString();
+        return sb.toString();
     }
 }
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1322,8 +1322,8 @@
                 return null;
             }
 
-            StringBuffer plainBuf = new StringBuffer();
-            StringBuffer htmlBuf = new StringBuffer();
+            StringBuilder plainBuf = new StringBuilder();
+            StringBuilder htmlBuf = new StringBuilder();
 
             htmlBuf.append("<html>\n<body>\n<ul>\n");
 
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicListUI.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicListUI.java	Wed Jun 18 10:55:17 2014 -0700
@@ -2855,23 +2855,23 @@
                     return null;
                 }
 
-                StringBuffer plainBuf = new StringBuffer();
-                StringBuffer htmlBuf = new StringBuffer();
+                StringBuilder plainStr = new StringBuilder();
+                StringBuilder htmlStr = new StringBuilder();
 
-                htmlBuf.append("<html>\n<body>\n<ul>\n");
+                htmlStr.append("<html>\n<body>\n<ul>\n");
 
                 for (int i = 0; i < values.length; i++) {
                     Object obj = values[i];
                     String val = ((obj == null) ? "" : obj.toString());
-                    plainBuf.append(val + "\n");
-                    htmlBuf.append("  <li>" + val + "\n");
+                    plainStr.append(val + "\n");
+                    htmlStr.append("  <li>" + val + "\n");
                 }
 
                 // remove the last newline
-                plainBuf.deleteCharAt(plainBuf.length() - 1);
-                htmlBuf.append("</ul>\n</body>\n</html>");
+                plainStr.deleteCharAt(plainStr.length() - 1);
+                htmlStr.append("</ul>\n</body>\n</html>");
 
-                return new BasicTransferable(plainBuf.toString(), htmlBuf.toString());
+                return new BasicTransferable(plainStr.toString(), htmlStr.toString());
             }
 
             return null;
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTableUI.java	Wed Jun 18 10:55:17 2014 -0700
@@ -2182,29 +2182,29 @@
                     return null;
                 }
 
-                StringBuffer plainBuf = new StringBuffer();
-                StringBuffer htmlBuf = new StringBuffer();
+                StringBuilder plainStr = new StringBuilder();
+                StringBuilder htmlStr = new StringBuilder();
 
-                htmlBuf.append("<html>\n<body>\n<table>\n");
+                htmlStr.append("<html>\n<body>\n<table>\n");
 
                 for (int row = 0; row < rows.length; row++) {
-                    htmlBuf.append("<tr>\n");
+                    htmlStr.append("<tr>\n");
                     for (int col = 0; col < cols.length; col++) {
                         Object obj = table.getValueAt(rows[row], cols[col]);
                         String val = ((obj == null) ? "" : obj.toString());
-                        plainBuf.append(val + "\t");
-                        htmlBuf.append("  <td>" + val + "</td>\n");
+                        plainStr.append(val + "\t");
+                        htmlStr.append("  <td>" + val + "</td>\n");
                     }
                     // we want a newline at the end of each line and not a tab
-                    plainBuf.deleteCharAt(plainBuf.length() - 1).append("\n");
-                    htmlBuf.append("</tr>\n");
+                    plainStr.deleteCharAt(plainStr.length() - 1).append("\n");
+                    htmlStr.append("</tr>\n");
                 }
 
                 // remove the last newline
-                plainBuf.deleteCharAt(plainBuf.length() - 1);
-                htmlBuf.append("</table>\n</body>\n</html>");
+                plainStr.deleteCharAt(plainStr.length() - 1);
+                htmlStr.append("</table>\n</body>\n</html>");
 
-                return new BasicTransferable(plainBuf.toString(), htmlBuf.toString());
+                return new BasicTransferable(plainStr.toString(), htmlStr.toString());
             }
 
             return null;
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java	Wed Jun 18 10:55:17 2014 -0700
@@ -3213,10 +3213,10 @@
                     return null;
                 }
 
-                StringBuffer plainBuf = new StringBuffer();
-                StringBuffer htmlBuf = new StringBuffer();
-
-                htmlBuf.append("<html>\n<body>\n<ul>\n");
+                StringBuilder plainStr = new StringBuilder();
+                StringBuilder htmlStr = new StringBuilder();
+
+                htmlStr.append("<html>\n<body>\n<ul>\n");
 
                 TreeModel model = tree.getModel();
                 TreePath lastPath = null;
@@ -3227,17 +3227,17 @@
                     boolean leaf = model.isLeaf(node);
                     String label = getDisplayString(path, true, leaf);
 
-                    plainBuf.append(label + "\n");
-                    htmlBuf.append("  <li>" + label + "\n");
+                    plainStr.append(label + "\n");
+                    htmlStr.append("  <li>" + label + "\n");
                 }
 
                 // remove the last newline
-                plainBuf.deleteCharAt(plainBuf.length() - 1);
-                htmlBuf.append("</ul>\n</body>\n</html>");
+                plainStr.deleteCharAt(plainStr.length() - 1);
+                htmlStr.append("</ul>\n</body>\n</html>");
 
                 tree = null;
 
-                return new BasicTransferable(plainBuf.toString(), htmlBuf.toString());
+                return new BasicTransferable(plainStr.toString(), htmlStr.toString());
             }
 
             return null;
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java	Wed Jun 18 10:55:17 2014 -0700
@@ -618,20 +618,20 @@
     }
 
     private String fileNameString(File[] files) {
-        StringBuffer buf = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (int i = 0; files != null && i < files.length; i++) {
             if (i > 0) {
-                buf.append(" ");
+                sb.append(" ");
             }
             if (files.length > 1) {
-                buf.append("\"");
+                sb.append("\"");
             }
-            buf.append(fileNameString(files[i]));
+            sb.append(fileNameString(files[i]));
             if (files.length > 1) {
-                buf.append("\"");
+                sb.append("\"");
             }
         }
-        return buf.toString();
+        return sb.toString();
     }
 
     /* The following methods are used by the PropertyChange Listener */
--- a/jdk/src/share/classes/javax/swing/plaf/nimbus/State.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/State.java	Wed Jun 18 10:55:17 2014 -0700
@@ -179,35 +179,35 @@
         }
 
         private static String toString(int state) {
-            StringBuffer buffer = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
             if ((state & SynthConstants.DEFAULT) == SynthConstants.DEFAULT) {
-                buffer.append("Default");
+                sb.append("Default");
             }
             if ((state & SynthConstants.DISABLED) == SynthConstants.DISABLED) {
-                if (buffer.length() > 0) buffer.append("+");
-                buffer.append("Disabled");
+                if (sb.length() > 0) sb.append("+");
+                sb.append("Disabled");
             }
             if ((state & SynthConstants.ENABLED) == SynthConstants.ENABLED) {
-                if (buffer.length() > 0) buffer.append("+");
-                buffer.append("Enabled");
+                if (sb.length() > 0) sb.append("+");
+                sb.append("Enabled");
             }
             if ((state & SynthConstants.FOCUSED) == SynthConstants.FOCUSED) {
-                if (buffer.length() > 0) buffer.append("+");
-                buffer.append("Focused");
+                if (sb.length() > 0) sb.append("+");
+                sb.append("Focused");
             }
             if ((state & SynthConstants.MOUSE_OVER) == SynthConstants.MOUSE_OVER) {
-                if (buffer.length() > 0) buffer.append("+");
-                buffer.append("MouseOver");
+                if (sb.length() > 0) sb.append("+");
+                sb.append("MouseOver");
             }
             if ((state & SynthConstants.PRESSED) == SynthConstants.PRESSED) {
-                if (buffer.length() > 0) buffer.append("+");
-                buffer.append("Pressed");
+                if (sb.length() > 0) sb.append("+");
+                sb.append("Pressed");
             }
             if ((state & SynthConstants.SELECTED) == SynthConstants.SELECTED) {
-                if (buffer.length() > 0) buffer.append("+");
-                buffer.append("Selected");
+                if (sb.length() > 0) sb.append("+");
+                sb.append("Selected");
             }
-            return buffer.toString();
+            return sb.toString();
         }
     }
 }
--- a/jdk/src/share/classes/javax/swing/plaf/synth/ParsedSynthStyle.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/plaf/synth/ParsedSynthStyle.java	Wed Jun 18 10:55:17 2014 -0700
@@ -156,7 +156,7 @@
     }
 
     public String toString() {
-        StringBuffer text = new StringBuffer(super.toString());
+        StringBuilder text = new StringBuilder(super.toString());
         if (_painters != null) {
             text.append(",painters=[");
             for (int i = 0; i < +_painters.length; i++) {
@@ -208,7 +208,7 @@
         }
 
         public String toString() {
-            StringBuffer text = new StringBuffer(super.toString());
+            StringBuilder text = new StringBuilder(super.toString());
             text.append(",painters=[");
             if (_painterInfo != null) {
                 for (int i = 0; i < +_painterInfo.length; i++) {
--- a/jdk/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1153,23 +1153,23 @@
      */
     public String toString() {
         int                selCount = getSelectionCount();
-        StringBuffer       retBuffer = new StringBuffer();
+        StringBuilder      sb = new StringBuilder();
         int[]              rows;
 
         if(rowMapper != null)
             rows = rowMapper.getRowsForPaths(selection);
         else
             rows = null;
-        retBuffer.append(getClass().getName() + " " + hashCode() + " [ ");
+        sb.append(getClass().getName() + " " + hashCode() + " [ ");
         for(int counter = 0; counter < selCount; counter++) {
             if(rows != null)
-                retBuffer.append(selection[counter].toString() + "@" +
-                                 Integer.toString(rows[counter])+ " ");
+                sb.append(selection[counter].toString() + "@" +
+                          Integer.toString(rows[counter])+ " ");
             else
-                retBuffer.append(selection[counter].toString() + " ");
+                sb.append(selection[counter].toString() + " ");
         }
-        retBuffer.append("]");
-        return retBuffer.toString();
+        sb.append("]");
+        return sb.toString();
     }
 
     /**
--- a/jdk/src/share/classes/javax/swing/tree/TreePath.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/javax/swing/tree/TreePath.java	Wed Jun 18 10:55:17 2014 -0700
@@ -349,7 +349,7 @@
      * @return a String representation of this object
      */
     public String toString() {
-        StringBuffer tempSpot = new StringBuffer("[");
+        StringBuilder tempSpot = new StringBuilder("[");
 
         for(int counter = 0, maxCounter = getPathCount();counter < maxCounter;
             counter++) {
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheNodeSetData.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheNodeSetData.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * $Id: ApacheNodeSetData.java 1203890 2011-11-18 22:47:56Z mullan $
@@ -47,7 +47,7 @@
         this.xi = xi;
     }
 
-    public Iterator iterator() {
+    public Iterator<Node> iterator() {
         // If nodefilters are set, must execute them first to create node-set
         if (xi.getNodeFilters() != null && !xi.getNodeFilters().isEmpty()) {
             return Collections.unmodifiableSet
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMExcC14NMethod.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMExcC14NMethod.java	Wed Jun 18 10:55:17 2014 -0700
@@ -118,7 +118,7 @@
         }
 
         ExcC14NParameterSpec params = (ExcC14NParameterSpec)spec;
-        StringBuffer prefixListAttr = new StringBuffer("");
+        StringBuilder prefixListAttr = new StringBuilder("");
         @SuppressWarnings("unchecked")
         List<String> prefixList = params.getPrefixList();
         for (int i = 0, size = prefixList.size(); i < size; i++) {
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfo.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfo.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * $Id: DOMKeyInfo.java 1333869 2012-05-04 10:42:44Z coheigea $
@@ -138,7 +138,7 @@
         return id;
     }
 
-    public List getContent() {
+    public List<XMLStructure> getContent() {
         return keyInfoTypes;
     }
 
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfoFactory.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfoFactory.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * $Id: DOMKeyInfoFactory.java 1333869 2012-05-04 10:42:44Z coheigea $
@@ -48,11 +48,12 @@
 
     public DOMKeyInfoFactory() { }
 
+    @SuppressWarnings("rawtypes")
     public KeyInfo newKeyInfo(List content) {
         return newKeyInfo(content, null);
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public KeyInfo newKeyInfo(List content, String id) {
         return new DOMKeyInfo(content, id);
     }
@@ -78,12 +79,12 @@
         return newPGPData(keyId, null, null);
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public PGPData newPGPData(byte[] keyId, byte[] keyPacket, List other) {
         return new DOMPGPData(keyId, keyPacket, other);
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public PGPData newPGPData(byte[] keyPacket, List other) {
         return new DOMPGPData(keyPacket, other);
     }
@@ -92,7 +93,7 @@
         return newRetrievalMethod(uri, null, null);
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public RetrievalMethod newRetrievalMethod(String uri, String type,
         List transforms) {
         if (uri == null) {
@@ -101,7 +102,7 @@
         return new DOMRetrievalMethod(uri, type, transforms);
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings("rawtypes")
     public X509Data newX509Data(List content) {
         return new DOMX509Data(content);
     }
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyValue.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyValue.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * $Id: DOMKeyValue.java 1333415 2012-05-03 12:03:51Z coheigea $
@@ -364,15 +364,16 @@
         }
 
         void getMethods() throws ClassNotFoundException, NoSuchMethodException {
-            Class c  = Class.forName("sun.security.ec.ECParameters");
-            Class[] params = new Class[] { ECPoint.class, EllipticCurve.class };
+            Class<?> c  = Class.forName("sun.security.ec.ECParameters");
+            Class<?>[] params = new Class<?>[] { ECPoint.class,
+                                                 EllipticCurve.class };
             encodePoint = c.getMethod("encodePoint", params);
-            params = new Class[] { ECParameterSpec.class };
+            params = new Class<?>[] { ECParameterSpec.class };
             getCurveName = c.getMethod("getCurveName", params);
-            params = new Class[] { byte[].class, EllipticCurve.class };
+            params = new Class<?>[] { byte[].class, EllipticCurve.class };
             decodePoint = c.getMethod("decodePoint", params);
             c  = Class.forName("sun.security.ec.NamedCurve");
-            params = new Class[] { String.class };
+            params = new Class<?>[] { String.class };
             getECParameterSpec = c.getMethod("getECParameterSpec", params);
         }
 
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMManifest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMManifest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * $Id: DOMManifest.java 1333415 2012-05-03 12:03:51Z coheigea $
@@ -127,7 +127,12 @@
         return id;
     }
 
-    public List getReferences() {
+    @SuppressWarnings("unchecked")
+    static List<Reference> getManifestReferences(Manifest mf) {
+        return mf.getReferences();
+    }
+
+    public List<Reference> getReferences() {
         return references;
     }
 
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * $Id: DOMPGPData.java 1203846 2011-11-18 21:18:17Z mullan $
@@ -184,7 +184,7 @@
         return (keyPacket == null ? null : keyPacket.clone());
     }
 
-    public List getExternalElements() {
+    public List<XMLStructure> getExternalElements() {
         return externalElements;
     }
 
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * ===========================================================================
@@ -293,7 +293,7 @@
         return type;
     }
 
-    public List getTransforms() {
+    public List<Transform> getTransforms() {
         return Collections.unmodifiableList(allTransforms);
     }
 
@@ -643,7 +643,7 @@
                 try {
                     final Set<Node> s = xsi.getNodeSet();
                     return new NodeSetData() {
-                        public Iterator iterator() { return s.iterator(); }
+                        public Iterator<Node> iterator() { return s.iterator(); }
                     };
                 } catch (Exception e) {
                     // log a warning
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMRetrievalMethod.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMRetrievalMethod.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * ===========================================================================
@@ -177,7 +177,7 @@
         return type;
     }
 
-    public List getTransforms() {
+    public List<Transform> getTransforms() {
         return transforms;
     }
 
@@ -245,7 +245,7 @@
         // guard against RetrievalMethod loops
         if ((data instanceof NodeSetData) && Utils.secureValidation(context)) {
             NodeSetData nsd = (NodeSetData)data;
-            Iterator i = nsd.iterator();
+            Iterator<?> i = nsd.iterator();
             if (i.hasNext()) {
                 Node root = (Node)i.next();
                 if ("RetrievalMethod".equals(root.getLocalName())) {
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * $Id: DOMSignatureProperties.java 1333415 2012-05-03 12:03:51Z coheigea $
@@ -125,7 +125,7 @@
         }
     }
 
-    public List getProperties() {
+    public List<SignatureProperty> getProperties() {
         return properties;
     }
 
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * $Id: DOMSignatureProperty.java 1333415 2012-05-03 12:03:51Z coheigea $
@@ -123,7 +123,7 @@
         }
     }
 
-    public List getContent() {
+    public List<XMLStructure> getContent() {
         return content;
     }
 
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignedInfo.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignedInfo.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * $Id: DOMSignedInfo.java 1333415 2012-05-03 12:03:51Z coheigea $
@@ -206,7 +206,7 @@
         return id;
     }
 
-    public List getReferences() {
+    public List<Reference> getReferences() {
         return references;
     }
 
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSubTreeData.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSubTreeData.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * $Id$
@@ -54,7 +54,7 @@
         this.excludeComments = excludeComments;
     }
 
-    public Iterator iterator() {
+    public Iterator<Node> iterator() {
         return new DelayedNodeIterator(root, excludeComments);
     }
 
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * $Id: DOMURIDereferencer.java 1231033 2012-01-13 12:12:12Z coheigea $
@@ -111,7 +111,8 @@
         try {
             ResourceResolver apacheResolver =
                 ResourceResolver.getInstance(uriAttr, baseURI, secVal);
-            XMLSignatureInput in = apacheResolver.resolve(uriAttr, baseURI);
+            XMLSignatureInput in = apacheResolver.resolve(uriAttr,
+                                                          baseURI, secVal);
             if (in.isOctetStream()) {
                 return new ApacheOctetStreamData(in);
             } else {
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509Data.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509Data.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * $Id: DOMX509Data.java 1333415 2012-05-03 12:03:51Z coheigea $
@@ -135,7 +135,7 @@
         this.content = Collections.unmodifiableList(content);
     }
 
-    public List getContent() {
+    public List<Object> getContent() {
         return content;
     }
 
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLObject.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLObject.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * $Id: DOMXMLObject.java 1333415 2012-05-03 12:03:51Z coheigea $
@@ -139,7 +139,7 @@
         this.objectElem = objElem;
     }
 
-    public List getContent() {
+    public List<XMLStructure> getContent() {
         return content;
     }
 
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignature.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignature.java	Wed Jun 18 10:55:17 2014 -0700
@@ -21,7 +21,7 @@
  * under the License.
  */
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * ===========================================================================
@@ -188,7 +188,7 @@
         return si;
     }
 
-    public List getObjects() {
+    public List<XMLObject> getObjects() {
         return objects;
     }
 
@@ -471,7 +471,8 @@
                     digestReference((DOMReference)xs, signContext);
                 } else if (xs instanceof Manifest) {
                     Manifest man = (Manifest)xs;
-                    List manRefs = man.getReferences();
+                    List<Reference> manRefs =
+                        DOMManifest.getManifestReferences(man);
                     for (int i = 0, size = manRefs.size(); i < size; i++) {
                         digestReference((DOMReference)manRefs.get(i),
                                         signContext);
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java	Wed Jun 18 10:55:17 2014 -0700
@@ -58,7 +58,7 @@
         return new DOMXMLSignature(si, ki, null, null, null);
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public XMLSignature newXMLSignature(SignedInfo si, KeyInfo ki,
         List objects, String id, String signatureValueId) {
         return new DOMXMLSignature(si, ki, objects, id, signatureValueId);
@@ -68,13 +68,13 @@
         return newReference(uri, dm, null, null, null);
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public Reference newReference(String uri, DigestMethod dm, List transforms,
         String type, String id) {
         return new DOMReference(uri, type, dm, transforms, id, getProvider());
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public Reference newReference(String uri, DigestMethod dm,
         List appliedTransforms, Data result, List transforms, String type,
         String id) {
@@ -91,7 +91,7 @@
             (uri, type, dm, appliedTransforms, result, transforms, id, getProvider());
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public Reference newReference(String uri, DigestMethod dm, List transforms,
         String type, String id, byte[] digestValue) {
         if (digestValue == null) {
@@ -101,41 +101,41 @@
             (uri, type, dm, null, null, transforms, id, digestValue, getProvider());
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings("rawtypes")
     public SignedInfo newSignedInfo(CanonicalizationMethod cm,
         SignatureMethod sm, List references) {
         return newSignedInfo(cm, sm, references, null);
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public SignedInfo newSignedInfo(CanonicalizationMethod cm,
         SignatureMethod sm, List references, String id) {
         return new DOMSignedInfo(cm, sm, references, id);
     }
 
     // Object factory methods
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public XMLObject newXMLObject(List content, String id, String mimeType,
         String encoding) {
         return new DOMXMLObject(content, id, mimeType, encoding);
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings("rawtypes")
     public Manifest newManifest(List references) {
         return newManifest(references, null);
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public Manifest newManifest(List references, String id) {
         return new DOMManifest(references, id);
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public SignatureProperties newSignatureProperties(List props, String id) {
         return new DOMSignatureProperties(props, id);
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     public SignatureProperty newSignatureProperty
         (List info, String target, String id) {
         return new DOMSignatureProperty(info, target, id);
--- a/jdk/src/share/classes/sun/applet/AppletViewer.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/applet/AppletViewer.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1000,15 +1000,15 @@
      * Scan identifier
      */
     public static String scanIdentifier(Reader in) throws IOException {
-        StringBuffer buf = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         while (true) {
             if (((c >= 'a') && (c <= 'z')) ||
                 ((c >= 'A') && (c <= 'Z')) ||
                 ((c >= '0') && (c <= '9')) || (c == '_')) {
-                buf.append((char)c);
+                sb.append((char) c);
                 c = in.read();
             } else {
-                return buf.toString();
+                return sb.toString();
             }
         }
     }
@@ -1031,19 +1031,19 @@
                     quote = c;
                     c = in.read();
                 }
-                StringBuffer buf = new StringBuffer();
+                StringBuilder sb = new StringBuilder();
                 while ((c > 0) &&
                        (((quote < 0) && (c != ' ') && (c != '\t') &&
                          (c != '\n') && (c != '\r') && (c != '>'))
                         || ((quote >= 0) && (c != quote)))) {
-                    buf.append((char)c);
+                    sb.append((char) c);
                     c = in.read();
                 }
                 if (c == quote) {
                     c = in.read();
                 }
                 skipSpace(in);
-                val = buf.toString();
+                val = sb.toString();
             }
             //statusMsgStream.println("PUT " + att + " = '" + val + "'");
             if (! val.equals("")) {
--- a/jdk/src/share/classes/sun/font/Decoration.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/font/Decoration.java	Wed Jun 18 10:55:17 2014 -0700
@@ -428,17 +428,17 @@
 
 
         public String toString() {
-            StringBuffer buf = new StringBuffer();
-            buf.append(super.toString());
-            buf.append("[");
-            if (fgPaint != null) buf.append("fgPaint: " + fgPaint);
-            if (bgPaint != null) buf.append(" bgPaint: " + bgPaint);
-            if (swapColors) buf.append(" swapColors: true");
-            if (strikethrough) buf.append(" strikethrough: true");
-            if (stdUnderline != null) buf.append(" stdUnderline: " + stdUnderline);
-            if (imUnderline != null) buf.append(" imUnderline: " + imUnderline);
-            buf.append("]");
-            return buf.toString();
+            StringBuilder sb = new StringBuilder();
+            sb.append(super.toString());
+            sb.append("[");
+            if (fgPaint != null) sb.append("fgPaint: " + fgPaint);
+            if (bgPaint != null) sb.append(" bgPaint: " + bgPaint);
+            if (swapColors) sb.append(" swapColors: true");
+            if (strikethrough) sb.append(" strikethrough: true");
+            if (stdUnderline != null) sb.append(" stdUnderline: " + stdUnderline);
+            if (imUnderline != null) sb.append(" imUnderline: " + imUnderline);
+            sb.append("]");
+            return sb.toString();
         }
     }
 }
--- a/jdk/src/share/classes/sun/font/ExtendedTextSourceLabel.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/font/ExtendedTextSourceLabel.java	Wed Jun 18 10:55:17 2014 -0700
@@ -896,31 +896,31 @@
     if (true) {
         return source.toString(TextSource.WITHOUT_CONTEXT);
     }
-    StringBuffer buf = new StringBuffer();
-    buf.append(super.toString());
-    buf.append("[source:");
-    buf.append(source.toString(TextSource.WITHOUT_CONTEXT));
-    buf.append(", lb:");
-    buf.append(lb);
-    buf.append(", ab:");
-    buf.append(ab);
-    buf.append(", vb:");
-    buf.append(vb);
-    buf.append(", gv:");
-    buf.append(gv);
-    buf.append(", ci: ");
+    StringBuilder sb = new StringBuilder();
+    sb.append(super.toString());
+    sb.append("[source:");
+    sb.append(source.toString(TextSource.WITHOUT_CONTEXT));
+    sb.append(", lb:");
+    sb.append(lb);
+    sb.append(", ab:");
+    sb.append(ab);
+    sb.append(", vb:");
+    sb.append(vb);
+    sb.append(", gv:");
+    sb.append(gv);
+    sb.append(", ci: ");
     if (charinfo == null) {
-      buf.append("null");
+      sb.append("null");
     } else {
-      buf.append(charinfo[0]);
+      sb.append(charinfo[0]);
       for (int i = 1; i < charinfo.length;) {
-        buf.append(i % numvals == 0 ? "; " : ", ");
-        buf.append(charinfo[i]);
+        sb.append(i % numvals == 0 ? "; " : ", ");
+        sb.append(charinfo[i]);
       }
     }
-    buf.append("]");
+    sb.append("]");
 
-    return buf.toString();
+    return sb.toString();
   }
 
   //public static ExtendedTextLabel create(TextSource source) {
--- a/jdk/src/share/classes/sun/font/StandardTextSource.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/font/StandardTextSource.java	Wed Jun 18 10:55:17 2014 -0700
@@ -210,16 +210,16 @@
   }
 
   public String toString(boolean withContext) {
-    StringBuffer buf = new StringBuffer(super.toString());
-    buf.append("[start:");
-    buf.append(start);
-    buf.append(", len:" );
-    buf.append(len);
-    buf.append(", cstart:");
-    buf.append(cstart);
-    buf.append(", clen:" );
-    buf.append(clen);
-    buf.append(", chars:\"");
+    StringBuilder sb = new StringBuilder(super.toString());
+    sb.append("[start:");
+    sb.append(start);
+    sb.append(", len:" );
+    sb.append(len);
+    sb.append(", cstart:");
+    sb.append(cstart);
+    sb.append(", clen:" );
+    sb.append(clen);
+    sb.append(", chars:\"");
     int chStart, chLimit;
     if (withContext == WITH_CONTEXT) {
         chStart = cstart;
@@ -231,23 +231,23 @@
     }
     for (int i = chStart; i < chLimit; ++i) {
       if (i > chStart) {
-        buf.append(" ");
+        sb.append(" ");
       }
-      buf.append(Integer.toHexString(chars[i]));
+      sb.append(Integer.toHexString(chars[i]));
     }
-    buf.append("\"");
-    buf.append(", level:");
-    buf.append(level);
-    buf.append(", flags:");
-    buf.append(flags);
-    buf.append(", font:");
-    buf.append(font);
-    buf.append(", frc:");
-    buf.append(frc);
-    buf.append(", cm:");
-    buf.append(cm);
-    buf.append("]");
+    sb.append("\"");
+    sb.append(", level:");
+    sb.append(level);
+    sb.append(", flags:");
+    sb.append(flags);
+    sb.append(", font:");
+    sb.append(font);
+    sb.append(", frc:");
+    sb.append(frc);
+    sb.append(", cm:");
+    sb.append(cm);
+    sb.append("]");
 
-    return buf.toString();
+    return sb.toString();
   }
 }
--- a/jdk/src/share/classes/sun/font/Type1Font.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/font/Type1Font.java	Wed Jun 18 10:55:17 2014 -0700
@@ -529,7 +529,7 @@
     }
 
     private String expandName(String s, boolean tryExpandAbbreviations) {
-        StringBuffer res = new StringBuffer(s.length() + 10);
+        StringBuilder res = new StringBuilder(s.length() + 10);
         int start=0, end;
 
         while(start < s.length()) {
--- a/jdk/src/share/classes/sun/java2d/opengl/OGLContext.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/java2d/opengl/OGLContext.java	Wed Jun 18 10:55:17 2014 -0700
@@ -201,29 +201,29 @@
 
         @Override
         public String toString() {
-            StringBuffer buf = new StringBuffer(super.toString());
+            StringBuilder sb = new StringBuilder(super.toString());
             if ((caps & CAPS_EXT_FBOBJECT) != 0) {
-                buf.append("CAPS_EXT_FBOBJECT|");
+                sb.append("CAPS_EXT_FBOBJECT|");
             }
             if ((caps & CAPS_STORED_ALPHA) != 0) {
-                buf.append("CAPS_STORED_ALPHA|");
+                sb.append("CAPS_STORED_ALPHA|");
             }
             if ((caps & CAPS_DOUBLEBUFFERED) != 0) {
-                buf.append("CAPS_DOUBLEBUFFERED|");
+                sb.append("CAPS_DOUBLEBUFFERED|");
             }
             if ((caps & CAPS_EXT_LCD_SHADER) != 0) {
-                buf.append("CAPS_EXT_LCD_SHADER|");
+                sb.append("CAPS_EXT_LCD_SHADER|");
             }
             if ((caps & CAPS_EXT_BIOP_SHADER) != 0) {
-                buf.append("CAPS_BIOP_SHADER|");
+                sb.append("CAPS_BIOP_SHADER|");
             }
             if ((caps & CAPS_EXT_GRAD_SHADER) != 0) {
-                buf.append("CAPS_EXT_GRAD_SHADER|");
+                sb.append("CAPS_EXT_GRAD_SHADER|");
             }
             if ((caps & CAPS_EXT_TEXRECT) != 0) {
-                buf.append("CAPS_EXT_TEXRECT|");
+                sb.append("CAPS_EXT_TEXRECT|");
             }
-            return buf.toString();
+            return sb.toString();
         }
     }
 }
--- a/jdk/src/share/classes/sun/java2d/pipe/Region.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/java2d/pipe/Region.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1277,7 +1277,7 @@
     }
 
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("Region[[");
         sb.append(lox);
         sb.append(", ");
--- a/jdk/src/share/classes/sun/java2d/pipe/hw/ContextCapabilities.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/java2d/pipe/hw/ContextCapabilities.java	Wed Jun 18 10:55:17 2014 -0700
@@ -93,37 +93,37 @@
 
     @Override
     public String toString() {
-        StringBuffer buf =
-            new StringBuffer("ContextCapabilities: adapter=" +
+        StringBuilder sb =
+            new StringBuilder("ContextCapabilities: adapter=" +
                              adapterId+", caps=");
         if (caps == CAPS_EMPTY) {
-            buf.append("CAPS_EMPTY");
+            sb.append("CAPS_EMPTY");
         } else {
             if ((caps & CAPS_RT_PLAIN_ALPHA) != 0) {
-                buf.append("CAPS_RT_PLAIN_ALPHA|");
+                sb.append("CAPS_RT_PLAIN_ALPHA|");
             }
             if ((caps & CAPS_RT_TEXTURE_ALPHA) != 0) {
-                buf.append("CAPS_RT_TEXTURE_ALPHA|");
+                sb.append("CAPS_RT_TEXTURE_ALPHA|");
             }
             if ((caps & CAPS_RT_TEXTURE_OPAQUE) != 0) {
-                buf.append("CAPS_RT_TEXTURE_OPAQUE|");
+                sb.append("CAPS_RT_TEXTURE_OPAQUE|");
             }
             if ((caps & CAPS_MULTITEXTURE) != 0) {
-                buf.append("CAPS_MULTITEXTURE|");
+                sb.append("CAPS_MULTITEXTURE|");
             }
             if ((caps & CAPS_TEXNONPOW2) != 0) {
-                buf.append("CAPS_TEXNONPOW2|");
+                sb.append("CAPS_TEXNONPOW2|");
             }
             if ((caps & CAPS_TEXNONSQUARE) != 0) {
-                buf.append("CAPS_TEXNONSQUARE|");
+                sb.append("CAPS_TEXNONSQUARE|");
             }
             if ((caps & CAPS_PS20) != 0) {
-                buf.append("CAPS_PS20|");
+                sb.append("CAPS_PS20|");
             }
             if ((caps & CAPS_PS30) != 0) {
-                buf.append("CAPS_PS30|");
+                sb.append("CAPS_PS30|");
             }
         }
-        return buf.toString();
+        return sb.toString();
     }
 }
--- a/jdk/src/share/classes/sun/jvmstat/monitor/HostIdentifier.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/jvmstat/monitor/HostIdentifier.java	Wed Jun 18 10:55:17 2014 -0700
@@ -358,7 +358,7 @@
 
         URI nuri = null;
 
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
         sb.append(scheme).append("://");
 
--- a/jdk/src/share/classes/sun/jvmstat/monitor/MonitoredHost.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/jvmstat/monitor/MonitoredHost.java	Wed Jun 18 10:55:17 2014 -0700
@@ -257,7 +257,7 @@
                      throws MonitorException {
         String hostname = hostId.getHost();
         String scheme = hostId.getScheme();
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
         assert hostname != null;
 
--- a/jdk/src/share/classes/sun/jvmstat/monitor/VmIdentifier.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/jvmstat/monitor/VmIdentifier.java	Wed Jun 18 10:55:17 2014 -0700
@@ -255,7 +255,7 @@
      *                            a MonitorException in a future version.
      */
     public HostIdentifier getHostIdentifier() throws URISyntaxException {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         if (getScheme() != null) {
             sb.append(getScheme()).append(":");
         }
--- a/jdk/src/share/classes/sun/management/Agent.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/management/Agent.java	Wed Jun 18 10:55:17 2014 -0700
@@ -34,7 +34,6 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.net.InetAddress;
-import java.net.Socket;
 import java.net.UnknownHostException;
 import java.text.MessageFormat;
 import java.util.MissingResourceException;
@@ -88,7 +87,7 @@
     // return empty property set
     private static Properties parseString(String args) {
         Properties argProps = new Properties();
-        if (args != null) {
+        if (args != null && !args.trim().equals("")) {
             for (String option : args.split(",")) {
                 String s[] = option.split("=", 2);
                 String name = s[0].trim();
@@ -160,53 +159,59 @@
             throw new RuntimeException(getText(INVALID_STATE, "Agent already started"));
         }
 
-        Properties argProps = parseString(args);
-        Properties configProps = new Properties();
+        try {
+            Properties argProps = parseString(args);
+            Properties configProps = new Properties();
 
-        // Load the management properties from the config file
-        // if config file is not specified readConfiguration implicitly
-        // reads <java.home>/lib/management/management.properties
+            // Load the management properties from the config file
+            // if config file is not specified readConfiguration implicitly
+            // reads <java.home>/lib/management/management.properties
+
+            String fname = System.getProperty(CONFIG_FILE);
+            readConfiguration(fname, configProps);
 
-        String fname = System.getProperty(CONFIG_FILE);
-        readConfiguration(fname, configProps);
+            // management properties can be overridden by system properties
+            // which take precedence
+            Properties sysProps = System.getProperties();
+            synchronized (sysProps) {
+                configProps.putAll(sysProps);
+            }
 
-        // management properties can be overridden by system properties
-        // which take precedence
-        Properties sysProps = System.getProperties();
-        synchronized (sysProps) {
-            configProps.putAll(sysProps);
-        }
+            // if user specifies config file into command line for either
+            // jcmd utilities or attach command it overrides properties set in
+            // command line at the time of VM start
+            String fnameUser = argProps.getProperty(CONFIG_FILE);
+            if (fnameUser != null) {
+                readConfiguration(fnameUser, configProps);
+            }
 
-        // if user specifies config file into command line for either
-        // jcmd utilities or attach command it overrides properties set in
-        // command line at the time of VM start
-        String fnameUser = argProps.getProperty(CONFIG_FILE);
-        if (fnameUser != null) {
-            readConfiguration(fnameUser, configProps);
-        }
+            // arguments specified in command line of jcmd utilities
+            // override both system properties and one set by config file
+            // specified in jcmd command line
+            configProps.putAll(argProps);
 
-        // arguments specified in command line of jcmd utilities
-        // override both system properties and one set by config file
-        // specified in jcmd command line
-        configProps.putAll(argProps);
+            // jcmd doesn't allow to change ThreadContentionMonitoring, but user
+            // can specify this property inside config file, so enable optional
+            // monitoring functionality if this property is set
+            final String enableThreadContentionMonitoring =
+                    configProps.getProperty(ENABLE_THREAD_CONTENTION_MONITORING);
 
-        // jcmd doesn't allow to change ThreadContentionMonitoring, but user
-        // can specify this property inside config file, so enable optional
-        // monitoring functionality if this property is set
-        final String enableThreadContentionMonitoring =
-                configProps.getProperty(ENABLE_THREAD_CONTENTION_MONITORING);
+            if (enableThreadContentionMonitoring != null) {
+                ManagementFactory.getThreadMXBean().
+                        setThreadContentionMonitoringEnabled(true);
+            }
 
-        if (enableThreadContentionMonitoring != null) {
-            ManagementFactory.getThreadMXBean().
-                    setThreadContentionMonitoringEnabled(true);
-        }
+            String jmxremotePort = configProps.getProperty(JMXREMOTE_PORT);
+            if (jmxremotePort != null) {
+                jmxServer = ConnectorBootstrap.
+                        startRemoteConnectorServer(jmxremotePort, configProps);
 
-        String jmxremotePort = configProps.getProperty(JMXREMOTE_PORT);
-        if (jmxremotePort != null) {
-            jmxServer = ConnectorBootstrap.
-                    startRemoteConnectorServer(jmxremotePort, configProps);
-
-            startDiscoveryService(configProps);
+                startDiscoveryService(configProps);
+            } else {
+                throw new AgentConfigurationError(INVALID_JMXREMOTE_PORT, "No port specified");
+            }
+        } catch (AgentConfigurationError err) {
+            error(err.getError(), err.getParams());
         }
     }
 
@@ -401,7 +406,7 @@
             if (home == null) {
                 throw new Error("Can't find java.home ??");
             }
-            StringBuffer defaultFileName = new StringBuffer(home);
+            StringBuilder defaultFileName = new StringBuilder(home);
             defaultFileName.append(File.separator).append("lib");
             defaultFileName.append(File.separator).append("management");
             defaultFileName.append(File.separator).append("management.properties");
@@ -495,7 +500,7 @@
         if (params == null || params.length == 0) {
             error(key);
         } else {
-            StringBuffer message = new StringBuffer(params[0]);
+            StringBuilder message = new StringBuilder(params[0]);
             for (int i = 1; i < params.length; i++) {
                 message.append(" " + params[i]);
             }
@@ -507,7 +512,7 @@
         String keyText = getText(key);
         System.err.print(getText("agent.err.error") + ": " + keyText);
         System.err.println(": " + message);
-        throw new RuntimeException(keyText);
+        throw new RuntimeException(keyText + ": " + message);
     }
 
     public static void error(Exception e) {
--- a/jdk/src/share/classes/sun/management/manifest	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-Premain-Class: sun.management.Agent
-Agent-Class: sun.management.Agent
-
--- a/jdk/src/share/classes/sun/management/resources/agent.properties	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/management/resources/agent.properties	Wed Jun 18 10:55:17 2014 -0700
@@ -43,7 +43,7 @@
 agent.err.premain.notfound         = premain(String) does not exist in agent class
 agent.err.agentclass.access.denied = Access to premain(String) is denied
 agent.err.invalid.agentclass       = Invalid com.sun.management.agent.class property value
-agent.err.invalid.state            = Invalid agent state
+agent.err.invalid.state            = Invalid agent state: {0}
 agent.err.invalid.jmxremote.port   = Invalid com.sun.management.jmxremote.port number
 agent.err.invalid.jmxremote.rmi.port = Invalid com.sun.management.jmxremote.rmi.port number
 
--- a/jdk/src/share/classes/sun/management/snmp/jvminstr/JvmThreadInstanceEntryImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/management/snmp/jvminstr/JvmThreadInstanceEntryImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -311,19 +311,19 @@
         StackTraceElement[] stackTrace = info.getStackTrace();
         //We append the stack trace in a buffer
         // XXX Revisit: should check isDebugOn()
-        StringBuffer b = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         final int stackSize = stackTrace.length;
         log.debug("getJvmThreadInstStackTrace", "Stack size : " + stackSize);
         for(int i = 0; i < stackSize; i++) {
             log.debug("getJvmThreadInstStackTrace", "Append " +
                       stackTrace[i].toString());
-            b.append(stackTrace[i].toString());
+            sb.append(stackTrace[i].toString());
             //Append \n at the end of each line except the last one
             if(i < stackSize)
-                b.append("\n");
+                sb.append("\n");
         }
         //The stack trace is truncated if its size exceeds 255.
-        return validPathElementTC(b.toString());
+        return validPathElementTC(sb.toString());
     }
     static final MibLogger log =
         new MibLogger(JvmThreadInstanceEntryImpl.class);
--- a/jdk/src/share/classes/sun/misc/MessageUtils.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/misc/MessageUtils.java	Wed Jun 18 10:55:17 2014 -0700
@@ -55,7 +55,7 @@
     }
 
     public static String subst(String patt, String args[]) {
-        StringBuffer result = new StringBuffer();
+        StringBuilder result = new StringBuilder();
         int len = patt.length();
         for (int i = 0; i >= 0 && i < len; i++) {
             char ch = patt.charAt(i);
--- a/jdk/src/share/classes/sun/misc/Timeable.java	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 1995, 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.
- */
-
-package sun.misc;
-
-/**
- * This interface is used by the Timer class.  A class that uses
- * Timer objects must implement this interface.
- *
- * @see Timer
- * @author Patrick Chan
- */
-public interface Timeable {
-    /**
-     * This method is executed every time a timer owned by this
-     * object ticks.  An object can own more than one timer but
-     * all timers call this method when they tick;
-     * you can use the supplied timer parameter to determine
-     * which timer has ticked.
-     * @param timer a handle to the timer that has just ticked.
-     */
-    public void tick(Timer timer);
-}
--- a/jdk/src/share/classes/sun/misc/Timer.java	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,647 +0,0 @@
-/*
- * Copyright (c) 1995, 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.
- */
-
-package sun.misc;
-
-/**
-    A Timer object is used by algorithms that require timed events.
-    For example, in an animation loop, a timer would help in
-    determining when to change frames.
-
-    A timer has an interval which determines when it "ticks";
-    that is, a timer delays for the specified interval and then
-    it calls the owner's tick() method.
-
-    Here's an example of creating a timer with a 5 sec interval:
-
-    <pre>
-    class Main implements Timeable {
-        public void tick(Timer timer) {
-            System.out.println("tick");
-        }
-        public static void main(String args[]) {
-            (new Timer(this, 5000)).cont();
-        }
-    }
-    </pre>
-
-    A timer can be stopped, continued, or reset at any time.
-    A timer's state is not stopped while it's calling the
-    owner's tick() method.
-
-    A timer can be regular or irregular.  If in regular mode,
-    a timer ticks at the specified interval, regardless of
-    how long the owner's tick() method takes.  While the timer
-    is running, no ticks are ever discarded.  That means that if
-    the owner's tick() method takes longer than the interval,
-    the ticks that would have occurred are delivered immediately.
-
-    In irregular mode, a timer starts delaying for exactly
-    the specified interval only after the tick() method returns.
-
-    Synchronization issues: do not hold the timer's monitor
-    while calling any of the Timer operations below otherwise
-    the Timer class will deadlock.
-
-    @author     Patrick Chan
-*/
-
-/*
-    Synchronization issues:  there are two data structures that
-    require locking.  A Timer object and the Timer queue
-    (described in the TimerThread class).  To avoid deadlock,
-    the timer queue monitor is always acquired before the timer
-    object's monitor.  However, the timer queue monitor is acquired
-    only if the timer operation will make use of the timer
-    queue, e.g. stop().
-
-    The class monitor on the class TimerThread severs as the monitor
-    to the timer queue.
-
-    Possible feature: perhaps a timer should have an associated
-    thread priority.  The thread that makes the callback temporarily
-    takes on that priority before calling the owner's tick() method.
-*/
-
-public class Timer {
-    /**
-     * This is the owner of the timer.  Its tick method is
-     * called when the timer ticks.
-     */
-    public Timeable owner;
-
-    /*
-     * This is the interval of time in ms.
-     */
-    long interval;
-
-    /*
-     * This variable is used for two different purposes.
-     * This is done in order to save space.
-     * If 'stopped' is true, this variable holds the time
-     * that the timer was stopped; otherwise, this variable
-     * is used by the TimerThread to determine when the timer
-     * should tick.
-     */
-    long sleepUntil;
-
-    /*
-     * This is the time remaining before the timer ticks.  It
-     * is only valid if 'stopped' is true.  If the timer is
-     * continued, the next tick will happen remaingTime
-     * milliseconds later.
-     */
-    long remainingTime;
-
-    /*
-     * True iff the timer is in regular mode.
-     */
-    boolean regular;
-
-    /*
-     * True iff the timer has been stopped.
-     */
-    boolean stopped;
-
-    /* **************************************************************
-     * Timer queue-related variables
-     * ************************************************************** */
-
-    /*
-     * A link to another timer object.  This is used while the
-     * timer object is enqueued in the timer queue.
-     */
-    Timer next;
-
-    /* **************************************************************
-     * Timer methods
-     * ************************************************************** */
-
-    /*
-     * This variable holds a handle to the TimerThread class for
-     * the purpose of getting at the class monitor.  The reason
-     * why Class.forName("TimerThread") is not used is because it
-     * doesn't appear to work when loaded via a net class loader.
-     */
-    static TimerThread timerThread = null;
-
-    /**
-     * Creates a timer object that is owned by 'owner' and
-     * with the interval 'interval' milliseconds.  The new timer
-     * object is stopped and is regular.  getRemainingTime()
-     * return 'interval' at this point.  getStopTime() returns
-     * the time this object was created.
-     * @param owner    owner of the timer object
-     * @param interval interval of the timer in milliseconds
-     */
-    public Timer(Timeable owner, long interval) {
-        this.owner = owner;
-        this.interval = interval;
-        remainingTime = interval;
-        regular = true;
-        sleepUntil = System.currentTimeMillis();
-        stopped = true;
-        synchronized (getClass()) {
-            if (timerThread == null) {
-                timerThread = new TimerThread();
-            }
-        }
-    }
-
-    /**
-     * Returns true if this timer is stopped.
-     */
-    public synchronized boolean isStopped() {
-        return stopped;
-    }
-
-    /**
-     * Stops the timer.  The amount of time the timer has already
-     * delayed is saved so if the timer is continued, it will only
-     * delay for the amount of time remaining.
-     * Note that even after stopping a timer, one more tick may
-     * still occur.
-     * This method is MT-safe; i.e. it is synchronized but for
-     * implementation reasons, the synchronized modifier cannot
-     * be included in the method declaration.
-     */
-    public void stop() {
-        long now = System.currentTimeMillis();
-
-        synchronized (timerThread) {
-            synchronized (this) {
-                if (!stopped) {
-                    TimerThread.dequeue(this);
-                    remainingTime = Math.max(0, sleepUntil - now);
-                    sleepUntil = now;        // stop time
-                    stopped = true;
-                }
-            }
-        }
-    }
-
-    /**
-     * Continue the timer.  The next tick will come at getRemainingTime()
-     * milliseconds later.  If the timer is not stopped, this
-     * call will be a no-op.
-     * This method is MT-safe; i.e. it is synchronized but for
-     * implementation reasons, the synchronized modifier cannot
-     * be included in the method declaration.
-     */
-    public void cont() {
-        synchronized (timerThread) {
-            synchronized (this) {
-                if (stopped) {
-                    // The TimerTickThread avoids requeuing the
-                    // timer only if the sleepUntil value has changed.
-                    // The following guarantees that the sleepUntil
-                    // value will be different; without this guarantee,
-                    // it's theoretically possible for the timer to be
-                    // inserted twice.
-                    sleepUntil = Math.max(sleepUntil + 1,
-                        System.currentTimeMillis() + remainingTime);
-                    TimerThread.enqueue(this);
-                    stopped = false;
-                }
-            }
-        }
-    }
-
-    /**
-     * Resets the timer's remaining time to the timer's interval.
-     * If the timer's running state is not altered.
-     */
-    public void reset() {
-        synchronized (timerThread) {
-            synchronized (this) {
-                setRemainingTime(interval);
-            }
-        }
-    }
-
-    /**
-     * Returns the time at which the timer was last stopped.  The
-     * return value is valid only if the timer is stopped.
-     */
-    public synchronized long getStopTime() {
-        return sleepUntil;
-    }
-
-    /**
-     * Returns the timer's interval.
-     */
-    public synchronized long getInterval() {
-        return interval;
-    }
-
-    /**
-     * Changes the timer's interval.  The new interval setting
-     * does not take effect until after the next tick.
-     * This method does not alter the remaining time or the
-     * running state of the timer.
-     * @param interval new interval of the timer in milliseconds
-     */
-    public synchronized void setInterval(long interval) {
-        this.interval = interval;
-    }
-
-    /**
-     * Returns the remaining time before the timer's next tick.
-     * The return value is valid only if timer is stopped.
-     */
-    public synchronized long getRemainingTime() {
-        return remainingTime;
-    }
-
-    /**
-     * Sets the remaining time before the timer's next tick.
-     * This method does not alter the timer's running state.
-     * This method is MT-safe; i.e. it is synchronized but for
-     * implementation reasons, the synchronized modifier cannot
-     * be included in the method declaration.
-     * @param time new remaining time in milliseconds.
-     */
-    public void setRemainingTime(long time) {
-        synchronized (timerThread) {
-            synchronized (this) {
-                if (stopped) {
-                    remainingTime = time;
-                } else {
-                    stop();
-                    remainingTime = time;
-                    cont();
-                }
-            }
-        }
-    }
-
-    /**
-     * In regular mode, a timer ticks at the specified interval,
-     * regardless of how long the owner's tick() method takes.
-     * While the timer is running, no ticks are ever discarded.
-     * That means that if the owner's tick() method takes longer
-     * than the interval, the ticks that would have occurred are
-     * delivered immediately.
-     *
-     * In irregular mode, a timer starts delaying for exactly
-     * the specified interval only after the tick() method returns.
-     */
-    public synchronized void setRegular(boolean regular) {
-        this.regular = regular;
-    }
-
-    /*
-     * This method is used only for testing purposes.
-     */
-    protected Thread getTimerThread() {
-        return TimerThread.timerThread;
-    }
-}
-
-
-/*
-
-This class implements the timer queue and is exclusively used by the
-Timer class.  There are only two methods exported to the Timer class -
-enqueue, for inserting a timer into queue and dequeue, for removing
-a timer from the queue.
-
-A timer in the timer queue is awaiting a tick.  When a timer is to be
-ticked, it is removed from the timer queue before the owner's tick()
-method is called.
-
-A single timer thread manages the timer queue.  This timer thread
-looks at the head of the timer queue and delays until it's time for
-the timer to tick.  When the time comes, the timer thread creates a
-callback thread to call the timer owner's tick() method.  The timer
-thread then processes the next timer in the queue.
-
-When a timer is inserted at the head of the queue, the timer thread is
-notified.  This causes the timer thread to prematurely wake up and
-process the new head of the queue.
-
-*/
-
-class TimerThread extends Thread {
-    /*
-     * Set to true to get debugging output.
-     */
-    public static boolean debug = false;
-
-    /*
-     * This is a handle to the thread managing the thread queue.
-     */
-    static TimerThread timerThread;
-
-    /*
-     * This flag is set if the timer thread has been notified
-     * while it was in the timed wait.  This flag allows the
-     * timer thread to tell whether or not the wait completed.
-     */
-    static boolean notified = false;
-
-    protected TimerThread() {
-        super("TimerThread");
-        timerThread = this;
-        start();
-    }
-
-    public synchronized void run() {
-        while (true) {
-            long delay;
-
-            while (timerQueue == null) {
-                try {
-                    wait();
-                } catch (InterruptedException ex) {
-                   // Just drop through and check timerQueue.
-                }
-            }
-            notified = false;
-            delay = timerQueue.sleepUntil - System.currentTimeMillis();
-            if (delay > 0) {
-                try {
-                    wait(delay);
-                } catch (InterruptedException ex) {
-                    // Just drop through.
-                }
-            }
-            // remove from timer queue.
-            if (!notified) {
-                Timer timer = timerQueue;
-                timerQueue = timerQueue.next;
-                TimerTickThread thr = TimerTickThread.call(
-                    timer, timer.sleepUntil);
-                if (debug) {
-                    long delta = (System.currentTimeMillis() - timer.sleepUntil);
-                    System.out.println("tick(" + thr.getName() + ","
-                        + timer.interval + ","+delta+ ")");
-                    if (delta > 250) {
-                        System.out.println("*** BIG DELAY ***");
-                    }
-                }
-            }
-        }
-    }
-
-    /* *******************************************************
-       Timer Queue
-       ******************************************************* */
-
-    /*
-     * The timer queue is a queue of timers waiting to tick.
-     */
-    static Timer timerQueue = null;
-
-    /*
-     * Uses timer.sleepUntil to determine where in the queue
-     * to insert the timer object.
-     * A new ticker thread is created only if the timer
-     * is inserted at the beginning of the queue.
-     * The timer must not already be in the queue.
-     * Assumes the caller has the TimerThread monitor.
-     */
-    static protected void enqueue(Timer timer) {
-        Timer prev = null;
-        Timer cur = timerQueue;
-
-        if (cur == null || timer.sleepUntil <= cur.sleepUntil) {
-            // insert at front of queue
-            timer.next = timerQueue;
-            timerQueue = timer;
-            notified = true;
-            timerThread.notify();
-        } else {
-            do {
-                prev = cur;
-                cur = cur.next;
-            } while (cur != null && timer.sleepUntil > cur.sleepUntil);
-            // insert or append to the timer queue
-            timer.next = cur;
-            prev.next = timer;
-        }
-        if (debug) {
-            long now = System.currentTimeMillis();
-
-            System.out.print(Thread.currentThread().getName()
-                + ": enqueue " + timer.interval + ": ");
-            cur = timerQueue;
-            while(cur != null) {
-                long delta = cur.sleepUntil - now;
-                System.out.print(cur.interval + "(" + delta + ") ");
-                cur = cur.next;
-            }
-            System.out.println();
-        }
-    }
-
-    /*
-     * If the timer is not in the queue, returns false;
-     * otherwise removes the timer from the timer queue and returns true.
-     * Assumes the caller has the TimerThread monitor.
-     */
-    static protected boolean dequeue(Timer timer) {
-        Timer prev = null;
-        Timer cur = timerQueue;
-
-        while (cur != null && cur != timer) {
-            prev = cur;
-            cur = cur.next;
-        }
-        if (cur == null) {
-            if (debug) {
-                System.out.println(Thread.currentThread().getName()
-                    + ": dequeue " + timer.interval + ": no-op");
-            }
-            return false;
-        }       if (prev == null) {
-            timerQueue = timer.next;
-            notified = true;
-            timerThread.notify();
-        } else {
-            prev.next = timer.next;
-        }
-        timer.next = null;
-        if (debug) {
-            long now = System.currentTimeMillis();
-
-            System.out.print(Thread.currentThread().getName()
-                + ": dequeue " + timer.interval + ": ");
-            cur = timerQueue;
-            while(cur != null) {
-                long delta = cur.sleepUntil - now;
-                System.out.print(cur.interval + "(" + delta + ") ");
-                cur = cur.next;
-            }
-            System.out.println();
-        }
-        return true;
-    }
-
-    /*
-     * Inserts the timer back into the queue.  This method
-     * is used by a callback thread after it has called the
-     * timer owner's tick() method.  This method recomputes
-     * the sleepUntil field.
-     * Assumes the caller has the TimerThread and Timer monitor.
-     */
-    protected static void requeue(Timer timer) {
-        if (!timer.stopped) {
-            long now = System.currentTimeMillis();
-            if (timer.regular) {
-                timer.sleepUntil += timer.interval;
-            } else {
-                timer.sleepUntil = now + timer.interval;
-            }
-            enqueue(timer);
-        } else if (debug) {
-            System.out.println(Thread.currentThread().getName()
-                + ": requeue " + timer.interval + ": no-op");
-        }
-    }
-}
-
-/*
-
-This class implements a simple thread whose only purpose is to call a
-timer owner's tick() method.  A small fixed-sized pool of threads is
-maintained and is protected by the class monitor.  If the pool is
-exhausted, a new thread is temporarily created and destroyed when
-done.
-
-A thread that's in the pool waits on it's own monitor.  When the
-thread is retrieved from the pool, the retriever notifies the thread's
-monitor.
-
-*/
-
-class TimerTickThread extends Thread {
-    /*
-     * Maximum size of the thread pool.
-     */
-    static final int MAX_POOL_SIZE = 3;
-
-    /*
-     * Number of threads in the pool.
-     */
-    static int curPoolSize = 0;
-
-    /*
-     * The pool of timer threads.
-     */
-    static TimerTickThread pool = null;
-
-    /*
-     * Is used when linked into the thread pool.
-     */
-    TimerTickThread next = null;
-
-    /*
-     * This is the handle to the timer whose owner's
-     * tick() method will be called.
-     */
-    Timer timer;
-
-    /*
-     * The value of a timer's sleepUntil value is captured here.
-     * This is used to determine whether or not the timer should
-     * be reinserted into the queue.  If the timer's sleepUntil
-     * value has changed, the timer is not reinserted.
-     */
-    long lastSleepUntil;
-
-    /*
-     * Creates a new callback thread to call the timer owner's
-     * tick() method.  A thread is taken from the pool if one
-     * is available, otherwise, a new thread is created.
-     * The thread handle is returned.
-     */
-    protected static synchronized TimerTickThread call(
-            Timer timer, long sleepUntil) {
-        TimerTickThread thread = pool;
-
-        if (thread == null) {
-            // create one.
-            thread = new TimerTickThread();
-            thread.timer = timer;
-            thread.lastSleepUntil = sleepUntil;
-            thread.start();
-        } else {
-            pool = pool.next;
-            thread.timer = timer;
-            thread.lastSleepUntil = sleepUntil;
-            synchronized (thread) {
-                thread.notify();
-            }
-        }
-        return thread;
-    }
-
-    /*
-     * Returns false if the thread should simply exit;
-     * otherwise the thread is returned the pool, where
-     * it waits to be notified.  (I did try to use the
-     * class monitor but the time between the notify
-     * and breaking out of the wait seemed to take
-     * significantly longer; need to look into this later.)
-     */
-    private boolean returnToPool() {
-        synchronized (getClass()) {
-            if (curPoolSize >= MAX_POOL_SIZE) {
-                return false;
-            }
-            next = pool;
-            pool = this;
-            curPoolSize++;
-            timer = null;
-        }
-        while (timer == null) {
-            synchronized (this) {
-                try {
-                    wait();
-                } catch (InterruptedException ex) {
-                   // Just drop through and retest timer.
-                }
-            }
-        }
-        synchronized (getClass()) {
-            curPoolSize--;
-        }
-        return true;
-    }
-
-    public void run() {
-        do {
-            timer.owner.tick(timer);
-            synchronized (TimerThread.timerThread) {
-                synchronized (timer) {
-                    if (lastSleepUntil == timer.sleepUntil) {
-                        TimerThread.requeue(timer);
-                    }
-                }
-            }
-        } while (returnToPool());
-    }
-}
--- a/jdk/src/share/classes/sun/misc/UUDecoder.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/misc/UUDecoder.java	Wed Jun 18 10:55:17 2014 -0700
@@ -123,7 +123,7 @@
         throws IOException {
         int i, c1, c2, c3, c4;
         int a, b, c;
-        StringBuffer x = new StringBuffer();
+        StringBuilder x = new StringBuilder();
 
         for (i = 0; i < 4; i++) {
             c1 = inStream.read();
@@ -152,7 +152,7 @@
      */
     protected void decodeBufferPrefix(PushbackInputStream inStream, OutputStream outStream) throws IOException {
         int     c;
-        StringBuffer q = new StringBuffer(32);
+        StringBuilder q = new StringBuilder(32);
         String r;
         boolean sawNewLine;
 
--- a/jdk/src/share/classes/sun/net/TransferProtocolClient.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/net/TransferProtocolClient.java	Wed Jun 18 10:55:17 2014 -0700
@@ -53,7 +53,7 @@
      * number. Returns -1 on failure.
      */
     public int readServerResponse() throws IOException {
-        StringBuffer    replyBuf = new StringBuffer(32);
+        StringBuilder   replyBuf = new StringBuilder(32);
         int             c;
         int             continuingCode = -1;
         int             code;
--- a/jdk/src/share/classes/sun/net/ftp/impl/FtpClient.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/net/ftp/impl/FtpClient.java	Wed Jun 18 10:55:17 2014 -0700
@@ -408,7 +408,7 @@
      * number. Returns -1 on failure.
      */
     private int readServerResponse() throws IOException {
-        StringBuffer replyBuf = new StringBuffer(32);
+        StringBuilder replyBuf = new StringBuilder(32);
         int c;
         int continuingCode = -1;
         int code;
@@ -1050,7 +1050,7 @@
         // keep the welcome message around so we can
         // put it in the resulting HTML page.
         String l;
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (int i = 0; i < serverResponse.size(); i++) {
             l = serverResponse.elementAt(i);
             if (l != null) {
@@ -1095,7 +1095,7 @@
 
         // keep the welcome message around so we can
         // put it in the resulting HTML page.
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         if (serverResponse != null) {
             for (String l : serverResponse) {
                 if (l != null) {
@@ -1493,7 +1493,7 @@
          * So we need to remove the 1st and last line
          */
         Vector<String> resp = getResponseStrings();
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (int i = 1; i < resp.size() - 1; i++) {
             sb.append(resp.get(i));
         }
@@ -1985,7 +1985,7 @@
      *         by the server.
      */
     public String getLastResponseString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         if (serverResponse != null) {
             for (String l : serverResponse) {
                 if (l != null) {
@@ -2188,7 +2188,7 @@
         }
         // on multiple lines answers, like the ones above, remove 1st and last
         // line, concat the the others.
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (int i = 1; i < resp.size() - 1; i++) {
             sb.append(resp.get(i).substring(3));
         }
--- a/jdk/src/share/classes/sun/net/www/MimeEntry.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/net/www/MimeEntry.java	Wed Jun 18 10:55:17 2014 -0700
@@ -281,52 +281,52 @@
     }
 
     public synchronized String toProperty() {
-        StringBuffer buf = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
         String separator = "; ";
         boolean needSeparator = false;
 
         int action = getAction();
         if (action != MimeEntry.UNKNOWN) {
-            buf.append("action=" + actionKeywords[action]);
+            sb.append("action=" + actionKeywords[action]);
             needSeparator = true;
         }
 
         String command = getLaunchString();
         if (command != null && command.length() > 0) {
             if (needSeparator) {
-                buf.append(separator);
+                sb.append(separator);
             }
-            buf.append("application=" + command);
+            sb.append("application=" + command);
             needSeparator = true;
         }
 
         if (getImageFileName() != null) {
             if (needSeparator) {
-                buf.append(separator);
+                sb.append(separator);
             }
-            buf.append("icon=" + getImageFileName());
+            sb.append("icon=" + getImageFileName());
             needSeparator = true;
         }
 
         String extensions = getExtensionsAsList();
         if (extensions.length() > 0) {
             if (needSeparator) {
-                buf.append(separator);
+                sb.append(separator);
             }
-            buf.append("file_extensions=" + extensions);
+            sb.append("file_extensions=" + extensions);
             needSeparator = true;
         }
 
         String description = getDescription();
         if (description != null && !description.equals(getType())) {
             if (needSeparator) {
-                buf.append(separator);
+                sb.append(separator);
             }
-            buf.append("description=" + description);
+            sb.append("description=" + description);
         }
 
-        return buf.toString();
+        return sb.toString();
     }
 
     public String toString() {
--- a/jdk/src/share/classes/sun/net/www/http/HttpClient.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/net/www/http/HttpClient.java	Wed Jun 18 10:55:17 2014 -0700
@@ -558,7 +558,7 @@
             // Do not use URLStreamHandler.toExternalForm as the fragment
             // should not be part of the RequestURI. It should be an
             // absolute URI which does not have a fragment part.
-            StringBuffer result = new StringBuffer(128);
+            StringBuilder result = new StringBuilder(128);
             result.append(url.getProtocol());
             result.append(":");
             if (url.getAuthority() != null && url.getAuthority().length() > 0) {
--- a/jdk/src/share/classes/sun/net/www/protocol/file/FileURLConnection.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/net/www/protocol/file/FileURLConnection.java	Wed Jun 18 10:55:17 2014 -0700
@@ -191,7 +191,7 @@
             if (isDirectory) {
                 FileNameMap map = java.net.URLConnection.getFileNameMap();
 
-                StringBuffer buf = new StringBuffer();
+                StringBuilder sb = new StringBuilder();
 
                 if (files == null) {
                     throw new FileNotFoundException(filename);
@@ -201,11 +201,11 @@
 
                 for (int i = 0 ; i < files.size() ; i++) {
                     String fileName = files.get(i);
-                    buf.append(fileName);
-                    buf.append("\n");
+                    sb.append(fileName);
+                    sb.append("\n");
                 }
                 // Put it into a (default) locale-specific byte-stream.
-                is = new ByteArrayInputStream(buf.toString().getBytes());
+                is = new ByteArrayInputStream(sb.toString().getBytes());
             } else {
                 throw new FileNotFoundException(filename);
             }
--- a/jdk/src/share/classes/sun/net/www/protocol/http/DigestAuthentication.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/net/www/protocol/http/DigestAuthentication.java	Wed Jun 18 10:55:17 2014 -0700
@@ -532,7 +532,7 @@
         }
         byte[] digest = md.digest();
 
-        StringBuffer res = new StringBuffer(digest.length * 2);
+        StringBuilder res = new StringBuilder(digest.length * 2);
         for (int i = 0; i < digest.length; i++) {
             int hashchar = ((digest[i] >>> 4) & 0xf);
             res.append(charArray[hashchar]);
--- a/jdk/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -382,7 +382,7 @@
     }
 
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append(this.getClass().getName());
         sb.append('[');
         if (!isOpen()) {
--- a/jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -983,7 +983,7 @@
 
     @Override
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append(this.getClass().getSuperclass().getName());
         sb.append('[');
         if (!isOpen())
--- a/jdk/src/share/classes/sun/print/PSPrinterJob.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/print/PSPrinterJob.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1269,7 +1269,7 @@
                     CharsetString cs = acs[i];
                     CharsetEncoder fontCS = cs.fontDescriptor.encoder;
 
-                    StringBuffer nativeStr = new StringBuffer();
+                    StringBuilder nativeStr = new StringBuilder();
                     byte[] strSeg = new byte[cs.length * 2];
                     int len = 0;
                     try {
--- a/jdk/src/share/classes/sun/reflect/MethodAccessorGenerator.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/reflect/MethodAccessorGenerator.java	Wed Jun 18 10:55:17 2014 -0700
@@ -751,14 +751,14 @@
     }
 
     private String buildInternalSignature() {
-        StringBuffer buf = new StringBuffer();
-        buf.append("(");
+        StringBuilder sb = new StringBuilder();
+        sb.append("(");
         for (int i = 0; i < parameterTypes.length; i++) {
-            buf.append(getClassName(parameterTypes[i], true));
+            sb.append(getClassName(parameterTypes[i], true));
         }
-        buf.append(")");
-        buf.append(getClassName(returnType, true));
-        return buf.toString();
+        sb.append(")");
+        sb.append(getClassName(returnType, true));
+        return sb.toString();
     }
 
     private static synchronized String generateName(boolean isConstructor,
--- a/jdk/src/share/classes/sun/rmi/server/Activation.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/rmi/server/Activation.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1239,7 +1239,7 @@
                 checkArgs(desc, argv);
 
                 if (debugExec) {
-                    StringBuffer sb = new StringBuffer(argv[0]);
+                    StringBuilder sb = new StringBuilder(argv[0]);
                     int j;
                     for (j = 1; j < argv.length; j++) {
                         sb.append(' ');
--- a/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java	Wed Jun 18 10:55:17 2014 -0700
@@ -793,7 +793,7 @@
         } else if (urls.length == 1) {
             return urls[0].toExternalForm();
         } else {
-            StringBuffer path = new StringBuffer(urls[0].toExternalForm());
+            StringBuilder path = new StringBuilder(urls[0].toExternalForm());
             for (int i = 1; i < urls.length; i++) {
                 path.append(' ');
                 path.append(urls[i].toExternalForm());
--- a/jdk/src/share/classes/sun/rmi/server/Util.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/rmi/server/Util.java	Wed Jun 18 10:55:17 2014 -0700
@@ -391,7 +391,7 @@
      * the definition of a "method descriptor".
      */
     private static String getMethodNameAndDescriptor(Method m) {
-        StringBuffer desc = new StringBuffer(m.getName());
+        StringBuilder desc = new StringBuilder(m.getName());
         desc.append('(');
         Class<?>[] paramTypes = m.getParameterTypes();
         for (int i = 0; i < paramTypes.length; i++) {
--- a/jdk/src/share/classes/sun/security/acl/AclImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/acl/AclImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -253,7 +253,7 @@
      * ACL.
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         Enumeration<AclEntry> entries = entries();
         while (entries.hasMoreElements()) {
             AclEntry entry = entries.nextElement();
--- a/jdk/src/share/classes/sun/security/jgss/GSSCredentialImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/jgss/GSSCredentialImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -636,29 +636,29 @@
         }
 
         GSSCredentialSpi element = null;
-        StringBuffer buffer = new StringBuffer("[GSSCredential: ");
+        StringBuilder sb = new StringBuilder("[GSSCredential: ");
         Object[] elements = hashtable.entrySet().toArray();
         for (int i = 0; i < elements.length; i++) {
             try {
-                buffer.append('\n');
+                sb.append('\n');
                 element = (GSSCredentialSpi)
                     ((Map.Entry)elements[i]).getValue();
-                buffer.append(element.getName());
-                buffer.append(' ');
-                buffer.append(element.getMechanism());
-                buffer.append(element.isInitiatorCredential() ?
-                              " Initiate" : "");
-                buffer.append(element.isAcceptorCredential() ?
-                              " Accept" : "");
-                buffer.append(" [");
-                buffer.append(element.getClass());
-                buffer.append(']');
+                sb.append(element.getName());
+                sb.append(' ');
+                sb.append(element.getMechanism());
+                sb.append(element.isInitiatorCredential() ?
+                          " Initiate" : "");
+                sb.append(element.isAcceptorCredential() ?
+                          " Accept" : "");
+                sb.append(" [");
+                sb.append(element.getClass());
+                sb.append(']');
             } catch (GSSException e) {
                 // skip to next element
             }
         }
-        buffer.append(']');
-        return buffer.toString();
+        sb.append(']');
+        return sb.toString();
     }
 
     static class SearchKey {
--- a/jdk/src/share/classes/sun/security/jgss/GSSHeader.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/jgss/GSSHeader.java	Wed Jun 18 10:55:17 2014 -0700
@@ -327,7 +327,7 @@
     private  String getHexBytes(byte[] bytes, int len)
         throws IOException {
 
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (int i = 0; i < len; i++) {
 
             int b1 = (bytes[i]>>4) & 0x0f;
--- a/jdk/src/share/classes/sun/security/jgss/GSSToken.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/jgss/GSSToken.java	Wed Jun 18 10:55:17 2014 -0700
@@ -216,7 +216,7 @@
     }
 
     public static final String getHexBytes(byte[] bytes, int pos, int len) {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (int i = pos; i < (pos+len); i++) {
             int b1 = (bytes[i]>>4) & 0x0f;
             int b2 = bytes[i] & 0x0f;
--- a/jdk/src/share/classes/sun/security/jgss/ProviderList.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/jgss/ProviderList.java	Wed Jun 18 10:55:17 2014 -0700
@@ -536,12 +536,12 @@
 
         // For debugging
         public String toString() {
-            StringBuffer buf = new StringBuffer("<");
-            buf.append(p.getName());
-            buf.append(", ");
-            buf.append(oid);
-            buf.append(">");
-            return buf.toString();
+            StringBuilder sb = new StringBuilder("<");
+            sb.append(p.getName());
+            sb.append(", ");
+            sb.append(oid);
+            sb.append(">");
+            return sb.toString();
         }
     }
 }
--- a/jdk/src/share/classes/sun/security/jgss/TokenTracker.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/jgss/TokenTracker.java	Wed Jun 18 10:55:17 2014 -0700
@@ -336,19 +336,19 @@
     }
 
     public String toString() {
-        StringBuffer buf = new StringBuffer("TokenTracker: ");
-        buf.append(" initNumber=").append(initNumber);
-        buf.append(" windowStart=").append(windowStart);
-        buf.append(" expectedNumber=").append(expectedNumber);
-        buf.append(" windowStartIndex=").append(windowStartIndex);
-        buf.append("\n\tIntervals are: {");
+        StringBuilder sb = new StringBuilder("TokenTracker: ");
+        sb.append(" initNumber=").append(initNumber);
+        sb.append(" windowStart=").append(windowStart);
+        sb.append(" expectedNumber=").append(expectedNumber);
+        sb.append(" windowStartIndex=").append(windowStartIndex);
+        sb.append("\n\tIntervals are: {");
         for (int i = 0; i < list.size(); i++) {
             if (i != 0)
-                buf.append(", ");
-            buf.append(list.get(i).toString());
+                sb.append(", ");
+            sb.append(list.get(i).toString());
         }
-        buf.append('}');
-        return buf.toString();
+        sb.append('}');
+        return sb.toString();
     }
 
     /**
--- a/jdk/src/share/classes/sun/security/jgss/krb5/InitialToken.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/jgss/krb5/InitialToken.java	Wed Jun 18 10:55:17 2014 -0700
@@ -164,15 +164,15 @@
                     serviceTicket.getServer();
                 // Cannot use '\"' instead of "\"" in constructor because
                 // it is interpreted as suggested length!
-                StringBuffer buf = new StringBuffer("\"");
-                buf.append(delegateTo.getName()).append('\"');
+                StringBuilder sb = new StringBuilder("\"");
+                sb.append(delegateTo.getName()).append('\"');
                 String realm = delegateTo.getRealmAsString();
-                buf.append(" \"krbtgt/").append(realm).append('@');
-                buf.append(realm).append('\"');
+                sb.append(" \"krbtgt/").append(realm).append('@');
+                sb.append(realm).append('\"');
                 SecurityManager sm = System.getSecurityManager();
                 if (sm != null) {
                     DelegationPermission perm =
-                        new DelegationPermission(buf.toString());
+                        new DelegationPermission(sb.toString());
                     sm.checkPermission(perm);
                 }
 
--- a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Context.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Context.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1345,7 +1345,7 @@
 
     private static String getHexBytes(byte[] bytes, int pos, int len) {
 
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (int i = 0; i < len; i++) {
 
             int b1 = (bytes[i]>>4) & 0x0f;
--- a/jdk/src/share/classes/sun/security/jgss/wrapper/Krb5Util.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/jgss/wrapper/Krb5Util.java	Wed Jun 18 10:55:17 2014 -0700
@@ -41,9 +41,9 @@
         String krbPrinc = name.getKrbName();
         int atIndex = krbPrinc.indexOf('@');
         String realm = krbPrinc.substring(atIndex + 1);
-        StringBuffer buf = new StringBuffer("krbtgt/");
-        buf.append(realm).append('@').append(realm);
-        return buf.toString();
+        StringBuilder sb = new StringBuilder("krbtgt/");
+        sb.append(realm).append('@').append(realm);
+        return sb.toString();
     }
 
     // Perform the Service Permission check using the specified
--- a/jdk/src/share/classes/sun/security/jgss/wrapper/NativeGSSContext.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/jgss/wrapper/NativeGSSContext.java	Wed Jun 18 10:55:17 2014 -0700
@@ -139,10 +139,10 @@
         if (sm != null) {
             String targetStr = targetName.getKrbName();
             String tgsStr = Krb5Util.getTGSName(targetName);
-            StringBuffer buf = new StringBuffer("\"");
-            buf.append(targetStr).append("\" \"");
-            buf.append(tgsStr).append('\"');
-            String krbPrincPair = buf.toString();
+            StringBuilder sb = new StringBuilder("\"");
+            sb.append(targetStr).append("\" \"");
+            sb.append(tgsStr).append('\"');
+            String krbPrincPair = sb.toString();
             SunNativeProvider.debug("Checking DelegationPermission (" +
                                     krbPrincPair + ")");
             DelegationPermission perm =
--- a/jdk/src/share/classes/sun/security/krb5/Credentials.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/krb5/Credentials.java	Wed Jun 18 10:55:17 2014 -0700
@@ -510,21 +510,21 @@
     }
 
     public String toString() {
-        StringBuffer buffer = new StringBuffer("Credentials:");
-        buffer.append(    "\n      client=").append(client);
-        buffer.append(    "\n      server=").append(server);
+        StringBuilder sb = new StringBuilder("Credentials:");
+        sb.append(    "\n      client=").append(client);
+        sb.append(    "\n      server=").append(server);
         if (authTime != null) {
-            buffer.append("\n    authTime=").append(authTime);
+            sb.append("\n    authTime=").append(authTime);
         }
         if (startTime != null) {
-            buffer.append("\n   startTime=").append(startTime);
+            sb.append("\n   startTime=").append(startTime);
         }
-        buffer.append(    "\n     endTime=").append(endTime);
-        buffer.append(    "\n   renewTill=").append(renewTill);
-        buffer.append(    "\n       flags=").append(flags);
-        buffer.append(    "\nEType (skey)=").append(key.getEType());
-        buffer.append(    "\n   (tkt key)=").append(ticket.encPart.eType);
-        return buffer.toString();
+        sb.append(    "\n     endTime=").append(endTime);
+        sb.append(    "\n   renewTill=").append(renewTill);
+        sb.append(    "\n       flags=").append(flags);
+        sb.append(    "\nEType (skey)=").append(key.getEType());
+        sb.append(    "\n   (tkt key)=").append(ticket.encPart.eType);
+        return sb.toString();
     }
 
 }
--- a/jdk/src/share/classes/sun/security/krb5/KrbException.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/krb5/KrbException.java	Wed Jun 18 10:55:17 2014 -0700
@@ -96,7 +96,7 @@
 
 
     public String krbErrorMessage() {
-        StringBuffer strbuf = new StringBuffer("krb_error " + returnCode);
+        StringBuilder strbuf = new StringBuilder("krb_error " + returnCode);
         String msg =  getMessage();
         if (msg != null) {
             strbuf.append(" ");
@@ -112,7 +112,7 @@
      * If the error code is 0 then the first half is skipped.
      */
     public String getMessage() {
-        StringBuffer message = new StringBuffer();
+        StringBuilder message = new StringBuilder();
         int returnCode = returnCode();
         if (returnCode != 0) {
             message.append(returnCodeMessage());
--- a/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/krb5/PrincipalName.java	Wed Jun 18 10:55:17 2014 -0700
@@ -480,7 +480,7 @@
     }
 
     public String getPrincipalNameAsString() {
-        StringBuffer temp = new StringBuffer(nameStrings[0]);
+        StringBuilder temp = new StringBuilder(nameStrings[0]);
         for (int i = 1; i < nameStrings.length; i++)
             temp.append(nameStrings[i]);
         return temp.toString();
@@ -521,7 +521,7 @@
 
     public String getSalt() {
         if (salt == null) {
-            StringBuffer salt = new StringBuffer();
+            StringBuilder salt = new StringBuilder();
             salt.append(nameRealm.toString());
             for (int i = 0; i < nameStrings.length; i++) {
                 salt.append(nameStrings[i]);
@@ -532,7 +532,7 @@
     }
 
     public String toString() {
-        StringBuffer str = new StringBuffer();
+        StringBuilder str = new StringBuilder();
         for (int i = 0; i < nameStrings.length; i++) {
             if (i > 0)
                 str.append("/");
@@ -544,7 +544,7 @@
     }
 
     public String getNameString() {
-        StringBuffer str = new StringBuffer();
+        StringBuilder str = new StringBuilder();
         for (int i = 0; i < nameStrings.length; i++) {
             if (i > 0)
                 str.append("/");
--- a/jdk/src/share/classes/sun/security/krb5/internal/EncTicketPart.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/krb5/internal/EncTicketPart.java	Wed Jun 18 10:55:17 2014 -0700
@@ -117,7 +117,7 @@
     private static String getHexBytes(byte[] bytes, int len)
             throws IOException {
 
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (int i = 0; i < len; i++) {
 
             int b1 = (bytes[i] >> 4) & 0x0f;
--- a/jdk/src/share/classes/sun/security/krb5/internal/TicketFlags.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/krb5/internal/TicketFlags.java	Wed Jun 18 10:55:17 2014 -0700
@@ -137,7 +137,7 @@
      * Returns the string representative of ticket flags.
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         boolean[] flags = toBooleanArray();
         for (int i = 0; i < flags.length; i++) {
             if (flags[i] == true) {
--- a/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/krb5/internal/crypto/EType.java	Wed Jun 18 10:55:17 2014 -0700
@@ -269,7 +269,7 @@
         }
         int len = list.size();
         if (len <= 0) {
-            StringBuffer keystr = new StringBuffer();
+            StringBuilder keystr = new StringBuilder();
             for (int i = 0; i < keys.length; i++) {
                 keystr.append(toString(keys[i].getEType()));
                 keystr.append(" ");
--- a/jdk/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java	Wed Jun 18 10:55:17 2014 -0700
@@ -636,7 +636,7 @@
     // Routines used for debugging
     static String bytesToString(byte[] digest) {
         // Get character representation of digest
-        StringBuffer digestString = new StringBuffer();
+        StringBuilder digestString = new StringBuilder();
 
         for (int i = 0; i < digest.length; i++) {
             if ((digest[i] & 0x000000ff) < 0x10) {
--- a/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTabEntry.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTabEntry.java	Wed Jun 18 10:55:17 2014 -0700
@@ -73,7 +73,7 @@
     }
 
     public String getKeyString() {
-        StringBuffer sb = new StringBuffer("0x");
+        StringBuilder sb = new StringBuilder("0x");
         for (int i = 0; i < keyblock.length; i++) {
             sb.append(String.format("%02x", keyblock[i]&0xff));
         }
--- a/jdk/src/share/classes/sun/security/pkcs/PKCS9Attribute.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs/PKCS9Attribute.java	Wed Jun 18 10:55:17 2014 -0700
@@ -790,26 +790,26 @@
      * Returns a string representation of this attribute.
      */
     public String toString() {
-        StringBuffer buf = new StringBuffer(100);
+        StringBuilder sb = new StringBuilder(100);
 
-        buf.append("[");
+        sb.append("[");
 
         if (index == -1) {
-            buf.append(oid.toString());
+            sb.append(oid.toString());
         } else {
-            buf.append(OID_NAME_TABLE.get(PKCS9_OIDS[index]));
+            sb.append(OID_NAME_TABLE.get(PKCS9_OIDS[index]));
         }
-        buf.append(": ");
+        sb.append(": ");
 
         if (index == -1 || SINGLE_VALUED[index]) {
             if (value instanceof byte[]) { // special case for octet string
                 HexDumpEncoder hexDump = new HexDumpEncoder();
-                buf.append(hexDump.encodeBuffer((byte[]) value));
+                sb.append(hexDump.encodeBuffer((byte[]) value));
             } else {
-                buf.append(value.toString());
+                sb.append(value.toString());
             }
-            buf.append("]");
-            return buf.toString();
+            sb.append("]");
+            return sb.toString();
         } else { // multi-valued
             boolean first = true;
             Object[] values = (Object[]) value;
@@ -818,11 +818,11 @@
                 if (first)
                     first = false;
                 else
-                    buf.append(", ");
+                    sb.append(", ");
 
-                buf.append(values[j].toString());
+                sb.append(values[j].toString());
             }
-            return buf.toString();
+            return sb.toString();
         }
     }
 
@@ -857,7 +857,7 @@
     private void throwTagException(Byte tag)
     throws IOException {
         Byte[] expectedTags = PKCS9_VALUE_TAGS[index];
-        StringBuffer msg = new StringBuffer(100);
+        StringBuilder msg = new StringBuilder(100);
         msg.append("Value of attribute ");
         msg.append(oid.toString());
         msg.append(" (");
--- a/jdk/src/share/classes/sun/security/pkcs/PKCS9Attributes.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs/PKCS9Attributes.java	Wed Jun 18 10:55:17 2014 -0700
@@ -323,8 +323,8 @@
      * Returns the PKCS9 block in a printable string form.
      */
     public String toString() {
-        StringBuffer buf = new StringBuffer(200);
-        buf.append("PKCS9 Attributes: [\n\t");
+        StringBuilder sb = new StringBuilder(200);
+        sb.append("PKCS9 Attributes: [\n\t");
 
         ObjectIdentifier oid;
         PKCS9Attribute value;
@@ -339,14 +339,14 @@
             if (first)
                 first = false;
             else
-                buf.append(";\n\t");
+                sb.append(";\n\t");
 
-            buf.append(value.toString());
+            sb.append(value.toString());
         }
 
-        buf.append("\n\t] (end PKCS9 Attributes)");
+        sb.append("\n\t] (end PKCS9 Attributes)");
 
-        return buf.toString();
+        return sb.toString();
     }
 
     /**
--- a/jdk/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs/SigningCertificateInfo.java	Wed Jun 18 10:55:17 2014 -0700
@@ -92,15 +92,15 @@
     }
 
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
-        buffer.append("[\n");
+        StringBuilder sb = new StringBuilder();
+        sb.append("[\n");
         for (int i = 0; i < certId.length; i++) {
-            buffer.append(certId[i].toString());
+            sb.append(certId[i].toString());
         }
         // format policies as a string
-        buffer.append("\n]");
+        sb.append("\n]");
 
-        return buffer.toString();
+        return sb.toString();
     }
 
     public void parse(byte[] bytes) throws IOException {
@@ -151,17 +151,17 @@
     }
 
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
-        buffer.append("[\n\tCertificate hash (SHA-1):\n");
+        StringBuilder sb = new StringBuilder();
+        sb.append("[\n\tCertificate hash (SHA-1):\n");
         if (hexDumper == null) {
             hexDumper = new HexDumpEncoder();
         }
-        buffer.append(hexDumper.encode(certHash));
+        sb.append(hexDumper.encode(certHash));
         if (issuer != null && serialNumber != null) {
-            buffer.append("\n\tIssuer: " + issuer + "\n");
-            buffer.append("\t" + serialNumber);
+            sb.append("\n\tIssuer: " + issuer + "\n");
+            sb.append("\t" + serialNumber);
         }
-        buffer.append("\n]");
-        return buffer.toString();
+        sb.append("\n]");
+        return sb.toString();
     }
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_AES_CTR_PARAMS.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_AES_CTR_PARAMS.java	Wed Jun 18 10:55:17 2014 -0700
@@ -50,17 +50,17 @@
     }
 
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulCounterBits: ");
-        buffer.append(ulCounterBits);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("ulCounterBits: ");
+        sb.append(ulCounterBits);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("cb: ");
-        buffer.append(Functions.toHexString(cb));
+        sb.append(Constants.INDENT);
+        sb.append("cb: ");
+        sb.append(Functions.toHexString(cb));
 
-        return buffer.toString();
+        return sb.toString();
     }
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_DATE.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_DATE.java	Wed Jun 18 10:55:17 2014 -0700
@@ -122,16 +122,16 @@
      * @return the string representation of CK_DATE
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(new String(day));
-        buffer.append('.');
-        buffer.append(new String(month));
-        buffer.append('.');
-        buffer.append(new String(year));
-        buffer.append(" (DD.MM.YYYY)");
+        sb.append(new String(day));
+        sb.append('.');
+        sb.append(new String(month));
+        sb.append('.');
+        sb.append(new String(year));
+        sb.append(" (DD.MM.YYYY)");
 
-        return buffer.toString();
+        return sb.toString();
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_ECDH1_DERIVE_PARAMS.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_ECDH1_DERIVE_PARAMS.java	Wed Jun 18 10:55:17 2014 -0700
@@ -105,34 +105,34 @@
      * @return the string representation of CK_PKCS5_PBKD2_PARAMS
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("kdf: 0x");
-        buffer.append(Functions.toFullHexString(kdf));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("kdf: 0x");
+        sb.append(Functions.toFullHexString(kdf));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pSharedDataLen: ");
-        buffer.append(pSharedData.length);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pSharedDataLen: ");
+        sb.append(pSharedData.length);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pSharedData: ");
-        buffer.append(Functions.toHexString(pSharedData));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pSharedData: ");
+        sb.append(Functions.toHexString(pSharedData));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPublicDataLen: ");
-        buffer.append(pPublicData.length);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pPublicDataLen: ");
+        sb.append(pPublicData.length);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPublicData: ");
-        buffer.append(Functions.toHexString(pPublicData));
+        sb.append(Constants.INDENT);
+        sb.append("pPublicData: ");
+        sb.append(Functions.toHexString(pPublicData));
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString();
+        return sb.toString();
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_ECDH2_DERIVE_PARAMS.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_ECDH2_DERIVE_PARAMS.java	Wed Jun 18 10:55:17 2014 -0700
@@ -128,54 +128,54 @@
      * @return the string representation of CK_PKCS5_PBKD2_PARAMS
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("kdf: 0x");
-        buffer.append(Functions.toFullHexString(kdf));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("kdf: 0x");
+        sb.append(Functions.toFullHexString(kdf));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pSharedDataLen: ");
-        buffer.append(pSharedData.length);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pSharedDataLen: ");
+        sb.append(pSharedData.length);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pSharedData: ");
-        buffer.append(Functions.toHexString(pSharedData));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pSharedData: ");
+        sb.append(Functions.toHexString(pSharedData));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPublicDataLen: ");
-        buffer.append(pPublicData.length);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pPublicDataLen: ");
+        sb.append(pPublicData.length);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPublicData: ");
-        buffer.append(Functions.toHexString(pPublicData));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pPublicData: ");
+        sb.append(Functions.toHexString(pPublicData));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulPrivateDataLen: ");
-        buffer.append(ulPrivateDataLen);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("ulPrivateDataLen: ");
+        sb.append(ulPrivateDataLen);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("hPrivateData: ");
-        buffer.append(hPrivateData);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("hPrivateData: ");
+        sb.append(hPrivateData);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPublicDataLen2: ");
-        buffer.append(pPublicData2.length);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pPublicDataLen2: ");
+        sb.append(pPublicData2.length);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPublicData2: ");
-        buffer.append(Functions.toHexString(pPublicData2));
+        sb.append(Constants.INDENT);
+        sb.append("pPublicData2: ");
+        sb.append(Functions.toHexString(pPublicData2));
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString();
+        return sb.toString();
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_INFO.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_INFO.java	Wed Jun 18 10:55:17 2014 -0700
@@ -131,34 +131,34 @@
      * @return the string representation of CK_INFO
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("cryptokiVersion: ");
-        buffer.append(cryptokiVersion.toString());
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("cryptokiVersion: ");
+        sb.append(cryptokiVersion.toString());
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("manufacturerID: ");
-        buffer.append(new String(manufacturerID));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("manufacturerID: ");
+        sb.append(new String(manufacturerID));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("flags: ");
-        buffer.append(Functions.toBinaryString(flags));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("flags: ");
+        sb.append(Functions.toBinaryString(flags));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("libraryDescription: ");
-        buffer.append(new String(libraryDescription));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("libraryDescription: ");
+        sb.append(new String(libraryDescription));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("libraryVersion: ");
-        buffer.append(libraryVersion.toString());
+        sb.append(Constants.INDENT);
+        sb.append("libraryVersion: ");
+        sb.append(libraryVersion.toString());
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString() ;
+        return sb.toString() ;
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java	Wed Jun 18 10:55:17 2014 -0700
@@ -143,24 +143,24 @@
      * @return the string representation of CK_MECHANISM
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("mechanism: ");
-        buffer.append(mechanism);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("mechanism: ");
+        sb.append(mechanism);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pParameter: ");
-        buffer.append(pParameter.toString());
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pParameter: ");
+        sb.append(pParameter.toString());
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulParameterLen: ??");
+        sb.append(Constants.INDENT);
+        sb.append("ulParameterLen: ??");
         //buffer.append(pParameter.length);
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString() ;
+        return sb.toString() ;
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM_INFO.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM_INFO.java	Wed Jun 18 10:55:17 2014 -0700
@@ -103,25 +103,25 @@
      * @return the string representation of CK_MECHANISM_INFO
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulMinKeySize: ");
-        buffer.append(String.valueOf(ulMinKeySize));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("ulMinKeySize: ");
+        sb.append(String.valueOf(ulMinKeySize));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulMaxKeySize: ");
-        buffer.append(String.valueOf(ulMaxKeySize));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("ulMaxKeySize: ");
+        sb.append(String.valueOf(ulMaxKeySize));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("flags: ");
-        buffer.append(String.valueOf(flags));
-        buffer.append(" = ");
-        buffer.append(Functions.mechanismInfoFlagsToString(flags));
+        sb.append(Constants.INDENT);
+        sb.append("flags: ");
+        sb.append(String.valueOf(flags));
+        sb.append(" = ");
+        sb.append(Functions.mechanismInfoFlagsToString(flags));
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString() ;
+        return sb.toString() ;
     }
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_PBE_PARAMS.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_PBE_PARAMS.java	Wed Jun 18 10:55:17 2014 -0700
@@ -109,39 +109,39 @@
      * @return the string representation of CK_PBE_PARAMS
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pInitVector: ");
-        buffer.append(pInitVector);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pInitVector: ");
+        sb.append(pInitVector);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulPasswordLen: ");
-        buffer.append(pPassword.length);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("ulPasswordLen: ");
+        sb.append(pPassword.length);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPassword: ");
-        buffer.append(pPassword);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pPassword: ");
+        sb.append(pPassword);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulSaltLen: ");
-        buffer.append(pSalt.length);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("ulSaltLen: ");
+        sb.append(pSalt.length);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pSalt: ");
-        buffer.append(pSalt);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pSalt: ");
+        sb.append(pSalt);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulIteration: ");
-        buffer.append(ulIteration);
+        sb.append(Constants.INDENT);
+        sb.append("ulIteration: ");
+        sb.append(ulIteration);
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString();
+        return sb.toString();
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_PKCS5_PBKD2_PARAMS.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_PKCS5_PBKD2_PARAMS.java	Wed Jun 18 10:55:17 2014 -0700
@@ -118,44 +118,44 @@
      * @return the string representation of CK_PKCS5_PBKD2_PARAMS
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("saltSource: ");
-        buffer.append(saltSource);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("saltSource: ");
+        sb.append(saltSource);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pSaltSourceData: ");
-        buffer.append(Functions.toHexString(pSaltSourceData));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pSaltSourceData: ");
+        sb.append(Functions.toHexString(pSaltSourceData));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulSaltSourceDataLen: ");
-        buffer.append(pSaltSourceData.length);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("ulSaltSourceDataLen: ");
+        sb.append(pSaltSourceData.length);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("iterations: ");
-        buffer.append(iterations);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("iterations: ");
+        sb.append(iterations);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("prf: ");
-        buffer.append(prf);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("prf: ");
+        sb.append(prf);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPrfData: ");
-        buffer.append(Functions.toHexString(pPrfData));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pPrfData: ");
+        sb.append(Functions.toHexString(pPrfData));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulPrfDataLen: ");
-        buffer.append(pPrfData.length);
+        sb.append(Constants.INDENT);
+        sb.append("ulPrfDataLen: ");
+        sb.append(pPrfData.length);
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString();
+        return sb.toString();
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_RSA_PKCS_OAEP_PARAMS.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_RSA_PKCS_OAEP_PARAMS.java	Wed Jun 18 10:55:17 2014 -0700
@@ -110,34 +110,34 @@
      * @return the string representation of CK_RSA_PKCS_OAEP_PARAMS
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("hashAlg: ");
-        buffer.append(hashAlg);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("hashAlg: ");
+        sb.append(hashAlg);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("mgf: ");
-        buffer.append(mgf);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("mgf: ");
+        sb.append(mgf);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("source: ");
-        buffer.append(source);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("source: ");
+        sb.append(source);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pSourceData: ");
-        buffer.append(pSourceData.toString());
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pSourceData: ");
+        sb.append(pSourceData.toString());
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pSourceDataLen: ");
-        buffer.append(Functions.toHexString(pSourceData));
+        sb.append(Constants.INDENT);
+        sb.append("pSourceDataLen: ");
+        sb.append(Functions.toHexString(pSourceData));
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString() ;
+        return sb.toString() ;
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_RSA_PKCS_PSS_PARAMS.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_RSA_PKCS_PSS_PARAMS.java	Wed Jun 18 10:55:17 2014 -0700
@@ -95,24 +95,24 @@
      * @return the string representation of CK_PKCS5_PBKD2_PARAMS
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("hashAlg: 0x");
-        buffer.append(Functions.toFullHexString(hashAlg));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("hashAlg: 0x");
+        sb.append(Functions.toFullHexString(hashAlg));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("mgf: 0x");
-        buffer.append(Functions.toFullHexString(mgf));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("mgf: 0x");
+        sb.append(Functions.toFullHexString(mgf));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("sLen: ");
-        buffer.append(sLen);
+        sb.append(Constants.INDENT);
+        sb.append("sLen: ");
+        sb.append(sLen);
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString();
+        return sb.toString();
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_SESSION_INFO.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_SESSION_INFO.java	Wed Jun 18 10:55:17 2014 -0700
@@ -114,29 +114,29 @@
      * @return the string representation of CK_SESSION_INFO
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("slotID: ");
-        buffer.append(String.valueOf(slotID));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("slotID: ");
+        sb.append(String.valueOf(slotID));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("state: ");
-        buffer.append(Functions.sessionStateToString(state));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("state: ");
+        sb.append(Functions.sessionStateToString(state));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("flags: ");
-        buffer.append(Functions.sessionInfoFlagsToString(flags));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("flags: ");
+        sb.append(Functions.sessionInfoFlagsToString(flags));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulDeviceError: ");
-        buffer.append(Functions.toHexString(ulDeviceError));
+        sb.append(Constants.INDENT);
+        sb.append("ulDeviceError: ");
+        sb.append(Functions.toHexString(ulDeviceError));
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString() ;
+        return sb.toString() ;
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_SLOT_INFO.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_SLOT_INFO.java	Wed Jun 18 10:55:17 2014 -0700
@@ -130,34 +130,34 @@
      * @return the string representation of CK_SLOT_INFO
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("slotDescription: ");
-        buffer.append(new String(slotDescription));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("slotDescription: ");
+        sb.append(new String(slotDescription));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("manufacturerID: ");
-        buffer.append(new String(manufacturerID));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("manufacturerID: ");
+        sb.append(new String(manufacturerID));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("flags: ");
-        buffer.append(Functions.slotInfoFlagsToString(flags));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("flags: ");
+        sb.append(Functions.slotInfoFlagsToString(flags));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("hardwareVersion: ");
-        buffer.append(hardwareVersion.toString());
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("hardwareVersion: ");
+        sb.append(hardwareVersion.toString());
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("firmwareVersion: ");
-        buffer.append(firmwareVersion.toString());
+        sb.append(Constants.INDENT);
+        sb.append("firmwareVersion: ");
+        sb.append(firmwareVersion.toString());
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString() ;
+        return sb.toString() ;
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TOKEN_INFO.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_TOKEN_INFO.java	Wed Jun 18 10:55:17 2014 -0700
@@ -271,119 +271,119 @@
      * @return the string representation of CK_TOKEN_INFO
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("label: ");
-        buffer.append(new String(label));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("label: ");
+        sb.append(new String(label));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("manufacturerID: ");
-        buffer.append(new String(manufacturerID));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("manufacturerID: ");
+        sb.append(new String(manufacturerID));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("model: ");
-        buffer.append(new String(model));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("model: ");
+        sb.append(new String(model));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("serialNumber: ");
-        buffer.append(new String(serialNumber));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("serialNumber: ");
+        sb.append(new String(serialNumber));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("flags: ");
-        buffer.append(Functions.tokenInfoFlagsToString(flags));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("flags: ");
+        sb.append(Functions.tokenInfoFlagsToString(flags));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulMaxSessionCount: ");
-        buffer.append((ulMaxSessionCount == PKCS11Constants.CK_EFFECTIVELY_INFINITE)
+        sb.append(Constants.INDENT);
+        sb.append("ulMaxSessionCount: ");
+        sb.append((ulMaxSessionCount == PKCS11Constants.CK_EFFECTIVELY_INFINITE)
                   ? "CK_EFFECTIVELY_INFINITE"
                   : (ulMaxSessionCount == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
                     ? "CK_UNAVAILABLE_INFORMATION"
                     : String.valueOf(ulMaxSessionCount));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulSessionCount: ");
-        buffer.append((ulSessionCount == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
+        sb.append(Constants.INDENT);
+        sb.append("ulSessionCount: ");
+        sb.append((ulSessionCount == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
                   ? "CK_UNAVAILABLE_INFORMATION"
                   : String.valueOf(ulSessionCount));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulMaxRwSessionCount: ");
-        buffer.append((ulMaxRwSessionCount == PKCS11Constants.CK_EFFECTIVELY_INFINITE)
+        sb.append(Constants.INDENT);
+        sb.append("ulMaxRwSessionCount: ");
+        sb.append((ulMaxRwSessionCount == PKCS11Constants.CK_EFFECTIVELY_INFINITE)
                   ? "CK_EFFECTIVELY_INFINITE"
                   : (ulMaxRwSessionCount == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
                     ? "CK_UNAVAILABLE_INFORMATION"
                     : String.valueOf(ulMaxRwSessionCount));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulRwSessionCount: ");
-        buffer.append((ulRwSessionCount == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
+        sb.append(Constants.INDENT);
+        sb.append("ulRwSessionCount: ");
+        sb.append((ulRwSessionCount == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
                   ? "CK_UNAVAILABLE_INFORMATION"
                   : String.valueOf(ulRwSessionCount));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulMaxPinLen: ");
-        buffer.append(String.valueOf(ulMaxPinLen));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("ulMaxPinLen: ");
+        sb.append(String.valueOf(ulMaxPinLen));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulMinPinLen: ");
-        buffer.append(String.valueOf(ulMinPinLen));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("ulMinPinLen: ");
+        sb.append(String.valueOf(ulMinPinLen));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulTotalPublicMemory: ");
-        buffer.append((ulTotalPublicMemory == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
+        sb.append(Constants.INDENT);
+        sb.append("ulTotalPublicMemory: ");
+        sb.append((ulTotalPublicMemory == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
                   ? "CK_UNAVAILABLE_INFORMATION"
                   : String.valueOf(ulTotalPublicMemory));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulFreePublicMemory: ");
-        buffer.append((ulFreePublicMemory == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
+        sb.append(Constants.INDENT);
+        sb.append("ulFreePublicMemory: ");
+        sb.append((ulFreePublicMemory == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
                   ? "CK_UNAVAILABLE_INFORMATION"
                   : String.valueOf(ulFreePublicMemory));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulTotalPrivateMemory: ");
-        buffer.append((ulTotalPrivateMemory == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
+        sb.append(Constants.INDENT);
+        sb.append("ulTotalPrivateMemory: ");
+        sb.append((ulTotalPrivateMemory == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
                   ? "CK_UNAVAILABLE_INFORMATION"
                   : String.valueOf(ulTotalPrivateMemory));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulFreePrivateMemory: ");
-        buffer.append((ulFreePrivateMemory == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
+        sb.append(Constants.INDENT);
+        sb.append("ulFreePrivateMemory: ");
+        sb.append((ulFreePrivateMemory == PKCS11Constants.CK_UNAVAILABLE_INFORMATION)
                   ? "CK_UNAVAILABLE_INFORMATION"
                   : String.valueOf(ulFreePrivateMemory));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("hardwareVersion: ");
-        buffer.append(hardwareVersion.toString());
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("hardwareVersion: ");
+        sb.append(hardwareVersion.toString());
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("firmwareVersion: ");
-        buffer.append(firmwareVersion.toString());
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("firmwareVersion: ");
+        sb.append(firmwareVersion.toString());
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("utcTime: ");
-        buffer.append(new String(utcTime));
+        sb.append(Constants.INDENT);
+        sb.append("utcTime: ");
+        sb.append(new String(utcTime));
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString() ;
+        return sb.toString() ;
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_X9_42_DH1_DERIVE_PARAMS.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_X9_42_DH1_DERIVE_PARAMS.java	Wed Jun 18 10:55:17 2014 -0700
@@ -99,34 +99,34 @@
      * @return the string representation of CK_PKCS5_PBKD2_PARAMS
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("kdf: 0x");
-        buffer.append(Functions.toFullHexString(kdf));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("kdf: 0x");
+        sb.append(Functions.toFullHexString(kdf));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pOtherInfoLen: ");
-        buffer.append(pOtherInfo.length);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pOtherInfoLen: ");
+        sb.append(pOtherInfo.length);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pOtherInfo: ");
-        buffer.append(Functions.toHexString(pOtherInfo));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pOtherInfo: ");
+        sb.append(Functions.toHexString(pOtherInfo));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPublicDataLen: ");
-        buffer.append(pPublicData.length);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pPublicDataLen: ");
+        sb.append(pPublicData.length);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPublicData: ");
-        buffer.append(Functions.toHexString(pPublicData));
+        sb.append(Constants.INDENT);
+        sb.append("pPublicData: ");
+        sb.append(Functions.toHexString(pPublicData));
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString();
+        return sb.toString();
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_X9_42_DH2_DERIVE_PARAMS.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/CK_X9_42_DH2_DERIVE_PARAMS.java	Wed Jun 18 10:55:17 2014 -0700
@@ -128,54 +128,54 @@
      * @return the string representation of CK_PKCS5_PBKD2_PARAMS
      */
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buffer.append(Constants.INDENT);
-        buffer.append("kdf: 0x");
-        buffer.append(Functions.toFullHexString(kdf));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("kdf: 0x");
+        sb.append(Functions.toFullHexString(kdf));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pOtherInfoLen: ");
-        buffer.append(pOtherInfo.length);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pOtherInfoLen: ");
+        sb.append(pOtherInfo.length);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pOtherInfo: ");
-        buffer.append(Functions.toHexString(pOtherInfo));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pOtherInfo: ");
+        sb.append(Functions.toHexString(pOtherInfo));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPublicDataLen: ");
-        buffer.append(pPublicData.length);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pPublicDataLen: ");
+        sb.append(pPublicData.length);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPublicData: ");
-        buffer.append(Functions.toHexString(pPublicData));
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pPublicData: ");
+        sb.append(Functions.toHexString(pPublicData));
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("ulPrivateDataLen: ");
-        buffer.append(ulPrivateDataLen);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("ulPrivateDataLen: ");
+        sb.append(ulPrivateDataLen);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("hPrivateData: ");
-        buffer.append(hPrivateData);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("hPrivateData: ");
+        sb.append(hPrivateData);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPublicDataLen2: ");
-        buffer.append(pPublicData2.length);
-        buffer.append(Constants.NEWLINE);
+        sb.append(Constants.INDENT);
+        sb.append("pPublicDataLen2: ");
+        sb.append(pPublicData2.length);
+        sb.append(Constants.NEWLINE);
 
-        buffer.append(Constants.INDENT);
-        buffer.append("pPublicData2: ");
-        buffer.append(Functions.toHexString(pPublicData2));
+        sb.append(Constants.INDENT);
+        sb.append("pPublicData2: ");
+        sb.append(Functions.toHexString(pPublicData2));
         //buffer.append(Constants.NEWLINE);
 
-        return buffer.toString();
+        return sb.toString();
     }
 
 }
--- a/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/pkcs11/wrapper/Functions.java	Wed Jun 18 10:55:17 2014 -0700
@@ -109,14 +109,14 @@
      */
     public static String toFullHexString(long value) {
         long currentValue = value;
-        StringBuffer stringBuffer = new StringBuffer(16);
+        StringBuilder sb = new StringBuilder(16);
         for(int j = 0; j < 16; j++) {
             int currentDigit = (int) currentValue & 0xf;
-            stringBuffer.append(HEX_DIGITS[currentDigit]);
+            sb.append(HEX_DIGITS[currentDigit]);
             currentValue >>>= 4;
         }
 
-        return stringBuffer.reverse().toString();
+        return sb.reverse().toString();
     }
 
     /**
@@ -128,14 +128,14 @@
      */
     public static String toFullHexString(int value) {
         int currentValue = value;
-        StringBuffer stringBuffer = new StringBuffer(8);
+        StringBuilder sb = new StringBuilder(8);
         for(int i = 0; i < 8; i++) {
             int currentDigit = currentValue & 0xf;
-            stringBuffer.append(HEX_DIGITS[currentDigit]);
+            sb.append(HEX_DIGITS[currentDigit]);
             currentValue >>>= 4;
         }
 
-        return stringBuffer.reverse().toString();
+        return sb.reverse().toString();
     }
 
     /**
@@ -161,20 +161,20 @@
             return null;
         }
 
-        StringBuffer buffer = new StringBuffer(2 * value.length);
+        StringBuilder sb = new StringBuilder(2 * value.length);
         int          single;
 
         for (int i = 0; i < value.length; i++) {
             single = value[i] & 0xFF;
 
             if (single < 0x10) {
-                buffer.append('0');
+                sb.append('0');
             }
 
-            buffer.append(Integer.toString(single, 16));
+            sb.append(Integer.toString(single, 16));
         }
 
-        return buffer.toString();
+        return sb.toString();
     }
 
     /**
--- a/jdk/src/share/classes/sun/security/provider/AuthPolicyFile.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/provider/AuthPolicyFile.java	Wed Jun 18 10:55:17 2014 -0700
@@ -944,7 +944,7 @@
                     }
                     File f = new File(path);
                     path = f.getCanonicalPath();
-                    StringBuffer sb = new StringBuffer(path);
+                    StringBuilder sb = new StringBuilder(path);
                     // reappend '*' to canonicalized filename (note that
                     // canonicalization may have removed trailing file
                     // separator, so we have to check for that, too)
@@ -1095,7 +1095,7 @@
 
         @Override
         public String toString(){
-            StringBuffer sb = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
             sb.append(rb.getString("LPARAM"));
             sb.append(getCodeSource());
             sb.append("\n");
--- a/jdk/src/share/classes/sun/security/provider/X509Factory.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/provider/X509Factory.java	Wed Jun 18 10:55:17 2014 -0700
@@ -519,7 +519,7 @@
 
             // Step 2: Read the rest of header, determine the line end
             int end;
-            StringBuffer header = new StringBuffer("-----");
+            StringBuilder header = new StringBuilder("-----");
             while (true) {
                 int next = is.read();
                 if (next == -1) {
@@ -562,7 +562,7 @@
             }
 
             // Step 4: Consume the footer
-            StringBuffer footer = new StringBuffer("-");
+            StringBuilder footer = new StringBuilder("-");
             while (true) {
                 int next = is.read();
                 // Add next == '\n' for maximum safety, in case endline
--- a/jdk/src/share/classes/sun/security/smartcardio/PCSC.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/smartcardio/PCSC.java	Wed Jun 18 10:55:17 2014 -0700
@@ -172,7 +172,7 @@
     private final static char[] hexDigits = "0123456789abcdef".toCharArray();
 
     public static String toString(byte[] b) {
-        StringBuffer sb = new StringBuffer(b.length * 3);
+        StringBuilder sb = new StringBuilder(b.length * 3);
         for (int i = 0; i < b.length; i++) {
             int k = b[i] & 0xff;
             if (i != 0) {
--- a/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/ssl/HandshakeMessage.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1474,17 +1474,17 @@
             s.println();
 
             if (protocolVersion.v >= ProtocolVersion.TLS12.v) {
-                StringBuffer buffer = new StringBuffer();
+                StringBuilder sb = new StringBuilder();
                 boolean opened = false;
                 for (SignatureAndHashAlgorithm signAlg : algorithms) {
                     if (opened) {
-                        buffer.append(", " + signAlg.getAlgorithmName());
+                        sb.append(", " + signAlg.getAlgorithmName());
                     } else {
-                        buffer.append(signAlg.getAlgorithmName());
+                        sb.append(signAlg.getAlgorithmName());
                         opened = true;
                     }
                 }
-                s.println("Supported Signature Algorithms: " + buffer);
+                s.println("Supported Signature Algorithms: " + sb);
             }
 
             s.println("Cert Authorities:");
--- a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -2594,7 +2594,7 @@
      */
     @Override
     public String toString() {
-        StringBuffer retval = new StringBuffer(80);
+        StringBuilder retval = new StringBuilder(80);
 
         retval.append(Integer.toHexString(hashCode()));
         retval.append("[");
--- a/jdk/src/share/classes/sun/security/ssl/ServerNameExtension.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/ssl/ServerNameExtension.java	Wed Jun 18 10:55:17 2014 -0700
@@ -266,12 +266,12 @@
 
     @Override
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (SNIServerName sniName : sniMap.values()) {
-            buffer.append("[" + sniName + "]");
+            sb.append("[" + sniName + "]");
         }
 
-        return "Extension " + type + ", server_name: " + buffer;
+        return "Extension " + type + ", server_name: " + sb;
     }
 
     private static class UnknownServerName extends SNIServerName {
--- a/jdk/src/share/classes/sun/security/ssl/SessionId.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/ssl/SessionId.java	Wed Jun 18 10:55:17 2014 -0700
@@ -72,16 +72,16 @@
     public String toString ()
     {
         int             len = sessionId.length;
-        StringBuffer    s = new StringBuffer (10 + 2 * len);
+        StringBuilder    sb = new StringBuilder (10 + 2 * len);
 
-        s.append ("{");
+        sb.append("{");
         for (int i = 0; i < len; i++) {
-            s.append (0x0ff & sessionId [i]);
+            sb.append(0x0ff & sessionId[i]);
             if (i != (len - 1))
-                s.append (", ");
+                sb.append (", ");
         }
-        s.append ("}");
-        return s.toString ();
+        sb.append("}");
+        return sb.toString ();
     }
 
 
--- a/jdk/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/ssl/SignatureAlgorithmsExtension.java	Wed Jun 18 10:55:17 2014 -0700
@@ -118,18 +118,18 @@
 
     @Override
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         boolean opened = false;
         for (SignatureAndHashAlgorithm signAlg : algorithms) {
             if (opened) {
-                buffer.append(", " + signAlg.getAlgorithmName());
+                sb.append(", " + signAlg.getAlgorithmName());
             } else {
-                buffer.append(signAlg.getAlgorithmName());
+                sb.append(signAlg.getAlgorithmName());
                 opened = true;
             }
         }
 
-        return "Extension " + type + ", signature_algorithms: " + buffer;
+        return "Extension " + type + ", signature_algorithms: " + sb;
     }
 }
 
--- a/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/tools/jarsigner/Main.java	Wed Jun 18 10:55:17 2014 -0700
@@ -728,7 +728,7 @@
                             output.put(label, new ArrayList<String>());
                         }
 
-                        StringBuffer fb = new StringBuffer();
+                        StringBuilder fb = new StringBuilder();
                         String s = Long.toString(je.getSize());
                         for (int i = 6 - s.length(); i > 0; --i) {
                             fb.append(' ');
@@ -1572,25 +1572,25 @@
         if (cacheForSignerInfo.containsKey(signer)) {
             return cacheForSignerInfo.get(signer);
         }
-        StringBuffer s = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         List<? extends Certificate> certs = signer.getSignerCertPath().getCertificates();
         // display the signature timestamp, if present
         Date timestamp;
         Timestamp ts = signer.getTimestamp();
         if (ts != null) {
-            s.append(printTimestamp(tab, ts));
-            s.append('\n');
+            sb.append(printTimestamp(tab, ts));
+            sb.append('\n');
             timestamp = ts.getTimestamp();
         } else {
             timestamp = null;
             noTimestamp = true;
         }
-        // display the certificate(s). The first one is end-entity cert and
+        // display the certificate(sb). The first one is end-entity cert and
         // its KeyUsage should be checked.
         boolean first = true;
         for (Certificate c : certs) {
-            s.append(printCert(tab, c, true, timestamp, first));
-            s.append('\n');
+            sb.append(printCert(tab, c, true, timestamp, first));
+            sb.append('\n');
             first = false;
         }
         try {
@@ -1605,11 +1605,11 @@
                 // No more warning, we alreay have hasExpiredCert or notYetValidCert
             } else {
                 chainNotValidated = true;
-                s.append(tab + rb.getString(".CertPath.not.validated.") +
+                sb.append(tab + rb.getString(".CertPath.not.validated.") +
                         e.getLocalizedMessage() + "]\n");   // TODO
             }
         }
-        String result = s.toString();
+        String result = sb.toString();
         cacheForSignerInfo.put(signer, result);
         return result;
     }
--- a/jdk/src/share/classes/sun/security/tools/keytool/Main.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/tools/keytool/Main.java	Wed Jun 18 10:55:17 2014 -0700
@@ -3664,7 +3664,7 @@
                     .startsWith(s.toLowerCase(Locale.ENGLISH))) {
                 match[nmatch++] = i;
             } else {
-                StringBuffer sb = new StringBuffer();
+                StringBuilder sb = new StringBuilder();
                 boolean first = true;
                 for (char c: one.toCharArray()) {
                     if (first) {
@@ -3690,7 +3690,7 @@
             if (match[1] > experiment) {
                 return match[0];
             }
-            StringBuffer sb = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
             MessageFormat form = new MessageFormat(rb.getString
                 ("command.{0}.is.ambiguous."));
             Object[] source = {s};
--- a/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/tools/policytool/PolicyTool.java	Wed Jun 18 10:55:17 2014 -0700
@@ -975,16 +975,16 @@
         String result = "";
         if ((grantEntry.principals != null) &&
             (!grantEntry.principals.isEmpty())) {
-            StringBuffer buffer = new StringBuffer(200);
+            StringBuilder sb = new StringBuilder(200);
             ListIterator<PolicyParser.PrincipalEntry> list =
                                 grantEntry.principals.listIterator();
             while (list.hasNext()) {
                 PolicyParser.PrincipalEntry pppe = list.next();
-                buffer.append(" Principal " + pppe.getDisplayClass() + " " +
+                sb.append(" Principal " + pppe.getDisplayClass() + " " +
                     pppe.getDisplayName(true));
-                if (list.hasNext()) buffer.append(", ");
+                if (list.hasNext()) sb.append(", ");
             }
-            result = buffer.toString();
+            result = sb.toString();
         }
         return result;
     }
--- a/jdk/src/share/classes/sun/security/util/Debug.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/util/Debug.java	Wed Jun 18 10:55:17 2014 -0700
@@ -188,13 +188,13 @@
      */
     public static String toHexString(BigInteger b) {
         String hexValue = b.toString(16);
-        StringBuffer buf = new StringBuffer(hexValue.length()*2);
+        StringBuilder sb = new StringBuilder(hexValue.length()*2);
 
         if (hexValue.startsWith("-")) {
-            buf.append("   -");
+            sb.append("   -");
             hexValue = hexValue.substring(1);
         } else {
-            buf.append("    ");     // four spaces
+            sb.append("    ");     // four spaces
         }
         if ((hexValue.length()%2) != 0) {
             // add back the leading 0
@@ -203,17 +203,17 @@
         int i=0;
         while (i < hexValue.length()) {
             // one byte at a time
-            buf.append(hexValue.substring(i, i+2));
+            sb.append(hexValue.substring(i, i + 2));
             i+=2;
             if (i!= hexValue.length()) {
                 if ((i%64) == 0) {
-                    buf.append("\n    ");     // line after eight words
+                    sb.append("\n    ");     // line after eight words
                 } else if (i%8 == 0) {
-                    buf.append(" ");     // space between words
+                    sb.append(" ");     // space between words
                 }
             }
         }
-        return buf.toString();
+        return sb.toString();
     }
 
     /**
@@ -221,7 +221,7 @@
      */
     private static String marshal(String args) {
         if (args != null) {
-            StringBuffer target = new StringBuffer();
+            StringBuilder target = new StringBuilder();
             StringBuffer source = new StringBuffer(args);
 
             // obtain the "permission=<classname>" options
--- a/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java	Wed Jun 18 10:55:17 2014 -0700
@@ -238,7 +238,7 @@
 
     static String toHex(byte[] data) {
 
-        StringBuffer sb = new StringBuffer(data.length*2);
+        StringBuilder sb = new StringBuilder(data.length*2);
 
         for (int i=0; i<data.length; i++) {
             sb.append(hexc[(data[i] >>4) & 0x0f]);
--- a/jdk/src/share/classes/sun/security/util/ObjectIdentifier.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/util/ObjectIdentifier.java	Wed Jun 18 10:55:17 2014 -0700
@@ -418,7 +418,7 @@
         String s = stringForm;
         if (s == null) {
             int length = encoding.length;
-            StringBuffer sb = new StringBuffer(length * 4);
+            StringBuilder sb = new StringBuilder(length * 4);
 
             int fromPos = 0;
             for (int i = 0; i < length; i++) {
--- a/jdk/src/share/classes/sun/security/util/PropertyExpander.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/util/PropertyExpander.java	Wed Jun 18 10:55:17 2014 -0700
@@ -67,7 +67,7 @@
         // no special characters
         if (p == -1) return value;
 
-        StringBuffer sb = new StringBuffer(value.length());
+        StringBuilder sb = new StringBuilder(value.length());
         int max = value.length();
         int i = 0;  // index of last character we copied
 
--- a/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java	Wed Jun 18 10:55:17 2014 -0700
@@ -552,7 +552,7 @@
 
     static String toHex(byte[] data) {
 
-        StringBuffer sb = new StringBuffer(data.length*2);
+        StringBuilder sb = new StringBuilder(data.length*2);
 
         for (int i=0; i<data.length; i++) {
             sb.append(hexc[(data[i] >>4) & 0x0f]);
--- a/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/security/x509/X509CRLImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -536,7 +536,7 @@
      * @return value of this CRL in a printable form.
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append("X.509 CRL v" + (version+1) + "\n");
         if (sigAlgId != null)
             sb.append("Signature Algorithm: " + sigAlgId.toString() +
--- a/jdk/src/share/classes/sun/swing/SwingUtilities2.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/swing/SwingUtilities2.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1431,7 +1431,7 @@
     }
 
     public static String displayPropertiesToCSS(Font font, Color fg) {
-        StringBuffer rule = new StringBuffer("body {");
+        StringBuilder rule = new StringBuilder("body {");
         if (font != null) {
             rule.append(" font-family: ");
             rule.append(font.getFamily());
--- a/jdk/src/share/classes/sun/swing/plaf/synth/DefaultSynthStyle.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/swing/plaf/synth/DefaultSynthStyle.java	Wed Jun 18 10:55:17 2014 -0700
@@ -673,33 +673,33 @@
 
 
     public String toString() {
-        StringBuffer buf = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
-        buf.append(super.toString()).append(',');
+        sb.append(super.toString()).append(',');
 
-        buf.append("data=").append(data).append(',');
+        sb.append("data=").append(data).append(',');
 
-        buf.append("font=").append(font).append(',');
+        sb.append("font=").append(font).append(',');
 
-        buf.append("insets=").append(insets).append(',');
+        sb.append("insets=").append(insets).append(',');
 
-        buf.append("synthGraphics=").append(synthGraphics).append(',');
+        sb.append("synthGraphics=").append(synthGraphics).append(',');
 
-        buf.append("painter=").append(painter).append(',');
+        sb.append("painter=").append(painter).append(',');
 
         StateInfo[] states = getStateInfo();
         if (states != null) {
-            buf.append("states[");
+            sb.append("states[");
             for (StateInfo state : states) {
-                buf.append(state.toString()).append(',');
+                sb.append(state.toString()).append(',');
             }
-            buf.append(']').append(',');
+            sb.append(']').append(',');
         }
 
         // remove last newline
-        buf.deleteCharAt(buf.length() - 1);
+        sb.deleteCharAt(sb.length() - 1);
 
-        return buf.toString();
+        return sb.toString();
     }
 
 
@@ -909,19 +909,19 @@
         }
 
         public String toString() {
-            StringBuffer buf = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
 
-            buf.append(super.toString()).append(',');
+            sb.append(super.toString()).append(',');
 
-            buf.append("state=").append(Integer.toString(state)).append(',');
+            sb.append("state=").append(Integer.toString(state)).append(',');
 
-            buf.append("font=").append(font).append(',');
+            sb.append("font=").append(font).append(',');
 
             if (colors != null) {
-                buf.append("colors=").append(Arrays.asList(colors)).
+                sb.append("colors=").append(Arrays.asList(colors)).
                     append(',');
             }
-            return buf.toString();
+            return sb.toString();
         }
     }
 }
--- a/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -439,20 +439,20 @@
     }
 
     private String fileNameString(File[] files) {
-        StringBuffer buf = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         for (int i = 0; files != null && i < files.length; i++) {
             if (i > 0) {
-                buf.append(" ");
+                sb.append(" ");
             }
             if (files.length > 1) {
-                buf.append("\"");
+                sb.append("\"");
             }
-            buf.append(fileNameString(files[i]));
+            sb.append(fileNameString(files[i]));
             if (files.length > 1) {
-                buf.append("\"");
+                sb.append("\"");
             }
         }
-        return buf.toString();
+        return sb.toString();
     }
 
     public void uninstallUI(JComponent c) {
--- a/jdk/src/share/classes/sun/text/normalizer/UTF16.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/text/normalizer/UTF16.java	Wed Jun 18 10:55:17 2014 -0700
@@ -530,7 +530,7 @@
             return String.valueOf((char)ch);
         }
 
-        StringBuffer result = new StringBuffer();
+        StringBuilder result = new StringBuilder();
         result.append(getLeadSurrogate(ch));
         result.append(getTrailSurrogate(ch));
         return result.toString();
--- a/jdk/src/share/classes/sun/tools/java/MemberDefinition.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/tools/java/MemberDefinition.java	Wed Jun 18 10:55:17 2014 -0700
@@ -919,18 +919,18 @@
         if (isInitializer()) {
             return isStatic() ? "static {}" : "instance {}";
         } else if (isConstructor()) {
-            StringBuffer buf = new StringBuffer();
-            buf.append(name);
-            buf.append('(');
+            StringBuilder sb = new StringBuilder();
+            sb.append(name);
+            sb.append('(');
             Type argTypes[] = getType().getArgumentTypes();
             for (int i = 0 ; i < argTypes.length ; i++) {
                 if (i > 0) {
-                    buf.append(',');
+                    sb.append(',');
                 }
-                buf.append(argTypes[i].toString());
+                sb.append(argTypes[i].toString());
             }
-            buf.append(')');
-            return buf.toString();
+            sb.append(')');
+            return sb.toString();
         } else if (isInnerClass()) {
             return getInnerClass().toString();
         }
--- a/jdk/src/share/classes/sun/tools/java/MethodSet.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/tools/java/MethodSet.java	Wed Jun 18 10:55:17 2014 -0700
@@ -261,18 +261,18 @@
      */
     public String toString() {
         int len = size();
-        StringBuffer buf = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         Iterator all = iterator();
-        buf.append("{");
+        sb.append("{");
 
         while (all.hasNext()) {
-            buf.append(all.next().toString());
+            sb.append(all.next().toString());
             len--;
             if (len > 0) {
-                buf.append(", ");
+                sb.append(", ");
             }
         }
-        buf.append("}");
-        return buf.toString();
+        sb.append("}");
+        return sb.toString();
     }
 }
--- a/jdk/src/share/classes/sun/tools/java/MethodType.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/tools/java/MethodType.java	Wed Jun 18 10:55:17 2014 -0700
@@ -91,17 +91,17 @@
     }
 
     public String typeString(String id, boolean abbrev, boolean ret) {
-        StringBuffer buf = new StringBuffer();
-        buf.append(id);
-        buf.append('(');
+        StringBuilder sb = new StringBuilder();
+        sb.append(id);
+        sb.append('(');
         for (int i = 0 ; i < argTypes.length ; i++) {
             if (i > 0) {
-                buf.append(", ");
+                sb.append(", ");
             }
-            buf.append(argTypes[i].typeString("", abbrev, ret));
+            sb.append(argTypes[i].typeString("", abbrev, ret));
         }
-        buf.append(')');
+        sb.append(')');
 
-        return ret ? getReturnType().typeString(buf.toString(), abbrev, ret) : buf.toString();
+        return ret ? getReturnType().typeString(sb.toString(), abbrev, ret) : sb.toString();
     }
 }
--- a/jdk/src/share/classes/sun/tools/java/Parser.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/tools/java/Parser.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1395,24 +1395,24 @@
             return res;
         }
 
-        StringBuffer buf = new StringBuffer(res.id.toString());
+        StringBuilder sb = new StringBuilder(res.id.toString());
 
         while (token == FIELD) {
             scan();
             if ((token == MUL) && star) {
                 scan();
-                buf.append(".*");
+                sb.append(".*");
                 break;
             }
 
-            buf.append('.');
+            sb.append('.');
             if (token == IDENT) {
-                buf.append(scanner.idValue);
+                sb.append(scanner.idValue);
             }
             expect(IDENT);
         }
 
-        res.id = Identifier.lookup(buf.toString());
+        res.id = Identifier.lookup(sb.toString());
         return res;
     }
     /**
--- a/jdk/src/share/classes/sun/tools/java/Type.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/tools/java/Type.java	Wed Jun 18 10:55:17 2014 -0700
@@ -274,15 +274,15 @@
      * Create a method type with arguments.
      */
     public static synchronized Type tMethod(Type returnType, Type argTypes[]) {
-        StringBuffer buf = new StringBuffer();
-        buf.append(SIG_METHOD);
+        StringBuilder sb = new StringBuilder();
+        sb.append(SIG_METHOD);
         for (int i = 0 ; i < argTypes.length ; i++) {
-            buf.append(argTypes[i].getTypeSignature());
+            sb.append(argTypes[i].getTypeSignature());
         }
-        buf.append(SIG_ENDMETHOD);
-        buf.append(returnType.getTypeSignature());
+        sb.append(SIG_ENDMETHOD);
+        sb.append(returnType.getTypeSignature());
 
-        String sig = buf.toString();
+        String sig = sb.toString();
         Type t = (Type)typeHash.get(sig);
         if (t == null) {
             t = new MethodType(sig, returnType, argTypes);
--- a/jdk/src/share/classes/sun/tools/jconsole/Formatter.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/tools/jconsole/Formatter.java	Wed Jun 18 10:55:17 2014 -0700
@@ -232,15 +232,15 @@
     }
 
     static String justify(String str, int size) {
-        StringBuffer buf = new StringBuffer();
-        buf.append("<TT>");
+        StringBuilder sb = new StringBuilder();
+        sb.append("<TT>");
         int n = size - str.length();
         for (int i = 0; i < n; i++) {
-            buf.append("&nbsp;");
+            sb.append("&nbsp;");
         }
-        buf.append(str);
-        buf.append("</TT>");
-        return buf.toString();
+        sb.append(str);
+        sb.append("</TT>");
+        return sb.toString();
     }
 
     static String newRow(String label, String value) {
--- a/jdk/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/tools/jstatd/RemoteHostImpl.java	Wed Jun 18 10:55:17 2014 -0700
@@ -64,7 +64,7 @@
                     throws RemoteException, MonitorException {
         Integer v = new Integer(lvmid);
         RemoteVm stub = null;
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
 
         sb.append("local://").append(lvmid).append("@localhost");
         if (mode != null) {
--- a/jdk/src/share/classes/sun/tools/native2ascii/N2AFilter.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/tools/native2ascii/N2AFilter.java	Wed Jun 18 10:55:17 2014 -0700
@@ -58,7 +58,7 @@
                 out.write('u');
                 String hex =
                     Integer.toHexString(buf[i]);
-                StringBuffer hex4 = new StringBuffer(hex);
+                StringBuilder hex4 = new StringBuilder(hex);
                 hex4.reverse();
                 int length = 4 - hex4.length();
                 for (int j = 0; j < length; j++) {
--- a/jdk/src/share/classes/sun/tools/serialver/SerialVer.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/tools/serialver/SerialVer.java	Wed Jun 18 10:55:17 2014 -0700
@@ -85,7 +85,7 @@
                 /* Class not found so far */
             }
             if (!classFound) {
-                StringBuffer workBuffer = new StringBuffer(classname);
+                StringBuilder workBuffer = new StringBuilder(classname);
                 String workName = workBuffer.toString();
                 int i;
                 while ((i = workName.lastIndexOf('.')) != -1 && !classFound) {
--- a/jdk/src/share/classes/sun/tools/tree/FieldExpression.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/tools/tree/FieldExpression.java	Wed Jun 18 10:55:17 2014 -0700
@@ -79,21 +79,21 @@
      * Convert an '.' expression to a qualified identifier
      */
     static public Identifier toIdentifier(Expression e) {
-        StringBuffer buf = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         while (e.op == FIELD) {
             FieldExpression fe = (FieldExpression)e;
             if (fe.id == idThis || fe.id == idClass) {
                 return null;
             }
-            buf.insert(0, fe.id);
-            buf.insert(0, '.');
+            sb.insert(0, fe.id);
+            sb.insert(0, '.');
             e = fe.right;
         }
         if (e.op != IDENT) {
             return null;
         }
-        buf.insert(0, ((IdentifierExpression)e).id);
-        return Identifier.lookup(buf.toString());
+        sb.insert(0, ((IdentifierExpression) e).id);
+        return Identifier.lookup(sb.toString());
     }
 
     /**
--- a/jdk/src/share/classes/sun/tools/tree/Vset.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/tools/tree/Vset.java	Wed Jun 18 10:55:17 2014 -0700
@@ -495,7 +495,7 @@
     public String toString() {
         if (this == DEAD_END)
             return "{DEAD_END}";
-        StringBuffer sb = new StringBuffer("{");
+        StringBuilder sb = new StringBuilder("{");
         int maxVar = VBITS * (1 + (x.length+1)/2);
         for (int i = 0; i < maxVar; i++) {
             if (!testVarUnassigned(i)) {
--- a/jdk/src/share/classes/sun/tracing/PrintStreamProviderFactory.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/classes/sun/tracing/PrintStreamProviderFactory.java	Wed Jun 18 10:55:17 2014 -0700
@@ -99,7 +99,7 @@
     }
 
     public void uncheckedTrigger(Object[] args) {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append(provider.getName());
         sb.append(".");
         sb.append(name);
--- a/jdk/src/share/demo/jvmti/hprof/hprof.h	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/demo/jvmti/hprof/hprof.h	Wed Jun 18 10:55:17 2014 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -67,10 +67,6 @@
 #include "classfile_constants.h"
 #include "jvm_md.h"
 
-#ifndef SKIP_NPT
-#include "npt.h"   /* To get NptEnv for doing character conversions */
-#endif
-
 /* Macros to extract the upper and lower 32 bits of a jlong */
 
 #define jlong_high(a)    ((jint)((a)>>32))
@@ -207,9 +203,6 @@
 
     jvmtiEnv            *jvmti; /* JVMTI env for this session */
     JavaVM              *jvm;   /* JavaVM* for this session */
-#ifndef SKIP_NPT
-    NptEnv              *npt;   /* NptEnv* for this session, see npt.h */
-#endif
     jint                cachedJvmtiVersion; /* JVMTI version number */
 
     char               *header; /* "JAVA PROFILE 1.0.[12]" */
--- a/jdk/src/share/demo/jvmti/hprof/hprof_init.c	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/share/demo/jvmti/hprof/hprof_init.c	Wed Jun 18 10:55:17 2014 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -740,16 +740,11 @@
     }
 
     if ( gdata->utf8_output_filename != NULL ) {
-        /* UTF-8 to platform encoding (fill in gdata->output_filename) */
+        // Don't attempt to convert output filename.
+        // If fileystem uses the same encoding as the rest of the OS it will work as is.
         ulen = (int)strlen(gdata->utf8_output_filename);
         gdata->output_filename = (char*)HPROF_MALLOC(ulen*3+3);
-#ifdef SKIP_NPT
         (void)strcpy(gdata->output_filename, gdata->utf8_output_filename);
-#else
-        (void)(gdata->npt->utf8ToPlatform)
-              (gdata->npt->utf, (jbyte*)gdata->utf8_output_filename, ulen,
-               gdata->output_filename, ulen*3+3);
-#endif
     }
 
     /* By default we turn on gdata->alloc_sites and gdata->heap_dump */
@@ -1949,7 +1944,6 @@
 Agent_OnLoad(JavaVM *vm, char *options, void *reserved)
 {
     char *boot_path = NULL;
-    char npt_lib[JVM_MAXPATHLEN];
 
     /* See if it's already loaded */
     if ( gdata!=NULL && gdata->isLoaded==JNI_TRUE ) {
@@ -1970,24 +1964,6 @@
     /* Get the JVMTI environment */
     getJvmti();
 
-#ifndef SKIP_NPT
-    getSystemProperty("sun.boot.library.path", &boot_path);
-    /* Load in NPT library for character conversions */
-    md_build_library_name(npt_lib, sizeof(npt_lib), boot_path, NPT_LIBNAME);
-    if ( strlen(npt_lib) == 0 ) {
-        HPROF_ERROR(JNI_TRUE, "Could not find npt library");
-    }
-    jvmtiDeallocate(boot_path);
-    NPT_INITIALIZE(npt_lib, &(gdata->npt), NPT_VERSION, NULL);
-    if ( gdata->npt == NULL ) {
-        HPROF_ERROR(JNI_TRUE, "Cannot load npt library");
-    }
-    gdata->npt->utf = (gdata->npt->utfInitialize)(NULL);
-    if ( gdata->npt->utf == NULL ) {
-        HPROF_ERROR(JNI_TRUE, "Cannot initialize npt utf functions");
-    }
-#endif
-
     /* Lock needed to protect debug_malloc() code, which is not MT safe */
     #ifdef DEBUG
         gdata->debug_malloc_lock = createRawMonitor("HPROF debug_malloc lock");
--- a/jdk/src/share/npt/README.txt	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-
-README: For NPT Library.
-------------------------
-
-To use this Native Platform Toolkit library, you need to add 
--Isrc/share/npt and -I/src/${platform}/npt (platform is solaris or windows)
-to your compilation lines.
-
-To initialize/use the library:
-
-    #include "npt.h"
-    
-    NptEnv *npt;
-    
-    NPT_INITIALIZE(&npt, NPT_VERSION, NULL);
-    if (npt == NULL) {
-        FATAL_ERROR_MESSAGE(("Unable to gain access to Npt library"));
-    }
-
-    /* To use the npt utf functions, they require initialization */
-    npt->utf = (npt->utfInitialize)(NULL);
-    if (npt->utf == NULL) {
-        FATAL_ERROR_MESSAGE(("Unable to gain access to Npt utf functions"));
-    }
-
-    ...
-
-
-    /* After all uses is done, it can be terminated, however, if the
-     *   process will be exiting anyway it isn't necessary, and if
-     *   you have other threads running that might use these handles
-     *   you will need to wait here until all those threads have terminated.
-     *   So in general, termination can be a pain and slow your process
-     *   termination down.
-     */
-    (npt->utfTerminate)(npt->utf,NULL);
-    NPT_TERMINATE(&npt, NULL);
-
-
--- a/jdk/src/share/npt/npt.c	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2004, 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>
-#include <string.h>
-#include <stdlib.h>
-
-#include "jni.h"
-
-#include "npt.h"
-
-#include "utf.h"
-
-static int
-version_check(char *version)
-{
-    if ( version==NULL || strcmp(version, NPT_VERSION)!=0 ) {
-        return 1;
-    }
-    return 0;
-}
-
-JNIEXPORT void JNICALL
-nptInitialize(NptEnv **pnpt, char *nptVersion, char *options)
-{
-    NptEnv *npt;
-
-    (*pnpt) = NULL;
-
-    if ( version_check(nptVersion) ) {
-        NPT_ERROR("NPT version doesn't match");
-        return;
-    }
-
-    npt = (NptEnv*)calloc(sizeof(NptEnv), 1);
-    if ( npt == NULL ) {
-        NPT_ERROR("Cannot allocate calloc space for NptEnv*");
-        return;
-    }
-
-    if ( options != NULL ) {
-        npt->options = strdup(options);
-    }
-    npt->utfInitialize          = &utfInitialize;
-    npt->utfTerminate           = &utfTerminate;
-    npt->utf8ToPlatform         = &utf8ToPlatform;
-    npt->utf8FromPlatform       = &utf8FromPlatform;
-    npt->utf8ToUtf16            = &utf8ToUtf16;
-    npt->utf16ToUtf8m           = &utf16ToUtf8m;
-    npt->utf16ToUtf8s           = &utf16ToUtf8s;
-    npt->utf8sToUtf8mLength     = &utf8sToUtf8mLength;
-    npt->utf8sToUtf8m           = &utf8sToUtf8m;
-    npt->utf8mToUtf8sLength     = &utf8mToUtf8sLength;
-    npt->utf8mToUtf8s           = &utf8mToUtf8s;
-
-    (*pnpt) = npt;
-}
-
-JNIEXPORT void JNICALL
-nptTerminate(NptEnv* npt, char *options)
-{
-
-    /* FIXUP: options? Check memory or something? */
-    if ( npt->options != NULL ) {
-        (void)free(npt->options);
-    }
-    (void)free(npt);
-}
--- a/jdk/src/share/npt/npt.h	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 2004, 2013, 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.
- */
-
-/* Native Platform Toolkit */
-
-#ifndef  _NPT_H
-#define _NPT_H
-
-#define NPT_VERSION "0.0.0"
-
-#include <stdio.h>
-
-#include "jni.h"
-
-#include "npt_md.h"
-#include "utf.h"
-
-#define NPT_ERROR(s) { (void)fprintf(stderr, "NPT ERROR: %s\n", s); exit(1); }
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct {
-
-    /* Used to save handle to our own dynamicly loaded library */
-    void *libhandle;
-
-    /* Copy of the options sent in at initialization */
-    char *options;
-
-    /* Can be used to save the UtfInst handle */
-    struct UtfInst *utf;
-
-    /* UTF interfaces, see utf.c */
-    struct UtfInst* (JNICALL *utfInitialize)
-                         (char *options);
-    void     (JNICALL *utfTerminate)
-                         (struct UtfInst *utf, char *options);
-    int      (JNICALL *utf8ToPlatform)
-                         (struct UtfInst *utf, jbyte *utf8, int len,
-                          char *output, int outputMaxLen);
-    int      (JNICALL *utf8FromPlatform)
-                         (struct UtfInst *utf, char *str, int len,
-                          jbyte *output, int outputMaxLen);
-    int      (JNICALL *utf8ToUtf16)
-                         (struct UtfInst *utf, jbyte *utf8, int len,
-                          jchar *output, int outputMaxLen);
-    int      (JNICALL *utf16ToUtf8m)
-                         (struct UtfInst *utf, jchar *utf16, int len,
-                          jbyte *output, int outputMaxLen);
-    int      (JNICALL *utf16ToUtf8s)
-                         (struct UtfInst *utf, jchar *utf16, int len,
-                          jbyte *output, int outputMaxLen);
-    int      (JNICALL *utf8sToUtf8mLength)
-                         (struct UtfInst *utf, jbyte *string, int length);
-    void     (JNICALL *utf8sToUtf8m)
-                         (struct UtfInst *utf, jbyte *string, int length,
-                          jbyte *newString, int newLength);
-    int      (JNICALL *utf8mToUtf8sLength)
-                         (struct UtfInst *utf, jbyte *string, int length);
-    void     (JNICALL *utf8mToUtf8s)
-                         (struct UtfInst *utf, jbyte *string, int length,
-                          jbyte *newString, int newLength);
-
-} NptEnv;
-
-/* Typedefs for the only 2 'extern' functions in npt library:
- *    nptInitialize and nptTerminate
- *    See NPT_INITIALIZE() and NPT_TERMINATE() in npt_md.h.
- */
-
-JNIEXPORT void JNICALL nptInitialize
-                       (NptEnv **pnpt, char *nptVersion, char *options);
-typedef void (JNICALL *NptInitialize)
-             (NptEnv **pnpt, char *nptVersion, char *options);
-
-JNIEXPORT void JNICALL nptTerminate
-                       (NptEnv* npt, char *options);
-typedef void (JNICALL *NptTerminate)
-             (NptEnv* npt, char *options);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* __cplusplus */
-
-#endif
--- a/jdk/src/share/npt/utf.c	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,500 +0,0 @@
-/*
- * Copyright (c) 2004, 2013, 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.
- */
-
-/* Misc functions for conversion of Unicode and UTF-8 and platform encoding */
-
-#include <stdio.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "jni.h"
-
-#include "utf.h"
-
-/*
- * Error handler
- */
-void
-utfError(char *file, int line, char *message)
-{
-    (void)fprintf(stderr, "UTF ERROR [\"%s\":%d]: %s\n", file, line, message);
-    abort();
-}
-
-/*
- * Convert UTF-8 to UTF-16
- *    Returns length or -1 if output overflows.
- */
-int JNICALL
-utf8ToUtf16(struct UtfInst *ui, jbyte *utf8, int len, unsigned short *output, int outputMaxLen)
-{
-    int outputLen;
-    int i;
-
-    UTF_ASSERT(utf8);
-    UTF_ASSERT(len>=0);
-    UTF_ASSERT(output);
-    UTF_ASSERT(outputMaxLen>0);
-
-    i = 0;
-    outputLen = 0;
-    while ( i<len ) {
-        unsigned code, x, y, z;
-
-        if ( outputLen >= outputMaxLen ) {
-            return -1;
-        }
-        x = (unsigned char)utf8[i++];
-        code = x;
-        if ( (x & 0xE0)==0xE0 ) {
-            y = (unsigned char)utf8[i++];
-            z = (unsigned char)utf8[i++];
-            code = ((x & 0xF)<<12) + ((y & 0x3F)<<6) + (z & 0x3F);
-        } else if ( (x & 0xC0)==0xC0 ) {
-            y = (unsigned char)utf8[i++];
-            code = ((x & 0x1F)<<6) + (y & 0x3F);
-        }
-        output[outputLen++] = code;
-    }
-    return outputLen;
-}
-
-/*
- * Convert UTF-16 to UTF-8 Modified
- *    Returns length or -1 if output overflows.
- */
-int JNICALL
-utf16ToUtf8m(struct UtfInst *ui, unsigned short *utf16, int len, jbyte *output, int outputMaxLen)
-{
-    int i;
-    int outputLen;
-
-    UTF_ASSERT(utf16);
-    UTF_ASSERT(len>=0);
-    UTF_ASSERT(output);
-    UTF_ASSERT(outputMaxLen>0);
-
-    outputLen = 0;
-    for (i = 0; i < len; i++) {
-        unsigned code;
-
-        code = utf16[i];
-        if ( code >= 0x0001 && code <= 0x007F ) {
-            if ( outputLen + 1 >= outputMaxLen ) {
-                return -1;
-            }
-            output[outputLen++] = code;
-        } else if ( code == 0 || ( code >= 0x0080 && code <= 0x07FF ) ) {
-            if ( outputLen + 2 >= outputMaxLen ) {
-                return -1;
-            }
-            output[outputLen++] = ((code>>6) & 0x1F) | 0xC0;
-            output[outputLen++] = (code & 0x3F) | 0x80;
-        } else if ( code >= 0x0800 && code <= 0xFFFF ) {
-            if ( outputLen + 3 >= outputMaxLen ) {
-                return -1;
-            }
-            output[outputLen++] = ((code>>12) & 0x0F) | 0xE0;
-            output[outputLen++] = ((code>>6) & 0x3F) | 0x80;
-            output[outputLen++] = (code & 0x3F) | 0x80;
-        }
-    }
-    output[outputLen] = 0;
-    return outputLen;
-}
-
-int JNICALL
-utf16ToUtf8s(struct UtfInst *ui, unsigned short *utf16, int len, jbyte *output, int outputMaxLen)
-{
-    return -1; /* FIXUP */
-}
-
-/* Determine length of this Standard UTF-8 in Modified UTF-8.
- *    Validation is done of the basic UTF encoding rules, returns
- *    length (no change) when errors are detected in the UTF encoding.
- *
- *    Note: Accepts Modified UTF-8 also, no verification on the
- *          correctness of Standard UTF-8 is done. e,g, 0xC080 input is ok.
- */
-int JNICALL
-utf8sToUtf8mLength(struct UtfInst *ui, jbyte *string, int length)
-{
-    int newLength;
-    int i;
-
-    newLength = 0;
-    for ( i = 0 ; i < length ; i++ ) {
-        unsigned byte;
-
-        byte = (unsigned char)string[i];
-        if ( (byte & 0x80) == 0 ) { /* 1byte encoding */
-            newLength++;
-            if ( byte == 0 ) {
-                newLength++; /* We gain one byte in length on NULL bytes */
-            }
-        } else if ( (byte & 0xE0) == 0xC0 ) { /* 2byte encoding */
-            /* Check encoding of following bytes */
-            if ( (i+1) >= length || (string[i+1] & 0xC0) != 0x80 ) {
-                break; /* Error condition */
-            }
-            i++; /* Skip next byte */
-            newLength += 2;
-        } else if ( (byte & 0xF0) == 0xE0 ) { /* 3byte encoding */
-            /* Check encoding of following bytes */
-            if ( (i+2) >= length || (string[i+1] & 0xC0) != 0x80
-                                 || (string[i+2] & 0xC0) != 0x80 ) {
-                break; /* Error condition */
-            }
-            i += 2; /* Skip next two bytes */
-            newLength += 3;
-        } else if ( (byte & 0xF8) == 0xF0 ) { /* 4byte encoding */
-            /* Check encoding of following bytes */
-            if ( (i+3) >= length || (string[i+1] & 0xC0) != 0x80
-                                 || (string[i+2] & 0xC0) != 0x80
-                                 || (string[i+3] & 0xC0) != 0x80 ) {
-                break; /* Error condition */
-            }
-            i += 3; /* Skip next 3 bytes */
-            newLength += 6; /* 4byte encoding turns into 2 3byte ones */
-        } else {
-            break; /* Error condition */
-        }
-    }
-    if ( i != length ) {
-        /* Error in finding new length, return old length so no conversion */
-        /* FIXUP: ERROR_MESSAGE? */
-        return length;
-    }
-    return newLength;
-}
-
-/* Convert Standard UTF-8 to Modified UTF-8.
- *    Assumes the UTF-8 encoding was validated by utf8mLength() above.
- *
- *    Note: Accepts Modified UTF-8 also, no verification on the
- *          correctness of Standard UTF-8 is done. e,g, 0xC080 input is ok.
- */
-void JNICALL
-utf8sToUtf8m(struct UtfInst *ui, jbyte *string, int length, jbyte *newString, int newLength)
-{
-    int i;
-    int j;
-
-    j = 0;
-    for ( i = 0 ; i < length ; i++ ) {
-        unsigned byte1;
-
-        byte1 = (unsigned char)string[i];
-
-        /* NULL bytes and bytes starting with 11110xxx are special */
-        if ( (byte1 & 0x80) == 0 ) { /* 1byte encoding */
-            if ( byte1 == 0 ) {
-                /* Bits out: 11000000 10000000 */
-                newString[j++] = (jbyte)0xC0;
-                newString[j++] = (jbyte)0x80;
-            } else {
-                /* Single byte */
-                newString[j++] = byte1;
-            }
-        } else if ( (byte1 & 0xE0) == 0xC0 ) { /* 2byte encoding */
-            newString[j++] = byte1;
-            newString[j++] = string[++i];
-        } else if ( (byte1 & 0xF0) == 0xE0 ) { /* 3byte encoding */
-            newString[j++] = byte1;
-            newString[j++] = string[++i];
-            newString[j++] = string[++i];
-        } else if ( (byte1 & 0xF8) == 0xF0 ) { /* 4byte encoding */
-            /* Beginning of 4byte encoding, turn into 2 3byte encodings */
-            unsigned byte2, byte3, byte4, u21;
-
-            /* Bits in: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */
-            byte2 = (unsigned char)string[++i];
-            byte3 = (unsigned char)string[++i];
-            byte4 = (unsigned char)string[++i];
-            /* Reconstruct full 21bit value */
-            u21  = (byte1 & 0x07) << 18;
-            u21 += (byte2 & 0x3F) << 12;
-            u21 += (byte3 & 0x3F) << 6;
-            u21 += (byte4 & 0x3F);
-            /* Bits out: 11101101 1010xxxx 10xxxxxx */
-            newString[j++] = (jbyte)0xED;
-            newString[j++] = (jbyte)(0xA0 + (((u21 >> 16) - 1) & 0x0F));
-            newString[j++] = (jbyte)(0x80 + ((u21 >> 10) & 0x3F));
-            /* Bits out: 11101101 1011xxxx 10xxxxxx */
-            newString[j++] = (jbyte)0xED;
-            newString[j++] = (jbyte)(0xB0 + ((u21 >>  6) & 0x0F));
-            newString[j++] = byte4;
-        }
-    }
-    UTF_ASSERT(i==length);
-    UTF_ASSERT(j==newLength);
-    newString[j] = (jbyte)0;
-}
-
-/* Given a Modified UTF-8 string, calculate the Standard UTF-8 length.
- *   Basic validation of the UTF encoding rules is done, and length is
- *   returned (no change) when errors are detected.
- *
- *   Note: No validation is made that this is indeed Modified UTF-8 coming in.
- *
- */
-int JNICALL
-utf8mToUtf8sLength(struct UtfInst *ui, jbyte *string, int length)
-{
-    int newLength;
-    int i;
-
-    newLength = 0;
-    for ( i = 0 ; i < length ; i++ ) {
-        unsigned byte1, byte2, byte3, byte4, byte5, byte6;
-
-        byte1 = (unsigned char)string[i];
-        if ( (byte1 & 0x80) == 0 ) { /* 1byte encoding */
-            newLength++;
-        } else if ( (byte1 & 0xE0) == 0xC0 ) { /* 2byte encoding */
-            /* Check encoding of following bytes */
-            if ( (i+1) >= length || (string[i+1] & 0xC0) != 0x80 ) {
-                break; /* Error condition */
-            }
-            byte2 = (unsigned char)string[++i];
-            if ( byte1 != 0xC0 || byte2 != 0x80 ) {
-                newLength += 2; /* Normal 2byte encoding, not 0xC080 */
-            } else {
-                newLength++;    /* We will turn 0xC080 into 0 */
-            }
-        } else if ( (byte1 & 0xF0) == 0xE0 ) { /* 3byte encoding */
-            /* Check encoding of following bytes */
-            if ( (i+2) >= length || (string[i+1] & 0xC0) != 0x80
-                                 || (string[i+2] & 0xC0) != 0x80 ) {
-                break; /* Error condition */
-            }
-            byte2 = (unsigned char)string[++i];
-            byte3 = (unsigned char)string[++i];
-            newLength += 3;
-            /* Possible process a second 3byte encoding */
-            if ( (i+3) < length && byte1 == 0xED && (byte2 & 0xF0) == 0xA0 ) {
-                /* See if this is a pair of 3byte encodings */
-                byte4 = (unsigned char)string[i+1];
-                byte5 = (unsigned char)string[i+2];
-                byte6 = (unsigned char)string[i+3];
-                if ( byte4 == 0xED && (byte5 & 0xF0) == 0xB0 ) {
-                    /* Check encoding of 3rd byte */
-                    if ( (byte6 & 0xC0) != 0x80 ) {
-                        break; /* Error condition */
-                    }
-                    newLength++; /* New string will have 4byte encoding */
-                    i += 3;       /* Skip next 3 bytes */
-                }
-            }
-        } else {
-            break; /* Error condition */
-        }
-    }
-    if ( i != length ) {
-        /* Error in UTF encoding */
-        /*  FIXUP: ERROR_MESSAGE()? */
-        return length;
-    }
-    return newLength;
-}
-
-/* Convert a Modified UTF-8 string into a Standard UTF-8 string
- *   It is assumed that this string has been validated in terms of the
- *   basic UTF encoding rules by utf8Length() above.
- *
- *   Note: No validation is made that this is indeed Modified UTF-8 coming in.
- *
- */
-void JNICALL
-utf8mToUtf8s(struct UtfInst *ui, jbyte *string, int length, jbyte *newString, int newLength)
-{
-    int i;
-    int j;
-
-    j = 0;
-    for ( i = 0 ; i < length ; i++ ) {
-        unsigned byte1, byte2, byte3, byte4, byte5, byte6;
-
-        byte1 = (unsigned char)string[i];
-        if ( (byte1 & 0x80) == 0 ) { /* 1byte encoding */
-            /* Single byte */
-            newString[j++] = byte1;
-        } else if ( (byte1 & 0xE0) == 0xC0 ) { /* 2byte encoding */
-            byte2 = (unsigned char)string[++i];
-            if ( byte1 != 0xC0 || byte2 != 0x80 ) {
-                newString[j++] = byte1;
-                newString[j++] = byte2;
-            } else {
-                newString[j++] = 0;
-            }
-        } else if ( (byte1 & 0xF0) == 0xE0 ) { /* 3byte encoding */
-            byte2 = (unsigned char)string[++i];
-            byte3 = (unsigned char)string[++i];
-            if ( i+3 < length && byte1 == 0xED && (byte2 & 0xF0) == 0xA0 ) {
-                /* See if this is a pair of 3byte encodings */
-                byte4 = (unsigned char)string[i+1];
-                byte5 = (unsigned char)string[i+2];
-                byte6 = (unsigned char)string[i+3];
-                if ( byte4 == 0xED && (byte5 & 0xF0) == 0xB0 ) {
-                    unsigned u21;
-
-                    /* Bits in: 11101101 1010xxxx 10xxxxxx */
-                    /* Bits in: 11101101 1011xxxx 10xxxxxx */
-                    i += 3;
-
-                    /* Reconstruct 21 bit code */
-                    u21  = ((byte2 & 0x0F) + 1) << 16;
-                    u21 += (byte3 & 0x3F) << 10;
-                    u21 += (byte5 & 0x0F) << 6;
-                    u21 += (byte6 & 0x3F);
-
-                    /* Bits out: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */
-
-                    /* Convert to 4byte encoding */
-                    newString[j++] = 0xF0 + ((u21 >> 18) & 0x07);
-                    newString[j++] = 0x80 + ((u21 >> 12) & 0x3F);
-                    newString[j++] = 0x80 + ((u21 >>  6) & 0x3F);
-                    newString[j++] = 0x80 + (u21 & 0x3F);
-                    continue;
-                }
-            }
-            /* Normal 3byte encoding */
-            newString[j++] = byte1;
-            newString[j++] = byte2;
-            newString[j++] = byte3;
-        }
-    }
-    UTF_ASSERT(i==length);
-    UTF_ASSERT(j==newLength);
-    newString[j] = 0;
-}
-
-/* ================================================================= */
-
-#ifdef COMPILE_WITH_UTF_TEST  /* Test program */
-
-/*
- * Convert any byte array into a printable string.
- *    Returns length or -1 if output overflows.
- */
-static int
-bytesToPrintable(struct UtfInst *ui, char *bytes, int len, char *output, int outputMaxLen)
-{
-    int outputLen;
-    int i;
-
-    UTF_ASSERT(bytes);
-    UTF_ASSERT(len>=0);
-    UTF_ASSERT(output);
-    UTF_ASSERT(outputMaxLen>=0);
-
-    outputLen = 0;
-    for ( i=0; i<len ; i++ ) {
-        unsigned byte;
-
-        byte = bytes[i];
-        if ( byte <= 0x7f && isprint(byte) && !iscntrl(byte) ) {
-            if ( outputLen + 1 >= outputMaxLen ) {
-                return -1;
-            }
-            output[outputLen++] = (char)byte;
-        } else {
-            if ( outputLen + 4 >= outputMaxLen ) {
-                return -1;
-            }
-            (void)sprintf(output+outputLen,"\\x%02x",byte);
-            outputLen += 4;
-        }
-    }
-    output[outputLen] = 0;
-    return outputLen;
-}
-
-static void
-test(void)
-{
-    static char *strings[] = {
-                "characters",
-                "abcdefghijklmnopqrstuvwxyz",
-                "0123456789",
-                "!@#$%^&*()_+=-{}[]:;",
-                NULL };
-    int i;
-    struct UtfInst *ui;
-
-    ui = utfInitialize(NULL);
-
-    i = 0;
-    while ( strings[i] != NULL ) {
-        char *str;
-        #define MAX 1024
-        char buf0[MAX];
-        char buf1[MAX];
-        char buf2[MAX];
-        unsigned short buf3[MAX];
-        int len1;
-        int len2;
-        int len3;
-
-        str = strings[i];
-
-        (void)bytesToPrintable(ui, str, (int)strlen(str), buf0, 1024);
-
-        len1 = utf8FromPlatform(ui, str, (int)strlen(str), (jbyte*)buf1, 1024);
-
-        UTF_ASSERT(len1==(int)strlen(str));
-
-        len3 = utf8ToUtf16(ui, (jbyte*)buf1, len1, (jchar*)buf3, 1024);
-
-        UTF_ASSERT(len3==len1);
-
-        len1 = utf16ToUtf8m(ui, (jchar*)buf3, len3, (jbyte*)buf1, 1024);
-
-        UTF_ASSERT(len1==len3);
-        UTF_ASSERT(strcmp(str, buf1) == 0);
-
-        len2 = utf8ToPlatform(ui, (jbyte*)buf1, len1, buf2, 1024);
-
-        UTF_ASSERT(len2==len1);
-        UTF_ASSERT(strcmp(str, buf2) == 0);
-
-        i++;
-    }
-
-    utfTerminate(ui, NULL);
-
-}
-
-int
-main(int argc, char **argv)
-{
-    test();
-    return 0;
-}
-
-#endif
--- a/jdk/src/share/npt/utf.h	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2004, 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.
- */
-
-/* Routines for various UTF conversions */
-
-#ifndef  _UTF_H
-#define _UTF_H
-
-#include <stdio.h>
-
-#include "jni.h"
-#include "utf_md.h"
-
-/* Use THIS_FILE when it is available. */
-#ifndef THIS_FILE
-    #define THIS_FILE __FILE__
-#endif
-
-/* Error and assert macros */
-#define UTF_ERROR(m) utfError(THIS_FILE, __LINE__,  m)
-#define UTF_ASSERT(x) ( (x)==0 ? UTF_ERROR("ASSERT ERROR " #x) : (void)0 )
-
-void utfError(char *file, int line, char *message);
-
-struct UtfInst* JNICALL utfInitialize
-                            (char *options);
-void            JNICALL utfTerminate
-                            (struct UtfInst *ui, char *options);
-int             JNICALL utf8ToPlatform
-                            (struct UtfInst *ui, jbyte *utf8,
-                             int len, char *output, int outputMaxLen);
-int             JNICALL utf8FromPlatform
-                            (struct UtfInst *ui, char *str, int len,
-                             jbyte *output, int outputMaxLen);
-int             JNICALL utf8ToUtf16
-                            (struct UtfInst *ui, jbyte *utf8, int len,
-                             jchar *output, int outputMaxLen);
-int             JNICALL utf16ToUtf8m
-                            (struct UtfInst *ui, jchar *utf16, int len,
-                             jbyte *output, int outputMaxLen);
-int             JNICALL utf16ToUtf8s
-                            (struct UtfInst *ui, jchar *utf16, int len,
-                             jbyte *output, int outputMaxLen);
-int             JNICALL utf8sToUtf8mLength
-                            (struct UtfInst *ui, jbyte *string, int length);
-void            JNICALL utf8sToUtf8m
-                            (struct UtfInst *ui, jbyte *string, int length,
-                             jbyte *new_string, int new_length);
-int             JNICALL utf8mToUtf8sLength
-                            (struct UtfInst *ui, jbyte *string, int length);
-void            JNICALL utf8mToUtf8s
-                            (struct UtfInst *ui, jbyte *string, int length,
-                             jbyte *new_string, int new_length);
-
-#endif
--- a/jdk/src/solaris/native/java/net/ExtendedOptionsImpl.c	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/solaris/native/java/net/ExtendedOptionsImpl.c	Wed Jun 18 10:55:17 2014 -0700
@@ -218,6 +218,9 @@
             if (errno == ENOPROTOOPT) {
                 JNU_ThrowByName(env, "java/lang/UnsupportedOperationException",
                         "unsupported socket option");
+            } else if (errno == EACCES || errno == EPERM) {
+                NET_ERROR(env, JNU_JAVANETPKG "SocketException",
+                                "Permission denied");
             } else {
                 NET_ERROR(env, JNU_JAVANETPKG "SocketException",
                                 "set option SO_FLOW_SLA failed");
@@ -251,6 +254,9 @@
             if (errno == ENOPROTOOPT) {
                 JNU_ThrowByName(env, "java/lang/UnsupportedOperationException",
                         "unsupported socket option");
+            } else if (errno == EACCES || errno == EPERM) {
+                NET_ERROR(env, JNU_JAVANETPKG "SocketException",
+                                "Permission denied");
             } else {
                 NET_ERROR(env, JNU_JAVANETPKG "SocketException",
                                 "set option SO_FLOW_SLA failed");
--- a/jdk/src/solaris/npt/npt_md.h	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2004, 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.
- */
-
-/* Native Platform Toolkit */
-
-#ifndef  _NPT_MD_H
-#define _NPT_MD_H
-
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <dlfcn.h>
-#include <jvm_md.h>
-
-#define NPT_LIBNAME "npt"
-
-#define NPT_INITIALIZE(path,pnpt,version,options)                       \
-    {                                                                   \
-        void   *_handle;                                                \
-        void   *_sym;                                                   \
-                                                                        \
-        if ( (pnpt) == NULL ) NPT_ERROR("NptEnv* is NULL");             \
-        *(pnpt) = NULL;                                                 \
-        _handle =  dlopen(path, RTLD_LAZY);                             \
-        if ( _handle == NULL ) NPT_ERROR("Cannot open library");        \
-        _sym = dlsym(_handle, "nptInitialize");                         \
-        if ( _sym == NULL ) NPT_ERROR("Cannot find nptInitialize");     \
-        ((NptInitialize)_sym)((pnpt), version, (options));              \
-        if ( (*(pnpt)) == NULL ) NPT_ERROR("Cannot initialize NptEnv"); \
-        (*(pnpt))->libhandle = _handle;                                 \
-    }
-
-#define NPT_TERMINATE(npt,options)                                      \
-    {                                                                   \
-        void *_handle;                                                  \
-        void *_sym;                                                     \
-                                                                        \
-        if ( (npt) == NULL ) NPT_ERROR("NptEnv* is NULL");              \
-        _handle = (npt)->libhandle;                                     \
-        _sym = dlsym(_handle, "nptTerminate");                          \
-        if ( _sym == NULL ) NPT_ERROR("Cannot find nptTerminate");      \
-        ((NptTerminate)_sym)((npt), (options));                         \
-        if ( _handle != NULL ) (void)dlclose(_handle);                  \
-    }
-
-
-#endif
--- a/jdk/src/solaris/npt/utf_md.c	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-/*
- * Copyright (c) 2004, 2005, 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>
-#include <stdlib.h>
-#include <string.h>
-#include <locale.h>
-#include <langinfo.h>
-#include <iconv.h>
-
-#include "utf.h"
-
-/* Global variables */
-
-/*
- * Initialize all utf processing.
- */
-struct UtfInst *JNICALL
-utfInitialize(char *options)
-{
-    struct UtfInst *ui;
-    char           *codeset;
-
-    ui = (struct UtfInst*)calloc(sizeof(struct UtfInst), 1);
-    ui->iconvToPlatform         = (void *)-1;
-    ui->iconvFromPlatform       = (void *)-1;
-
-    /* Set the locale from the environment */
-    (void)setlocale(LC_ALL, "");
-
-    /* Get the codeset name */
-    codeset = (char*)nl_langinfo(CODESET);
-    if ( codeset == NULL || codeset[0] == 0 ) {
-        return ui;
-    }
-
-    /* If we don't need this, skip it */
-    if (strcmp(codeset, "UTF-8") == 0 || strcmp(codeset, "utf8") == 0 ) {
-        return ui;
-    }
-
-    /* Open conversion descriptors */
-    ui->iconvToPlatform   = iconv_open(codeset, "UTF-8");
-    if ( ui->iconvToPlatform == (void *)-1 ) {
-        UTF_ERROR("Failed to complete iconv_open() setup");
-    }
-    ui->iconvFromPlatform = iconv_open("UTF-8", codeset);
-    if ( ui->iconvFromPlatform == (void *)-1 ) {
-        UTF_ERROR("Failed to complete iconv_open() setup");
-    }
-    return ui;
-}
-
-/*
- * Terminate all utf processing
- */
-void  JNICALL
-utfTerminate(struct UtfInst *ui, char *options)
-{
-    if ( ui->iconvFromPlatform != (void *)-1 ) {
-        (void)iconv_close(ui->iconvFromPlatform);
-    }
-    if ( ui->iconvToPlatform != (void *)-1 ) {
-        (void)iconv_close(ui->iconvToPlatform);
-    }
-    ui->iconvToPlatform   = (void *)-1;
-    ui->iconvFromPlatform = (void *)-1;
-    (void)free(ui);
-}
-
-/*
- * Do iconv() conversion.
- *    Returns length or -1 if output overflows.
- */
-static int
-iconvConvert(iconv_t ic, char *bytes, int len, char *output, int outputMaxLen)
-{
-    int outputLen = 0;
-
-    UTF_ASSERT(bytes);
-    UTF_ASSERT(len>=0);
-    UTF_ASSERT(output);
-    UTF_ASSERT(outputMaxLen>len);
-
-    output[0] = 0;
-    outputLen = 0;
-
-    if ( ic != (iconv_t)(void *)-1 ) {
-        int          returnValue;
-        size_t       inLeft;
-        size_t       outLeft;
-        char        *inbuf;
-        char        *outbuf;
-
-        inbuf        = bytes;
-        outbuf       = output;
-        inLeft       = len;
-        outLeft      = outputMaxLen;
-        returnValue  = iconv(ic, (void*)&inbuf, &inLeft, &outbuf, &outLeft);
-        if ( returnValue >= 0 && inLeft==0 ) {
-            outputLen = outputMaxLen-outLeft;
-            output[outputLen] = 0;
-            return outputLen;
-        }
-
-        /* Failed to do the conversion */
-        return -1;
-    }
-
-    /* Just copy bytes */
-    outputLen = len;
-    (void)memcpy(output, bytes, len);
-    output[len] = 0;
-    return outputLen;
-}
-
-/*
- * Convert UTF-8 to Platform Encoding.
- *    Returns length or -1 if output overflows.
- */
-int  JNICALL
-utf8ToPlatform(struct UtfInst*ui, jbyte *utf8, int len, char *output, int outputMaxLen)
-{
-    /* Negative length is an error */
-    if ( len < 0 ) {
-        return -1;
-    }
-
-    /* Zero length is ok, but we don't need to do much */
-    if ( len == 0 ) {
-        output[0] = 0;
-        return 0;
-    }
-
-    return iconvConvert(ui->iconvToPlatform, (char*)utf8, len, output, outputMaxLen);
-}
-
-/*
- * Convert Platform Encoding to UTF-8.
- *    Returns length or -1 if output overflows.
- */
-int  JNICALL
-utf8FromPlatform(struct UtfInst*ui, char *str, int len, jbyte *output, int outputMaxLen)
-{
-    /* Negative length is an error */
-    if ( len < 0 ) {
-        return -1;
-    }
-
-    /* Zero length is ok, but we don't need to do much */
-    if ( len == 0 ) {
-        output[0] = 0;
-        return 0;
-    }
-
-    return iconvConvert(ui->iconvFromPlatform, str, len, (char*)output, outputMaxLen);
-}
--- a/jdk/src/solaris/npt/utf_md.h	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * Copyright (c) 2004, 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.
- */
-
-#ifndef  _UTF_MD_H
-#define _UTF_MD_H
-
-struct UtfInst {
-    void *iconvToPlatform;
-    void *iconvFromPlatform;
-};
-
-#endif
--- a/jdk/src/windows/native/sun/security/provider/WinCAPISeedGenerator.c	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/src/windows/native/sun/security/provider/WinCAPISeedGenerator.c	Wed Jun 18 10:55:17 2014 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, 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,11 +59,16 @@
 
     numBytes = (*env)->GetArrayLength(env, randArray);
     randBytes = (*env)->GetByteArrayElements(env, randArray, NULL);
+    if (randBytes == NULL) {
+        goto cleanup;
+    }
+
     if (CryptGenRandom(hCryptProv, numBytes, randBytes)) {
         result = JNI_TRUE;
     }
     (*env)->ReleaseByteArrayElements(env, randArray, randBytes, 0);
 
+cleanup:
     CryptReleaseContext(hCryptProv, 0);
 
     return result;
--- a/jdk/src/windows/npt/npt_md.h	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2004, 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.
- */
-
-/* Native Platform Toolkit */
-
-#ifndef  _NPT_MD_H
-#define _NPT_MD_H
-
-#include <windows.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-
-#define NPT_LIBNAME "npt"
-
-#define NPT_INITIALIZE(path,pnpt,version,options)                       \
-    {                                                                   \
-        void   *_handle;                                                \
-        void   *_sym;                                                   \
-                                                                        \
-        if ( (pnpt) == NULL ) NPT_ERROR("NptEnv* is NULL");             \
-        *(pnpt) = NULL;                                                 \
-        _handle =  LoadLibrary(path);                                   \
-        if ( _handle == NULL ) NPT_ERROR("Cannot open library");        \
-        _sym = GetProcAddress(_handle, "nptInitialize");                \
-        if ( _sym == NULL ) NPT_ERROR("Cannot find nptInitialize");     \
-        ((NptInitialize)_sym)((pnpt), version, (options));              \
-        if ( *(pnpt) == NULL ) NPT_ERROR("Cannot initialize NptEnv");   \
-        (*(pnpt))->libhandle = _handle;                                 \
-    }
-
-#define NPT_TERMINATE(npt,options)                                      \
-    {                                                                   \
-        void *_handle;                                                  \
-        void *_sym;                                                     \
-                                                                        \
-        if ( (npt) == NULL ) NPT_ERROR("NptEnv* is NULL");              \
-        _handle = (npt)->libhandle;                                     \
-        if ( _handle == NULL ) NPT_ERROR("npt->libhandle is NULL");     \
-        _sym = GetProcAddress(_handle, "nptTerminate");                 \
-        if ( _sym == NULL ) NPT_ERROR("Cannot find nptTerminate");      \
-        ((NptTerminate)_sym)((npt), (options));                         \
-        (void)FreeLibrary(_handle);                                     \
-    }
-
-#endif
--- a/jdk/src/windows/npt/utf_md.c	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-/*
- * Copyright (c) 2004, 2005, 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 "utf.h"
-
-#include <windows.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-/*
- * Initialize all utf processing.
- */
-struct UtfInst * JNICALL
-utfInitialize(char *options)
-{
-    struct UtfInst *ui;
-    LANGID langID;
-    LCID localeID;
-    TCHAR strCodePage[7];       // ANSI code page id
-
-    ui = (struct UtfInst*)calloc(sizeof(struct UtfInst), 1);
-
-    /*
-     * Get the code page for this locale
-     */
-    langID = LANGIDFROMLCID(GetUserDefaultLCID());
-    localeID = MAKELCID(langID, SORT_DEFAULT);
-    if (GetLocaleInfo(localeID, LOCALE_IDEFAULTANSICODEPAGE,
-                      strCodePage, sizeof(strCodePage)/sizeof(TCHAR)) > 0 ) {
-        ui->platformCodePage = atoi(strCodePage);
-    } else {
-        ui->platformCodePage = GetACP();
-    }
-    return ui;
-}
-
-/*
- * Terminate all utf processing
- */
-void JNICALL
-utfTerminate(struct UtfInst *ui, char *options)
-{
-    (void)free(ui);
-}
-
-/*
- * Get wide string  (assumes len>0)
- */
-static WCHAR*
-getWideString(UINT codePage, char* str, int len, int *pwlen)
-{
-    int wlen;
-    WCHAR* wstr;
-
-    /* Convert the string to WIDE string */
-    wlen = MultiByteToWideChar(codePage, 0, str, len, NULL, 0);
-    *pwlen = wlen;
-    if (wlen <= 0) {
-        UTF_ERROR(("Can't get WIDE string length"));
-        return NULL;
-    }
-    wstr = (WCHAR*)malloc(wlen * sizeof(WCHAR));
-    if (wstr == NULL) {
-        UTF_ERROR(("Can't malloc() any space"));
-        return NULL;
-    }
-    if (MultiByteToWideChar(codePage, 0, str, len, wstr, wlen) == 0) {
-        UTF_ERROR(("Can't get WIDE string"));
-        return NULL;
-    }
-    return wstr;
-}
-
-/*
- * Convert UTF-8 to a platform string
- */
-int JNICALL
-utf8ToPlatform(struct UtfInst *ui, jbyte *utf8, int len, char* output, int outputMaxLen)
-{
-    int wlen;
-    int plen;
-    WCHAR* wstr;
-
-    /* Negative length is an error */
-    if ( len < 0 ) {
-        return -1;
-    }
-
-    /* Zero length is ok, but we don't need to do much */
-    if ( len == 0 ) {
-        output[0] = 0;
-        return 0;
-    }
-
-    /* Get WIDE string version (assumes len>0) */
-    wstr = getWideString(CP_UTF8, (char*)utf8, len, &wlen);
-    if ( wstr == NULL ) {
-        return -1;
-    }
-
-    /* Convert WIDE string to MultiByte string */
-    plen = WideCharToMultiByte(ui->platformCodePage, 0, wstr, wlen,
-                               output, outputMaxLen, NULL, NULL);
-    free(wstr);
-    if (plen <= 0) {
-        UTF_ERROR(("Can't convert WIDE string to multi-byte"));
-        return -1;
-    }
-    output[plen] = '\0';
-    return plen;
-}
-
-/*
- * Convert Platform Encoding to UTF-8.
- */
-int JNICALL
-utf8FromPlatform(struct UtfInst *ui, char *str, int len, jbyte *output, int outputMaxLen)
-{
-    int wlen;
-    int plen;
-    WCHAR* wstr;
-
-    /* Negative length is an error */
-    if ( len < 0 ) {
-        return -1;
-    }
-
-    /* Zero length is ok, but we don't need to do much */
-    if ( len == 0 ) {
-        output[0] = 0;
-        return 0;
-    }
-
-    /* Get WIDE string version (assumes len>0) */
-    wstr = getWideString(ui->platformCodePage, str, len, &wlen);
-    if ( wstr == NULL ) {
-        return -1;
-    }
-
-    /* Convert WIDE string to UTF-8 string */
-    plen = WideCharToMultiByte(CP_UTF8, 0, wstr, wlen,
-                               (char*)output, outputMaxLen, NULL, NULL);
-    free(wstr);
-    if (plen <= 0) {
-        UTF_ERROR(("Can't convert WIDE string to multi-byte"));
-        return -1;
-    }
-    output[plen] = '\0';
-    return plen;
-}
--- a/jdk/src/windows/npt/utf_md.h	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2004, 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.
- */
-
-#ifndef  _UTF_MD_H
-#define _UTF_MD_H
-
-struct UtfInst {
-    unsigned int platformCodePage;
-};
-
-#endif
--- a/jdk/test/ProblemList.txt	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/ProblemList.txt	Wed Jun 18 10:55:17 2014 -0700
@@ -124,6 +124,10 @@
 
 # jdk_management
 
+# 8046351
+com/sun/management/GarbageCollectorMXBean/GarbageCollectionNotificationContentTest.java   generic-all
+com/sun/management/GarbageCollectorMXBean/GarbageCollectionNotificationTest.java          generic-all
+
 ############################################################################
 
 # jdk_jmx
@@ -264,7 +268,6 @@
 # 8044419
 com/sun/jdi/JdbReadTwiceTest.sh                                 generic-all
 
-
 ############################################################################
 
 # jdk_util
@@ -292,4 +295,10 @@
 # 8037285
 sun/tools/jstatd/TestJstatdServer.java                          generic-all
 
+# 8046355
+sun/tools/jstatd/TestJstatdExternalRegistry.java                generic-all
+
+# 8046352
+com/sun/tools/attach/TempDirTest.java                           generic-all
+
 ############################################################################
--- a/jdk/test/com/sun/jdi/AccessSpecifierTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/AccessSpecifierTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g AccessSpecifierTest.java
- *  @run main AccessSpecifierTest
+ *  @run driver AccessSpecifierTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/AfterThreadDeathTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/AfterThreadDeathTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g AfterThreadDeathTest.java
- *  @run main AfterThreadDeathTest
+ *  @run driver AfterThreadDeathTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/AllLineLocations.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/AllLineLocations.java	Wed Jun 18 10:55:17 2014 -0700
@@ -32,7 +32,7 @@
  *  @run compile -g RefTypes.java
  *  @run build AllLineLocations
  *
- *  @run main AllLineLocations RefTypes
+ *  @run driver AllLineLocations RefTypes
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/AnyDebuggeeTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/AnyDebuggeeTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -29,7 +29,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g AnyDebuggeeTest.java
- *  @run main AnyDebuggeeeTest
+ *  @run driver AnyDebuggeeeTest
  *
  *  This test is intended to be run manually to investigate behaviors;
  *  it is not an actual test of any specific functionality, it just
--- a/jdk/test/com/sun/jdi/ArgumentValuesTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ArgumentValuesTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -7,7 +7,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile ArgumentValuesTest.java
- *  @run main ArgumentValuesTest
+ *  @run driver ArgumentValuesTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/ArrayRangeTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ArrayRangeTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -32,7 +32,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g ArrayRangeTest.java
- *  @run main ArrayRangeTest
+ *  @run driver ArrayRangeTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/BacktraceFieldTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/BacktraceFieldTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g BacktraceFieldTest.java
- *  @run main BacktraceFieldTest
+ *  @run driver BacktraceFieldTest
  */
 
 /*
--- a/jdk/test/com/sun/jdi/BadHandshakeTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/BadHandshakeTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -27,7 +27,7 @@
  * @library /lib/testlibrary
  *
  * @build jdk.testlibrary.* VMConnection BadHandshakeTest Exit0
- * @run main BadHandshakeTest
+ * @run driver BadHandshakeTest
  *
  */
 import java.net.Socket;
--- a/jdk/test/com/sun/jdi/BreakpointTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/BreakpointTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g BreakpointTest.java
- *  @run main BreakpointTest
+ *  @run driver BreakpointTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/ClassLoaderClassesTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ClassLoaderClassesTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -32,7 +32,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g ClassLoaderClassesTest.java
- *  @run main ClassLoaderClassesTest
+ *  @run driver ClassLoaderClassesTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/ClassesByName.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ClassesByName.java	Wed Jun 18 10:55:17 2014 -0700
@@ -34,7 +34,7 @@
  *  @summary ClassesByName verifies that all the classes in the
  *  loaded class list can be found with classesByName..
  *
- *  @run main ClassesByName HelloWorld
+ *  @run driver ClassesByName HelloWorld
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/ClassesByName2Test.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ClassesByName2Test.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g ClassesByName2Test.java
- *  @run main ClassesByName2Test
+ *  @run driver ClassesByName2Test
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/ConnectedVMs.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ConnectedVMs.java	Wed Jun 18 10:55:17 2014 -0700
@@ -28,10 +28,10 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g InstTarg.java
- *  @run main ConnectedVMs Kill
- *  @run main ConnectedVMs Resume-to-exit
- *  @run main ConnectedVMs dispose()
- *  @run main ConnectedVMs exit()
+ *  @run driver ConnectedVMs Kill
+ *  @run driver ConnectedVMs Resume-to-exit
+ *  @run driver ConnectedVMs dispose()
+ *  @run driver ConnectedVMs exit()
  *
  * @summary ConnectedVMs checks the method
  * VirtualMachineManager.connectedVirtualMachines()
--- a/jdk/test/com/sun/jdi/ConstantPoolInfo.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ConstantPoolInfo.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection
  *  @run compile -g ConstantPoolInfo.java
- *  @run main ConstantPoolInfo
+ *  @run driver ConstantPoolInfo
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/CountEvent.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/CountEvent.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *
  *  @run build TestScaffold VMConnection TargetAdapter TargetListener
  *  @run compile -g CountEvent.java
- *  @run main CountEvent
+ *  @run driver CountEvent
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/CountFilterTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/CountFilterTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g CountFilterTest.java
- *  @run main CountFilterTest
+ *  @run driver CountFilterTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/DataModelTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/DataModelTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -34,7 +34,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g DataModelTest.java
- *  @run main DataModelTest
+ *  @run driver DataModelTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/DebuggerThreadTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/DebuggerThreadTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g DebuggerThreadTest.java
- *  @run main DebuggerThreadTest
+ *  @run driver DebuggerThreadTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/DeleteAllBkptsTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/DeleteAllBkptsTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *  @library ..
  *  @run build  TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g DeleteAllBkptsTest.java
- *  @run main DeleteAllBkptsTest
+ *  @run driver DeleteAllBkptsTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/DeleteEventRequestsTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/DeleteEventRequestsTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g DeleteEventRequestsTest.java
- *  @run main DeleteEventRequestsTest
+ *  @run driver DeleteEventRequestsTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/DoubleAgentTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/DoubleAgentTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -26,14 +26,13 @@
  * @summary Check that a double agent request fails
  *
  * @build VMConnection DoubleAgentTest Exit0
- * @run main DoubleAgentTest
+ * @run driver DoubleAgentTest
  *
  */
 import java.io.InputStream;
 import java.io.IOException;
 import java.io.File;
 import java.net.ServerSocket;
-import java.net.Socket;
 
 public class DoubleAgentTest {
 
--- a/jdk/test/com/sun/jdi/EarlyReturnNegativeTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/EarlyReturnNegativeTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -29,7 +29,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g EarlyReturnNegativeTest.java
- *  @run main EarlyReturnNegativeTest
+ *  @run driver EarlyReturnNegativeTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/EarlyReturnTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/EarlyReturnTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -36,7 +36,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g EarlyReturnTest.java
- *  @run main EarlyReturnTest
+ *  @run driver EarlyReturnTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/EnumTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/EnumTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g EnumTest.java
- *  @run main EnumTest
+ *  @run driver EnumTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/EventQueueDisconnectTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/EventQueueDisconnectTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -28,7 +28,7 @@
  *
  *  @run build VMConnection
  *  @run compile -g EventQueueDisconnectTest.java
- *  @run main EventQueueDisconnectTest
+ *  @run driver EventQueueDisconnectTest
  *
  *  @summary EventQueueDisconnectTest checks to see that
  *  VMDisconnectedException is never thrown before VMDisconnectEvent.
@@ -64,7 +64,7 @@
                                        "com.sun.jdi.CommandLineLaunch:",
                                        VirtualMachine.TRACE_NONE);
         connection.setConnectorArg("main", "EventQueueDisconnectTarg");
-        String debuggeeVMOptions = connection.getDebuggeeVMOptions();
+        String debuggeeVMOptions = VMConnection.getDebuggeeVMOptions();
         if (!debuggeeVMOptions.equals("")) {
             if (connection.connectorArg("options").length() > 0) {
                 throw new IllegalArgumentException("VM options in two places");
--- a/jdk/test/com/sun/jdi/ExceptionEvents.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ExceptionEvents.java	Wed Jun 18 10:55:17 2014 -0700
@@ -32,32 +32,32 @@
  *  @run build TestScaffold VMConnection
  *  @run compile -g ExceptionEvents.java
  *
- *  @run main/othervm ExceptionEvents N A StackOverflowCaughtTarg java.lang.Exception
- *  @run main/othervm ExceptionEvents C A StackOverflowCaughtTarg null
- *  @run main/othervm ExceptionEvents C A StackOverflowCaughtTarg java.lang.Error
- *  @run main/othervm ExceptionEvents C A StackOverflowCaughtTarg java.lang.StackOverflowError
- *  @run main/othervm ExceptionEvents N A StackOverflowCaughtTarg java.lang.NullPointerException
+ *  @run driver ExceptionEvents N A StackOverflowCaughtTarg java.lang.Exception
+ *  @run driver ExceptionEvents C A StackOverflowCaughtTarg null
+ *  @run driver ExceptionEvents C A StackOverflowCaughtTarg java.lang.Error
+ *  @run driver ExceptionEvents C A StackOverflowCaughtTarg java.lang.StackOverflowError
+ *  @run driver ExceptionEvents N A StackOverflowCaughtTarg java.lang.NullPointerException
 
- *  @run main/othervm ExceptionEvents N T StackOverflowCaughtTarg java.lang.Exception
- *  @run main/othervm ExceptionEvents C T StackOverflowCaughtTarg null
- *  @run main/othervm ExceptionEvents C T StackOverflowCaughtTarg java.lang.Error
- *  @run main/othervm ExceptionEvents C T StackOverflowCaughtTarg java.lang.StackOverflowError
- *  @run main/othervm ExceptionEvents N T StackOverflowCaughtTarg java.lang.NullPointerException
+ *  @run driver ExceptionEvents N T StackOverflowCaughtTarg java.lang.Exception
+ *  @run driver ExceptionEvents C T StackOverflowCaughtTarg null
+ *  @run driver ExceptionEvents C T StackOverflowCaughtTarg java.lang.Error
+ *  @run driver ExceptionEvents C T StackOverflowCaughtTarg java.lang.StackOverflowError
+ *  @run driver ExceptionEvents N T StackOverflowCaughtTarg java.lang.NullPointerException
 
- *  @run main/othervm ExceptionEvents N N StackOverflowCaughtTarg java.lang.Exception
- *  @run main/othervm ExceptionEvents C N StackOverflowCaughtTarg null
- *  @run main/othervm ExceptionEvents C N StackOverflowCaughtTarg java.lang.Error
- *  @run main/othervm ExceptionEvents C N StackOverflowCaughtTarg java.lang.StackOverflowError
- *  @run main/othervm ExceptionEvents N N StackOverflowCaughtTarg java.lang.NullPointerException
+ *  @run driver ExceptionEvents N N StackOverflowCaughtTarg java.lang.Exception
+ *  @run driver ExceptionEvents C N StackOverflowCaughtTarg null
+ *  @run driver ExceptionEvents C N StackOverflowCaughtTarg java.lang.Error
+ *  @run driver ExceptionEvents C N StackOverflowCaughtTarg java.lang.StackOverflowError
+ *  @run driver ExceptionEvents N N StackOverflowCaughtTarg java.lang.NullPointerException
 
- *  @run main/othervm ExceptionEvents N A StackOverflowUncaughtTarg java.lang.Exception
- *  @run main/othervm ExceptionEvents U A StackOverflowUncaughtTarg null
- *  @run main/othervm ExceptionEvents U A StackOverflowUncaughtTarg java.lang.Error
- *  @run main/othervm ExceptionEvents U A StackOverflowUncaughtTarg java.lang.StackOverflowError
- *  @run main/othervm ExceptionEvents N A StackOverflowUncaughtTarg java.lang.NullPointerException
+ *  @run driver ExceptionEvents N A StackOverflowUncaughtTarg java.lang.Exception
+ *  @run driver ExceptionEvents U A StackOverflowUncaughtTarg null
+ *  @run driver ExceptionEvents U A StackOverflowUncaughtTarg java.lang.Error
+ *  @run driver ExceptionEvents U A StackOverflowUncaughtTarg java.lang.StackOverflowError
+ *  @run driver ExceptionEvents N A StackOverflowUncaughtTarg java.lang.NullPointerException
 
- *  @run main/othervm ExceptionEvents N T StackOverflowUncaughtTarg java.lang.NullPointerException
- *  @run main/othervm ExceptionEvents N N StackOverflowUncaughtTarg java.lang.NullPointerException
+ *  @run driver ExceptionEvents N T StackOverflowUncaughtTarg java.lang.NullPointerException
+ *  @run driver ExceptionEvents N N StackOverflowUncaughtTarg java.lang.NullPointerException
 
  */
 import com.sun.jdi.*;
--- a/jdk/test/com/sun/jdi/ExclusiveBind.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ExclusiveBind.java	Wed Jun 18 10:55:17 2014 -0700
@@ -28,7 +28,7 @@
  * @library /lib/testlibrary
  *
  * @build jdk.testlibrary.* VMConnection ExclusiveBind HelloWorld
- * @run main ExclusiveBind
+ * @run driver ExclusiveBind
  */
 import java.net.ServerSocket;
 import com.sun.jdi.Bootstrap;
--- a/jdk/test/com/sun/jdi/ExpiredRequestDeletionTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ExpiredRequestDeletionTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g ExpiredRequestDeletionTest.java
- *  @run main ExpiredRequestDeletionTest
+ *  @run driver ExpiredRequestDeletionTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/FetchLocals.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/FetchLocals.java	Wed Jun 18 10:55:17 2014 -0700
@@ -7,7 +7,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g FetchLocals.java
- *  @run main FetchLocals
+ *  @run driver FetchLocals
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/FieldWatchpoints.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/FieldWatchpoints.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g FieldWatchpoints.java
- *  @run main/othervm FieldWatchpoints
+ *  @run driver FieldWatchpoints
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/FilterMatch.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/FilterMatch.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *  @library scaffold
  *  @run build JDIScaffold VMConnection
  *  @run compile -g HelloWorld.java
- *  @run main/othervm FilterMatch
+ *  @run driver FilterMatch
  */
 
 /* Look at patternMatch in JDK file:
--- a/jdk/test/com/sun/jdi/FilterNoMatch.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/FilterNoMatch.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *  @library scaffold
  *  @run build JDIScaffold VMConnection
  *  @run compile -g HelloWorld.java
- *  @run main/othervm FilterNoMatch
+ *  @run driver FilterNoMatch
  */
 
 /* This tests the patternMatch function in JDK file:
--- a/jdk/test/com/sun/jdi/FinalLocalsTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/FinalLocalsTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -32,7 +32,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g FinalLocalsTest.java
- *  @run main FinalLocalsTest
+ *  @run driver FinalLocalsTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/FinalizerTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/FinalizerTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g FinalizerTest.java
  *
- *  @run main FinalizerTest
+ *  @run driver FinalizerTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/FramesTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/FramesTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g FramesTest.java
- *  @run main FramesTest
+ *  @run driver FramesTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/GenericsTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/GenericsTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g GenericsTest.java
- *  @run main GenericsTest
+ *  @run driver GenericsTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/GetLocalVariables.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/GetLocalVariables.java	Wed Jun 18 10:55:17 2014 -0700
@@ -7,7 +7,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g GetLocalVariables.java
- *  @run main GetLocalVariables
+ *  @run driver GetLocalVariables
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/GetLocalVariables2Test.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/GetLocalVariables2Test.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g GetLocalVariables2Test.java
- *  @run main GetLocalVariables2Test
+ *  @run driver GetLocalVariables2Test
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/GetSetLocalTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/GetSetLocalTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -7,7 +7,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g GetSetLocalTest.java
- *  @run main GetSetLocalTest
+ *  @run driver GetSetLocalTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/GetUninitializedStringValue.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/GetUninitializedStringValue.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g GetUninitializedStringValue.java
- *  @run main GetUninitializedStringValue
+ *  @run driver GetUninitializedStringValue
  */
 import com.sun.jdi.ReferenceType;
 import com.sun.jdi.StackFrame;
--- a/jdk/test/com/sun/jdi/HomeTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/HomeTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g HomeTest.java
- *  @run main HomeTest
+ *  @run driver HomeTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.connect.*;
--- a/jdk/test/com/sun/jdi/InstanceFilter.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/InstanceFilter.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *
  *  @run build TestScaffold VMConnection TargetAdapter TargetListener
  *  @run compile -g InstanceFilter.java
- *  @run main/othervm InstanceFilter
+ *  @run driver InstanceFilter
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/InstancesTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/InstancesTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -29,7 +29,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g InstancesTest.java
- *  @run main InstancesTest
+ *  @run driver InstancesTest
  */
 
 /*
--- a/jdk/test/com/sun/jdi/InterfaceMethodsTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/InterfaceMethodsTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -28,7 +28,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run build InterfaceMethodsTest
- *  @run main InterfaceMethodsTest
+ *  @run driver InterfaceMethodsTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/InterruptHangTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/InterruptHangTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -7,7 +7,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g InterruptHangTest.java
- *  @run main InterruptHangTest
+ *  @run driver InterruptHangTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/InvokeHangTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/InvokeHangTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g InvokeHangTest.java
- *  @run main InvokeHangTest
+ *  @run driver InvokeHangTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/InvokeTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/InvokeTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *  @library ..
  *  @run build  TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g InvokeTest.java
- *  @run main InvokeTest
+ *  @run driver InvokeTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/JITDebug.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/JITDebug.java	Wed Jun 18 10:55:17 2014 -0700
@@ -46,7 +46,7 @@
  *  assure that launching on uncaught exception works
  *
  *  @author Robert Field
- *  @run main/othervm JITDebug
+ *  @run driver JITDebug
  */
 
 import com.sun.jdi.*;
--- a/jdk/test/com/sun/jdi/Java_gTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/Java_gTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g Java_gTest.java
- *  @run main Java_gTest
+ *  @run driver Java_gTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/LambdaBreakpointTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/LambdaBreakpointTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g LambdaBreakpointTest.java
- *  @run main LambdaBreakpointTest
+ *  @run driver LambdaBreakpointTest
  */
 import java.util.List;
 
--- a/jdk/test/com/sun/jdi/LambdaStepTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/LambdaStepTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -29,7 +29,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g LambdaStepTest.java
- *  @run main LambdaStepTest
+ *  @run driver LambdaStepTest
  */
 import com.sun.jdi.LocalVariable;
 import com.sun.jdi.ObjectReference;
--- a/jdk/test/com/sun/jdi/LaunchCommandLine.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/LaunchCommandLine.java	Wed Jun 18 10:55:17 2014 -0700
@@ -32,7 +32,7 @@
  *  @run compile -g HelloWorld.java
  *  @run build LaunchCommandLine
  *
- *  @run main LaunchCommandLine
+ *  @run driver LaunchCommandLine
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/LineNumberInfo.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/LineNumberInfo.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g LineNumberInfo.java ControlFlow.java
  *
- *  @run main LineNumberInfo
+ *  @run driver LineNumberInfo
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/LineNumberOnBraceTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/LineNumberOnBraceTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -7,7 +7,7 @@
  *
  *  @run build VMConnection TargetListener TargetAdapter
  *  @run compile -g LineNumberOnBraceTest.java
- *  @run main LineNumberOnBraceTest
+ *  @run driver LineNumberOnBraceTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/LocalVariableEqual.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/LocalVariableEqual.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g LocalVariableEqual.java
- *  @run main LocalVariableEqual
+ *  @run driver LocalVariableEqual
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/LocationTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/LocationTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g LocationTest.java
- *  @run main LocationTest
+ *  @run driver LocationTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/MethodEntryExitEvents.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/MethodEntryExitEvents.java	Wed Jun 18 10:55:17 2014 -0700
@@ -29,9 +29,9 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g MethodEntryExitEvents.java
- *  @run main MethodEntryExitEvents SUSPEND_EVENT_THREAD MethodEntryExitEventsDebugee
- *  @run main MethodEntryExitEvents SUSPEND_NONE MethodEntryExitEventsDebugee
- *  @run main MethodEntryExitEvents SUSPEND_ALL MethodEntryExitEventsDebugee
+ *  @run driver MethodEntryExitEvents SUSPEND_EVENT_THREAD MethodEntryExitEventsDebugee
+ *  @run driver MethodEntryExitEvents SUSPEND_NONE MethodEntryExitEventsDebugee
+ *  @run driver MethodEntryExitEvents SUSPEND_ALL MethodEntryExitEventsDebugee
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/MethodExitReturnValuesTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/MethodExitReturnValuesTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -29,7 +29,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g MethodExitReturnValuesTest.java
- *  @run main MethodExitReturnValuesTest
+ *  @run driver MethodExitReturnValuesTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/ModificationWatchpoints.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ModificationWatchpoints.java	Wed Jun 18 10:55:17 2014 -0700
@@ -32,7 +32,7 @@
  *  @library scaffold
  *  @run build JDIScaffold VMConnection
  *  @run compile -g ModificationWatchpoints.java
- *  @run main/othervm ModificationWatchpoints
+ *  @run driver ModificationWatchpoints
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/MonitorEventTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/MonitorEventTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g MonitorEventTest.java
- *  @run main MonitorEventTest
+ *  @run driver MonitorEventTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/MonitorFrameInfo.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/MonitorFrameInfo.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g MonitorFrameInfo.java
- *  @run main MonitorFrameInfo
+ *  @run driver MonitorFrameInfo
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/MultiBreakpointsTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/MultiBreakpointsTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *
  *  @build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g MultiBreakpointsTest.java
- *  @run main MultiBreakpointsTest
+ *  @run driver MultiBreakpointsTest
  */
 
 /*
--- a/jdk/test/com/sun/jdi/NativeInstanceFilter.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/NativeInstanceFilter.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *  @library scaffold
  *  @run build JDIScaffold VMConnection
  *  @compile -XDignore.symbol.file NativeInstanceFilterTarg.java
- *  @run main/othervm NativeInstanceFilter
+ *  @run driver NativeInstanceFilter
  */
 
 /*
--- a/jdk/test/com/sun/jdi/NewInstanceTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/NewInstanceTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g NewInstanceTest.java
- *  @run main NewInstanceTest
+ *  @run driver NewInstanceTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/NoLaunchOptionTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/NoLaunchOptionTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -29,7 +29,7 @@
  *
  *  @run compile -g NoLaunchOptionTest.java
  *  @build VMConnection
- *  @run main/othervm NoLaunchOptionTest
+ *  @run driver NoLaunchOptionTest
  */
 
 import java.net.ServerSocket;
--- a/jdk/test/com/sun/jdi/NoLocInfoTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/NoLocInfoTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g:none NoLocInfoTest.java
- *  @run main NoLocInfoTest
+ *  @run driver NoLocInfoTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/NullThreadGroupNameTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/NullThreadGroupNameTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -27,7 +27,7 @@
  *  @summary Ensure that JDWP doesn't crash with a null thread group name
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
- *  @run main NullThreadGroupNameTest
+ *  @run driver NullThreadGroupNameTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.connect.*;
--- a/jdk/test/com/sun/jdi/OnThrowTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/OnThrowTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *  @run compile -g OnThrowTest.java
  *  @run compile -g OnThrowTarget.java
  *  @run compile -g VMConnection.java
- *  @run main/othervm OnThrowTest
+ *  @run driver OnThrowTest
  */
 
 import java.io.File;
--- a/jdk/test/com/sun/jdi/OptionTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/OptionTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *  @run compile -g OptionTest.java
  *  @run compile -g HelloWorld.java
  *  @run compile -g VMConnection.java
- *  @run main/othervm OptionTest
+ *  @run driver OptionTest
  */
 
 import java.net.ServerSocket;
--- a/jdk/test/com/sun/jdi/PopAndInvokeTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/PopAndInvokeTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g PopAndInvokeTest.java
- *  @run main PopAndInvokeTest
+ *  @run driver PopAndInvokeTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/PopAndStepTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/PopAndStepTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -10,7 +10,7 @@
  *  @library ..
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g PopAndStepTest.java
- *  @run main PopAndStepTest
+ *  @run driver PopAndStepTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/PopAsynchronousTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/PopAsynchronousTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g PopAsynchronousTest.java
- *  @run main PopAsynchronousTest
+ *  @run driver PopAsynchronousTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/PopSynchronousTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/PopSynchronousTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g PopSynchronousTest.java
- *  @run main PopSynchronousTest
+ *  @run driver PopSynchronousTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/RedefineCrossEvent.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/RedefineCrossEvent.java	Wed Jun 18 10:55:17 2014 -0700
@@ -46,26 +46,26 @@
  *  @run compile -g RepStepTarg.java
  *  @run compile -g RequestReflectionTest.java
  *
- *  @run main AccessSpecifierTest -redefstart -redefevent
- *  @run main AfterThreadDeathTest -redefstart -redefevent
- *  @run main ArrayRangeTest -redefstart -redefevent
- *  @run main BacktraceFieldTest -redefstart -redefevent
- *  @run main ClassesByName2Test -redefstart -redefevent
- *  @run main DebuggerThreadTest -redefstart -redefevent
- *  @run main DeleteEventRequestsTest -redefstart -redefevent
- *  @run main/othervm ExceptionEvents -redefstart -redefevent N A StackOverflowCaughtTarg java.lang.Exception
- *  @run main/othervm ExceptionEvents -redefstart -redefevent C A StackOverflowCaughtTarg null
- *  @run main/othervm ExceptionEvents -redefstart -redefevent C A StackOverflowCaughtTarg java.lang.StackOverflowError
- *  @run main/othervm ExceptionEvents -redefstart -redefevent N A StackOverflowCaughtTarg java.lang.NullPointerException
- *  @run main/othervm ExceptionEvents -redefstart -redefevent C T StackOverflowCaughtTarg java.lang.Error
- *  @run main/othervm ExceptionEvents -redefstart -redefevent N T StackOverflowCaughtTarg java.lang.NullPointerException
- *  @run main/othervm ExceptionEvents -redefstart -redefevent N N StackOverflowCaughtTarg java.lang.Exception
- *  @run main/othervm ExceptionEvents -redefstart -redefevent C N StackOverflowCaughtTarg java.lang.Error
- *  @run main/othervm ExceptionEvents -redefstart -redefevent N A StackOverflowUncaughtTarg java.lang.Exception
- *  @run main ExpiredRequestDeletionTest -redefstart -redefevent
- *  @run main/othervm FieldWatchpoints -redefstart -redefevent
- *  @run main/othervm InstanceFilter -redefstart -redefevent
- *  @run main LocationTest -redefstart -redefevent
- *  @run main NewInstanceTest -redefstart -redefevent
- *  @run main RequestReflectionTest -redefstart -redefevent
+ *  @run driver AccessSpecifierTest -redefstart -redefevent
+ *  @run driver AfterThreadDeathTest -redefstart -redefevent
+ *  @run driver ArrayRangeTest -redefstart -redefevent
+ *  @run driver BacktraceFieldTest -redefstart -redefevent
+ *  @run driver ClassesByName2Test -redefstart -redefevent
+ *  @run driver DebuggerThreadTest -redefstart -redefevent
+ *  @run driver DeleteEventRequestsTest -redefstart -redefevent
+ *  @run driver ExceptionEvents -redefstart -redefevent N A StackOverflowCaughtTarg java.lang.Exception
+ *  @run driver ExceptionEvents -redefstart -redefevent C A StackOverflowCaughtTarg null
+ *  @run driver ExceptionEvents -redefstart -redefevent C A StackOverflowCaughtTarg java.lang.StackOverflowError
+ *  @run driver ExceptionEvents -redefstart -redefevent N A StackOverflowCaughtTarg java.lang.NullPointerException
+ *  @run driver ExceptionEvents -redefstart -redefevent C T StackOverflowCaughtTarg java.lang.Error
+ *  @run driver ExceptionEvents -redefstart -redefevent N T StackOverflowCaughtTarg java.lang.NullPointerException
+ *  @run driver ExceptionEvents -redefstart -redefevent N N StackOverflowCaughtTarg java.lang.Exception
+ *  @run driver ExceptionEvents -redefstart -redefevent C N StackOverflowCaughtTarg java.lang.Error
+ *  @run driver ExceptionEvents -redefstart -redefevent N A StackOverflowUncaughtTarg java.lang.Exception
+ *  @run driver ExpiredRequestDeletionTest -redefstart -redefevent
+ *  @run driver FieldWatchpoints -redefstart -redefevent
+ *  @run driver InstanceFilter -redefstart -redefevent
+ *  @run driver LocationTest -redefstart -redefevent
+ *  @run driver NewInstanceTest -redefstart -redefevent
+ *  @run driver RequestReflectionTest -redefstart -redefevent
  */
--- a/jdk/test/com/sun/jdi/RedefineCrossStart.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/RedefineCrossStart.java	Wed Jun 18 10:55:17 2014 -0700
@@ -37,13 +37,13 @@
  *  @run compile -g FramesTest.java
  *  @run compile -g InvokeTest.java
  *
- *  @run main CountEvent -redefstart
- *  @run main CountFilterTest -redefstart
- *  @run main FramesTest -redefstart
- *  @run main InvokeTest -redefstart
+ *  @run driver CountEvent -redefstart
+ *  @run driver CountFilterTest -redefstart
+ *  @run driver FramesTest -redefstart
+ *  @run driver InvokeTest -redefstart
  *
- *  @run main/othervm ExceptionEvents -redefstart U A StackOverflowUncaughtTarg null
- *  @run main/othervm ExceptionEvents -redefstart U A StackOverflowUncaughtTarg java.lang.Error
- *  @run main/othervm ExceptionEvents -redefstart U A StackOverflowUncaughtTarg java.lang.StackOverflowError
- *  @run main PopSynchronousTest -redefstart
+ *  @run driver ExceptionEvents -redefstart U A StackOverflowUncaughtTarg null
+ *  @run driver ExceptionEvents -redefstart U A StackOverflowUncaughtTarg java.lang.Error
+ *  @run driver ExceptionEvents -redefstart U A StackOverflowUncaughtTarg java.lang.StackOverflowError
+ *  @run driver PopSynchronousTest -redefstart
  */
--- a/jdk/test/com/sun/jdi/ReferrersTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ReferrersTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -29,7 +29,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g ReferrersTest.java
- *  @run main ReferrersTest
+ *  @run driver ReferrersTest
  */
 
 /*
--- a/jdk/test/com/sun/jdi/RepStep.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/RepStep.java	Wed Jun 18 10:55:17 2014 -0700
@@ -29,7 +29,7 @@
  *  @run compile -g RepStepTarg.java
  *  @run build VMConnection RepStep
  *
- *  @run main/othervm RepStep
+ *  @run driver RepStep
  *
  * @summary RepStep detects missed step events due to lack of
  * frame pop events (in back-end).
--- a/jdk/test/com/sun/jdi/RequestReflectionTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/RequestReflectionTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -28,7 +28,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g RequestReflectionTest.java
- *  @run main RequestReflectionTest
+ *  @run driver RequestReflectionTest
  *
  *  @summary RequestReflectionTest checks to see that reflective
  *  accessors on EventRequests return what they are given.
--- a/jdk/test/com/sun/jdi/ResumeOneThreadTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ResumeOneThreadTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g ResumeOneThreadTest.java
- *  @run main ResumeOneThreadTest
+ *  @run driver ResumeOneThreadTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/RunToExit.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/RunToExit.java	Wed Jun 18 10:55:17 2014 -0700
@@ -26,7 +26,7 @@
  * @summary Test that with server=y, when VM runs to System.exit() no error happens
  *
  * @build VMConnection RunToExit Exit0
- * @run main/othervm RunToExit
+ * @run driver RunToExit
  */
 import java.io.InputStream;
 import java.io.IOException;
--- a/jdk/test/com/sun/jdi/SDENullTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/SDENullTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build  TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g SDENullTest.java
- *  @run main SDENullTest
+ *  @run driver SDENullTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/SimulResumerTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/SimulResumerTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g SimulResumerTest.java
- *  @run main/othervm SimulResumerTest
+ *  @run driver SimulResumerTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/SourceNameFilterTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/SourceNameFilterTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,9 +30,9 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g SourceNameFilterTest.java
- *  @run main SourceNameFilterTest
+ *  @run driver SourceNameFilterTest
  *  @run compile -g:none SourceNameFilterTest.java
- *  @run main SourceNameFilterTest
+ *  @run driver SourceNameFilterTest
  */
 // The compile -g:none suppresses the lineNumber table to trigger bug 6646613.
 
--- a/jdk/test/com/sun/jdi/StepTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/StepTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -51,15 +51,15 @@
  *                     |  |    |  +--- Debuggee command Line
  *                     V  V    V  V      Workaround-----+
  *                                                      V
- *  @run main StepTest 2 line  2 MethodCalls
- *  @run main StepTest 3 line 14 MethodCalls
+ *  @run driver StepTest 2 line  2 MethodCalls
+ *  @run driver StepTest 3 line 14 MethodCalls
  *
- *  @run main StepTest 2 line 18 MethodCallsReflection  12
+ *  @run driver StepTest 2 line 18 MethodCallsReflection  12
  *
- *  @run main StepTest 2 min   4 MethodCalls
- *  @run main StepTest 3 min  43 MethodCalls
+ *  @run driver StepTest 2 min   4 MethodCalls
+ *  @run driver StepTest 3 min  43 MethodCalls
  *
- *  @run main StepTest 2 line 65 ControlFlow            64
+ *  @run driver StepTest 2 line 65 ControlFlow            64
  */
 
 /*
--- a/jdk/test/com/sun/jdi/SuspendThreadTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/SuspendThreadTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g SuspendThreadTest.java
- *  @run main SuspendThreadTest
+ *  @run driver SuspendThreadTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/TemplateTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/TemplateTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -33,7 +33,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g TemplateTest.java
- *  @run main TemplateTest
+ *  @run driver TemplateTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/ThreadGroupTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/ThreadGroupTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile ThreadGroupTest.java
- *  @run main ThreadGroupTest
+ *  @run driver ThreadGroupTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.connect.*;
--- a/jdk/test/com/sun/jdi/TwoThreadsTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/TwoThreadsTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g TwoThreadsTest.java
- *  @run main TwoThreadsTest
+ *  @run driver TwoThreadsTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/UTF8Test.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/UTF8Test.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g UTF8Test.java
- *  @run main UTF8Test
+ *  @run driver UTF8Test
  */
 
 /*
--- a/jdk/test/com/sun/jdi/UnpreparedByName.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/UnpreparedByName.java	Wed Jun 18 10:55:17 2014 -0700
@@ -33,7 +33,7 @@
  *  @run compile -g InnerTarg.java
  *  @run build UnpreparedByName
  *
- *  @run main UnpreparedByName InnerTarg
+ *  @run driver UnpreparedByName InnerTarg
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/UnpreparedClasses.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/UnpreparedClasses.java	Wed Jun 18 10:55:17 2014 -0700
@@ -33,7 +33,7 @@
  *  @run compile -g InnerTarg.java
  *  @run build UnpreparedClasses
  *
- *  @run main UnpreparedClasses InnerTarg
+ *  @run driver UnpreparedClasses InnerTarg
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/VMConnection.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/VMConnection.java	Wed Jun 18 10:55:17 2014 -0700
@@ -52,61 +52,23 @@
 
         // When we run under jtreg, test.classes contains the pathname of
         // the dir in which the .class files will be placed.
-        BufferedReader reader;
         String testClasses = System.getProperty("test.classes");
         if (testClasses == null) {
             return retVal;
         }
-        retVal += "-classpath " + testClasses + " ";
-        File myFile = new File(testClasses, "@debuggeeVMOptions");
+        retVal += "-classpath " + testClasses;
 
-        if (!myFile.canRead()) {
-            // Not there - look in parent (in case we are in a subdir)
-            myFile = new File(testClasses);
-            String parentDir = myFile.getParent();
-            if (parentDir != null) {
-                myFile = new File(parentDir, "@debuggeeVMOptions");
-                if (!myFile.canRead()) {
-                    return retVal;
-                }
-            }
+        String vmOpts = System.getProperty("test.vm.opts");
+        System.out.println("vmOpts: "+vmOpts);
+        if (vmOpts != null) {
+            retVal += " " + vmOpts;
         }
-        String wholePath = myFile.getPath();
-        try {
-            reader = new BufferedReader(new FileReader(myFile));
-        } catch (FileNotFoundException ee) {
-            System.out.println("-- Error 2 trying to access file " +
-                               wholePath + ": " + ee);
-            return retVal;
+        String javaOpts = System.getProperty("test.java.opts");
+        System.out.println("javaOpts: "+javaOpts);
+        if (javaOpts != null) {
+            retVal += " " + javaOpts;
         }
 
-        String line;
-        while (true) {
-            try {
-                line = reader.readLine();
-            } catch (IOException ee) {
-                System.out.println("-- Error reading options from file " +
-                                   wholePath + ": " + ee);
-                break;
-            }
-            if (line == null) {
-                System.out.println("-- No debuggee VM options found in file " +
-                                   wholePath);
-                break;
-            }
-            line = line.trim();
-            if (line.length() != 0 && !line.startsWith("#")) {
-                System.out.println("-- Added debuggeeVM options from file " +
-                                   wholePath + ": " + line);
-                retVal += line;
-                break;
-            }
-            // Else, read he next line.
-        }
-        try {
-            reader.close();
-        } catch (IOException ee) {
-        }
         return retVal;
     }
 
--- a/jdk/test/com/sun/jdi/VMDeathLastTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/VMDeathLastTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -31,7 +31,7 @@
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g HelloWorld.java
  *  @run build VMDeathLastTest
- *  @run main VMDeathLastTest
+ *  @run driver VMDeathLastTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/VMDeathRequestTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/VMDeathRequestTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -29,7 +29,7 @@
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g HelloWorld.java
  *  @run build VMDeathRequestTest
- *  @run main VMDeathRequestTest
+ *  @run driver VMDeathRequestTest
  *
  * @summary VMDeathRequestTest checks to see that
  * VMDisconnectedException is never thrown before VMDisconnectEvent.
--- a/jdk/test/com/sun/jdi/VarargsTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/VarargsTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g VarargsTest.java
- *  @run main VarargsTest
+ *  @run driver VarargsTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/Vars.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/Vars.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *  @library scaffold
  *  @run build JDIScaffold VMConnection
  *  @run compile -g Vars.java
- *  @run main/othervm Vars
+ *  @run driver Vars
  */
 
 import com.sun.jdi.*;
--- a/jdk/test/com/sun/jdi/VisibleMethods.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/VisibleMethods.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,7 +30,7 @@
  *
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g VisibleMethods.java
- *  @run main VisibleMethods
+ *  @run driver VisibleMethods
  */
 import com.sun.jdi.Method;
 import com.sun.jdi.ReferenceType;
--- a/jdk/test/com/sun/jdi/redefine/RedefineTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/redefine/RedefineTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -34,7 +34,7 @@
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g RedefineTest.java
  *  @run shell RedefineSetUp.sh
- *  @run main/othervm RedefineTest
+ *  @run driver RedefineTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/redefineMethod/RedefineTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/redefineMethod/RedefineTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -32,8 +32,8 @@
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter
  *  @run compile -g RedefineTest.java
  *  @run shell RedefineSetUp.sh
- *  @run main RedefineTest -repeat 3
- *  @run main RedefineTest
+ *  @run driver RedefineTest -repeat 3
+ *  @run driver RedefineTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/sde/FilterMangleTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/sde/FilterMangleTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -9,21 +9,21 @@
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter InstallSDE
  *  @run compile FilterMangleTest.java
  *  @run compile -g onion/pickle/Mangle.java
- *  @run main FilterMangleTest
- *  @run main FilterMangleTest SDE-pMangle.java*
- *  @run main FilterMangleTest SDE-pMangle.jav*
- *  @run main FilterMangleTest SDE-pMangle.j*
- *  @run main FilterMangleTest SDE-p*Mangle.java
- *  @run main FilterMangleTest SDE-p*angle.java
- *  @run main FilterMangleTest SDE-p*java
- *  @run main FilterMangleTest SDE-pMangle.xyz
- *  @run main FilterMangleTest SDE-pIncl.rats*
- *  @run main FilterMangleTest SDE-pIncl.rat*
- *  @run main FilterMangleTest SDE-p*angle.rats
- *  @run main FilterMangleTest SDE-f*Incl.rat
- *  @run main FilterMangleTest SDE-ffred
- *  @run main FilterMangleTest SDE-f*ratsx
- *  @run main FilterMangleTest SDE-fMangle.javax*
+ *  @run driver FilterMangleTest
+ *  @run driver FilterMangleTest SDE-pMangle.java*
+ *  @run driver FilterMangleTest SDE-pMangle.jav*
+ *  @run driver FilterMangleTest SDE-pMangle.j*
+ *  @run driver FilterMangleTest SDE-p*Mangle.java
+ *  @run driver FilterMangleTest SDE-p*angle.java
+ *  @run driver FilterMangleTest SDE-p*java
+ *  @run driver FilterMangleTest SDE-pMangle.xyz
+ *  @run driver FilterMangleTest SDE-pIncl.rats*
+ *  @run driver FilterMangleTest SDE-pIncl.rat*
+ *  @run driver FilterMangleTest SDE-p*angle.rats
+ *  @run driver FilterMangleTest SDE-f*Incl.rat
+ *  @run driver FilterMangleTest SDE-ffred
+ *  @run driver FilterMangleTest SDE-f*ratsx
+ *  @run driver FilterMangleTest SDE-fMangle.javax*
  */
 
 /*
--- a/jdk/test/com/sun/jdi/sde/MangleStepTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/sde/MangleStepTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -10,11 +10,11 @@
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter InstallSDE
  *  @run compile MangleStepTest.java
  *  @run compile -g  onion/pickle/Mangle.java
- *  @run main/othervm MangleStepTest unset
- *  @run main/othervm MangleStepTest Java
- *  @run main/othervm MangleStepTest XYZ
- *  @run main/othervm MangleStepTest Rats
- *  @run main/othervm MangleStepTest bogus
+ *  @run driver MangleStepTest unset
+ *  @run driver MangleStepTest Java
+ *  @run driver MangleStepTest XYZ
+ *  @run driver MangleStepTest Rats
+ *  @run driver MangleStepTest bogus
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
@@ -82,7 +82,6 @@
         }
         BreakpointEvent bpe = resumeTo(targetName, "main",
                                        "([Ljava/lang/String;)V");
-        waitForInput();
 
         ThreadReference thread = bpe.thread();
 
--- a/jdk/test/com/sun/jdi/sde/MangleTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/sde/MangleTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -10,7 +10,7 @@
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter InstallSDE
  *  @run compile MangleTest.java
  *  @run compile -g onion/pickle/Mangle.java
- *  @run main MangleTest
+ *  @run driver MangleTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/sde/SourceDebugExtensionTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/sde/SourceDebugExtensionTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -10,7 +10,7 @@
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter InstallSDE
  *  @run compile SourceDebugExtensionTest.java
  *  @run compile -g SourceDebugExtensionTarg.java
- *  @run main SourceDebugExtensionTest
+ *  @run driver SourceDebugExtensionTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/jdi/sde/TemperatureTableTest.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/jdi/sde/TemperatureTableTest.java	Wed Jun 18 10:55:17 2014 -0700
@@ -10,7 +10,7 @@
  *  @run build TestScaffold VMConnection TargetListener TargetAdapter InstallSDE HelloWorld
  *  @run compile TemperatureTableTest.java
  *  @run compile -g TemperatureTableServlet.java
- *  @run main TemperatureTableTest
+ *  @run driver TemperatureTableTest
  */
 import com.sun.jdi.*;
 import com.sun.jdi.event.*;
--- a/jdk/test/com/sun/tools/attach/StartManagementAgent.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/com/sun/tools/attach/StartManagementAgent.java	Wed Jun 18 10:55:17 2014 -0700
@@ -93,7 +93,7 @@
         } catch(AttachOperationFailedException ex) {
             // We expect parsing of "apa" above to fail, but if the file path
             // can't be read we get a different exception message
-            if (!ex.getMessage().contains("java.lang.NumberFormatException")) {
+            if (!ex.getMessage().contains("Invalid com.sun.management.jmxremote.port number")) {
                 throw ex;
             }
         }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/lang/invoke/VMAnonymousClass.java	Wed Jun 18 10:55:17 2014 -0700
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* @test
+ * @bug 8046903
+ * @summary VM anonymous class members can't be statically invocable
+ * @run junit test.java.lang.invoke.VMAnonymousClass
+ */
+package test.java.lang.invoke;
+
+import java.lang.invoke.MethodHandle;
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.MethodType;
+import java.lang.reflect.Field;
+import org.junit.Test;
+import sun.misc.Unsafe;
+import jdk.internal.org.objectweb.asm.*;
+import static jdk.internal.org.objectweb.asm.Opcodes.*;
+
+public class VMAnonymousClass {
+    public static void main(String[] args) throws Throwable {
+        VMAnonymousClass test = new VMAnonymousClass();
+        test.testJavaLang();
+        test.testJavaUtil();
+        test.testSunMisc();
+        test.testJavaLangInvoke();
+        System.out.println("TEST PASSED");
+    }
+
+    // Test VM anonymous classes from different packages
+    // (see j.l.i.InvokerBytecodeGenerator::isStaticallyInvocable).
+    @Test public void testJavaLang()       throws Throwable { test("java/lang");        }
+    @Test public void testJavaUtil()       throws Throwable { test("java/util");        }
+    @Test public void testSunMisc()        throws Throwable { test("sun/misc");         }
+    @Test public void testJavaLangInvoke() throws Throwable { test("java/lang/invoke"); }
+
+    private static Unsafe unsafe = getUnsafe();
+
+    private static void test(String pkg) throws Throwable {
+        byte[] bytes = dumpClass(pkg);
+        // Define VM anonymous class in privileged context (on BCP).
+        Class anonClass = unsafe.defineAnonymousClass(Object.class, bytes, null);
+
+        MethodType t = MethodType.methodType(Object.class, int.class);
+        MethodHandle target = MethodHandles.lookup().findStatic(anonClass, "get", t);
+
+        // Wrap target into LF (convert) to get "target" referenced from LF
+        MethodHandle wrappedMH = target.asType(MethodType.methodType(Object.class, Integer.class));
+
+        // Invoke enough times to provoke LF compilation to bytecode.
+        for (int i = 0; i<100; i++) {
+            Object r = wrappedMH.invokeExact((Integer)1);
+        }
+    }
+
+    /*
+     * Constructs bytecode for the following class:
+     * public class pkg.MyClass {
+     *     MyClass() {}
+     *     public Object get(int i) { return null; }
+     * }
+     */
+    public static byte[] dumpClass(String pkg) {
+        ClassWriter cw = new ClassWriter(0);
+        MethodVisitor mv;
+
+        cw.visit(52, ACC_SUPER | ACC_PUBLIC, pkg+"/MyClass", null, "java/lang/Object", null);
+        {
+            mv = cw.visitMethod(0, "<init>", "()V", null, null);
+            mv.visitCode();
+            mv.visitVarInsn(ALOAD, 0);
+            mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
+            mv.visitInsn(RETURN);
+            mv.visitMaxs(1, 1);
+            mv.visitEnd();
+        }
+        {
+            mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "get", "(I)Ljava/lang/Object;", null, null);
+            mv.visitCode();
+            mv.visitInsn(ACONST_NULL);
+            mv.visitInsn(ARETURN);
+            mv.visitMaxs(1, 1);
+            mv.visitEnd();
+        }
+        cw.visitEnd();
+        return cw.toByteArray();
+    }
+
+    private static synchronized Unsafe getUnsafe() {
+        try {
+            Field f = Unsafe.class.getDeclaredField("theUnsafe");
+            f.setAccessible(true);
+            return (Unsafe) f.get(null);
+        } catch (NoSuchFieldException | IllegalAccessException e) {
+            throw new RuntimeException("Unable to get Unsafe instance.", e);
+        }
+    }
+}
--- a/jdk/test/java/time/tck/java/time/format/TCKDateTimeParseResolver.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/java/time/tck/java/time/format/TCKDateTimeParseResolver.java	Wed Jun 18 10:55:17 2014 -0700
@@ -76,6 +76,7 @@
 import static java.time.temporal.ChronoField.ERA;
 import static java.time.temporal.ChronoField.HOUR_OF_AMPM;
 import static java.time.temporal.ChronoField.HOUR_OF_DAY;
+import static java.time.temporal.ChronoField.INSTANT_SECONDS;
 import static java.time.temporal.ChronoField.MICRO_OF_DAY;
 import static java.time.temporal.ChronoField.MICRO_OF_SECOND;
 import static java.time.temporal.ChronoField.MILLI_OF_DAY;
@@ -93,11 +94,13 @@
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.fail;
 
+import java.time.Instant;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.Period;
 import java.time.ZoneId;
+import java.time.ZoneOffset;
 import java.time.ZonedDateTime;
 import java.time.chrono.ChronoLocalDate;
 import java.time.chrono.ChronoLocalDateTime;
@@ -1159,4 +1162,102 @@
         }
     };
 
+    //-------------------------------------------------------------------------
+    // SPEC: ChronoField.INSTANT_SECONDS
+    @Test
+    public void test_parse_fromField_InstantSeconds() {
+        DateTimeFormatter fmt = new DateTimeFormatterBuilder()
+            .appendValue(INSTANT_SECONDS).toFormatter();
+        TemporalAccessor acc = fmt.parse("86402");
+        Instant expected = Instant.ofEpochSecond(86402);
+        assertEquals(acc.isSupported(INSTANT_SECONDS), true);
+        assertEquals(acc.isSupported(NANO_OF_SECOND), true);
+        assertEquals(acc.isSupported(MICRO_OF_SECOND), true);
+        assertEquals(acc.isSupported(MILLI_OF_SECOND), true);
+        assertEquals(acc.getLong(INSTANT_SECONDS), 86402L);
+        assertEquals(acc.getLong(NANO_OF_SECOND), 0L);
+        assertEquals(acc.getLong(MICRO_OF_SECOND), 0L);
+        assertEquals(acc.getLong(MILLI_OF_SECOND), 0L);
+        assertEquals(Instant.from(acc), expected);
+    }
+
+    @Test
+    public void test_parse_fromField_InstantSeconds_NanoOfSecond() {
+        DateTimeFormatter fmt = new DateTimeFormatterBuilder()
+            .appendValue(INSTANT_SECONDS).appendLiteral('.').appendValue(NANO_OF_SECOND).toFormatter();
+        TemporalAccessor acc = fmt.parse("86402.123456789");
+        Instant expected = Instant.ofEpochSecond(86402, 123456789);
+        assertEquals(acc.isSupported(INSTANT_SECONDS), true);
+        assertEquals(acc.isSupported(NANO_OF_SECOND), true);
+        assertEquals(acc.isSupported(MICRO_OF_SECOND), true);
+        assertEquals(acc.isSupported(MILLI_OF_SECOND), true);
+        assertEquals(acc.getLong(INSTANT_SECONDS), 86402L);
+        assertEquals(acc.getLong(NANO_OF_SECOND), 123456789L);
+        assertEquals(acc.getLong(MICRO_OF_SECOND), 123456L);
+        assertEquals(acc.getLong(MILLI_OF_SECOND), 123L);
+        assertEquals(Instant.from(acc), expected);
+    }
+
+    // SPEC: ChronoField.SECOND_OF_DAY
+    @Test
+    public void test_parse_fromField_SecondOfDay() {
+        DateTimeFormatter fmt = new DateTimeFormatterBuilder()
+            .appendValue(SECOND_OF_DAY).toFormatter();
+        TemporalAccessor acc = fmt.parse("864");
+        assertEquals(acc.isSupported(SECOND_OF_DAY), true);
+        assertEquals(acc.isSupported(NANO_OF_SECOND), true);
+        assertEquals(acc.isSupported(MICRO_OF_SECOND), true);
+        assertEquals(acc.isSupported(MILLI_OF_SECOND), true);
+        assertEquals(acc.getLong(SECOND_OF_DAY), 864L);
+        assertEquals(acc.getLong(NANO_OF_SECOND), 0L);
+        assertEquals(acc.getLong(MICRO_OF_SECOND), 0L);
+        assertEquals(acc.getLong(MILLI_OF_SECOND), 0L);
+    }
+
+    @Test
+    public void test_parse_fromField_SecondOfDay_NanoOfSecond() {
+        DateTimeFormatter fmt = new DateTimeFormatterBuilder()
+            .appendValue(SECOND_OF_DAY).appendLiteral('.').appendValue(NANO_OF_SECOND).toFormatter();
+        TemporalAccessor acc = fmt.parse("864.123456789");
+        assertEquals(acc.isSupported(SECOND_OF_DAY), true);
+        assertEquals(acc.isSupported(NANO_OF_SECOND), true);
+        assertEquals(acc.isSupported(MICRO_OF_SECOND), true);
+        assertEquals(acc.isSupported(MILLI_OF_SECOND), true);
+        assertEquals(acc.getLong(SECOND_OF_DAY), 864L);
+        assertEquals(acc.getLong(NANO_OF_SECOND), 123456789L);
+        assertEquals(acc.getLong(MICRO_OF_SECOND), 123456L);
+        assertEquals(acc.getLong(MILLI_OF_SECOND), 123L);
+    }
+
+    // SPEC: ChronoField.SECOND_OF_MINUTE
+    @Test
+    public void test_parse_fromField_SecondOfMinute() {
+        DateTimeFormatter fmt = new DateTimeFormatterBuilder()
+            .appendValue(SECOND_OF_MINUTE).toFormatter();
+        TemporalAccessor acc = fmt.parse("32");
+        assertEquals(acc.isSupported(SECOND_OF_MINUTE), true);
+        assertEquals(acc.isSupported(NANO_OF_SECOND), true);
+        assertEquals(acc.isSupported(MICRO_OF_SECOND), true);
+        assertEquals(acc.isSupported(MILLI_OF_SECOND), true);
+        assertEquals(acc.getLong(SECOND_OF_MINUTE), 32L);
+        assertEquals(acc.getLong(NANO_OF_SECOND), 0L);
+        assertEquals(acc.getLong(MICRO_OF_SECOND), 0L);
+        assertEquals(acc.getLong(MILLI_OF_SECOND), 0L);
+    }
+
+    @Test
+    public void test_parse_fromField_SecondOfMinute_NanoOfSecond() {
+        DateTimeFormatter fmt = new DateTimeFormatterBuilder()
+            .appendValue(SECOND_OF_MINUTE).appendLiteral('.').appendValue(NANO_OF_SECOND).toFormatter();
+        TemporalAccessor acc = fmt.parse("32.123456789");
+        assertEquals(acc.isSupported(SECOND_OF_MINUTE), true);
+        assertEquals(acc.isSupported(NANO_OF_SECOND), true);
+        assertEquals(acc.isSupported(MICRO_OF_SECOND), true);
+        assertEquals(acc.isSupported(MILLI_OF_SECOND), true);
+        assertEquals(acc.getLong(SECOND_OF_MINUTE), 32L);
+        assertEquals(acc.getLong(NANO_OF_SECOND), 123456789L);
+        assertEquals(acc.getLong(MICRO_OF_SECOND), 123456L);
+        assertEquals(acc.getLong(MILLI_OF_SECOND), 123L);
+    }
+
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/time/test/java/time/format/TestDateTimeParsing.java	Wed Jun 18 10:55:17 2014 -0700
@@ -0,0 +1,204 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file:
+ *
+ * Copyright (c) 2014, Stephen Colebourne & Michael Nascimento Santos
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ *  * Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ *
+ *  * Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ *
+ *  * Neither the name of JSR-310 nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package test.java.time.format;
+
+import static java.time.temporal.ChronoField.EPOCH_DAY;
+import static java.time.temporal.ChronoField.INSTANT_SECONDS;
+import static java.time.temporal.ChronoField.MICRO_OF_SECOND;
+import static java.time.temporal.ChronoField.MILLI_OF_SECOND;
+import static java.time.temporal.ChronoField.NANO_OF_SECOND;
+import static java.time.temporal.ChronoField.OFFSET_SECONDS;
+import static java.time.temporal.ChronoField.SECOND_OF_DAY;
+import static org.testng.Assert.assertEquals;
+
+import java.time.DateTimeException;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeFormatterBuilder;
+import java.time.temporal.TemporalAccessor;
+
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+/**
+ * Test parsing of edge cases.
+ */
+@Test
+public class TestDateTimeParsing {
+
+    private static final ZoneId PARIS = ZoneId.of("Europe/Paris");
+    private static final ZoneOffset OFFSET_0230 = ZoneOffset.ofHoursMinutes(2, 30);
+
+    private static final DateTimeFormatter LOCALFIELDS = new DateTimeFormatterBuilder()
+        .appendPattern("yyyy-MM-dd HH:mm:ss").toFormatter();
+    private static final DateTimeFormatter LOCALFIELDS_ZONEID = new DateTimeFormatterBuilder()
+        .appendPattern("yyyy-MM-dd HH:mm:ss ").appendZoneId().toFormatter();
+    private static final DateTimeFormatter LOCALFIELDS_OFFSETID = new DateTimeFormatterBuilder()
+        .appendPattern("yyyy-MM-dd HH:mm:ss ").appendOffsetId().toFormatter();
+    private static final DateTimeFormatter LOCALFIELDS_WITH_PARIS = LOCALFIELDS.withZone(PARIS);
+    private static final DateTimeFormatter LOCALFIELDS_WITH_0230 = LOCALFIELDS.withZone(OFFSET_0230);
+    private static final DateTimeFormatter INSTANT = new DateTimeFormatterBuilder()
+        .appendInstant().toFormatter();
+    private static final DateTimeFormatter INSTANT_WITH_PARIS = INSTANT.withZone(PARIS);
+    private static final DateTimeFormatter INSTANT_WITH_0230 = INSTANT.withZone(OFFSET_0230);
+    private static final DateTimeFormatter INSTANT_OFFSETID = new DateTimeFormatterBuilder()
+        .appendInstant().appendLiteral(' ').appendOffsetId().toFormatter();
+    private static final DateTimeFormatter INSTANT_OFFSETSECONDS = new DateTimeFormatterBuilder()
+        .appendInstant().appendLiteral(' ').appendValue(OFFSET_SECONDS).toFormatter();
+    private static final DateTimeFormatter INSTANTSECONDS = new DateTimeFormatterBuilder()
+        .appendValue(INSTANT_SECONDS).toFormatter();
+    private static final DateTimeFormatter INSTANTSECONDS_WITH_PARIS = INSTANTSECONDS.withZone(PARIS);
+    private static final DateTimeFormatter INSTANTSECONDS_NOS = new DateTimeFormatterBuilder()
+        .appendValue(INSTANT_SECONDS).appendLiteral('.').appendValue(NANO_OF_SECOND).toFormatter();
+    private static final DateTimeFormatter INSTANTSECONDS_NOS_WITH_PARIS = INSTANTSECONDS_NOS.withZone(PARIS);
+    private static final DateTimeFormatter INSTANTSECONDS_OFFSETSECONDS = new DateTimeFormatterBuilder()
+        .appendValue(INSTANT_SECONDS).appendLiteral(' ').appendValue(OFFSET_SECONDS).toFormatter();
+
+    @DataProvider(name = "instantZones")
+    Object[][] data_instantZones() {
+        return new Object[][] {
+            {LOCALFIELDS_ZONEID, "2014-06-30 01:02:03 Europe/Paris", ZonedDateTime.of(2014, 6, 30, 1, 2, 3, 0, PARIS)},
+            {LOCALFIELDS_ZONEID, "2014-06-30 01:02:03 +02:30", ZonedDateTime.of(2014, 6, 30, 1, 2, 3, 0, OFFSET_0230)},
+            {LOCALFIELDS_OFFSETID, "2014-06-30 01:02:03 +02:30", ZonedDateTime.of(2014, 6, 30, 1, 2, 3, 0, OFFSET_0230)},
+            {LOCALFIELDS_WITH_PARIS, "2014-06-30 01:02:03", ZonedDateTime.of(2014, 6, 30, 1, 2, 3, 0, PARIS)},
+            {LOCALFIELDS_WITH_0230, "2014-06-30 01:02:03", ZonedDateTime.of(2014, 6, 30, 1, 2, 3, 0, OFFSET_0230)},
+            {INSTANT_WITH_PARIS, "2014-06-30T01:02:03Z", ZonedDateTime.of(2014, 6, 30, 1, 2, 3, 0, ZoneOffset.UTC).withZoneSameInstant(PARIS)},
+            {INSTANT_WITH_0230, "2014-06-30T01:02:03Z", ZonedDateTime.of(2014, 6, 30, 1, 2, 3, 0, ZoneOffset.UTC).withZoneSameInstant(OFFSET_0230)},
+            {INSTANT_OFFSETID, "2014-06-30T01:02:03Z +02:30", ZonedDateTime.of(2014, 6, 30, 1, 2, 3, 0, ZoneOffset.UTC).withZoneSameInstant(OFFSET_0230)},
+            {INSTANT_OFFSETSECONDS, "2014-06-30T01:02:03Z 9000", ZonedDateTime.of(2014, 6, 30, 1, 2, 3, 0, ZoneOffset.UTC).withZoneSameInstant(OFFSET_0230)},
+            {INSTANTSECONDS_WITH_PARIS, "86402", Instant.ofEpochSecond(86402).atZone(PARIS)},
+            {INSTANTSECONDS_NOS_WITH_PARIS, "86402.123456789", Instant.ofEpochSecond(86402, 123456789).atZone(PARIS)},
+            {INSTANTSECONDS_OFFSETSECONDS, "86402 9000", Instant.ofEpochSecond(86402).atZone(OFFSET_0230)},
+        };
+    }
+
+    @Test(dataProvider = "instantZones")
+    public void test_parse_instantZones_ZDT(DateTimeFormatter formatter, String text, ZonedDateTime expected) {
+        TemporalAccessor actual = formatter.parse(text);
+        assertEquals(ZonedDateTime.from(actual), expected);
+    }
+
+    @Test(dataProvider = "instantZones")
+    public void test_parse_instantZones_LDT(DateTimeFormatter formatter, String text, ZonedDateTime expected) {
+        TemporalAccessor actual = formatter.parse(text);
+        assertEquals(LocalDateTime.from(actual), expected.toLocalDateTime());
+    }
+
+    @Test(dataProvider = "instantZones")
+    public void test_parse_instantZones_Instant(DateTimeFormatter formatter, String text, ZonedDateTime expected) {
+        TemporalAccessor actual = formatter.parse(text);
+        assertEquals(Instant.from(actual), expected.toInstant());
+    }
+
+    @Test(dataProvider = "instantZones")
+    public void test_parse_instantZones_supported(DateTimeFormatter formatter, String text, ZonedDateTime expected) {
+        TemporalAccessor actual = formatter.parse(text);
+        assertEquals(actual.isSupported(INSTANT_SECONDS), true);
+        assertEquals(actual.isSupported(EPOCH_DAY), true);
+        assertEquals(actual.isSupported(SECOND_OF_DAY), true);
+        assertEquals(actual.isSupported(NANO_OF_SECOND), true);
+        assertEquals(actual.isSupported(MICRO_OF_SECOND), true);
+        assertEquals(actual.isSupported(MILLI_OF_SECOND), true);
+    }
+
+    //-----------------------------------------------------------------------
+    @DataProvider(name = "instantNoZone")
+    Object[][] data_instantNoZone() {
+        return new Object[][] {
+            {INSTANT, "2014-06-30T01:02:03Z", ZonedDateTime.of(2014, 6, 30, 1, 2, 3, 0, ZoneOffset.UTC).toInstant()},
+            {INSTANTSECONDS, "86402", Instant.ofEpochSecond(86402)},
+            {INSTANTSECONDS_NOS, "86402.123456789", Instant.ofEpochSecond(86402, 123456789)},
+        };
+    }
+
+    @Test(dataProvider = "instantNoZone", expectedExceptions = DateTimeException.class)
+    public void test_parse_instantNoZone_ZDT(DateTimeFormatter formatter, String text, Instant expected) {
+        TemporalAccessor actual = formatter.parse(text);
+        ZonedDateTime.from(actual);
+    }
+
+    @Test(dataProvider = "instantNoZone", expectedExceptions = DateTimeException.class)
+    public void test_parse_instantNoZone_LDT(DateTimeFormatter formatter, String text, Instant expected) {
+        TemporalAccessor actual = formatter.parse(text);
+        LocalDateTime.from(actual);
+    }
+
+    @Test(dataProvider = "instantNoZone")
+    public void test_parse_instantNoZone_Instant(DateTimeFormatter formatter, String text, Instant expected) {
+        TemporalAccessor actual = formatter.parse(text);
+        assertEquals(Instant.from(actual), expected);
+    }
+
+    @Test(dataProvider = "instantNoZone")
+    public void test_parse_instantNoZone_supported(DateTimeFormatter formatter, String text, Instant expected) {
+        TemporalAccessor actual = formatter.parse(text);
+        assertEquals(actual.isSupported(INSTANT_SECONDS), true);
+        assertEquals(actual.isSupported(EPOCH_DAY), false);
+        assertEquals(actual.isSupported(SECOND_OF_DAY), false);
+        assertEquals(actual.isSupported(NANO_OF_SECOND), true);
+        assertEquals(actual.isSupported(MICRO_OF_SECOND), true);
+        assertEquals(actual.isSupported(MILLI_OF_SECOND), true);
+    }
+
+}
--- a/jdk/test/jdk/net/Sockets/Test.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/jdk/net/Sockets/Test.java	Wed Jun 18 10:55:17 2014 -0700
@@ -30,8 +30,10 @@
  */
 
 import java.net.*;
+import java.io.IOException;
 import java.nio.channels.*;
 import java.util.concurrent.*;
+import java.util.Set;
 import jdk.net.*;
 
 public class Test {
@@ -75,6 +77,13 @@
         DatagramSocket dg = new DatagramSocket(0);
         final int udp_port = dg.getLocalPort();
 
+        // If option not available, end test
+        Set<SocketOption<?>> options = dg.supportedOptions();
+        if (!options.contains(ExtendedSocketOptions.SO_FLOW_SLA)) {
+            System.out.println("SO_FLOW_SLA not supported");
+            return;
+        }
+
         final Socket s = new Socket("127.0.0.1", tcp_port);
         final SocketChannel sc = SocketChannel.open();
         sc.connect (new InetSocketAddress("127.0.0.1", tcp_port));
@@ -125,6 +134,13 @@
             if (success) {
                 throw new RuntimeException("Test failed");
             }
-        } catch (UnsupportedOperationException e) {}
+        } catch (UnsupportedOperationException e) {
+            System.out.println (e);
+        } catch (IOException e) {
+            // Probably a permission error, but we're not
+            // going to check unless a specific permission exception
+            // is defined.
+            System.out.println (e);
+        }
     }
 }
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/freebl3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/freebl3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libnspr4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libnspr4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libplc4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libplc4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libplds4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libplds4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nss3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nss3.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nssckbi.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nssdbm3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nssdbm3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nssutil3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nssutil3.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/softokn3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/softokn3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/sqlite3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/ssl3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/ssl3.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/freebl3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/freebl3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libnspr4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libnspr4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplc4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplc4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplds4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplds4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nss3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nss3.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nssckbi.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nssdbm3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nssdbm3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nssutil3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nssutil3.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/softokn3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/softokn3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/sqlite3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/ssl3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/ssl3.lib has changed
--- a/jdk/test/sun/security/pkcs11/nss/src/MD5SUMS	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-1390c8a35c667e05e542  nss-3.13.1.tar.gz
--- a/jdk/test/sun/security/pkcs11/nss/src/SHA1SUMS	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-d8e7ee9f9f1e0bfa2ea8b72d25727634fea130a6  nss-3.13.1.tar.gz
Binary file jdk/test/sun/security/pkcs11/nss/src/nss-3.13.1.tar.gz has changed
Binary file jdk/test/sun/security/pkcs11/nss/src/nss-3.16_nspr-4.10_src.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/pkcs11/nss/src/nss-3.16_nspr-4.10_src.tar.gz.sha256	Wed Jun 18 10:55:17 2014 -0700
@@ -0,0 +1,1 @@
+d2374795528f9cf36de07bf7c77d8c8414bb5b4da12ee7c78a57ec90d68e3706  nss-3.16_nspr-4.10_src.tar.gz
--- a/jdk/test/sun/tools/jhat/HatHeapDump1Test.java	Wed Jul 05 19:45:37 2017 +0200
+++ b/jdk/test/sun/tools/jhat/HatHeapDump1Test.java	Wed Jun 18 10:55:17 2014 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, 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,31 +21,68 @@
  * questions.
  */
 
+import java.io.File;
+import java.util.Arrays;
 
-/* @test HatHeapDump1Test.java
+import jdk.testlibrary.Asserts;
+import jdk.testlibrary.JDKToolLauncher;
+import jdk.testlibrary.OutputAnalyzer;
+import jdk.testlibrary.ProcessTools;
+
+/* @test
  * @bug 5102009
- * @summary Test jhat
- *
- * @compile -g HelloWorld.java HatRun.java
- * @build HatHeapDump1Test
- * @run main HatHeapDump1Test HelloWorld
+ * @summary Sanity test of jhat functionality
+ * @library /lib/testlibrary
+ * @build jdk.testlibarary.*
+ * @compile -g HelloWorld.java
+ * @run main HatHeapDump1Test
  */
+public class HatHeapDump1Test {
 
-public class HatHeapDump1Test {
+    private static final String TEST_CLASSES = System.getProperty("test.classes", ".");
 
     public static void main(String args[]) throws Exception {
-        HatRun run;
+        String className = "HelloWorld";
+        File dumpFile = new File(className + ".hdump");
+
+        // Generate a heap dump
+        ProcessBuilder processBuilder = ProcessTools.createJavaProcessBuilder("-cp",
+                TEST_CLASSES,
+                "-Xcheck:jni",
+                "-Xverify:all",
+                "-agentlib:hprof=heap=dump,format=b,file=" + dumpFile.getAbsolutePath(),
+                className);
+        OutputAnalyzer output = new OutputAnalyzer(processBuilder.start());
+        System.out.println(output.getOutput());
+        output.shouldHaveExitValue(0);
+        output.shouldContain("Dumping Java heap ... done");
+        Asserts.assertTrue(dumpFile.exists() && dumpFile.isFile(), "Invalid dump file " + dumpFile.getAbsolutePath());
 
-        /* Run hprof and jhat */
-        run = new HatRun("heap=dump", "");
-        run.runit(args[0]);
+        // Run jhat to analyze the heap dump
+        output = jhat("-debug", "2", dumpFile.getAbsolutePath());
+        output.shouldHaveExitValue(0);
+        output.shouldContain("Snapshot resolved");
+        output.shouldContain("-debug 2 was used");
+        output.shouldNotContain("ERROR");
 
-        /* Make sure patterns in output look ok */
-        if (run.output_contains("ERROR")) {
-            throw new RuntimeException("Test failed - ERROR seen in output");
+        dumpFile.delete();
+    }
+
+    private static OutputAnalyzer jhat(String... toolArgs) throws Exception {
+        JDKToolLauncher launcher = JDKToolLauncher.createUsingTestJDK("jhat");
+        if (toolArgs != null) {
+            for (String toolArg : toolArgs) {
+                launcher.addToolArg(toolArg);
+            }
         }
 
-        /* Must be a pass. */
-        System.out.println("Test passed - cleanly terminated");
+        ProcessBuilder processBuilder = new ProcessBuilder();
+        processBuilder.command(launcher.getCommand());
+        System.out.println(Arrays.toString(processBuilder.command().toArray()).replace(",", ""));
+        OutputAnalyzer output = new OutputAnalyzer(processBuilder.start());
+        System.out.println(output.getOutput());
+
+        return output;
     }
+
 }
--- a/jdk/test/sun/tools/jhat/HatRun.java	Wed Jul 05 19:45:37 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,226 +0,0 @@
-/*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-
-/*
- *
- * Support classes for running jhat tests
- *
- */
-
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.File;
-import java.io.BufferedInputStream;
-import java.io.PrintStream;
-
-/*
- * Helper class to direct process output to a StringBuffer
- */
-class MyInputStream implements Runnable {
-    private String              name;
-    private BufferedInputStream in;
-    private StringBuffer        buffer;
-
-    /* Create MyInputStream that saves all output to a StringBuffer */
-    MyInputStream(String name, InputStream in) {
-        this.name = name;
-        this.in = new BufferedInputStream(in);
-        buffer = new StringBuffer(4096);
-        Thread thr = new Thread(this);
-        thr.setDaemon(true);
-        thr.start();
-    }
-
-    /* Dump the buffer */
-    void dump(PrintStream x) {
-        String str = buffer.toString();
-        x.println("<beginning of " + name + " buffer>");
-        x.println(str);
-        x.println("<end of buffer>");
-    }
-
-    /* Check to see if a pattern is inside the output. */
-    boolean contains(String pattern) {
-        String str = buffer.toString();
-        return str.contains(pattern);
-    }
-
-    /* Runs as a separate thread capturing all output in a StringBuffer */
-    public void run() {
-        try {
-            byte b[] = new byte[100];
-            for (;;) {
-                int n = in.read(b);
-                String str;
-                if (n < 0) {
-                    break;
-                }
-                str = new String(b, 0, n);
-                buffer.append(str);
-                System.out.print(str);
-            }
-        } catch (IOException ioe) { /* skip */ }
-    }
-}
-
-/*
- * Main jhat run
- */
-public class HatRun {
-
-    private String        all_hprof_options;
-    private String        all_hat_options;
-    private String        dumpfile;
-    private MyInputStream output;
-    private MyInputStream error;
-
-    /* Create a Hat run process */
-    public HatRun(String hprof_options, String hat_options)
-    {
-        all_hprof_options = hprof_options;
-        all_hat_options   = hat_options;
-    }
-
-    /*
-     * Execute a process with an -agentpath or -agentlib command option
-     */
-    public void runit(String class_name)
-    {
-        runit(class_name, null);
-    }
-
-    /*
-     * Execute a command.
-     */
-    private void execute(String cmd[])
-    {
-        /* Begin process */
-        Process p;
-        String cmdLine = "";
-        int i;
-
-        for ( i = 0 ; i < cmd.length; i++ ) {
-          cmdLine += cmd[i];
-          cmdLine += " ";
-        }
-        System.out.println("Starting: " + cmdLine);
-
-        try {
-            p = Runtime.getRuntime().exec(cmd);
-        } catch ( IOException e ) {
-            throw new RuntimeException("Test failed - exec got IO exception");
-        }
-
-        /* Save process output in StringBuffers */
-        output = new MyInputStream("Input Stream", p.getInputStream());
-        error  = new MyInputStream("Error Stream", p.getErrorStream());
-
-        /* Wait for process to complete, and if exit code is non-zero we fail */
-        try {
-            int exitStatus;
-            exitStatus = p.waitFor();
-            if ( exitStatus != 0) {
-                System.out.println("Exit code is " + exitStatus);
-                error.dump(System.out);
-                output.dump(System.out);
-                throw new RuntimeException("Test failed - " +
-                                    "exit return code non-zero " +
-                                    "(exitStatus==" + exitStatus + ")");
-            }
-        } catch ( InterruptedException e ) {
-            throw new RuntimeException("Test failed - process interrupted");
-        }
-        System.out.println("Completed: " + cmdLine);
-    }
-
-    /*
-     * Execute a process with an -agentpath or -agentlib command option
-     *    plus any set of other java options.
-     */
-    public void runit(String class_name, String vm_options[])
-    {
-        String jre_home  = System.getProperty("java.home");
-        String sdk_home  = (jre_home.endsWith("jre") ?
-                            (jre_home + File.separator + "..") :
-                            jre_home );
-        String cdir      = System.getProperty("test.classes", ".");
-        String os_arch   = System.getProperty("os.arch");
-        String os_name   = System.getProperty("os.name");
-        String java      = jre_home
-                             + File.separator + "bin"
-                             + File.separator + "java";
-        String jhat      = sdk_home + File.separator + "bin"
-                           + File.separator + "jhat";
-        /* Array of strings to be passed in for exec:
-         *   1. java
-         *   2. -Dtest.classes=.
-         *   3. -Xcheck:jni          (Just because it finds bugs)
-         *   4. -Xverify:all         (Make sure verification is on full blast)
-         *   5. -agent
-         *       vm_options
-         *   6+i. classname
-         */
-        int nvm_options = 0;
-        if ( vm_options != null ) nvm_options = vm_options.length;
-        String cmd[]     = new String[1 + 7 + nvm_options];
-        int i,j;
-
-        i = 0;
-        cmd[i++] = java;
-        cmd[i++] = "-cp";
-        cmd[i++] = cdir;
-        cmd[i++] = "-Dtest.classes=" + cdir;
-        cmd[i++] = "-Xcheck:jni";
-        cmd[i++] = "-Xverify:all";
-        dumpfile= cdir + File.separator + class_name + ".hdump";
-        cmd[i++] = "-agentlib:hprof=" + all_hprof_options
-                    + ",format=b,file=" + dumpfile;
-        /* Add any special VM options */
-        for ( j = 0; j < nvm_options; j++ ) {
-            cmd[i++] = vm_options[j];
-        }
-        /* Add classname */
-        cmd[i++] = class_name;
-
-        /* Execute process */
-        execute(cmd);
-
-        /* Run jhat */
-        String jhat_cmd[] = new String[4];
-        jhat_cmd[0] = jhat;
-        jhat_cmd[1] = "-debug";
-        jhat_cmd[2] = "2";
-        jhat_cmd[3] = dumpfile;
-
-        /* Execute process */
-        execute(jhat_cmd);
-
-    }
-
-    /* Does the pattern appear in the output of this process */
-    public boolean output_contains(String pattern)
-    {
-        return output.contains(pattern) || error.contains(pattern);
-    }
-}