OpenJDK / portola / portola
changeset 32638:278a8361e6f9
Merge
author | iveresov |
---|---|
date | Mon, 07 Sep 2015 13:28:41 -0700 |
parents | ac873eaac862 341ac0627cc0 |
children | 3eb19d65717b |
files | jdk/src/java.base/unix/classes/sun/nio/fs/GnomeFileTypeDetector.java jdk/src/java.base/unix/native/libnio/fs/GnomeFileTypeDetector.c |
diffstat | 417 files changed, 4329 insertions(+), 1862 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Thu Sep 03 15:04:05 2015 -0700 +++ b/.hgtags Mon Sep 07 13:28:41 2015 -0700 @@ -321,3 +321,4 @@ eeea9adfd1e3d075ef82148c00a4847a1aab4d26 jdk9-b76 c25e882cee9622ec75c4e9d60633539a2f0a8809 jdk9-b77 c8753d0be1778944dc512ec86a459941ea1ad2c3 jdk9-b78 +3966bd3b8167419aa05c6718a4af1cf54b1e3c58 jdk9-b79
--- a/.hgtags-top-repo Thu Sep 03 15:04:05 2015 -0700 +++ b/.hgtags-top-repo Mon Sep 07 13:28:41 2015 -0700 @@ -321,3 +321,4 @@ d82072b699b880a1f647a5e2d7c0f86cec958941 jdk9-b76 7972dc8f2a47f0c4cd8f02fa5662af41f028aa14 jdk9-b77 8c40d4143ee13bdf8170c68cc384c36ab1e9fadb jdk9-b78 +ba08a9f79b9849716bae1f39f71333d47f604012 jdk9-b79
--- a/corba/.hgtags Thu Sep 03 15:04:05 2015 -0700 +++ b/corba/.hgtags Mon Sep 07 13:28:41 2015 -0700 @@ -321,3 +321,4 @@ d8126bc88fa5cd1ae4e44d86a4b1280ca1c9e2aa jdk9-b76 8bb2441c0fec8b28f7bf11a0ca3ec1642e7ef457 jdk9-b77 182bb7accc5253bcfefd8edc1d4997ec8f9f8694 jdk9-b78 +4ab250b8fac66ef8cd15ee78c40f0c651c96e16a jdk9-b79
--- a/hotspot/.hgtags Thu Sep 03 15:04:05 2015 -0700 +++ b/hotspot/.hgtags Mon Sep 07 13:28:41 2015 -0700 @@ -481,3 +481,4 @@ 0bc8d1656d6f2b1fdfe803c1305a108bb9939f35 jdk9-b76 e66c3813789debfc06f206afde1bf7a84cb08451 jdk9-b77 20dc06b04fe5ec373879414d60ef82ac70faef98 jdk9-b78 +e9e63d93bbfe2c6c23447e2c1f5cc71c98671cba jdk9-b79
--- a/jaxp/.hgtags Thu Sep 03 15:04:05 2015 -0700 +++ b/jaxp/.hgtags Mon Sep 07 13:28:41 2015 -0700 @@ -321,3 +321,4 @@ 36801a89a04201b59874ec776ffe85d6253c9ab5 jdk9-b76 be357705874c4ba1a69c38fb211e5e31e35bf9cb jdk9-b77 5b1899c9822db4a80a29cac82af492afea9f8f41 jdk9-b78 +cf809edc840ff7546677d38b13ebd8b3cae2bbda jdk9-b79
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/dom/MultiDOM.java Mon Sep 07 13:28:41 2015 -0700 @@ -1,15 +1,15 @@ /* - * reserved comment block - * DO NOT REMOVE OR ALTER! + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. */ + /* - * Copyright 2001-2004 The Apache Software Foundation. + * Copyright 2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,9 +17,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* - * $Id: MultiDOM.java,v 1.5 2005/09/28 13:48:36 pvedula Exp $ - */ package com.sun.org.apache.xalan.internal.xsltc.dom; @@ -35,6 +32,7 @@ import com.sun.org.apache.xml.internal.dtm.DTMManager; import com.sun.org.apache.xml.internal.dtm.ref.DTMAxisIteratorBase; import com.sun.org.apache.xml.internal.dtm.ref.DTMDefaultBase; +import com.sun.org.apache.xml.internal.dtm.ref.DTMAxisIterNodeList; import com.sun.org.apache.xml.internal.utils.SuballocatedIntVector; import org.w3c.dom.Node; @@ -569,7 +567,7 @@ public NodeList makeNodeList(DTMAxisIterator iter) { int index = iter.next(); if (index == DTM.NULL) { - return null; + return new DTMAxisIterNodeList(null, null); } iter.reset(); return _adapters[getDTMId(index)].makeNodeList(iter);
--- a/jaxws/.hgtags Thu Sep 03 15:04:05 2015 -0700 +++ b/jaxws/.hgtags Mon Sep 07 13:28:41 2015 -0700 @@ -324,3 +324,4 @@ 55bb88306dc57d07f2c854803465f6d9a7eb4aba jdk9-b76 bd6ece68cf8aca34c8d992569892060c82cfd3f1 jdk9-b77 ac1748bab0743137574be3451307b6a6361719eb jdk9-b78 +42ae657e0e104fa7877996b8095f2e3ab1596118 jdk9-b79
--- a/jdk/README Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/README Mon Sep 07 13:28:41 2015 -0700 @@ -25,5 +25,3 @@ 5. Construct the images: cd make && gnumake images The resulting JDK image should be found in build/*/j2sdk-image - -
--- a/jdk/make/lib/Awt2dLibraries.gmk Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/make/lib/Awt2dLibraries.gmk Mon Sep 07 13:28:41 2015 -0700 @@ -887,7 +887,8 @@ $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS), \ DISABLED_WARNINGS_gcc := sign-compare type-limits unused-result maybe-uninitialized, \ DISABLED_WARNINGS_clang := incompatible-pointer-types, \ - DISABLED_WARNINGS_solstudio := E_NEWLINE_NOT_LAST E_DECLARATION_IN_CODE, \ + DISABLED_WARNINGS_solstudio := E_NEWLINE_NOT_LAST E_DECLARATION_IN_CODE \ + E_STATEMENT_NOT_REACHED, \ DISABLED_WARNINGS_microsoft := 4018 4244 4267, \ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \ LDFLAGS := $(LDFLAGS_JDKLIB) \
--- a/jdk/make/lib/CoreLibraries.gmk Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/make/lib/CoreLibraries.gmk Mon Sep 07 13:28:41 2015 -0700 @@ -146,6 +146,7 @@ OPTIMIZATION := HIGH, \ CFLAGS := $(CFLAGS_JDKLIB) \ $(LIBJAVA_CFLAGS), \ + DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjava/mapfile-vers, \ LDFLAGS := $(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN), \ @@ -307,7 +308,9 @@ EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \ OPTIMIZATION := HIGH, \ CFLAGS := $(LIBJLI_CFLAGS), \ - DISABLED_WARNINGS_solstudio := E_ASM_DISABLES_OPTIMIZATION, \ + DISABLED_WARNINGS_solstudio := \ + E_ASM_DISABLES_OPTIMIZATION \ + E_STATEMENT_NOT_REACHED, \ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjli/mapfile-vers, \ LDFLAGS := $(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN), \
--- a/jdk/make/lib/NetworkingLibraries.gmk Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/make/lib/NetworkingLibraries.gmk Mon Sep 07 13:28:41 2015 -0700 @@ -35,6 +35,7 @@ DISABLED_WARNINGS_gcc := format-nonliteral, \ DISABLED_WARNINGS_clang := parentheses-equality constant-logical-operand, \ DISABLED_WARNINGS_microsoft := 4244 4047 4133 4996, \ + DISABLED_WARNINGS_solstudio := E_ARG_INCOMPATIBLE_WITH_ARG_L, \ MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnet/mapfile-vers, \ LDFLAGS := $(LDFLAGS_JDKLIB) \ $(call SET_SHARED_LIBRARY_ORIGIN), \
--- a/jdk/make/lib/NioLibraries.gmk Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/make/lib/NioLibraries.gmk Mon Sep 07 13:28:41 2015 -0700 @@ -47,7 +47,7 @@ ifeq ($(OPENJDK_TARGET_OS), macosx) BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) BUILD_LIBNIO_EXFILES += \ - GnomeFileTypeDetector.c \ + GioFileTypeDetector.c \ # endif
--- a/jdk/make/mapfiles/libnio/mapfile-linux Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/make/mapfiles/libnio/mapfile-linux Mon Sep 07 13:28:41 2015 -0700 @@ -135,8 +135,8 @@ Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_accept0; Java_sun_nio_ch_UnixAsynchronousServerSocketChannelImpl_initIDs; Java_sun_nio_ch_UnixAsynchronousSocketChannelImpl_checkConnect; - Java_sun_nio_fs_GnomeFileTypeDetector_initializeGio; - Java_sun_nio_fs_GnomeFileTypeDetector_probeGio; + Java_sun_nio_fs_GioFileTypeDetector_initializeGio; + Java_sun_nio_fs_GioFileTypeDetector_probeGio; Java_sun_nio_fs_MagicFileTypeDetector_initialize0; Java_sun_nio_fs_MagicFileTypeDetector_probe0; Java_sun_nio_fs_LinuxWatchService_eventSize;
--- a/jdk/make/mapfiles/libnio/mapfile-solaris Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/make/mapfiles/libnio/mapfile-solaris Mon Sep 07 13:28:41 2015 -0700 @@ -130,8 +130,8 @@ Java_sun_nio_ch_SolarisEventPort_port_1get; Java_sun_nio_ch_SolarisEventPort_port_1getn; Java_sun_nio_ch_SolarisEventPort_port_1send; - Java_sun_nio_fs_GnomeFileTypeDetector_initializeGio; - Java_sun_nio_fs_GnomeFileTypeDetector_probeGio; + Java_sun_nio_fs_GioFileTypeDetector_initializeGio; + Java_sun_nio_fs_GioFileTypeDetector_probeGio; Java_sun_nio_fs_UnixNativeDispatcher_init; Java_sun_nio_fs_UnixNativeDispatcher_getcwd; Java_sun_nio_fs_UnixNativeDispatcher_strerror;
--- a/jdk/make/netbeans/jdbc/build.properties Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/make/netbeans/jdbc/build.properties Mon Sep 07 13:28:41 2015 -0700 @@ -43,4 +43,4 @@ build.number = b00 jdbc.version = ${build.release}-${user.name}-${build.number} jdbc.args = -debug -javadoc.options=-J-Xmx256m -Xdoclint:none -keywords -quiet \ No newline at end of file +javadoc.options=-J-Xmx256m -Xdoclint:none -keywords -quiet
--- a/jdk/src/demo/share/applets/Fractal/example1.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/demo/share/applets/Fractal/example1.html Mon Sep 07 13:28:41 2015 -0700 @@ -23,5 +23,3 @@ <a href="CLSFractal.java">The source</a>. </body> </html> - -
--- a/jdk/src/demo/share/applets/MoleculeViewer/example1.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/demo/share/applets/MoleculeViewer/example1.html Mon Sep 07 13:28:41 2015 -0700 @@ -14,9 +14,3 @@ <a href="XYZApp.java">The source</a>. </body> </html> - - - - - -
--- a/jdk/src/java.base/linux/classes/sun/nio/fs/LinuxFileSystemProvider.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.base/linux/classes/sun/nio/fs/LinuxFileSystemProvider.java Mon Sep 07 13:28:41 2015 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -106,7 +106,7 @@ new GetPropertyAction("user.home")), ".mime.types"); Path etcMimeTypes = Paths.get("/etc/mime.types"); - return chain(new GnomeFileTypeDetector(), + return chain(new GioFileTypeDetector(), new MimeTypesFileTypeDetector(userMimeTypes), new MimeTypesFileTypeDetector(etcMimeTypes), new MagicFileTypeDetector());
--- a/jdk/src/java.base/share/classes/java/security/KeyStore.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.base/share/classes/java/security/KeyStore.java Mon Sep 07 13:28:41 2015 -0700 @@ -1611,8 +1611,13 @@ * First the keystore type is determined by probing the specified file. * Then a keystore object is instantiated and loaded using the data from * that file. - * A password may be supplied to unlock the keystore data or perform an - * integrity check. + * + * <p> + * A password may be given to unlock the keystore + * (e.g. the keystore resides on a hardware token device), + * or to check the integrity of the keystore data. + * If a password is not given for integrity checking, + * then integrity checking is not performed. * * <p> * This method traverses the list of registered security
--- a/jdk/src/java.base/share/native/libzip/Adler32.c Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.base/share/native/libzip/Adler32.c Mon Sep 07 13:28:41 2015 -0700 @@ -66,5 +66,3 @@ } return adler; } - -
--- a/jdk/src/java.base/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.base/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java Mon Sep 07 13:28:41 2015 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -89,7 +89,7 @@ new GetPropertyAction("user.home")), ".mime.types"); Path etcMimeTypes = Paths.get("/etc/mime.types"); - return chain(new GnomeFileTypeDetector(), + return chain(new GioFileTypeDetector(), new MimeTypesFileTypeDetector(userMimeTypes), new MimeTypesFileTypeDetector(etcMimeTypes)); }
--- a/jdk/src/java.base/unix/classes/sun/net/www/content-types.properties Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.base/unix/classes/sun/net/www/content-types.properties Mon Sep 07 13:28:41 2015 -0700 @@ -275,6 +275,3 @@ application/xml: \ description=XML document;\ file_extensions=.xml - - -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/java.base/unix/classes/sun/nio/fs/GioFileTypeDetector.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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.nio.fs; + +import java.nio.file.Path; +import java.io.IOException; +import java.security.AccessController; +import java.security.PrivilegedAction; + +/** + * File type detector that uses the GNOME I/O library to guess the + * MIME type of a file. + */ + +public class GioFileTypeDetector + extends AbstractFileTypeDetector +{ + // true if GIO is available + private final boolean gioAvailable; + + public GioFileTypeDetector() { + gioAvailable = initializeGio(); + } + + @Override + public String implProbeContentType(Path obj) throws IOException { + if (!gioAvailable) + return null; + if (!(obj instanceof UnixPath)) + return null; + + UnixPath path = (UnixPath)obj; + NativeBuffer buffer = NativeBuffers.asNativeBuffer(path.getByteArrayForSysCalls()); + try { + // GIO may access file so need permission check + path.checkRead(); + byte[] type = probeGio(buffer.address()); + return (type == null) ? null : Util.toString(type); + } finally { + buffer.release(); + } + + } + + // GIO + private static native boolean initializeGio(); + // + // The probeGIO() method is synchronized to avert potential problems + // such as crashes due to a suspected lack of thread safety in GIO. + // + private static synchronized native byte[] probeGio(long pathAddress); + + static { + AccessController.doPrivileged(new PrivilegedAction<>() { + public Void run() { + System.loadLibrary("nio"); + return null; + }}); + } +}
--- a/jdk/src/java.base/unix/classes/sun/nio/fs/GnomeFileTypeDetector.java Thu Sep 03 15:04:05 2015 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * 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.nio.fs; - -import java.nio.file.Path; -import java.io.IOException; -import java.security.AccessController; -import java.security.PrivilegedAction; - -/** - * File type detector that uses the GNOME I/O library to guess the - * MIME type of a file. - */ - -public class GnomeFileTypeDetector - extends AbstractFileTypeDetector -{ - // true if GIO is available - private final boolean gioAvailable; - - public GnomeFileTypeDetector() { - gioAvailable = initializeGio(); - } - - @Override - public String implProbeContentType(Path obj) throws IOException { - if (!gioAvailable) - return null; - if (!(obj instanceof UnixPath)) - return null; - - UnixPath path = (UnixPath)obj; - NativeBuffer buffer = NativeBuffers.asNativeBuffer(path.getByteArrayForSysCalls()); - try { - // GIO may access file so need permission check - path.checkRead(); - byte[] type = probeGio(buffer.address()); - return (type == null) ? null : Util.toString(type); - } finally { - buffer.release(); - } - - } - - // GIO - private static native boolean initializeGio(); - private static synchronized native byte[] probeGio(long pathAddress); - - static { - AccessController.doPrivileged(new PrivilegedAction<>() { - public Void run() { - System.loadLibrary("nio"); - return null; - }}); - } -}
--- a/jdk/src/java.base/unix/native/libjava/FileDescriptor_md.c Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.base/unix/native/libjava/FileDescriptor_md.c Mon Sep 07 13:28:41 2015 -0700 @@ -26,9 +26,11 @@ #include <unistd.h> #include <fcntl.h> +#include "jni.h" +#include "jni_util.h" #include "jvm.h" + #include "io_util_md.h" - #include "java_io_FileDescriptor.h" /*******************************************************************/ @@ -47,8 +49,8 @@ JNIEXPORT void JNICALL Java_java_io_FileDescriptor_initIDs(JNIEnv *env, jclass fdClass) { - IO_fd_fdID = (*env)->GetFieldID(env, fdClass, "fd", "I"); - IO_append_fdID = (*env)->GetFieldID(env, fdClass, "append", "Z"); + CHECK_NULL(IO_fd_fdID = (*env)->GetFieldID(env, fdClass, "fd", "I")); + CHECK_NULL(IO_append_fdID = (*env)->GetFieldID(env, fdClass, "append", "Z")); } /**************************************************************
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/java.base/unix/native/libnio/fs/GioFileTypeDetector.c Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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 "jni.h" +#include "jni_util.h" +#include "jvm.h" +#include "jlong.h" + +#include <stdlib.h> +#include <dlfcn.h> + +#ifdef __solaris__ +#include <strings.h> +#endif + +#if defined(__linux__) +#include <string.h> +#endif + +/* + * For reference see for example the GFileInfo section at + * https://developer.gnome.org/gio/unstable/. + */ + +/* Definitions for GIO */ + +#define G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE "standard::content-type" + +typedef void* gpointer; +typedef struct _GFile GFile; +typedef struct _GFileInfo GFileInfo; +typedef struct _GCancellable GCancellable; +typedef struct _GError GError; + +typedef enum { + G_FILE_QUERY_INFO_NONE = 0 +} GFileQueryInfoFlags; + +typedef void (*g_type_init_func)(void); +typedef void (*g_object_unref_func)(gpointer object); +typedef GFile* (*g_file_new_for_path_func)(const char* path); +typedef GFileInfo* (*g_file_query_info_func)(GFile *file, + const char *attributes, GFileQueryInfoFlags flags, + GCancellable *cancellable, GError **error); +typedef char* (*g_file_info_get_content_type_func)(GFileInfo *info); + +static g_type_init_func g_type_init; +static g_object_unref_func g_object_unref; +static g_file_new_for_path_func g_file_new_for_path; +static g_file_query_info_func g_file_query_info; +static g_file_info_get_content_type_func g_file_info_get_content_type; + + +#include "sun_nio_fs_GioFileTypeDetector.h" + + +JNIEXPORT jboolean JNICALL +Java_sun_nio_fs_GioFileTypeDetector_initializeGio + (JNIEnv* env, jclass this) +{ + void* gio_handle; + + gio_handle = dlopen("libgio-2.0.so", RTLD_LAZY); + if (gio_handle == NULL) { + gio_handle = dlopen("libgio-2.0.so.0", RTLD_LAZY); + if (gio_handle == NULL) { + return JNI_FALSE; + } + } + + g_type_init = (g_type_init_func)dlsym(gio_handle, "g_type_init"); + (*g_type_init)(); + + g_object_unref = (g_object_unref_func)dlsym(gio_handle, "g_object_unref"); + + g_file_new_for_path = + (g_file_new_for_path_func)dlsym(gio_handle, "g_file_new_for_path"); + + g_file_query_info = + (g_file_query_info_func)dlsym(gio_handle, "g_file_query_info"); + + g_file_info_get_content_type = (g_file_info_get_content_type_func) + dlsym(gio_handle, "g_file_info_get_content_type"); + + + if (g_type_init == NULL || + g_object_unref == NULL || + g_file_new_for_path == NULL || + g_file_query_info == NULL || + g_file_info_get_content_type == NULL) + { + dlclose(gio_handle); + return JNI_FALSE; + } + + (*g_type_init)(); + return JNI_TRUE; +} + +JNIEXPORT jbyteArray JNICALL +Java_sun_nio_fs_GioFileTypeDetector_probeGio + (JNIEnv* env, jclass this, jlong pathAddress) +{ + char* path = (char*)jlong_to_ptr(pathAddress); + GFile* gfile; + GFileInfo* gfileinfo; + jbyteArray result = NULL; + + gfile = (*g_file_new_for_path)(path); + gfileinfo = (*g_file_query_info)(gfile, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, + G_FILE_QUERY_INFO_NONE, NULL, NULL); + if (gfileinfo != NULL) { + const char* mime = (*g_file_info_get_content_type)(gfileinfo); + if (mime != NULL) { + jsize len = strlen(mime); + result = (*env)->NewByteArray(env, len); + if (result != NULL) { + (*env)->SetByteArrayRegion(env, result, 0, len, (jbyte*)mime); + } + } + (*g_object_unref)(gfileinfo); + } + (*g_object_unref)(gfile); + + return result; +}
--- a/jdk/src/java.base/unix/native/libnio/fs/GnomeFileTypeDetector.c Thu Sep 03 15:04:05 2015 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,148 +0,0 @@ -/* - * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * 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 "jni.h" -#include "jni_util.h" -#include "jvm.h" -#include "jlong.h" - -#include <stdlib.h> -#include <dlfcn.h> - -#ifdef __solaris__ -#include <strings.h> -#endif - -#if defined(__linux__) -#include <string.h> -#endif - -/* - * For reference see for example the GFileInfo section at - * https://developer.gnome.org/gio/unstable/. - */ - -/* Definitions for GIO */ - -#define G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE "standard::content-type" - -typedef void* gpointer; -typedef struct _GFile GFile; -typedef struct _GFileInfo GFileInfo; -typedef struct _GCancellable GCancellable; -typedef struct _GError GError; - -typedef enum { - G_FILE_QUERY_INFO_NONE = 0 -} GFileQueryInfoFlags; - -typedef void (*g_type_init_func)(void); -typedef void (*g_object_unref_func)(gpointer object); -typedef GFile* (*g_file_new_for_path_func)(const char* path); -typedef GFileInfo* (*g_file_query_info_func)(GFile *file, - const char *attributes, GFileQueryInfoFlags flags, - GCancellable *cancellable, GError **error); -typedef char* (*g_file_info_get_content_type_func)(GFileInfo *info); - -static g_type_init_func g_type_init; -static g_object_unref_func g_object_unref; -static g_file_new_for_path_func g_file_new_for_path; -static g_file_query_info_func g_file_query_info; -static g_file_info_get_content_type_func g_file_info_get_content_type; - - -#include "sun_nio_fs_GnomeFileTypeDetector.h" - - -JNIEXPORT jboolean JNICALL -Java_sun_nio_fs_GnomeFileTypeDetector_initializeGio - (JNIEnv* env, jclass this) -{ - void* gio_handle; - - gio_handle = dlopen("libgio-2.0.so", RTLD_LAZY); - if (gio_handle == NULL) { - gio_handle = dlopen("libgio-2.0.so.0", RTLD_LAZY); - if (gio_handle == NULL) { - return JNI_FALSE; - } - } - - g_type_init = (g_type_init_func)dlsym(gio_handle, "g_type_init"); - (*g_type_init)(); - - g_object_unref = (g_object_unref_func)dlsym(gio_handle, "g_object_unref"); - - g_file_new_for_path = - (g_file_new_for_path_func)dlsym(gio_handle, "g_file_new_for_path"); - - g_file_query_info = - (g_file_query_info_func)dlsym(gio_handle, "g_file_query_info"); - - g_file_info_get_content_type = (g_file_info_get_content_type_func) - dlsym(gio_handle, "g_file_info_get_content_type"); - - - if (g_type_init == NULL || - g_object_unref == NULL || - g_file_new_for_path == NULL || - g_file_query_info == NULL || - g_file_info_get_content_type == NULL) - { - dlclose(gio_handle); - return JNI_FALSE; - } - - (*g_type_init)(); - return JNI_TRUE; -} - -JNIEXPORT jbyteArray JNICALL -Java_sun_nio_fs_GnomeFileTypeDetector_probeGio - (JNIEnv* env, jclass this, jlong pathAddress) -{ - char* path = (char*)jlong_to_ptr(pathAddress); - GFile* gfile; - GFileInfo* gfileinfo; - jbyteArray result = NULL; - - gfile = (*g_file_new_for_path)(path); - gfileinfo = (*g_file_query_info)(gfile, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, - G_FILE_QUERY_INFO_NONE, NULL, NULL); - if (gfileinfo != NULL) { - const char* mime = (*g_file_info_get_content_type)(gfileinfo); - if (mime != NULL) { - jsize len = strlen(mime); - result = (*env)->NewByteArray(env, len); - if (result != NULL) { - (*env)->SetByteArrayRegion(env, result, 0, len, (jbyte*)mime); - } - } - (*g_object_unref)(gfileinfo); - } - (*g_object_unref)(gfile); - - return result; -}
--- a/jdk/src/java.base/windows/classes/sun/net/www/content-types.properties Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.base/windows/classes/sun/net/www/content-types.properties Mon Sep 07 13:28:41 2015 -0700 @@ -272,5 +272,3 @@ application/xml: \ description=XML document;\ file_extensions=.xml - -
--- a/jdk/src/java.desktop/macosx/classes/com/apple/eawt/_OpenAppHandler.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/macosx/classes/com/apple/eawt/_OpenAppHandler.java Mon Sep 07 13:28:41 2015 -0700 @@ -27,4 +27,4 @@ interface _OpenAppHandler { void handleOpenApp(); -} \ No newline at end of file +}
--- a/jdk/src/java.desktop/macosx/classes/com/apple/laf/AquaLookAndFeel.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/macosx/classes/com/apple/laf/AquaLookAndFeel.java Mon Sep 07 13:28:41 2015 -0700 @@ -1098,4 +1098,4 @@ }; table.putDefaults(uiDefaults); } -} \ No newline at end of file +}
--- a/jdk/src/java.desktop/macosx/classes/sun/lwawt/macosx/CDataTransferer.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/macosx/classes/sun/lwawt/macosx/CDataTransferer.java Mon Sep 07 13:28:41 2015 -0700 @@ -278,5 +278,3 @@ return false; } } - -
--- a/jdk/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m Mon Sep 07 13:28:41 2015 -0700 @@ -1406,5 +1406,3 @@ return underMouse; } - -
--- a/jdk/src/java.desktop/macosx/native/libawt_lwawt/awt/CClipboard.m Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/macosx/native/libawt_lwawt/awt/CClipboard.m Mon Sep 07 13:28:41 2015 -0700 @@ -289,4 +289,4 @@ JNF_COCOA_EXIT(env); return ret; -} \ No newline at end of file +}
--- a/jdk/src/java.desktop/share/classes/sun/awt/image/MultiResolutionCachedImage.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/classes/sun/awt/image/MultiResolutionCachedImage.java Mon Sep 07 13:28:41 2015 -0700 @@ -183,4 +183,4 @@ return false; } } -} \ No newline at end of file +}
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/AnchorTables.h Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/AnchorTables.h Mon Sep 07 13:28:41 2015 -0700 @@ -80,5 +80,3 @@ U_NAMESPACE_END #endif - -
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/CharSubstitutionFilter.h Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/CharSubstitutionFilter.h Mon Sep 07 13:28:41 2015 -0700 @@ -104,5 +104,3 @@ U_NAMESPACE_END #endif - -
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/CursiveAttachmentSubtables.h Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/CursiveAttachmentSubtables.h Mon Sep 07 13:28:41 2015 -0700 @@ -63,5 +63,3 @@ U_NAMESPACE_END #endif - -
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/DeviceTables.h Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/DeviceTables.h Mon Sep 07 13:28:41 2015 -0700 @@ -61,5 +61,3 @@ U_NAMESPACE_END #endif - -
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/MPreFixups.h Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/MPreFixups.h Mon Sep 07 13:28:41 2015 -0700 @@ -63,5 +63,3 @@ U_NAMESPACE_END #endif - -
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/MarkArrays.h Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/MarkArrays.h Mon Sep 07 13:28:41 2015 -0700 @@ -62,5 +62,3 @@ U_NAMESPACE_END #endif - -
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/PairPositioningSubtables.h Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/PairPositioningSubtables.h Mon Sep 07 13:28:41 2015 -0700 @@ -109,5 +109,3 @@ U_NAMESPACE_END #endif - -
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/SinglePositioningSubtables.h Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/SinglePositioningSubtables.h Mon Sep 07 13:28:41 2015 -0700 @@ -71,5 +71,3 @@ U_NAMESPACE_END #endif - -
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/SingleSubstitutionSubtables.h Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/SingleSubstitutionSubtables.h Mon Sep 07 13:28:41 2015 -0700 @@ -68,5 +68,3 @@ U_NAMESPACE_END #endif - -
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/ThaiShaping.h Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/ThaiShaping.h Mon Sep 07 13:28:41 2015 -0700 @@ -129,5 +129,3 @@ U_NAMESPACE_END #endif - -
--- a/jdk/src/java.desktop/share/native/libfontmanager/layout/ValueRecords.h Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/libfontmanager/layout/ValueRecords.h Mon Sep 07 13:28:41 2015 -0700 @@ -94,5 +94,3 @@ U_NAMESPACE_END #endif - -
--- a/jdk/src/java.desktop/share/native/liblcms/cmslut.c Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/liblcms/cmslut.c Mon Sep 07 13:28:41 2015 -0700 @@ -1836,5 +1836,3 @@ return TRUE; } - -
--- a/jdk/src/java.desktop/share/native/liblcms/cmsmtrx.c Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/liblcms/cmsmtrx.c Mon Sep 07 13:28:41 2015 -0700 @@ -201,5 +201,3 @@ r->n[VY] = a->v[1].n[VX]*v->n[VX] + a->v[1].n[VY]*v->n[VY] + a->v[1].n[VZ]*v->n[VZ]; r->n[VZ] = a->v[2].n[VX]*v->n[VX] + a->v[2].n[VY]*v->n[VY] + a->v[2].n[VZ]*v->n[VZ]; } - -
--- a/jdk/src/java.desktop/share/native/liblcms/cmsplugin.c Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/liblcms/cmsplugin.c Mon Sep 07 13:28:41 2015 -0700 @@ -989,5 +989,3 @@ { return _cmsContextGetClientChunk(ContextID, UserPtr); } - -
--- a/jdk/src/java.desktop/share/native/liblcms/cmswtpnt.c Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/liblcms/cmswtpnt.c Mon Sep 07 13:28:41 2015 -0700 @@ -376,5 +376,3 @@ return TRUE; } - -
--- a/jdk/src/java.desktop/share/native/libsplashscreen/java_awt_SplashScreen.c Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/share/native/libsplashscreen/java_awt_SplashScreen.c Mon Sep 07 13:28:41 2015 -0700 @@ -234,4 +234,4 @@ return 1; } return splash->scaleFactor; -} \ No newline at end of file +}
--- a/jdk/src/java.desktop/windows/native/libawt/windows/DllUtil.cpp Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/windows/native/libawt/windows/DllUtil.cpp Mon Sep 07 13:28:41 2015 -0700 @@ -84,5 +84,3 @@ } throw FunctionUnavailableException(); } - -
--- a/jdk/src/java.desktop/windows/native/libawt/windows/README.JNI Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.desktop/windows/native/libawt/windows/README.JNI Mon Sep 07 13:28:41 2015 -0700 @@ -131,5 +131,3 @@ 2. Handle exceptions properly. The current code lacks error checking and recovery. This leads to random runtime crashes. - -
--- a/jdk/src/java.logging/share/classes/java/util/logging/package.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.logging/share/classes/java/util/logging/package.html Mon Sep 07 13:28:41 2015 -0700 @@ -126,8 +126,3 @@ </body> </html> - - - - -
--- a/jdk/src/java.security.jgss/share/classes/javax/security/auth/kerberos/DelegationPermission.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.security.jgss/share/classes/javax/security/auth/kerberos/DelegationPermission.java Mon Sep 07 13:28:41 2015 -0700 @@ -132,7 +132,9 @@ * Checks if this Kerberos delegation permission object "implies" the * specified permission. * <P> - * If none of the above are true, {@code implies} returns false. + * This method returns true if this {@code DelegationPermission} + * is equal to {@code p}, and returns false otherwise. + * * @param p the permission to check against. * * @return true if the specified permission is implied by this object,
--- a/jdk/src/java.security.jgss/share/classes/javax/security/auth/kerberos/ServicePermission.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.security.jgss/share/classes/javax/security/auth/kerberos/ServicePermission.java Mon Sep 07 13:28:41 2015 -0700 @@ -179,7 +179,16 @@ * Checks if this Kerberos service permission object "implies" the * specified permission. * <P> - * If none of the above are true, {@code implies} returns false. + * More specifically, this method returns true if all of the following + * are true (and returns false if any of them are not): + * <ul> + * <li> <i>p</i> is an instanceof {@code ServicePermission}, + * <li> <i>p</i>'s actions are a proper subset of this + * {@code ServicePermission}'s actions, + * <li> <i>p</i>'s name is equal to this {@code ServicePermission}'s name + * or this {@code ServicePermission}'s name is "*". + * </ul> + * * @param p the permission to check against. * * @return true if the specified permission is implied by this object,
--- a/jdk/src/java.sql.rowset/share/classes/javax/sql/rowset/BaseRowSet.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.sql.rowset/share/classes/javax/sql/rowset/BaseRowSet.java Mon Sep 07 13:28:41 2015 -0700 @@ -4467,4 +4467,4 @@ static final long serialVersionUID = 4886719666485113312L; -} //end class \ No newline at end of file +} //end class
--- a/jdk/src/java.sql.rowset/share/classes/javax/sql/rowset/RowSetFactory.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.sql.rowset/share/classes/javax/sql/rowset/RowSetFactory.java Mon Sep 07 13:28:41 2015 -0700 @@ -96,4 +96,4 @@ */ public WebRowSet createWebRowSet() throws SQLException; -} \ No newline at end of file +}
--- a/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/algorithms/package.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/algorithms/package.html Mon Sep 07 13:28:41 2015 -0700 @@ -1,3 +1,3 @@ <HTML><HEAD></HEAD><BODY><P> algorithm factories. -</P></BODY></HTML> \ No newline at end of file +</P></BODY></HTML>
--- a/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/content/keyvalues/package.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/content/keyvalues/package.html Mon Sep 07 13:28:41 2015 -0700 @@ -1,3 +1,3 @@ <HTML><HEAD></HEAD><BODY><P> basic handlers for elements that can occur inside <CODE>ds:KeyValue</CODE>. -</P></BODY></HTML> \ No newline at end of file +</P></BODY></HTML>
--- a/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/content/package.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/content/package.html Mon Sep 07 13:28:41 2015 -0700 @@ -1,3 +1,3 @@ <HTML><HEAD></HEAD><BODY><P> basic handlers for elements that can occur inside <CODE>ds:KeyInfo</CODE>. -</P></BODY></HTML> \ No newline at end of file +</P></BODY></HTML>
--- a/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/package.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/package.html Mon Sep 07 13:28:41 2015 -0700 @@ -1,3 +1,3 @@ <HTML><HEAD></HEAD><BODY><P> basic handlers for elements that can occur inside <CODE>ds:X509Data</CODE>. -</P></BODY></HTML> \ No newline at end of file +</P></BODY></HTML>
--- a/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/package.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/implementations/package.html Mon Sep 07 13:28:41 2015 -0700 @@ -1,3 +1,3 @@ <HTML><HEAD></HEAD><BODY><P> implementations for retrieval of certificates and public keys from elements. -</P></BODY></HTML> \ No newline at end of file +</P></BODY></HTML>
--- a/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/package.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/package.html Mon Sep 07 13:28:41 2015 -0700 @@ -1,3 +1,3 @@ <HTML><HEAD></HEAD><BODY><P> the resolver framework for retrieval of certificates and public keys from elements. -</P></BODY></HTML> \ No newline at end of file +</P></BODY></HTML>
--- a/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/implementations/package.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/implementations/package.html Mon Sep 07 13:28:41 2015 -0700 @@ -1,3 +1,3 @@ <HTML><HEAD></HEAD><BODY><P> implementations of resolvers for retrieval for certificates and public keys from user-specified locations. -</P></BODY></HTML> \ No newline at end of file +</P></BODY></HTML>
--- a/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/package.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/keys/storage/package.html Mon Sep 07 13:28:41 2015 -0700 @@ -1,3 +1,3 @@ <HTML><HEAD></HEAD><BODY><P> a resolver framework for certificates and public keys from user-specified locations. -</P></BODY></HTML> \ No newline at end of file +</P></BODY></HTML>
--- a/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/TransformParam.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/transforms/TransformParam.java Mon Sep 07 13:28:41 2015 -0700 @@ -24,4 +24,4 @@ package com.sun.org.apache.xml.internal.security.transforms; public interface TransformParam { -} \ No newline at end of file +}
--- a/jdk/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystemProvider.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystemProvider.java Mon Sep 07 13:28:41 2015 -0700 @@ -65,8 +65,9 @@ // only support legacy JAR URL syntax jar:{uri}!/{entry} for now String spec = uri.getRawSchemeSpecificPart(); int sep = spec.indexOf("!/"); - if (sep != -1) + if (sep != -1) { spec = spec.substring(0, sep); + } return Paths.get(new URI(spec)).toAbsolutePath(); } catch (URISyntaxException e) { throw new IllegalArgumentException(e.getMessage(), e); @@ -107,6 +108,9 @@ // assume NOT a zip/jar file throw new UnsupportedOperationException(); } + if (realPath == null) { // newly created + realPath = path.toRealPath(); + } filesystems.put(realPath, zipfs); return zipfs; } @@ -132,7 +136,6 @@ @Override public Path getPath(URI uri) { - String spec = uri.getSchemeSpecificPart(); int sep = spec.indexOf("!/"); if (sep == -1)
--- a/jdk/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipPath.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipPath.java Mon Sep 07 13:28:41 2015 -0700 @@ -32,10 +32,10 @@ import java.nio.file.DirectoryStream.Filter; import java.nio.file.attribute.*; import java.util.*; +import static java.nio.charset.StandardCharsets.UTF_8; import static java.nio.file.StandardOpenOption.*; import static java.nio.file.StandardCopyOption.*; - /** * * @author Xueming Shen, Rajendra Gutupalli,Jaya Hangal @@ -180,7 +180,7 @@ public URI toUri() { try { return new URI("jar", - zfs.getZipFile().toUri() + + decodeUri(zfs.getZipFile().toUri().toString()) + "!" + zfs.getString(toAbsolutePath().path), null); @@ -866,4 +866,57 @@ } } } + + private static int decode(char c) { + if ((c >= '0') && (c <= '9')) + return c - '0'; + if ((c >= 'a') && (c <= 'f')) + return c - 'a' + 10; + if ((c >= 'A') && (c <= 'F')) + return c - 'A' + 10; + assert false; + return -1; + } + + // to avoid double escape + static String decodeUri(String s) { + if (s == null) + return s; + int n = s.length(); + if (n == 0) + return s; + if (s.indexOf('%') < 0) + return s; + + StringBuilder sb = new StringBuilder(n); + byte[] bb = new byte[n]; + boolean betweenBrackets = false; + + for (int i = 0; i < n;) { + char c = s.charAt(i); + if (c == '[') { + betweenBrackets = true; + } else if (betweenBrackets && c == ']') { + betweenBrackets = false; + } + if (c != '%' || betweenBrackets ) { + sb.append(c); + i++; + continue; + } + int nb = 0; + while (c == '%') { + assert (n - i >= 2); + bb[nb++] = (byte)(((decode(s.charAt(++i)) & 0xf) << 4) | + (decode(s.charAt(++i)) & 0xf)); + if (++i >= n) { + break; + } + c = s.charAt(i); + } + sb.append(new String(bb, 0, nb, UTF_8)); + } + return sb.toString(); + } + }
--- a/jdk/src/sample/share/annotations/DependencyChecker/PluginChecker/src/checker/Kettle.xml Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/sample/share/annotations/DependencyChecker/PluginChecker/src/checker/Kettle.xml Mon Sep 07 13:28:41 2015 -0700 @@ -54,4 +54,4 @@ <value>4</value> </entry> </supportedModules> -</device> \ No newline at end of file +</device>
--- a/jdk/src/sample/share/annotations/index.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/sample/share/annotations/index.html Mon Sep 07 13:28:41 2015 -0700 @@ -64,4 +64,4 @@ Sources: <a href="Validator/src/">Validator/src/</a> </ul> </body> -</html> \ No newline at end of file +</html>
--- a/jdk/src/sample/share/lambda/BulkDataOperations/index.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/sample/share/lambda/BulkDataOperations/index.html Mon Sep 07 13:28:41 2015 -0700 @@ -46,4 +46,4 @@ Source: <a href="src/WC.java">src/WC.java</a> </ul> </body> -</html> \ No newline at end of file +</html>
--- a/jdk/src/sample/share/try-with-resources/index.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/src/sample/share/try-with-resources/index.html Mon Sep 07 13:28:41 2015 -0700 @@ -33,4 +33,4 @@ </ul> </body> -</html> \ No newline at end of file +</html>
--- a/jdk/test/ProblemList.txt Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/ProblemList.txt Mon Sep 07 13:28:41 2015 -0700 @@ -319,6 +319,9 @@ # jdk_time +# 8134979 +java/time/tck/java/time/chrono/TCKJapaneseChronology.java generic-all + ############################################################################ # jdk_tools @@ -384,6 +387,11 @@ # 6456333 sun/tools/jps/TestJpsJarRelative.java generic-all +# 8134420 +sun/tools/jps/TestJpsClass.java generic-all +sun/tools/jps/TestJpsJar.java generic-all +sun/tools/jps/TestJpsSanity.java generic-all + # 6734748 sun/tools/jinfo/JInfoRunningProcessFlagTest.java generic-all
--- a/jdk/test/TEST.ROOT Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/TEST.ROOT Mon Sep 07 13:28:41 2015 -0700 @@ -18,7 +18,7 @@ othervm.dirs=java/awt java/beans javax/accessibility javax/imageio javax/sound javax/print javax/management com/sun/awt sun/awt sun/java2d sun/pisces javax/xml/jaxp/testng/validation java/lang/ProcessHandle # Tests that cannot run concurrently -exclusiveAccess.dirs=java/rmi/Naming java/util/prefs sun/management/jmxremote sun/tools/jstatd sun/security/mscapi java/util/stream javax/rmi sun/tools/jps +exclusiveAccess.dirs=java/rmi/Naming java/util/prefs sun/management/jmxremote sun/tools/jstatd sun/security/mscapi java/util/stream javax/rmi # Group definitions groups=TEST.groups [closed/TEST.groups]
--- a/jdk/test/com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java Mon Sep 07 13:28:41 2015 -0700 @@ -374,5 +374,3 @@ } }// TestDialog class - -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/com/sun/crypto/provider/Cipher/Blowfish/TestCipherBlowfish.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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. + */ + +import java.security.NoSuchAlgorithmException; + +/* + * @test + * @bug 8048601 + * @library ../ + * @summary Test Blowfish cipher with different MODES and padding + */ + +public class TestCipherBlowfish extends TestCipher { + + TestCipherBlowfish() throws NoSuchAlgorithmException { + super("Blowfish", + new String[]{"CBC", "CTR", "CTS", "ECB", "PCBC", + //CFBx + "CFB", "CFB8", "CFB16", "CFB24", "CFB32", "CFB40", "CFB48", "CFB56", + "CFB64", + //OFBx + "OFB", "OFB8", "OFB16", "OFB24", "OFB32", "OFB40", "OFB48", "OFB56", + "OFB64"}, + new String[]{"NoPaDDing", "PKCS5Padding"}, + true); + } + + public static void main(String[] args) throws Exception { + new TestCipherBlowfish().runAll(); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/com/sun/crypto/provider/Cipher/DES/TestCipherDES.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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 8048601 + * @library ../ + * @summary Test DES/DESede cipher with different MODES and padding + */ + +public class TestCipherDES extends TestCipher { + + TestCipherDES() { + super("DES", + new String[]{"CBC", "CTR", "CTS", "ECB", "PCBC", + //CFBx + "CFB", "CFB8", "CFB16", "CFB24", "CFB32", "CFB40", "CFB48", "CFB56", + "CFB64", + //OFBx + "OFB", "OFB8", "OFB16", "OFB24", "OFB32", "OFB40", "OFB48", "OFB56", + "OFB64"}, + new String[]{"NoPaDDing", "PKCS5Padding"}); + } + + public static void main(String[] args) throws Exception { + new TestCipherDES().runAll(); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/com/sun/crypto/provider/Cipher/DES/TestCipherDESede.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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 8048601 + * @library ../ + * @summary Test DES/DESede cipher with different MODES and padding + */ + +public class TestCipherDESede extends TestCipher { + + TestCipherDESede() { + super("DESede", + new String[]{"CBC", "CTR", "CTS", "ECB", "PCBC", + //CFBx + "CFB", "CFB8", "CFB16", "CFB24", "CFB32", "CFB40", "CFB48", "CFB56", + "CFB64", + //OFBx + "OFB", "OFB8", "OFB16", "OFB24", "OFB32", "OFB40", "OFB48", "OFB56", + "OFB64"}, + new String[]{"NoPaDDing", "PKCS5Padding"}); + } + + public static void main(String[] args) throws Exception { + new TestCipherDESede().runAll(); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/com/sun/crypto/provider/Cipher/PBE/TestCipherPBE.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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. + */ + +import static java.lang.System.out; + +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.spec.AlgorithmParameterSpec; +import java.security.spec.InvalidKeySpecException; +import java.util.Arrays; + +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.ShortBufferException; +import javax.crypto.spec.PBEKeySpec; +import javax.crypto.spec.PBEParameterSpec; + +/* + * @test + * @bug 8048601 + * @summary Tests for PBE ciphers + */ +public class TestCipherPBE { + + private static final String[] ALGORITHMS = {"PBEWithMD5AndDES", + "PBEWithMD5AndDES/CBC/PKCS5Padding", "PBEWithMD5AndTripleDES", + "PBEWithMD5AndTripleDES/CBC/PKCS5Padding"}; + + private static final String KEY_ALGO = "pbeWithMD5ANDdes"; + private final byte[] SALT; + private final byte[] PLAIN_TEXT; + + public TestCipherPBE() { + SALT = generateBytes(8); + PLAIN_TEXT = generateBytes(200); + } + + public static void main(String[] args) throws Exception { + + new TestCipherPBE().runAll(); + } + + private void runAll() throws Exception { + for (String algorithm : ALGORITHMS) { + runTest(algorithm); + } + } + + private void runTest(String algorithm) + throws InvalidKeySpecException, NoSuchAlgorithmException, + InvalidAlgorithmParameterException, ShortBufferException, + NoSuchPaddingException, IllegalBlockSizeException, + BadPaddingException, InvalidKeyException { + + out.println("=> Testing: " + algorithm); + + try { + // Initialization + AlgorithmParameterSpec algoParamSpec + = new PBEParameterSpec(SALT, 6); + + SecretKey secretKey + = SecretKeyFactory.getInstance(KEY_ALGO).generateSecret( + new PBEKeySpec(("Secret Key Value").toCharArray())); + + Cipher ci = Cipher.getInstance(algorithm); + ci.init(Cipher.ENCRYPT_MODE, secretKey, algoParamSpec); + + // Encryption + byte[] cipherText = ci.doFinal(PLAIN_TEXT); + + // Decryption + ci.init(Cipher.DECRYPT_MODE, secretKey, algoParamSpec); + byte[] recoveredText = ci.doFinal(cipherText); + + if (algorithm.contains("TripleDES")) { + throw new RuntimeException( + "Expected InvalidKeyException exception uncaugh"); + } + + // Comparison + if (!Arrays.equals(PLAIN_TEXT, recoveredText)) { + throw new RuntimeException( + "Test failed: plainText is not equal to recoveredText"); + } + out.println("Test Passed."); + } catch (InvalidKeyException ex) { + if (algorithm.contains("TripleDES")) { + out.println("Expected InvalidKeyException raised"); + } else { + throw new RuntimeException(ex); + } + } + } + + public static byte[] generateBytes(int length) { + byte[] bytes = new byte[length]; + for (int i = 0; i < length; i++) { + bytes[i] = (byte) (i & 0xff); + } + return bytes; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/com/sun/crypto/provider/Cipher/TestCipher.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,220 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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. + */ + +import static java.lang.System.out; + +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.NoSuchProviderException; +import java.security.spec.AlgorithmParameterSpec; + +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.KeyGenerator; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.SecretKey; +import javax.crypto.ShortBufferException; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; + +/** + * This is a abstract class used to test various ciphers + */ +public abstract class TestCipher { + + private final String SUNJCE = "SunJCE"; + private final String ALGORITHM; + private final String[] MODES; + private final String[] PADDINGS; + + /* Used to test cipher with different key strengths + Key size tested is increment of KEYCUTTER from MINIMUM_KEY_SIZE to + maximum allowed keysize. + DES/DESede/Blowfish work with currently selected key sizes. + */ + private final int variousKeySize; + private final int KEYCUTTER = 8; + private final int MINIMUM_KEY_SIZE = 32; + + // Used to assert that Encryption/Decryption works with same buffer + // TEXT_LEN is multiple of blocks in order to work against ciphers w/ NoPadding + private final int TEXT_LEN = 800; + private final int ENC_OFFSET = 6; + private final int STORAGE_OFFSET = 3; + private final int PAD_BYTES = 16; + + private final byte[] IV; + private final byte[] INPUT_TEXT; + + TestCipher(String algo, String[] modes, String[] paddings, + boolean keyStrength) throws NoSuchAlgorithmException { + ALGORITHM = algo; + MODES = modes; + PADDINGS = paddings; + this.variousKeySize + = keyStrength ? Cipher.getMaxAllowedKeyLength(ALGORITHM) : 0; + + IV = generateBytes(8); + INPUT_TEXT = generateBytes(TEXT_LEN + PAD_BYTES + ENC_OFFSET); + } + + TestCipher(String algo, String[] modes, String[] paddings) { + ALGORITHM = algo; + MODES = modes; + PADDINGS = paddings; + variousKeySize = 0; + + IV = generateBytes(8); + INPUT_TEXT = generateBytes(TEXT_LEN + PAD_BYTES + ENC_OFFSET); + } + + private static byte[] generateBytes(int length) { + byte[] bytes = new byte[length]; + for (int i = 0; i < length; i++) { + bytes[i] = (byte) (i & 0xff); + } + return bytes; + } + + private boolean isKeyStrenthSupported() { + return (variousKeySize != 0); + } + + public void runAll() throws InvalidKeyException, + NoSuchPaddingException, InvalidAlgorithmParameterException, + ShortBufferException, IllegalBlockSizeException, + BadPaddingException, NoSuchAlgorithmException, + NoSuchProviderException { + + for (String mode : MODES) { + for (String padding : PADDINGS) { + if (!isKeyStrenthSupported()) { + runTest(mode, padding, 0); + } else { + int keySize = variousKeySize; + while (keySize >= MINIMUM_KEY_SIZE) { + out.println("With Key Strength: " + keySize); + runTest(mode, padding, keySize); + keySize -= KEYCUTTER; + } + } + } + } + } + + private void runTest(String mo, String pad, int keySize) + throws NoSuchPaddingException, BadPaddingException, + ShortBufferException, IllegalBlockSizeException, + InvalidAlgorithmParameterException, InvalidKeyException, + NoSuchAlgorithmException, NoSuchProviderException { + + String TRANSFORMATION = ALGORITHM + "/" + mo + "/" + pad; + out.println("Testing: " + TRANSFORMATION); + + // Initialization + Cipher ci = Cipher.getInstance(TRANSFORMATION, SUNJCE); + KeyGenerator kg = KeyGenerator.getInstance(ALGORITHM, SUNJCE); + if (keySize != 0) { + kg.init(keySize); + } + SecretKey key = kg.generateKey(); + SecretKeySpec skeySpec = new SecretKeySpec(key.getEncoded(), ALGORITHM); + + AlgorithmParameterSpec aps = new IvParameterSpec(IV); + if (mo.equalsIgnoreCase("ECB")) { + ci.init(Cipher.ENCRYPT_MODE, key); + } else { + ci.init(Cipher.ENCRYPT_MODE, key, aps); + } + + // Encryption + int PAD_LEN = 0; + if (pad.equalsIgnoreCase("PKCS5Padding")) { + // Need to consider pad bytes + PAD_LEN = 8; + } + + byte[] plainText = INPUT_TEXT.clone(); + + // Generate cipher and save to separate buffer + byte[] cipherText = ci.doFinal(INPUT_TEXT, ENC_OFFSET, TEXT_LEN); + + // Generate cipher and save to same buffer + int offset = ci.update( + INPUT_TEXT, ENC_OFFSET, TEXT_LEN, INPUT_TEXT, STORAGE_OFFSET); + ci.doFinal(INPUT_TEXT, offset + STORAGE_OFFSET); + + if (!equalsBlock( + INPUT_TEXT, STORAGE_OFFSET, cipherText, 0, cipherText.length)) { + throw new RuntimeException( + "Different ciphers generated with same buffer"); + } + + // Decryption + if (mo.equalsIgnoreCase("ECB")) { + ci.init(Cipher.DECRYPT_MODE, skeySpec); + } else { + ci.init(Cipher.DECRYPT_MODE, skeySpec, aps); + } + + // Recover text from cipher and save to separate buffer + byte[] recoveredText = ci.doFinal(cipherText, 0, cipherText.length); + + if (!equalsBlock( + plainText, ENC_OFFSET, recoveredText, 0, + recoveredText.length)) { + throw new RuntimeException( + "Recovered text not same as plain text"); + } else { + out.println("Recovered and plain text are same"); + } + + // Recover text from cipher and save to same buffer + ci.update(INPUT_TEXT, STORAGE_OFFSET, TEXT_LEN + PAD_LEN, INPUT_TEXT, + ENC_OFFSET); + ci.doFinal(INPUT_TEXT, ENC_OFFSET); + + if (!equalsBlock( + plainText, ENC_OFFSET, recoveredText, 0, + recoveredText.length)) { + throw new RuntimeException( + "Recovered text not same as plain text with same buffer"); + } else { + out.println("Recovered and plain text are same with same buffer"); + } + + out.println("Test Passed."); + } + + private static boolean equalsBlock(byte[] b1, int off1, byte[] b2, int off2, + int len) { + for (int i = off1, j = off2, k = 0; k < len; i++, j++, k++) { + if (b1[i] != b2[j]) { + return false; + } + } + return true; + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/com/sun/crypto/provider/Cipher/TextLength/DESCipherWrapper.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,172 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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. + */ + +import static java.lang.System.out; + +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.spec.AlgorithmParameterSpec; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import javax.crypto.BadPaddingException; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.SecretKey; +import javax.crypto.ShortBufferException; +import javax.crypto.Cipher; +import javax.crypto.KeyGenerator; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.spec.IvParameterSpec; + +/** + * Wrapper class to test a given DES algorithm. + */ +public class DESCipherWrapper { + + private final Cipher ci; + private final byte[] iv; + private final SecretKey key; + private final String algo; + private final String mode; + private final String pad; + private final int keyStrength; + private byte[] resultText = null; + + public DESCipherWrapper(String algo, String mode, String pad) + throws NoSuchAlgorithmException, NoSuchPaddingException { + ci = Cipher.getInstance(algo + "/" + mode + "/" + pad); + + iv = new byte[8]; + for (int i = 0; i < 8; i++) { + iv[i] = (byte) (i & 0xff); + } + + KeyGenerator kg = KeyGenerator.getInstance(algo); + key = kg.generateKey(); + keyStrength = algo.equalsIgnoreCase("DESede") ? 112 + : key.getEncoded().length * 8; + + this.algo = algo; + this.mode = mode; + this.pad = pad; + } + + public byte[] getResult() { + return resultText.clone(); + } + + public void execute(int edMode, byte[] inputText) + throws InvalidKeyException, InvalidAlgorithmParameterException, + IllegalBlockSizeException, BadPaddingException, + ShortBufferException, NoSuchAlgorithmException { + AlgorithmParameterSpec aps = null; + + try { + if (!mode.equalsIgnoreCase("ECB")) { + aps = new IvParameterSpec(iv); + } + ci.init(edMode, key, aps); + + // Generate a resultText using a single-part enc/dec + resultText = ci.doFinal(inputText); + + // Generate outputText for each multi-part en/de-cryption + /* Combination #1: + update(byte[], int, int) + doFinal(byte[], int, int) + */ + byte[] part11 = ci.update(inputText, 0, inputText.length); + byte[] part12 = ci.doFinal(); + byte[] outputText1 = new byte[part11.length + part12.length]; + System.arraycopy(part11, 0, outputText1, 0, part11.length); + System.arraycopy(part12, 0, outputText1, part11.length, + part12.length); + + List<byte[]> outputTexts = new ArrayList<>(4); + outputTexts.add(outputText1); + + /* Combination #2: + update(byte[], int, int) + doFinal(byte[], int, int, byte[], int) + */ + byte[] part21 = ci.update(inputText, 0, inputText.length - 5); + byte[] part22 = new byte[ci.getOutputSize(inputText.length)]; + int len2 = ci + .doFinal(inputText, inputText.length - 5, 5, part22, 0); + byte[] outputText2 = new byte[part21.length + len2]; + System.arraycopy(part21, 0, outputText2, 0, part21.length); + System.arraycopy(part22, 0, outputText2, part21.length, len2); + + outputTexts.add(outputText2); + + /* Combination #3: + update(byte[], int, int, byte[], int) + doFinal(byte[], int, int) + */ + byte[] part31 = new byte[ci.getOutputSize(inputText.length)]; + int len3 = ci.update(inputText, 0, inputText.length - 8, part31, 0); + byte[] part32 = ci.doFinal(inputText, inputText.length - 8, 8); + byte[] outputText3 = new byte[len3 + part32.length]; + System.arraycopy(part31, 0, outputText3, 0, len3); + System.arraycopy(part32, 0, outputText3, len3, part32.length); + + outputTexts.add(outputText3); + + /* Combination #4: + update(byte[], int, int, byte[], int) + doFinal(byte[], int, int, byte[], int) + */ + byte[] part41 = new byte[ci.getOutputSize(inputText.length)]; + int len4 = ci.update(inputText, 0, inputText.length - 8, part41, 0); + int rest4 = ci.doFinal(inputText, inputText.length - 8, 8, part41, + len4); + byte[] outputText4 = new byte[len4 + rest4]; + System.arraycopy(part41, 0, outputText4, 0, outputText4.length); + + outputTexts.add(outputText4); + + // Compare results + for (int k = 0; k < outputTexts.size(); k++) { + if (!Arrays.equals(resultText, outputTexts.get(k))) { + out.println(" Testing: " + algo + "/" + mode + "/" + pad); + throw new RuntimeException( + "Compare value of resultText and combination " + k + + " are not same. Test failed."); + } + } + if (keyStrength > Cipher.getMaxAllowedKeyLength(algo)) { + throw new RuntimeException( + "Expected exception uncaught, keyStrength " + + keyStrength); + } + } catch (InvalidKeyException ex) { + if (keyStrength <= Cipher.getMaxAllowedKeyLength(algo)) { + out.println("Unexpected exception in " + algo + "/" + mode + + "/" + pad + " , KeySize " + keyStrength); + throw ex; + } + out.println("Caught InvalidKeyException as expected"); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/com/sun/crypto/provider/Cipher/TextLength/PBECipherWrapper.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,258 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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. + */ + +import java.security.AlgorithmParameters; +import java.security.InvalidAlgorithmParameterException; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.spec.AlgorithmParameterSpec; +import java.security.spec.InvalidKeySpecException; +import java.security.spec.InvalidParameterSpecException; +import java.util.Arrays; +import java.util.List; +import java.util.ArrayList; +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.ShortBufferException; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.PBEKeySpec; +import javax.crypto.spec.PBEParameterSpec; +import javax.crypto.spec.SecretKeySpec; + +/** + * PBECipherWrapper is the abstract class for all concrete PBE Cipher wrappers. + */ +public abstract class PBECipherWrapper { + + public static final int ITERATION_COUNT = 1000; + private final String algorithm; + private final byte[] salt; + protected SecretKey key; + protected Cipher ci; + protected String baseAlgo; + protected byte[] resultText = null; + protected AlgorithmParameterSpec aps = null; + + public PBECipherWrapper(String algorithm, int saltSize) { + this.algorithm = algorithm; + baseAlgo = algorithm.split("/")[0].toUpperCase(); + salt = generateSalt(saltSize); + } + + protected abstract void initCipher(int mode) throws InvalidKeyException, + InvalidAlgorithmParameterException, InvalidParameterSpecException; + + public void execute(int edMode, byte[] inputText) + throws InvalidAlgorithmParameterException, + InvalidParameterSpecException, IllegalBlockSizeException, + BadPaddingException, ShortBufferException, InvalidKeyException { + // Initialize + initCipher(edMode); + + // Generate a resultText using a single-part enc/dec + resultText = ci.doFinal(inputText); + + // Generate outputText for each multi-part en/de-cryption + /* Combination #1: + update(byte[], int, int) + doFinal(byte[], int, int) + */ + byte[] part11 = ci.update(inputText, 0, inputText.length); + byte[] part12 = ci.doFinal(); + byte[] outputText1 = new byte[part11.length + part12.length]; + System.arraycopy(part11, 0, outputText1, 0, part11.length); + System.arraycopy(part12, 0, outputText1, part11.length, part12.length); + + List<byte[]> outputTexts = new ArrayList<>(4); + outputTexts.add(outputText1); + + /* Combination #2: + update(byte[], int, int) + doFinal(byte[], int, int, byte[], int) + */ + byte[] part21 = ci.update(inputText, 0, inputText.length - 5); + byte[] part22 = new byte[ci.getOutputSize(inputText.length)]; + int len2 = ci.doFinal(inputText, inputText.length - 5, 5, part22, 0); + byte[] outputText2 = new byte[part21.length + len2]; + System.arraycopy(part21, 0, outputText2, 0, part21.length); + System.arraycopy(part22, 0, outputText2, part21.length, len2); + + outputTexts.add(outputText2); + + /* Combination #3: + update(byte[], int, int, byte[], int) + doFinal(byte[], int, int) + */ + byte[] part31 = new byte[ci.getOutputSize(inputText.length)]; + int len3 = ci.update(inputText, 0, inputText.length - 8, part31, 0); + byte[] part32 = ci.doFinal(inputText, inputText.length - 8, 8); + byte[] outputText3 = new byte[len3 + part32.length]; + System.arraycopy(part31, 0, outputText3, 0, len3); + System.arraycopy(part32, 0, outputText3, len3, part32.length); + + outputTexts.add(outputText3); + + /* Combination #4: + update(byte[], int, int, byte[], int) + doFinal(byte[], int, int, byte[], int) + */ + byte[] part41 = new byte[ci.getOutputSize(inputText.length)]; + int len4 = ci.update(inputText, 0, inputText.length - 8, part41, 0); + int rest4 = ci + .doFinal(inputText, inputText.length - 8, 8, part41, len4); + byte[] outputText4 = new byte[len4 + rest4]; + System.arraycopy(part41, 0, outputText4, 0, outputText4.length); + + outputTexts.add(outputText4); + + // Compare results + for (int k = 0; k < outputTexts.size(); k++) { + if (!Arrays.equals(resultText, outputTexts.get(k))) { + throw new RuntimeException( + "Compare value of resultText and combination " + k + + " are not same. Test failed."); + } + } + + } + + public final byte[] generateSalt(int numberOfBytes) { + byte[] aSalt = new byte[numberOfBytes]; + for (int i = 0; i < numberOfBytes; i++) { + aSalt[i] = (byte) (i & 0xff); + } + return aSalt; + } + + public byte[] getResult() { + return resultText; + } + + public String getAlgorithm() { + return algorithm; + } + + public byte[] getSalt() { + return salt; + } + + /** + * Wrapper class to test a given SecretKeyFactory.PBKDF2 algorithm. + */ + public static class PBKDF2 extends PBECipherWrapper { + + private static final int PBKDF2_SALT_SIZE = 64; + private static final int CIPHER_KEY_SIZE = 128; + private static final String CIPHER_TRANSFORMATION = "AES/CBC/PKCS5Padding"; + private static final String KEY_ALGORITHM = "AES"; + private byte[] iv = null; + + public PBKDF2(String algo, String passwd) + throws InvalidKeySpecException, NoSuchAlgorithmException, + NoSuchPaddingException { + super(algo, PBKDF2_SALT_SIZE); + + ci = Cipher.getInstance(CIPHER_TRANSFORMATION); + + PBEKeySpec pbeKeySpec = new PBEKeySpec(passwd.toCharArray(), getSalt(), + ITERATION_COUNT, CIPHER_KEY_SIZE); + SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(algo); + key = keyFactory.generateSecret(pbeKeySpec); + } + + @Override + protected void initCipher(int mode) throws InvalidKeyException, + InvalidAlgorithmParameterException, InvalidParameterSpecException { + if (Cipher.ENCRYPT_MODE == mode) { + ci.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key.getEncoded(), + KEY_ALGORITHM)); + iv = ci.getParameters().getParameterSpec(IvParameterSpec.class) + .getIV(); + } else { + ci.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key.getEncoded(), + KEY_ALGORITHM), new IvParameterSpec(iv)); + } + } + } + + /** + * Wrapper class to test a given AES-based PBE algorithm. + */ + public static class AES extends PBECipherWrapper { + + private AlgorithmParameters pbeParams; + + public AES(String algo, String passwd) + throws NoSuchAlgorithmException, NoSuchPaddingException, + InvalidKeySpecException { + super(algo, 0); + + ci = Cipher.getInstance(algo); + + SecretKeyFactory skf = SecretKeyFactory.getInstance(algo); + key = skf.generateSecret(new PBEKeySpec(passwd.toCharArray())); + } + + @Override + protected void initCipher(int mode) throws InvalidKeyException, + InvalidAlgorithmParameterException, InvalidParameterSpecException { + if (Cipher.ENCRYPT_MODE == mode) { + ci.init(Cipher.ENCRYPT_MODE, key); + pbeParams = ci.getParameters(); + } else { + ci.init(Cipher.DECRYPT_MODE, key, pbeParams); + } + } + } + + /** + * Wrapper class to test a given PBE algorithm. + */ + public static class Legacy extends PBECipherWrapper { + + private static final int PBE_SALT_SIZE = 8; + + public Legacy(String algo, String passwd) + throws NoSuchAlgorithmException, NoSuchPaddingException, + InvalidKeySpecException { + super(algo, PBE_SALT_SIZE); + + SecretKeyFactory skf = SecretKeyFactory.getInstance(algo.split("/")[0]); + key = skf.generateSecret(new PBEKeySpec(passwd.toCharArray())); + + aps = new PBEParameterSpec(getSalt(), ITERATION_COUNT); + + ci = Cipher.getInstance(algo); + } + + @Override + protected void initCipher(int mode) throws InvalidKeyException, + InvalidAlgorithmParameterException, InvalidParameterSpecException { + ci.init(mode, key, aps); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/com/sun/crypto/provider/Cipher/TextLength/TestCipherTextLength.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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. + */ + +import static java.lang.System.out; + +import java.security.NoSuchAlgorithmException; +import java.security.spec.InvalidKeySpecException; +import java.util.Arrays; +import javax.crypto.Cipher; +import javax.crypto.NoSuchPaddingException; + +/* + * @test + * @bug 8048601 + * @summary Performs multiple-part encryption/decryption depending on the + * specified encryption mode and check if the results obtained by + * different ways are the same. + */ +public class TestCipherTextLength { + + /* Algorithms tested by DESCipherWrapper */ + private static final String[] DES_ALGORITHMS = {"DES", "DESede", + "Blowfish"}; + private static final String[] DES_MODES = {"ECB", "CBC", "PCBC"}; + private static final String[] DES_PADDING = {"PKCS5Padding"}; + + /* Algorithms tested by PBECipherWrapper */ + private static final String[] PBE_ALGORITHMS = {"PBEWithMD5AndDES", + "PBEWithMD5AndDES/CBC/PKCS5Padding", "PBEWithMD5ANDTripleDES", + "PBEWithMD5AndTripleDES/CBC/PKCS5Padding", "PBEwithSHA1AndDESede", + "PBEwithSHA1AndDESede/CBC/PKCS5Padding", "PBEwithSHA1AndRC2_40", + "PBEwithSHA1Andrc2_40/CBC/PKCS5Padding", "PBEWithSHA1AndRC2_128", + "PBEWithSHA1andRC2_128/CBC/PKCS5Padding", "PBEWithSHA1AndRC4_40", + "PBEWithsha1AndRC4_40/ECB/NoPadding", "PBEWithSHA1AndRC4_128", + "PBEWithSHA1AndRC4_128/ECB/NoPadding", "PBEWithHmacSHA1AndAES_128", + "PBEWithHmacSHA224AndAES_128", "PBEWithHmacSHA256AndAES_128", + "PBEWithHmacSHA384AndAES_128", "PBEWithHmacSHA512AndAES_128", + "PBEWithHmacSHA1AndAES_256", "PBEWithHmacSHA224AndAES_256", + "PBEWithHmacSHA256AndAES_256", "PBEWithHmacSHA384AndAES_256", + "PBEWithHmacSHA512AndAES_256", "PBKDF2WithHmacSHA1", + "PBKDF2WithHmacSHA224", "PBKDF2WithHmacSHA256", + "PBKDF2WithHmacSHA384", "PBKDF2WithHmacSHA512"}; + private static final String PBE_PASSWORD = "Hush, it's a secret!!"; + + // Algorithm tested by PBKDF2Wrappter + private static final String PBKDF2 = "PBKDF2"; + + // Algorithm tested by AESPBEWrapper + private static final String AES = "AES"; + + public static void main(String[] args) throws Exception { + byte[] plainText = new byte[64]; + for (int i = 0; i < 64; i++) { + plainText[i] = (byte) (i & 0xff); + } + + new TestCipherTextLength().runAll(plainText); + } + + public void runAll(byte[] plainText) throws Exception { + + // Testing DES/Blowfish Cipher + for (String algorithm : DES_ALGORITHMS) { + for (String desMode : DES_MODES) { + for (String padding : DES_PADDING) { + out.println("=>Testing: " + algorithm + "/" + desMode + + "/" + padding); + DESCipherWrapper desCi = new DESCipherWrapper(algorithm, + desMode, padding); + desCi.execute(Cipher.ENCRYPT_MODE, plainText); + desCi.execute(Cipher.DECRYPT_MODE, desCi.getResult()); + if (!Arrays.equals(plainText, desCi.getResult())) { + throw new RuntimeException( + "Plain and recovered texts are not same for:" + + algorithm + "/" + desMode + "/" + + padding); + } + } + } + } + + // Testing PBE Cipher + for (String algorithm : PBE_ALGORITHMS) { + int maxKeyLen = Cipher.getMaxAllowedKeyLength(algorithm); + boolean isUnlimited = maxKeyLen == Integer.MAX_VALUE; + if (!isUnlimited + && (algorithm.contains("TripleDES") || algorithm + .contains("AES_256"))) { + out.println("Test " + algorithm + " will be ignored"); + continue; + } + + out.println("=>Testing: " + algorithm); + PBECipherWrapper pbeCi = createWrapper(algorithm, PBE_PASSWORD); + pbeCi.execute(Cipher.ENCRYPT_MODE, plainText); + pbeCi.execute(Cipher.DECRYPT_MODE, pbeCi.getResult()); + if (!Arrays.equals(plainText, pbeCi.getResult())) { + throw new RuntimeException( + "Plain and recovered texts are not same for:" + + algorithm); + } + } + } + + private PBECipherWrapper createWrapper(String algo, String passwd) + throws InvalidKeySpecException, NoSuchAlgorithmException, + NoSuchPaddingException { + if (algo.contains(PBKDF2)) { + return new PBECipherWrapper.PBKDF2(algo, passwd); + } else if (algo.contains(AES)) { + return new PBECipherWrapper.AES(algo, passwd); + } else { + return new PBECipherWrapper.Legacy(algo, passwd); + } + } +}
--- a/jdk/test/com/sun/crypto/provider/Mac/Utils.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/com/sun/crypto/provider/Mac/Utils.java Mon Sep 07 13:28:41 2015 -0700 @@ -76,4 +76,4 @@ interface MacTest { void doTest(String alg) throws Exception; -} \ No newline at end of file +}
--- a/jdk/test/com/sun/jdi/InterfaceMethodsTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/com/sun/jdi/InterfaceMethodsTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -442,6 +442,3 @@ } } } - - -
--- a/jdk/test/com/sun/jdi/ShellScaffold.sh Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/com/sun/jdi/ShellScaffold.sh Mon Sep 07 13:28:41 2015 -0700 @@ -1215,5 +1215,3 @@ # Don't know how this arises debuggeeFailIfPresent "Internal exception" } - -
--- a/jdk/test/com/sun/jmx/remote/NotificationMarshalVersions/Client/ConfigKey.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/com/sun/jmx/remote/NotificationMarshalVersions/Client/ConfigKey.java Mon Sep 07 13:28:41 2015 -0700 @@ -23,4 +23,4 @@ public enum ConfigKey { CONSTANT3, CONSTANT2; -} \ No newline at end of file +}
--- a/jdk/test/com/sun/jmx/remote/NotificationMarshalVersions/Server/ConfigKey.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/com/sun/jmx/remote/NotificationMarshalVersions/Server/ConfigKey.java Mon Sep 07 13:28:41 2015 -0700 @@ -23,4 +23,4 @@ public enum ConfigKey { CONSTANT1, CONSTANT2; -} \ No newline at end of file +}
--- a/jdk/test/com/sun/jmx/remote/NotificationMarshalVersions/Server/Ste.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/com/sun/jmx/remote/NotificationMarshalVersions/Server/Ste.java Mon Sep 07 13:28:41 2015 -0700 @@ -29,4 +29,4 @@ public void foo() { sendNotification(new TestNotification("test", this, count++)); } -} \ No newline at end of file +}
--- a/jdk/test/com/sun/jmx/remote/NotificationMarshalVersions/Server/SteMBean.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/com/sun/jmx/remote/NotificationMarshalVersions/Server/SteMBean.java Mon Sep 07 13:28:41 2015 -0700 @@ -23,4 +23,4 @@ public interface SteMBean { public void foo(); -} \ No newline at end of file +}
--- a/jdk/test/com/sun/security/auth/module/LdapLoginModule/CheckConfigs.policy Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/com/sun/security/auth/module/LdapLoginModule/CheckConfigs.policy Mon Sep 07 13:28:41 2015 -0700 @@ -7,5 +7,3 @@ //permission java.net.SocketPermission "*:636", "connect"; //permission javax.security.auth.AuthPermission "modifyPrincipals"; }; - -
--- a/jdk/test/java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Component/DimensionEncapsulation/DimensionEncapsulation.java Mon Sep 07 13:28:41 2015 -0700 @@ -212,4 +212,4 @@ throw new RuntimeException(e); } } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Component/InsetsEncapsulation/InsetsEncapsulation.java Mon Sep 07 13:28:41 2015 -0700 @@ -163,4 +163,4 @@ throw new RuntimeException(e); } } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java Mon Sep 07 13:28:41 2015 -0700 @@ -69,4 +69,4 @@ } }); } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Cursor/MultiResolutionCursorTest/MultiResolutionCursorTest.html Mon Sep 07 13:28:41 2015 -0700 @@ -29,4 +29,4 @@ <applet CODE="MultiResolutionCursorTest.class" WIDTH=300 HEIGHT=100></applet> <p> See the dialog box (usually in upper left corner) for instructions</p> </body> -</html> \ No newline at end of file +</html>
--- a/jdk/test/java/awt/FileDialog/ModalFocus/FileDialogModalFocusTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/FileDialog/ModalFocus/FileDialogModalFocusTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -134,4 +134,4 @@ throw new RuntimeException("file chooser is underneath"); } } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/Focus/6981400/Test3.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Focus/6981400/Test3.java Mon Sep 07 13:28:41 2015 -0700 @@ -135,5 +135,3 @@ } } } - -
--- a/jdk/test/java/awt/FontClass/LCDScale.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/FontClass/LCDScale.java Mon Sep 07 13:28:41 2015 -0700 @@ -79,5 +79,3 @@ } } } - -
--- a/jdk/test/java/awt/Frame/FramesGC/FramesGC.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Frame/FramesGC/FramesGC.java Mon Sep 07 13:28:41 2015 -0700 @@ -156,4 +156,4 @@ refs.add(new PhantomReference<Frame>(frame, que)); } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/Frame/MaximizedToUnmaximized/MaximizedToUnmaximized.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Frame/MaximizedToUnmaximized/MaximizedToUnmaximized.java Mon Sep 07 13:28:41 2015 -0700 @@ -76,4 +76,4 @@ frame.dispose(); } } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/MenuBar/RemoveHelpMenu/RemoveHelpMenu.java Mon Sep 07 13:28:41 2015 -0700 @@ -129,4 +129,4 @@ checkMenuCount(menuBar, 0); checkHelpMenu(helpMenu, false); } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/Mixing/JButtonInGlassPane.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Mixing/JButtonInGlassPane.java Mon Sep 07 13:28:41 2015 -0700 @@ -426,5 +426,3 @@ } }// TestDialog class - -
--- a/jdk/test/java/awt/Mixing/LWComboBox.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Mixing/LWComboBox.java Mon Sep 07 13:28:41 2015 -0700 @@ -421,5 +421,3 @@ } }// TestDialog class - -
--- a/jdk/test/java/awt/Mixing/MixingInHwPanel.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Mixing/MixingInHwPanel.java Mon Sep 07 13:28:41 2015 -0700 @@ -424,5 +424,3 @@ } }// TestDialog class - -
--- a/jdk/test/java/awt/Mixing/MixingOnShrinkingHWButton.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Mixing/MixingOnShrinkingHWButton.java Mon Sep 07 13:28:41 2015 -0700 @@ -425,5 +425,3 @@ } }// TestDialog class - -
--- a/jdk/test/java/awt/Mixing/NonOpaqueInternalFrame.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Mixing/NonOpaqueInternalFrame.java Mon Sep 07 13:28:41 2015 -0700 @@ -430,5 +430,3 @@ } }// TestDialog class - -
--- a/jdk/test/java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Mouse/MouseDragEvent/MouseDraggedTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -100,4 +100,4 @@ frame.add(panel, BorderLayout.CENTER); frame.setVisible(true); } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/MouseInfo/JContainerMousePositionTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/MouseInfo/JContainerMousePositionTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -144,5 +144,3 @@ frame1.setVisible(true); } } - -
--- a/jdk/test/java/awt/Robot/RobotWheelTest/RobotWheelTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Robot/RobotWheelTest/RobotWheelTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -80,4 +80,4 @@ } } } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/ScrollPane/bug8077409Test.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/ScrollPane/bug8077409Test.java Mon Sep 07 13:28:41 2015 -0700 @@ -112,4 +112,4 @@ } } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/TrayIcon/TrayIconPopup/TrayIconPopupTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/TrayIcon/TrayIconPopup/TrayIconPopupTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -148,4 +148,4 @@ "JPopupMenu shown and menu item selected using keyboard"); } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/Window/AlwaysOnTop/SyncAlwaysOnTopFieldTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -59,4 +59,4 @@ window.setVisible(true); return window; } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/applet/Applet/AppletFlipBuffer.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/applet/Applet/AppletFlipBuffer.java Mon Sep 07 13:28:41 2015 -0700 @@ -52,4 +52,4 @@ frame.dispose(); } } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/test.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/test.html Mon Sep 07 13:28:41 2015 -0700 @@ -41,4 +41,4 @@ <APPLET CODE="IOExceptionIfEncodedURLTest.class" WIDTH=200 HEIGHT=200></APPLET> </body> -</html> \ No newline at end of file +</html>
--- a/jdk/test/java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/datatransfer/ClipboardInterVMTest/ClipboardInterVMTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -168,4 +168,4 @@ } } } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/datatransfer/DataFlavor/XJavaUrlDataFlavorTest/XJavaUrlDataFlavorTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/datatransfer/DataFlavor/XJavaUrlDataFlavorTest/XJavaUrlDataFlavorTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -342,4 +342,4 @@ } } -}// TestDialog class \ No newline at end of file +}// TestDialog class
--- a/jdk/test/java/awt/datatransfer/MissedHtmlAndRtfBug/MyTransferable.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/datatransfer/MissedHtmlAndRtfBug/MyTransferable.java Mon Sep 07 13:28:41 2015 -0700 @@ -59,4 +59,4 @@ throw new UnsupportedFlavorException(flavor); } } -} \ No newline at end of file +}
--- a/jdk/test/java/awt/event/MouseEvent/CTORRestrictions/CTORRestrictions_Disable.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/event/MouseEvent/CTORRestrictions/CTORRestrictions_Disable.java Mon Sep 07 13:28:41 2015 -0700 @@ -120,5 +120,3 @@ frame.dispatchEvent( ( AWTEvent )meOld ); } } - -
--- a/jdk/test/java/awt/im/4490692/bug4490692.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/im/4490692/bug4490692.html Mon Sep 07 13:28:41 2015 -0700 @@ -59,5 +59,3 @@ <APPLET CODE="bug4490692.class" WIDTH=0 HEIGHT=0></APPLET> </body> </html> - -
--- a/jdk/test/java/awt/im/4959409/bug4959409.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/awt/im/4959409/bug4959409.html Mon Sep 07 13:28:41 2015 -0700 @@ -45,5 +45,3 @@ <APPLET CODE="bug4959409.class" WIDTH=0 HEIGHT=0></APPLET> </body> </html> - -
--- a/jdk/test/java/beans/README Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/beans/README Mon Sep 07 13:28:41 2015 -0700 @@ -73,4 +73,4 @@ If this object is not null it will be encoded and decoded. Also the object updating will be tested in this case. The test() method has a boolean parameter, -which indicates that the test should be started in secure context. \ No newline at end of file +which indicates that the test should be started in secure context.
--- a/jdk/test/java/beans/SimpleBeanInfo/LoadingStandardIcons/java.policy Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/beans/SimpleBeanInfo/LoadingStandardIcons/java.policy Mon Sep 07 13:28:41 2015 -0700 @@ -1,1 +1,1 @@ -; \ No newline at end of file +;
--- a/jdk/test/java/io/Serializable/evolution/AddedSuperClass/README Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/io/Serializable/evolution/AddedSuperClass/README Mon Sep 07 13:28:41 2015 -0700 @@ -12,6 +12,3 @@ rm A.class AddedSuperClass.class javac ReadAddedSuperClass2.java java ReadAddedSuperClass2 - - -
--- a/jdk/test/java/lang/ClassLoader/getdotresource.sh Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/lang/ClassLoader/getdotresource.sh Mon Sep 07 13:28:41 2015 -0700 @@ -44,5 +44,3 @@ # now start the test ${TESTJAVA}/bin/java ${TESTVMOPTS} -cp ${TESTSRC}${FS}resource.jar${PS}${TESTCLASSES} GetDotResource - -
--- a/jdk/test/java/lang/SecurityManager/RestrictedPackages.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/lang/SecurityManager/RestrictedPackages.java Mon Sep 07 13:28:41 2015 -0700 @@ -77,7 +77,8 @@ "jdk.nashorn.internal.", "jdk.nashorn.tools.", "jdk.tools.jimage.", - "com.sun.activation.registries." + "com.sun.activation.registries.", + "com.sun.java.accessibility.util.internal." }; /* @@ -126,6 +127,9 @@ if (OS_NAME.contains("OS X")) { pkgs.add("apple."); // add apple package for OS X } + if (OS_NAME.contains("Win")) { + pkgs.add("com.sun.java.accessibility.internal."); // add Win only package + } return pkgs; }
--- a/jdk/test/java/lang/management/MemoryMXBean/LowMemoryTest2.sh Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/lang/management/MemoryMXBean/LowMemoryTest2.sh Mon Sep 07 13:28:41 2015 -0700 @@ -69,5 +69,3 @@ then echo "$failures test(s) failed"; else echo "All test(s) passed"; fi exit $failures - -
--- a/jdk/test/java/net/SocketPermission/policy Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/net/SocketPermission/policy Mon Sep 07 13:28:41 2015 -0700 @@ -1,3 +1,3 @@ grant { permission java.security.AllPermission; -}; \ No newline at end of file +};
--- a/jdk/test/java/nio/channels/SocketChannel/Open.sh Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/nio/channels/SocketChannel/Open.sh Mon Sep 07 13:28:41 2015 -0700 @@ -33,6 +33,3 @@ * ) echo "unrecognized system: $OS" ;; esac - - -
--- a/jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/README Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/README Mon Sep 07 13:28:41 2015 -0700 @@ -31,5 +31,3 @@ (c) Execute the make script :- Solaris: gnumake all Linux: gmake all - -
--- a/jdk/test/java/nio/file/Files/probeContentType/ParallelProbes.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/nio/file/Files/probeContentType/ParallelProbes.java Mon Sep 07 13:28:41 2015 -0700 @@ -21,17 +21,18 @@ * questions. */ -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; - /* @test * @summary Test probing content type simultaneously from multiple threads. * @requires (os.family == "linux") | (os.family == "solaris") * @build ParallelProbes SimpleFileTypeDetector * @run main/othervm ParallelProbes 10 */ + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; + public class ParallelProbes { private static final int REPEATS = 1000;
--- a/jdk/test/java/rmi/registry/readTest/readTest.sh Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/rmi/registry/readTest/readTest.sh Mon Sep 07 13:28:41 2015 -0700 @@ -125,5 +125,3 @@ fi rm -rf OUT.TXT ${RMIREG_OUT} rmi_tmp exit ${exitCode} - -
--- a/jdk/test/java/security/KeyStore/PKCS12/README Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/security/KeyStore/PKCS12/README Mon Sep 07 13:28:41 2015 -0700 @@ -25,4 +25,4 @@ 3. Import certificate <JAVA-HOME>/bin/keytool -import -alias pkcs12test -keystore ks-pkcs.data --storepass storepass -file pkcs12testCA.cer.data \ No newline at end of file +-storepass storepass -file pkcs12testCA.cer.data
--- a/jdk/test/java/security/SignedObject/Copy.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/security/SignedObject/Copy.java Mon Sep 07 13:28:41 2015 -0700 @@ -119,5 +119,3 @@ } } } - -
--- a/jdk/test/java/util/AbstractCollection/ToArrayTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/util/AbstractCollection/ToArrayTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -211,5 +211,3 @@ else {System.out.println(x + " not equal to " + y); fail(); } } } - -
--- a/jdk/test/java/util/Arrays/SetAllTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/util/Arrays/SetAllTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -278,4 +278,4 @@ // expected } } -} \ No newline at end of file +}
--- a/jdk/test/java/util/Locale/bug4123285.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/util/Locale/bug4123285.html Mon Sep 07 13:28:41 2015 -0700 @@ -1,1 +1,1 @@ -<APPLET CODE="bug4123285.class" CODEBASE="./" WIDTH="250" HEIGHT="325" ALIGN="TOP"></APPLET> \ No newline at end of file +<APPLET CODE="bug4123285.class" CODEBASE="./" WIDTH="250" HEIGHT="325" ALIGN="TOP"></APPLET>
--- a/jdk/test/java/util/concurrent/CompletableFuture/ThenComposeExceptionTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/util/concurrent/CompletableFuture/ThenComposeExceptionTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -120,4 +120,4 @@ Assert.assertTrue(eOnWhenComplete.get() instanceof CompletionException, "Incorrect exception passed to whenComplete: " + eOnWhenComplete.get()); } -} \ No newline at end of file +}
--- a/jdk/test/java/util/logging/LogManager/Configuration/TestConfigurationLock.properties Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/util/logging/LogManager/Configuration/TestConfigurationLock.properties Mon Sep 07 13:28:41 2015 -0700 @@ -18,5 +18,3 @@ foo.bar.l10.level = INFO foo.bar.l100.level = INFO foo.bar.l1000.level = INFO - -
--- a/jdk/test/java/util/stream/bootlib/java/util/stream/DefaultMethodStreams.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/java/util/stream/bootlib/java/util/stream/DefaultMethodStreams.java Mon Sep 07 13:28:41 2015 -0700 @@ -981,4 +981,4 @@ s.close(); } } -} \ No newline at end of file +}
--- a/jdk/test/javax/crypto/SecretKeyFactory/PBKDF2TranslateTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/crypto/SecretKeyFactory/PBKDF2TranslateTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -267,4 +267,4 @@ } } -} \ No newline at end of file +}
--- a/jdk/test/javax/imageio/plugins/shared/CanWriteSequence.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/imageio/plugins/shared/CanWriteSequence.java Mon Sep 07 13:28:41 2015 -0700 @@ -75,4 +75,4 @@ writer.dispose(); ios.close(); } -} \ No newline at end of file +}
--- a/jdk/test/javax/management/MustBeValidMBeanInfo/logging.properties Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/management/MustBeValidMBeanInfo/logging.properties Mon Sep 07 13:28:41 2015 -0700 @@ -11,4 +11,4 @@ java.util.logging.ConsoleHandler.level = FINEST java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter -javax.management.misc.level = FINEST \ No newline at end of file +javax.management.misc.level = FINEST
--- a/jdk/test/javax/management/modelmbean/SimpleModelMBean/logging.properties Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/management/modelmbean/SimpleModelMBean/logging.properties Mon Sep 07 13:28:41 2015 -0700 @@ -11,4 +11,4 @@ java.util.logging.ConsoleHandler.level = FINEST java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter -javax.management.misc.level = FINEST \ No newline at end of file +javax.management.misc.level = FINEST
--- a/jdk/test/javax/security/auth/Subject/doAs/policy.expect.ace Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/security/auth/Subject/doAs/policy.expect.ace Mon Sep 07 13:28:41 2015 -0700 @@ -24,4 +24,4 @@ grant codeBase "file:ReadPropertyNegativeAction.jar" Principal javax.security.auth.x500.X500Principal "cn=Duke" { permission java.security.AllPermission; -}; \ No newline at end of file +};
--- a/jdk/test/javax/security/auth/Subject/doAs/policy.one.principal Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/security/auth/Subject/doAs/policy.one.principal Mon Sep 07 13:28:41 2015 -0700 @@ -33,4 +33,4 @@ permission javax.security.auth.AuthPermission "getSubject"; permission javax.security.auth.AuthPermission "doAs"; permission java.util.PropertyPermission "java.class.path", "read"; -}; \ No newline at end of file +};
--- a/jdk/test/javax/security/auth/Subject/doAs/policy.two.principals Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/security/auth/Subject/doAs/policy.two.principals Mon Sep 07 13:28:41 2015 -0700 @@ -34,4 +34,4 @@ permission javax.security.auth.AuthPermission "getSubject"; permission javax.security.auth.AuthPermission "doAs"; permission java.util.PropertyPermission "java.class.path", "read"; -}; \ No newline at end of file +};
--- a/jdk/test/javax/security/auth/login/LoginContext/shared.config Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/security/auth/login/LoginContext/shared.config Mon Sep 07 13:28:41 2015 -0700 @@ -1,4 +1,4 @@ SharedState { SharedState$FirstModule required; SharedState$SecondModule required; -}; \ No newline at end of file +};
--- a/jdk/test/javax/sound/midi/Devices/InitializationHang.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/sound/midi/Devices/InitializationHang.java Mon Sep 07 13:28:41 2015 -0700 @@ -28,6 +28,7 @@ /** * @test * @bug 8068412 + * @key headful * @author Sergey Bylokhov */ public final class InitializationHang {
--- a/jdk/test/javax/sound/midi/Gervill/ModelStandardIndexedDirector/ModelStandardIndexedDirectorTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/sound/midi/Gervill/ModelStandardIndexedDirector/ModelStandardIndexedDirectorTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -184,5 +184,3 @@ } } - -
--- a/jdk/test/javax/swing/JColorChooser/8065098/bug8065098.html Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/JColorChooser/8065098/bug8065098.html Mon Sep 07 13:28:41 2015 -0700 @@ -37,4 +37,4 @@ <applet width="500" height="1" code="bug8065098.class"> </applet> </body> -</html> \ No newline at end of file +</html>
--- a/jdk/test/javax/swing/JFileChooser/8062561/security2.policy Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/JFileChooser/8062561/security2.policy Mon Sep 07 13:28:41 2015 -0700 @@ -1,1 +1,1 @@ -// Autogenerated file \ No newline at end of file +// Autogenerated file
--- a/jdk/test/javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/JFileChooser/FileFilterDescription/FileFilterDescription.java Mon Sep 07 13:28:41 2015 -0700 @@ -82,4 +82,4 @@ return "CustomFileFilter"; } } -} \ No newline at end of file +}
--- a/jdk/test/javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java Mon Sep 07 13:28:41 2015 -0700 @@ -195,4 +195,4 @@ } System.out.println("Test passed"); } -} \ No newline at end of file +}
--- a/jdk/test/javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java Mon Sep 07 13:28:41 2015 -0700 @@ -132,4 +132,4 @@ throw new RuntimeException(e); } } -} \ No newline at end of file +}
--- a/jdk/test/javax/swing/JOptionPane/8081019/bug8081019.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/JOptionPane/8081019/bug8081019.java Mon Sep 07 13:28:41 2015 -0700 @@ -103,4 +103,4 @@ throw new RuntimeException("Exception in the output!"); } } -} \ No newline at end of file +}
--- a/jdk/test/javax/swing/JTextArea/4697612/bug4697612.txt Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/JTextArea/4697612/bug4697612.txt Mon Sep 07 13:28:41 2015 -0700 @@ -219,5 +219,3 @@ Copyright 2003 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. All rights reserved. - -
--- a/jdk/test/javax/swing/JTree/8072676/TreeClipTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/JTree/8072676/TreeClipTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -94,4 +94,4 @@ System.out.println("Passed."); } } -} \ No newline at end of file +}
--- a/jdk/test/javax/swing/JTree/DnD/LastNodeLowerHalfDrop.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/JTree/DnD/LastNodeLowerHalfDrop.java Mon Sep 07 13:28:41 2015 -0700 @@ -381,4 +381,4 @@ return nodesFlavor.equals(flavor); } } -} \ No newline at end of file +}
--- a/jdk/test/javax/swing/UIDefaults/7180976/Pending.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/UIDefaults/7180976/Pending.java Mon Sep 07 13:28:41 2015 -0700 @@ -47,4 +47,4 @@ UIManager.get("foobar"); passed = true; } -} \ No newline at end of file +}
--- a/jdk/test/javax/swing/plaf/basic/BasicLabelUI/bug7172652.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/plaf/basic/BasicLabelUI/bug7172652.java Mon Sep 07 13:28:41 2015 -0700 @@ -169,4 +169,4 @@ frame.setVisible(true); } -} \ No newline at end of file +}
--- a/jdk/test/javax/swing/text/View/8015853/bug8015853.txt Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/text/View/8015853/bug8015853.txt Mon Sep 07 13:28:41 2015 -0700 @@ -64,4 +64,4 @@ frame.add(editorPane); frame.setVisible(<b>true</b>); } -} \ No newline at end of file +}
--- a/jdk/test/javax/swing/text/html/8005391/bug8005391.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/text/html/8005391/bug8005391.java Mon Sep 07 13:28:41 2015 -0700 @@ -58,4 +58,4 @@ } } } -} \ No newline at end of file +}
--- a/jdk/test/javax/swing/text/html/HTMLDocument/8058120/bug8058120.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/swing/text/html/HTMLDocument/8058120/bug8058120.java Mon Sep 07 13:28:41 2015 -0700 @@ -109,5 +109,3 @@ frame.setVisible(true); } } - -
--- a/jdk/test/javax/xml/bind/xjc/8032884/optional-property-schema.xsd Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/xml/bind/xjc/8032884/optional-property-schema.xsd Mon Sep 07 13:28:41 2015 -0700 @@ -11,4 +11,4 @@ <xs:element name="foo" type="xs:int" minOccurs="0"/> </xs:sequence> </xs:complexType> -</xs:schema> \ No newline at end of file +</xs:schema>
--- a/jdk/test/javax/xml/jaxp/testng/validation/jdk8036951/idc.xml Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/xml/jaxp/testng/validation/jdk8036951/idc.xml Mon Sep 07 13:28:41 2015 -0700 @@ -4,4 +4,4 @@ <item uniqueAttr="ONE">2</item> <item uniqueAttr="TWO">2</item> <itemRef>3</itemRef> -</itemList> \ No newline at end of file +</itemList>
--- a/jdk/test/javax/xml/jaxp/testng/validation/jdk8036951/idc.xsd Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/xml/jaxp/testng/validation/jdk8036951/idc.xsd Mon Sep 07 13:28:41 2015 -0700 @@ -38,4 +38,4 @@ </xsd:simpleContent> </xsd:complexType> -</xsd:schema> \ No newline at end of file +</xsd:schema>
--- a/jdk/test/javax/xml/jaxp/testng/validation/jdk8036951/simpleType.xml Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/xml/jaxp/testng/validation/jdk8036951/simpleType.xml Mon Sep 07 13:28:41 2015 -0700 @@ -1,2 +1,2 @@ <?xml version="1.0"?> -<S>-12345</S> \ No newline at end of file +<S>-12345</S>
--- a/jdk/test/javax/xml/jaxp/testng/validation/jdk8036951/xerces1128_1.xml Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/xml/jaxp/testng/validation/jdk8036951/xerces1128_1.xml Mon Sep 07 13:28:41 2015 -0700 @@ -2,4 +2,4 @@ <A xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <B /> <C xsi:type="X" /> -</A> \ No newline at end of file +</A>
--- a/jdk/test/javax/xml/jaxp/testng/validation/jdk8036951/xerces1128_2.xml Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/xml/jaxp/testng/validation/jdk8036951/xerces1128_2.xml Mon Sep 07 13:28:41 2015 -0700 @@ -2,4 +2,4 @@ <A xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <B xsi:type="X" /> <C /> -</A> \ No newline at end of file +</A>
--- a/jdk/test/javax/xml/jaxp/testng/validation/jdk8037819/unparsedEntity.dtd Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/xml/jaxp/testng/validation/jdk8037819/unparsedEntity.dtd Mon Sep 07 13:28:41 2015 -0700 @@ -1,2 +1,2 @@ <!NOTATION myNotation SYSTEM "somethingElse" > -<!ENTITY myUnparsedEntity SYSTEM "something" NDATA myNotation > \ No newline at end of file +<!ENTITY myUnparsedEntity SYSTEM "something" NDATA myNotation >
--- a/jdk/test/javax/xml/jaxp/transform/8004476/tokenize.xml Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/javax/xml/jaxp/transform/8004476/tokenize.xml Mon Sep 07 13:28:41 2015 -0700 @@ -4,4 +4,4 @@ <b>Is this EXSLT? No. no</b> <c>Is this EXSLT? No. no</c> </a> -</html> \ No newline at end of file +</html>
--- a/jdk/test/jdk/nio/zipfs/ZipFSTester.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/jdk/nio/zipfs/ZipFSTester.java Mon Sep 07 13:28:41 2015 -0700 @@ -26,6 +26,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.URI; +import java.net.URLDecoder; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.channels.SeekableByteChannel; @@ -69,6 +70,7 @@ * @test * @bug 6990846 7009092 7009085 7015391 7014948 7005986 7017840 7007596 * 7157656 8002390 7012868 7012856 8015728 8038500 8040059 8069211 + * 8131067 * @summary Test Zip filesystem provider * @run main ZipFSTester * @run main/othervm/java.security.policy=test.policy ZipFSTester @@ -91,6 +93,7 @@ } testTime(jarFile); test8069211(); + test8131067(); } static void test0(FileSystem fs) @@ -441,11 +444,34 @@ } } + static void test8131067() throws Exception { + Map<String, Object> env = new HashMap<String, Object>(); + env.put("create", "true"); + + // file name with space character for URI to quote it + File tmp = File.createTempFile("test zipfs", "zip"); + tmp.delete(); // we need a clean path, no file + Path fsPath = tmp.toPath(); + try (FileSystem fs = newZipFileSystem(fsPath, env);) { + Files.write(fs.getPath("/foo"), "hello".getBytes()); + URI fooUri = fs.getPath("/foo").toUri(); + if (!Arrays.equals(Files.readAllBytes(Paths.get(fooUri)), + "hello".getBytes())) { + throw new RuntimeException("entry close() failed"); + } + } finally { + Files.delete(fsPath); + } + } + private static FileSystem newZipFileSystem(Path path, Map<String, ?> env) throws Exception { + // Use URLDecoder (for test only) to remove the double escaped space + // character return FileSystems.newFileSystem( - new URI("jar", path.toUri().toString(), null), env, null); + new URI("jar", URLDecoder.decode(path.toUri().toString(), "utf8"), + null), env, null); } private static Path getTempPath() throws IOException
--- a/jdk/test/sun/jvmstat/testlibrary/utils.sh Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/jvmstat/testlibrary/utils.sh Mon Sep 07 13:28:41 2015 -0700 @@ -221,5 +221,3 @@ fi echo "${port1}" } - -
--- a/jdk/test/sun/management/jmxremote/bootstrap/PasswordFilePermissionTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/management/jmxremote/bootstrap/PasswordFilePermissionTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -57,5 +57,3 @@ } } - -
--- a/jdk/test/sun/management/jmxremote/bootstrap/SSLConfigFilePermissionTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/management/jmxremote/bootstrap/SSLConfigFilePermissionTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -61,5 +61,3 @@ test.runTest(args); } } - -
--- a/jdk/test/sun/management/jmxremote/startstop/JMXStatusPerfCountersTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/management/jmxremote/startstop/JMXStatusPerfCountersTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -186,4 +186,4 @@ private Properties getCounters() throws IOException, InterruptedException { return jcmd.perfCounters("sun\\.management\\.JMXConnectorServer\\..*"); } -} \ No newline at end of file +}
--- a/jdk/test/sun/management/jmxremote/startstop/REMOTE_TESTING.txt Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/management/jmxremote/startstop/REMOTE_TESTING.txt Mon Sep 07 13:28:41 2015 -0700 @@ -15,5 +15,3 @@ 6. connect jconsole to host2:50234 Make sure jconsole works Make sure only host2.50234 and host2.50235 appears in tcpdump output. - -
--- a/jdk/test/sun/management/windows/README Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/management/windows/README Mon Sep 07 13:28:41 2015 -0700 @@ -26,5 +26,3 @@ Note that a 32-bit version of revokeall.exe is checked into SCCS - this 32-bit application is also used when running on 64-bit versions of Windows (AMD64 and IA64). - -
--- a/jdk/test/sun/net/www/http/HttpClient/IsKeepingAlive.policy Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/net/www/http/HttpClient/IsKeepingAlive.policy Mon Sep 07 13:28:41 2015 -0700 @@ -45,5 +45,3 @@ permission java.util.PropertyPermission "java.vm.vendor", "read"; permission java.util.PropertyPermission "java.vm.name", "read"; }; - -
--- a/jdk/test/sun/net/www/http/HttpClient/OpenServer.policy Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/net/www/http/HttpClient/OpenServer.policy Mon Sep 07 13:28:41 2015 -0700 @@ -45,5 +45,3 @@ permission java.util.PropertyPermission "java.vm.vendor", "read"; permission java.util.PropertyPermission "java.vm.name", "read"; }; - -
--- a/jdk/test/sun/net/www/protocol/http/spnegoTest Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/net/www/protocol/http/spnegoTest Mon Sep 07 13:28:41 2015 -0700 @@ -205,4 +205,4 @@ rm err.log rm out.log -exit 0 \ No newline at end of file +exit 0
--- a/jdk/test/sun/security/ec/SignatureOffsets.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/ec/SignatureOffsets.java Mon Sep 07 13:28:41 2015 -0700 @@ -49,4 +49,4 @@ InvalidKeyException, SignatureException { Offsets.main(args); } -} \ No newline at end of file +}
--- a/jdk/test/sun/security/krb5/IPv6.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/krb5/IPv6.java Mon Sep 07 13:28:41 2015 -0700 @@ -127,5 +127,3 @@ } } } - -
--- a/jdk/test/sun/security/mscapi/KeytoolChangeAlias.sh Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/mscapi/KeytoolChangeAlias.sh Mon Sep 07 13:28:41 2015 -0700 @@ -132,6 +132,3 @@ exit 0 ;; esac - - -
--- a/jdk/test/sun/security/mscapi/SignatureOffsets.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/mscapi/SignatureOffsets.java Mon Sep 07 13:28:41 2015 -0700 @@ -50,4 +50,4 @@ InvalidKeyException, SignatureException { Offsets.main(args); } -} \ No newline at end of file +}
--- a/jdk/test/sun/security/pkcs11/Provider/Absolute.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/pkcs11/Provider/Absolute.java Mon Sep 07 13:28:41 2015 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,40 +22,31 @@ */ /** * @test - * @bug 7003952 + * @bug 7003952 7191662 + * @library .. * @summary load DLLs and launch executables using fully qualified path */ import java.security.*; -import java.lang.reflect.*; public class Absolute { public static void main(String[] args) throws Exception { - Constructor cons; - try { - Class clazz = Class.forName("sun.security.pkcs11.SunPKCS11"); - cons = clazz.getConstructor(new Class[] {String.class}); - } catch (Exception ex) { - System.out.println("Skipping test - no PKCS11 provider available"); - return; - } - String config = System.getProperty("test.src", ".") + "/Absolute.cfg"; try { - Object obj = cons.newInstance(new Object[] {config}); - } catch (InvocationTargetException ite) { - Throwable cause = ite.getCause(); - if (cause instanceof ProviderException) { - Throwable cause2 = cause.getCause(); - if ((cause2 == null) || - !cause2.getMessage().startsWith( - "Absolute path required for library value:")) { - // rethrow - throw (ProviderException) cause; - } - System.out.println("Caught expected Exception: \n" + cause2); + Provider p = PKCS11Test.getSunPKCS11(config); + if (p == null) { + System.out.println("Skipping test - no PKCS11 provider available"); + } + } catch (InvalidParameterException ipe) { + Throwable ex = ipe.getCause(); + if (ex.getMessage().indexOf( + "Absolute path required for library value:") != -1) { + System.out.println("Test Passed: expected exception thrown"); + } else { + // rethrow + throw ipe; } } }
--- a/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java Mon Sep 07 13:28:41 2015 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,44 +33,52 @@ public class ConfigShortPath { - private static final String[] configNames = { - "csp.cfg", "cspPlus.cfg", "cspSpace.cfg", "cspQuotedPath.cfg" + private static final String[] winConfigNames = { + "csp.cfg", "cspSpace.cfg", "cspQuotedPath.cfg" + }; + private static final String[] solConfigNames = { + "cspPlus.cfg" }; public static void main(String[] args) throws Exception { - Constructor cons = null; - try { - Class clazz = Class.forName("sun.security.pkcs11.SunPKCS11"); - cons = clazz.getConstructor(String.class); - } catch (Exception ex) { - System.out.println("Skipping test - no PKCS11 provider available"); - return; + Provider p = Security.getProvider("SunPKCS11"); + if (p == null) { + // re-try w/ SunPKCS11-Solaris + p = Security.getProvider("SunPKCS11-Solaris"); + if (p == null) { + System.out.println("Skipping test - no PKCS11 provider available"); + return; + } } + + String osInfo = System.getProperty("os.name", ""); + String[] configNames = (osInfo.contains("Windows")? + winConfigNames : solConfigNames); + String testSrc = System.getProperty("test.src", "."); for (int i = 0; i < configNames.length; i++) { String configFile = testSrc + File.separator + configNames[i]; System.out.println("Testing against " + configFile); try { - Object obj = cons.newInstance(configFile); - } catch (InvocationTargetException ite) { - Throwable cause = ite.getCause(); - System.out.println(cause); - if (cause instanceof ProviderException) { - while ((cause = cause.getCause()) != null) { - System.out.println(cause); - String causeMsg = cause.getMessage(); - // Indicate failure if due to parsing config - if (causeMsg.indexOf("Unexpected") != -1) { - throw (ProviderException) cause; - } + p.configure(configFile); + } catch (InvalidParameterException ipe) { + ipe.printStackTrace(); + Throwable cause = ipe.getCause(); + // Indicate failure if due to parsing config + if (cause.getClass().getName().equals + ("sun.security.pkcs11.ConfigurationException")) { + // Error occurred during parsing + if (cause.getMessage().indexOf("Unexpected") != -1) { + throw (ProviderException) cause; } - // Consider the test passes if the exception is - // thrown after parsing, i.e. due to the absolute - // path requirement or the non-existent path. - } else { - // unexpected exception - throw new RuntimeException("Unexpected Exception", cause); + } + } catch (ProviderException pe) { + pe.printStackTrace(); + if (pe.getCause() instanceof IOException) { + // Thrown when the directory does not exist which is ok + System.out.println("Pass: config parsed ok"); + continue; } } }
--- a/jdk/test/sun/security/pkcs11/Provider/cspSpace.cfg Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/pkcs11/Provider/cspSpace.cfg Mon Sep 07 13:28:41 2015 -0700 @@ -1,5 +1,3 @@ showInfo = false name = test library = C:\pki DLL\x64\acpkcs211.dll - -
--- a/jdk/test/sun/security/rsa/SignatureOffsets.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/rsa/SignatureOffsets.java Mon Sep 07 13:28:41 2015 -0700 @@ -50,4 +50,4 @@ InvalidKeyException, SignatureException { Offsets.main(args); } -} \ No newline at end of file +}
--- a/jdk/test/sun/security/ssl/StatusStapling/TestCase.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/ssl/StatusStapling/TestCase.java Mon Sep 07 13:28:41 2015 -0700 @@ -28,5 +28,3 @@ public interface TestCase { Map.Entry<Boolean, String> runTest(); } - -
--- a/jdk/test/sun/security/ssl/StatusStapling/TestUtils.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/ssl/StatusStapling/TestUtils.java Mon Sep 07 13:28:41 2015 -0700 @@ -122,5 +122,3 @@ return resultBuf; } } - -
--- a/jdk/test/sun/security/ssl/rsa/SignatureOffsets.java Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/ssl/rsa/SignatureOffsets.java Mon Sep 07 13:28:41 2015 -0700 @@ -47,4 +47,4 @@ InvalidKeyException, SignatureException { Offsets.main(args); } -} \ No newline at end of file +}
--- a/jdk/test/sun/security/tools/jarsigner/collator.sh Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/tools/jarsigner/collator.sh Mon Sep 07 13:28:41 2015 -0700 @@ -72,5 +72,3 @@ echo "ERR is $ERR" exit 1 fi - -
--- a/jdk/test/sun/security/tools/jarsigner/jvindex.sh Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/tools/jarsigner/jvindex.sh Mon Sep 07 13:28:41 2015 -0700 @@ -72,5 +72,3 @@ echo "ERR is $ERR" exit 1 fi - -
--- a/jdk/test/sun/security/tools/jarsigner/warnings.sh Thu Sep 03 15:04:05 2015 -0700 +++ b/jdk/test/sun/security/tools/jarsigner/warnings.sh Mon Sep 07 13:28:41 2015 -0700 @@ -115,5 +115,3 @@ echo "ERR is $ERR" exit 1 fi - -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/security/x509/X509CertImpl/V3Certificate.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,262 @@ +/* + * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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. + */ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintWriter; +import static java.lang.System.out; +import java.security.InvalidKeyException; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.NoSuchProviderException; +import java.security.PrivateKey; +import java.security.PublicKey; +import java.security.Signature; +import java.security.SignatureException; +import java.security.cert.CertificateException; +import java.security.cert.CertificateFactory; +import java.security.cert.X509Certificate; +import java.util.Calendar; +import java.util.Date; +import java.util.TimeZone; +import sun.misc.BASE64Encoder; +import sun.security.util.BitArray; +import sun.security.util.ObjectIdentifier; +import sun.security.x509.*; + +/** + * @test + * @bug 8049237 + * @modules java.base/sun.security.x509 + * java.base/sun.security.util + * java.base/sun.misc + * @summary This test generates V3 certificate with all the supported + * extensions. Writes back the generated certificate in to a file and checks for + * equality with the original certificate. + */ +public class V3Certificate { + + public static final String V3_FILE = "certV3"; + public static final String V3_B64_FILE = "certV3.b64"; + + public static void main(String[] args) throws IOException, + NoSuchAlgorithmException, InvalidKeyException, CertificateException, + NoSuchProviderException, SignatureException { + + boolean success = true; + + success &= test("RSA", "SHA256withRSA", 2048); + success &= test("DSA", "SHA256withDSA", 2048); + success &= test("EC", "SHA256withECDSA", 384); + + if (!success) { + throw new RuntimeException("At least one test case failed"); + } + } + + public static boolean test(String algorithm, String sigAlg, int keyLength) + throws IOException, + NoSuchAlgorithmException, + InvalidKeyException, + CertificateException, + NoSuchProviderException, + SignatureException { + + byte[] issuerId = {1, 2, 3, 4, 5}; + byte[] subjectId = {6, 7, 8, 9, 10}; + boolean testResult = true; + + // Subject and Issuer + X500Name subject = new X500Name("test", "Oracle", "Santa Clara", + "US"); + X500Name issuer = subject; + + // Generate keys and sign + KeyPairGenerator keyGen = KeyPairGenerator.getInstance(algorithm); + keyGen.initialize(keyLength); + KeyPair pair = keyGen.generateKeyPair(); + PublicKey publicKey = pair.getPublic(); + PrivateKey privateKey = pair.getPrivate(); + MessageDigest md = MessageDigest.getInstance("SHA"); + byte[] keyId = md.digest(publicKey.getEncoded()); + + Signature signature = Signature.getInstance(sigAlg); + signature.initSign(privateKey); + + // Validity interval + Date firstDate = new Date(); + Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("PST")); + cal.set(2014, 03, 10, 12, 30, 30); + Date lastDate = cal.getTime(); + CertificateValidity interval = new CertificateValidity(firstDate, + lastDate); + + // Certificate Info + X509CertInfo cert = new X509CertInfo(); + + cert.set(X509CertInfo.VERSION, + new CertificateVersion(CertificateVersion.V3)); + cert.set(X509CertInfo.SERIAL_NUMBER, + new CertificateSerialNumber((int) (firstDate.getTime() / 1000))); + cert.set(X509CertInfo.ALGORITHM_ID, + new CertificateAlgorithmId(AlgorithmId.get(sigAlg))); + cert.set(X509CertInfo.SUBJECT, subject); + cert.set(X509CertInfo.KEY, new CertificateX509Key(publicKey)); + cert.set(X509CertInfo.VALIDITY, interval); + cert.set(X509CertInfo.ISSUER, issuer); + + cert.set(X509CertInfo.ISSUER_ID, + new UniqueIdentity( + new BitArray(issuerId.length * 8 - 2, issuerId))); + cert.set(X509CertInfo.SUBJECT_ID, new UniqueIdentity(subjectId)); + + // Create Extensions + CertificateExtensions exts = new CertificateExtensions(); + + GeneralNameInterface mailInf = new RFC822Name("test@Oracle.com"); + GeneralName mail = new GeneralName(mailInf); + GeneralNameInterface dnsInf = new DNSName("Oracle.com"); + GeneralName dns = new GeneralName(dnsInf); + GeneralNameInterface uriInf = new URIName("http://www.Oracle.com"); + GeneralName uri = new GeneralName(uriInf); + + // localhost + byte[] address = new byte[]{127, 0, 0, 1}; + + GeneralNameInterface ipInf = new IPAddressName(address); + GeneralName ip = new GeneralName(ipInf); + int[] oidData = new int[]{1, 2, 3, 4}; + + GeneralNameInterface oidInf = new OIDName(new ObjectIdentifier(oidData)); + GeneralName oid = new GeneralName(oidInf); + + SubjectAlternativeNameExtension subjectName + = new SubjectAlternativeNameExtension(); + IssuerAlternativeNameExtension issuerName + = new IssuerAlternativeNameExtension(); + + GeneralNames subjectNames + = (GeneralNames) subjectName. + get(SubjectAlternativeNameExtension.SUBJECT_NAME); + + GeneralNames issuerNames + = (GeneralNames) issuerName. + get(IssuerAlternativeNameExtension.ISSUER_NAME); + + subjectNames.add(mail); + subjectNames.add(dns); + subjectNames.add(uri); + + issuerNames.add(ip); + issuerNames.add(oid); + + cal.set(2000, 11, 15, 12, 30, 30); + lastDate = cal.getTime(); + PrivateKeyUsageExtension pkusage + = new PrivateKeyUsageExtension(firstDate, lastDate); + + KeyUsageExtension usage = new KeyUsageExtension(); + usage.set(KeyUsageExtension.CRL_SIGN, true); + usage.set(KeyUsageExtension.DIGITAL_SIGNATURE, true); + usage.set(KeyUsageExtension.NON_REPUDIATION, true); + + KeyIdentifier kid = new KeyIdentifier(keyId); + SerialNumber sn = new SerialNumber(42); + AuthorityKeyIdentifierExtension aki + = new AuthorityKeyIdentifierExtension(kid, subjectNames, sn); + + SubjectKeyIdentifierExtension ski + = new SubjectKeyIdentifierExtension(keyId); + + BasicConstraintsExtension cons + = new BasicConstraintsExtension(true, 10); + + PolicyConstraintsExtension pce = new PolicyConstraintsExtension(2, 4); + + exts.set(SubjectAlternativeNameExtension.NAME, subjectName); + exts.set(IssuerAlternativeNameExtension.NAME, issuerName); + exts.set(PrivateKeyUsageExtension.NAME, pkusage); + exts.set(KeyUsageExtension.NAME, usage); + exts.set(AuthorityKeyIdentifierExtension.NAME, aki); + exts.set(SubjectKeyIdentifierExtension.NAME, ski); + exts.set(BasicConstraintsExtension.NAME, cons); + exts.set(PolicyConstraintsExtension.NAME, pce); + cert.set(X509CertInfo.EXTENSIONS, exts); + + // Generate and sign X509CertImpl + X509CertImpl crt = new X509CertImpl(cert); + crt.sign(privateKey, sigAlg); + crt.verify(publicKey); + + try (FileOutputStream fos = new FileOutputStream(new File(V3_FILE)); + FileOutputStream fos_b64 + = new FileOutputStream(new File(V3_B64_FILE)); + PrintWriter pw = new PrintWriter(fos_b64)) { + crt.encode((OutputStream) fos); + fos.flush(); + + // Certificate boundaries/ + pw.println("-----BEGIN CERTIFICATE-----"); + pw.flush(); + new BASE64Encoder().encodeBuffer(crt.getEncoded(), fos_b64); + fos_b64.flush(); + pw.println("-----END CERTIFICATE-----"); + } + + out.println("*** Certificate ***"); + out.println(crt); + out.println("*** End Certificate ***"); + + X509Certificate x2 = generateCertificate(V3_FILE); + if (!x2.equals(crt)) { + out.println("*** Certificate mismatch ***"); + testResult = false; + } + + X509Certificate x3 = generateCertificate(V3_B64_FILE); + if (!x3.equals(crt)) { + out.println("*** Certificate mismatch ***"); + testResult = false; + } + + return testResult; + } + + static X509Certificate generateCertificate(String certFile) { + try (InputStream inStrm = new FileInputStream(certFile)) { + CertificateFactory cf = CertificateFactory.getInstance("X509"); + X509Certificate x2 + = (X509Certificate) cf.generateCertificate(inStrm); + return x2; + } catch (CertificateException | IOException e) { + throw new RuntimeException("Exception while " + + "genrating certificate for " + certFile, e); + } + } +}
--- a/langtools/.hgtags Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/.hgtags Mon Sep 07 13:28:41 2015 -0700 @@ -321,3 +321,4 @@ 80ab772222fb6b85f8174bf97261178ee4026620 jdk9-b76 6ec3d5cb1bfcfba135c8d18866e567f1b1ada861 jdk9-b77 7fd155b7041c8aba7084f03e2fd1d6f74cceda75 jdk9-b78 +eaab8a16dcfb807acacdb6d133f3ecd502667a8c jdk9-b79
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Mon Sep 07 13:28:41 2015 -0700 @@ -138,7 +138,7 @@ /** The bootstrap methods to be written in the corresponding class attribute * (one for each invokedynamic) */ - Map<DynamicMethod, MethodHandle> bootstrapMethods; + Map<DynamicMethod.BootstrapMethodsKey, DynamicMethod.BootstrapMethodsValue> bootstrapMethods; /** The log to use for verbose output. */ @@ -401,8 +401,16 @@ //invokedynamic DynamicMethodSymbol dynSym = (DynamicMethodSymbol)m; MethodHandle handle = new MethodHandle(dynSym.bsmKind, dynSym.bsm, types); - DynamicMethod dynMeth = new DynamicMethod(dynSym, types); - bootstrapMethods.put(dynMeth, handle); + DynamicMethod.BootstrapMethodsKey key = new DynamicMethod.BootstrapMethodsKey(dynSym, types); + + // Figure out the index for existing BSM; create a new BSM if no key + DynamicMethod.BootstrapMethodsValue val = bootstrapMethods.get(key); + if (val == null) { + int index = bootstrapMethods.size(); + val = new DynamicMethod.BootstrapMethodsValue(handle, index); + bootstrapMethods.put(key, val); + } + //init cp entries pool.put(names.BootstrapMethods); pool.put(handle); @@ -410,7 +418,7 @@ pool.put(staticArg); } poolbuf.appendByte(CONSTANT_InvokeDynamic); - poolbuf.appendChar(bootstrapMethods.size() - 1); + poolbuf.appendChar(val.index); poolbuf.appendChar(pool.put(nameType(dynSym))); } } else if (value instanceof VarSymbol) { @@ -1024,15 +1032,14 @@ void writeBootstrapMethods() { int alenIdx = writeAttr(names.BootstrapMethods); databuf.appendChar(bootstrapMethods.size()); - for (Map.Entry<DynamicMethod, MethodHandle> entry : bootstrapMethods.entrySet()) { - DynamicMethod dmeth = entry.getKey(); - DynamicMethodSymbol dsym = (DynamicMethodSymbol)dmeth.baseSymbol(); + for (Map.Entry<DynamicMethod.BootstrapMethodsKey, DynamicMethod.BootstrapMethodsValue> entry : bootstrapMethods.entrySet()) { + DynamicMethod.BootstrapMethodsKey bsmKey = entry.getKey(); //write BSM handle - databuf.appendChar(pool.get(entry.getValue())); + databuf.appendChar(pool.get(entry.getValue().mh)); + Object[] uniqueArgs = bsmKey.getUniqueArgs(); //write static args length - databuf.appendChar(dsym.staticArgs.length); + databuf.appendChar(uniqueArgs.length); //write static args array - Object[] uniqueArgs = dmeth.uniqueStaticArgs; for (Object o : uniqueArgs) { databuf.appendChar(pool.get(o)); }
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Pool.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Pool.java Mon Sep 07 13:28:41 2015 -0700 @@ -190,7 +190,11 @@ @Override @DefinedBy(Api.LANGUAGE_MODEL) public boolean equals(Object any) { - if (!super.equals(any)) return false; + return equalsImpl(any, true); + } + + protected boolean equalsImpl(Object any, boolean includeDynamicArgs) { + if (includeDynamicArgs && !super.equals(any)) return false; if (!(any instanceof DynamicMethod)) return false; DynamicMethodSymbol dm1 = (DynamicMethodSymbol)other; DynamicMethodSymbol dm2 = (DynamicMethodSymbol)((DynamicMethod)any).other; @@ -202,7 +206,11 @@ @Override @DefinedBy(Api.LANGUAGE_MODEL) public int hashCode() { - int hash = super.hashCode(); + return hashCodeImpl(true); + } + + protected int hashCodeImpl(boolean includeDynamicArgs) { + int hash = includeDynamicArgs ? super.hashCode() : 0; DynamicMethodSymbol dm = (DynamicMethodSymbol)other; hash += dm.bsmKind * 7 + dm.bsm.hashCode() * 11; @@ -223,6 +231,36 @@ } return result; } + + static class BootstrapMethodsKey extends DynamicMethod { + BootstrapMethodsKey(DynamicMethodSymbol m, Types types) { + super(m, types); + } + + @Override @DefinedBy(Api.LANGUAGE_MODEL) + public boolean equals(Object any) { + return equalsImpl(any, false); + } + + @Override @DefinedBy(Api.LANGUAGE_MODEL) + public int hashCode() { + return hashCodeImpl(false); + } + + Object[] getUniqueArgs() { + return uniqueStaticArgs; + } + } + + static class BootstrapMethodsValue { + final MethodHandle mh; + final int index; + + public BootstrapMethodsValue(MethodHandle mh, int index) { + this.mh = mh; + this.index = index; + } + } } static class Variable extends DelegatedSymbol<VarSymbol> {
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CleanProperties.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CleanProperties.java Mon Sep 07 13:28:41 2015 -0700 @@ -42,9 +42,9 @@ import java.util.Properties; import java.util.Set; +import com.sun.tools.sjavac.comp.CompilationService; import com.sun.tools.sjavac.options.Options; import com.sun.tools.sjavac.pubapi.PubApi; -import com.sun.tools.sjavac.server.Sjavac; /** * The clean properties transform should not be necessary. @@ -64,7 +64,7 @@ // Any extra information is ignored for clean properties. } - public boolean transform(Sjavac sjavac, + public boolean transform(CompilationService sjavac, Map<String,Set<URI>> pkgSrcs, Set<URI> visibleSrcs, Map<URI,Set<String>> visibleClasses,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileJavaPackages.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileJavaPackages.java Mon Sep 07 13:28:41 2015 -0700 @@ -32,12 +32,13 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; +import java.util.Random; import java.util.Set; +import com.sun.tools.sjavac.comp.CompilationService; import com.sun.tools.sjavac.options.Options; import com.sun.tools.sjavac.pubapi.PubApi; -import com.sun.tools.sjavac.server.CompilationResult; -import com.sun.tools.sjavac.server.Sjavac; +import com.sun.tools.sjavac.server.CompilationSubResult; import com.sun.tools.sjavac.server.SysInfo; /** @@ -68,7 +69,7 @@ args = a; } - public boolean transform(final Sjavac sjavac, + public boolean transform(final CompilationService sjavac, Map<String,Set<URI>> pkgSrcs, final Set<URI> visibleSources, final Map<URI,Set<String>> visibleClasses, @@ -91,16 +92,11 @@ boolean concurrentCompiles = true; // Fetch the id. - final String id = Util.extractStringOption("id", sjavac.serverSettings()); + final String id = String.valueOf(new Random().nextInt()); // Only keep portfile and sjavac settings.. //String psServerSettings = Util.cleanSubOptions(Util.set("portfile","sjavac","background","keepalive"), sjavac.serverSettings()); - // Get maximum heap size from the server! SysInfo sysinfo = sjavac.getSysInfo(); - if (sysinfo == null) { - Log.error("Could not query server for sysinfo!"); - return false; - } int numMBytes = (int)(sysinfo.maxMemory / ((long)(1024*1024))); Log.debug("Server reports "+numMBytes+"MiB of memory and "+sysinfo.numCores+" cores"); @@ -205,7 +201,7 @@ } // The return values for each chunked compile. - final CompilationResult[] rn = new CompilationResult[numCompiles]; + final CompilationSubResult[] rn = new CompilationSubResult[numCompiles]; // The requets, might or might not run as a background thread. final Thread[] requests = new Thread[numCompiles];
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileProperties.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileProperties.java Mon Sep 07 13:28:41 2015 -0700 @@ -44,9 +44,9 @@ import java.util.Properties; import java.util.Set; +import com.sun.tools.sjavac.comp.CompilationService; import com.sun.tools.sjavac.options.Options; import com.sun.tools.sjavac.pubapi.PubApi; -import com.sun.tools.sjavac.server.Sjavac; /** * Compile properties transform a properties file into a Java source file. @@ -71,7 +71,7 @@ public void setExtra(Options a) { } - public boolean transform(Sjavac sjavac, + public boolean transform(CompilationService compilationService, Map<String,Set<URI>> pkgSrcs, Set<URI> visibleSrcs, Map<URI,Set<String>> visibleClasses,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CopyFile.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CopyFile.java Mon Sep 07 13:28:41 2015 -0700 @@ -37,9 +37,9 @@ import java.util.Map; import java.util.Set; +import com.sun.tools.sjavac.comp.CompilationService; import com.sun.tools.sjavac.options.Options; import com.sun.tools.sjavac.pubapi.PubApi; -import com.sun.tools.sjavac.server.Sjavac; /** * The copy file transform simply copies a matching file from -src to -d . @@ -58,7 +58,7 @@ public void setExtra(Options a) { } - public boolean transform(Sjavac sjavac, + public boolean transform(CompilationService compilationService, Map<String,Set<URI>> pkgSrcs, Set<URI> visibleSrcs, Map<URI,Set<String>> visibleClasses,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/JavacState.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/JavacState.java Mon Sep 07 13:28:41 2015 -0700 @@ -45,9 +45,9 @@ import java.util.Set; import java.util.stream.Collectors; +import com.sun.tools.sjavac.comp.CompilationService; import com.sun.tools.sjavac.options.Options; import com.sun.tools.sjavac.pubapi.PubApi; -import com.sun.tools.sjavac.server.Sjavac; /** * The javac state class maintains the previous (prev) and the current (now) @@ -748,7 +748,7 @@ /** * Compile all the java sources. Return true, if it needs to be called again! */ - public boolean performJavaCompilations(Sjavac sjavac, + public boolean performJavaCompilations(CompilationService sjavac, Options args, Set<String> recentlyCompiled, boolean[] rcValue) { @@ -790,7 +790,7 @@ * For all packages, find all sources belonging to the package, group the sources * based on their transformers and apply the transformers on each source code group. */ - private boolean perform(Sjavac sjavac, + private boolean perform(CompilationService sjavac, File outputDir, Map<String,Transformer> suffixRules) { boolean rc = true;
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/Transformer.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/Transformer.java Mon Sep 07 13:28:41 2015 -0700 @@ -30,9 +30,9 @@ import java.util.Map; import java.util.Set; +import com.sun.tools.sjavac.comp.CompilationService; import com.sun.tools.sjavac.options.Options; import com.sun.tools.sjavac.pubapi.PubApi; -import com.sun.tools.sjavac.server.Sjavac; /** * The transform interface is used to transform content inside a package, from one form to another. @@ -83,7 +83,7 @@ * If num_cores is set to a non-zero value. The transform should attempt to use no more than these * number of threads for heavy work. */ - boolean transform(Sjavac sjavac, + boolean transform(CompilationService sjavac, Map<String,Set<URI>> pkgSrcs, Set<URI> visibleSources, Map<URI,Set<String>> visibleClasses,
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/client/ClientMain.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/client/ClientMain.java Mon Sep 07 13:28:41 2015 -0700 @@ -25,29 +25,13 @@ package com.sun.tools.sjavac.client; -import java.io.IOException; import java.io.PrintStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import com.sun.tools.sjavac.JavacState; import com.sun.tools.sjavac.Log; -import com.sun.tools.sjavac.Module; -import com.sun.tools.sjavac.ProblemException; -import com.sun.tools.sjavac.Source; -import com.sun.tools.sjavac.Transformer; import com.sun.tools.sjavac.Util; -import com.sun.tools.sjavac.comp.PooledSjavac; import com.sun.tools.sjavac.comp.SjavacImpl; import com.sun.tools.sjavac.options.Options; -import com.sun.tools.sjavac.options.SourceLocation; +import com.sun.tools.sjavac.server.CompilationResult; import com.sun.tools.sjavac.server.Sjavac; /** @@ -74,282 +58,34 @@ return -1; } - Log.setLogLevel(options.getLogLevel()); - - if (!validateOptions(options)) - return -1; - - if (!createIfMissing(options.getDestDir())) - return -1; - - if (!createIfMissing(options.getStateDir())) - return -1; - - Path gensrc = options.getGenSrcDir(); - if (gensrc != null && !createIfMissing(gensrc)) - return -1; - - Path hdrdir = options.getHeaderDir(); - if (hdrdir != null && !createIfMissing(hdrdir)) - return -1; - Log.debug("=========================================================="); Log.debug("Launching sjavac client with the following parameters:"); Log.debug(" " + options.getStateArgsString()); Log.debug("=========================================================="); - // Load the prev build state database. - JavacState javac_state = JavacState.load(options, out, err); - - // Setup the suffix rules from the command line. - Map<String, Transformer> suffixRules = new HashMap<>(); - - // Handling of .java-compilation - suffixRules.putAll(javac_state.getJavaSuffixRule()); - - // Handling of -copy and -tr - suffixRules.putAll(options.getTranslationRules()); - - // All found modules are put here. - Map<String,Module> modules = new HashMap<>(); - // We start out in the legacy empty no-name module. - // As soon as we stumble on a module-info.java file we change to that module. - Module current_module = new Module("", ""); - modules.put("", current_module); - - // Find all sources, use the suffix rules to know which files are sources. - Map<String,Source> sources = new HashMap<>(); - - // Find the files, this will automatically populate the found modules - // with found packages where the sources are found! - findSourceFiles(options.getSources(), - suffixRules.keySet(), - sources, - modules, - current_module, - options.isDefaultPackagePermitted(), - false); - - if (sources.isEmpty()) { - Log.error("Found nothing to compile!"); - return -1; + // Prepare sjavac object + boolean background = Util.extractBooleanOption("background", options.getServerConf(), true); + Sjavac sjavac; + // Create an sjavac implementation to be used for compilation + if (background) { + try { + sjavac = new SjavacClient(options); + } catch (PortFileInaccessibleException e) { + Log.error("Port file inaccessible."); + return -1; + } + } else { + sjavac = new SjavacImpl(); } - // Create a map of all source files that are available for linking. Both -src and - // -sourcepath point to such files. It is possible to specify multiple - // -sourcepath options to enable different filtering rules. If the - // filters are the same for multiple sourcepaths, they may be concatenated - // using :(;). Before sending the list of sourcepaths to javac, they are - // all concatenated. The list created here is used by the SmartFileWrapper to - // make sure only the correct sources are actually available. - // We might find more modules here as well. - Map<String,Source> sources_to_link_to = new HashMap<>(); + CompilationResult cr = sjavac.compile(args); - List<SourceLocation> sourceResolutionLocations = new ArrayList<>(); - sourceResolutionLocations.addAll(options.getSources()); - sourceResolutionLocations.addAll(options.getSourceSearchPaths()); - findSourceFiles(sourceResolutionLocations, - Collections.singleton(".java"), - sources_to_link_to, - modules, - current_module, - options.isDefaultPackagePermitted(), - true); + out.print(cr.stdout); + err.print(cr.stderr); - // Find all class files allowable for linking. - // And pickup knowledge of all modules found here. - // This cannot currently filter classes inside jar files. -// Map<String,Source> classes_to_link_to = new HashMap<String,Source>(); -// findFiles(args, "-classpath", Util.set(".class"), classes_to_link_to, modules, current_module, true); + if (!background) + sjavac.shutdown(); - // Find all module sources allowable for linking. -// Map<String,Source> modules_to_link_to = new HashMap<String,Source>(); -// findFiles(args, "-modulepath", Util.set(".class"), modules_to_link_to, modules, current_module, true); - - // Add the set of sources to the build database. - javac_state.now().flattenPackagesSourcesAndArtifacts(modules); - javac_state.now().checkInternalState("checking sources", false, sources); - javac_state.now().checkInternalState("checking linked sources", true, sources_to_link_to); - javac_state.setVisibleSources(sources_to_link_to); - - int round = 0; - printRound(round); - - // If there is any change in the source files, taint packages - // and mark the database in need of saving. - javac_state.checkSourceStatus(false); - - // Find all existing artifacts. Their timestamp will match the last modified timestamps stored - // in javac_state, simply because loading of the JavacState will clean out all artifacts - // that do not match the javac_state database. - javac_state.findAllArtifacts(); - - // Remove unidentified artifacts from the bin, gensrc and header dirs. - // (Unless we allow them to be there.) - // I.e. artifacts that are not known according to the build database (javac_state). - // For examples, files that have been manually copied into these dirs. - // Artifacts with bad timestamps (ie the on disk timestamp does not match the timestamp - // in javac_state) have already been removed when the javac_state was loaded. - if (!options.areUnidentifiedArtifactsPermitted()) { - javac_state.removeUnidentifiedArtifacts(); - } - // Go through all sources and taint all packages that miss artifacts. - javac_state.taintPackagesThatMissArtifacts(); - - // Check recorded classpath public apis. Taint packages that depend on - // classpath classes whose public apis have changed. - javac_state.taintPackagesDependingOnChangedClasspathPackages(); - - // Now clean out all known artifacts belonging to tainted packages. - javac_state.deleteClassArtifactsInTaintedPackages(); - // Copy files, for example property files, images files, xml files etc etc. - javac_state.performCopying(Util.pathToFile(options.getDestDir()), suffixRules); - // Translate files, for example compile properties or compile idls. - javac_state.performTranslation(Util.pathToFile(gensrc), suffixRules); - // Add any potentially generated java sources to the tobe compiled list. - // (Generated sources must always have a package.) - Map<String,Source> generated_sources = new HashMap<>(); - - try { - - Source.scanRoot(Util.pathToFile(options.getGenSrcDir()), Util.set(".java"), null, null, null, null, - generated_sources, modules, current_module, false, true, false); - javac_state.now().flattenPackagesSourcesAndArtifacts(modules); - // Recheck the the source files and their timestamps again. - javac_state.checkSourceStatus(true); - - // Now do a safety check that the list of source files is identical - // to the list Make believes we are compiling. If we do not get this - // right, then incremental builds will fail with subtility. - // If any difference is detected, then we will fail hard here. - // This is an important safety net. - javac_state.compareWithMakefileList(Util.pathToFile(options.getSourceReferenceList())); - - // Do the compilations, repeatedly until no tainted packages exist. - boolean again; - // Collect the name of all compiled packages. - Set<String> recently_compiled = new HashSet<>(); - boolean[] rc = new boolean[1]; - boolean background = Util.extractBooleanOption("background", options.getServerConf(), true); - Sjavac sjavac; - // Create an sjavac implementation to be used for compilation - if (background) { - sjavac = new SjavacClient(options); - } else { - int poolsize = Util.extractIntOption("poolsize", options.getServerConf()); - if (poolsize <= 0) - poolsize = Runtime.getRuntime().availableProcessors(); - sjavac = new PooledSjavac(new SjavacImpl(), poolsize); - } - - do { - if (round > 0) - printRound(round); - // Clean out artifacts in tainted packages. - javac_state.deleteClassArtifactsInTaintedPackages(); - again = javac_state.performJavaCompilations(sjavac, options, recently_compiled, rc); - if (!rc[0]) { - Log.debug("Compilation failed."); - break; - } - if (!again) { - Log.debug("Nothing left to do."); - } - round++; - } while (again); - Log.debug("No need to do another round."); - - // Only update the state if the compile went well. - if (rc[0]) { - javac_state.save(); - // Reflatten only the artifacts. - javac_state.now().flattenArtifacts(modules); - // Remove artifacts that were generated during the last compile, but not this one. - javac_state.removeSuperfluousArtifacts(recently_compiled); - } - if (!background) - sjavac.shutdown(); - - return rc[0] ? 0 : -1; - } catch (ProblemException e) { - Log.error(e.getMessage()); - return -1; - } catch (Exception e) { - e.printStackTrace(err); - return -1; - } + return cr.returnCode; } - - private static boolean validateOptions(Options options) { - - String err = null; - - if (options.getDestDir() == null) { - err = "Please specify output directory."; - } else if (options.isJavaFilesAmongJavacArgs()) { - err = "Sjavac does not handle explicit compilation of single .java files."; - } else if (options.getServerConf() == null) { - err = "No server configuration provided."; - } else if (!options.getImplicitPolicy().equals("none")) { - err = "The only allowed setting for sjavac is -implicit:none"; - } else if (options.getSources().isEmpty()) { - err = "You have to specify -src."; - } else if (options.getTranslationRules().size() > 1 - && options.getGenSrcDir() == null) { - err = "You have translators but no gensrc dir (-s) specified!"; - } - - if (err != null) - Log.error(err); - - return err == null; - - } - - private static boolean createIfMissing(Path dir) { - - if (Files.isDirectory(dir)) - return true; - - if (Files.exists(dir)) { - Log.error(dir + " is not a directory."); - return false; - } - - try { - Files.createDirectories(dir); - } catch (IOException e) { - Log.error("Could not create directory: " + e.getMessage()); - return false; - } - - return true; - } - - - /** Find source files in the given source locations. */ - public static void findSourceFiles(List<SourceLocation> sourceLocations, - Set<String> sourceTypes, - Map<String,Source> foundFiles, - Map<String, Module> foundModules, - Module currentModule, - boolean permitSourcesInDefaultPackage, - boolean inLinksrc) { - - for (SourceLocation source : sourceLocations) { - source.findSourceFiles(sourceTypes, - foundFiles, - foundModules, - currentModule, - permitSourcesInDefaultPackage, - inLinksrc); - } - } - - private static void printRound(int round) { - Log.debug("****************************************"); - Log.debug("* Round " + round + " *"); - Log.debug("****************************************"); - } - }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/client/PortFileInaccessibleException.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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 com.sun.tools.sjavac.client; + +import java.io.IOException; + +public class PortFileInaccessibleException extends IOException { + + private static final long serialVersionUID = -4755261881545398973L; + + public PortFileInaccessibleException(Throwable cause) { + super(cause); + } +}
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/client/SjavacClient.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/client/SjavacClient.java Mon Sep 07 13:28:41 2015 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,32 +26,27 @@ package com.sun.tools.sjavac.client; import java.io.File; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.PrintStream; -import java.io.PrintWriter; -import java.io.StringWriter; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; -import java.net.URI; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; -import java.util.Set; import com.sun.tools.sjavac.Log; import com.sun.tools.sjavac.Util; import com.sun.tools.sjavac.options.OptionHelper; import com.sun.tools.sjavac.options.Options; +import com.sun.tools.sjavac.server.CompilationSubResult; import com.sun.tools.sjavac.server.CompilationResult; import com.sun.tools.sjavac.server.PortFile; import com.sun.tools.sjavac.server.Sjavac; import com.sun.tools.sjavac.server.SjavacServer; -import com.sun.tools.sjavac.server.SysInfo; /** * Sjavac implementation that delegates requests to a SjavacServer. @@ -89,9 +84,7 @@ // Store the server conf settings here. private final String settings; - // This constructor should not throw FileNotFoundException (to be resolved - // in JDK-8060030) - public SjavacClient(Options options) throws FileNotFoundException { + public SjavacClient(Options options) throws PortFileInaccessibleException { String tmpServerConf = options.getServerConf(); String serverConf = (tmpServerConf!=null)? tmpServerConf : ""; String tmpId = Util.extractStringOption("id", serverConf); @@ -103,8 +96,7 @@ String portfileName = Util.extractStringOption("portfile", serverConf, defaultPortfile); try { portFile = SjavacServer.getPortFile(portfileName); - } catch (FileNotFoundException e) { - // Reached for instance if directory of port file does not exist + } catch (PortFileInaccessibleException e) { Log.error("Port file inaccessable: " + e); throw e; } @@ -126,40 +118,8 @@ return settings; } - /** - * Make a request to the server only to get the maximum possible heap size to use for compilations. - */ @Override - public SysInfo getSysInfo() { - try (Socket socket = tryConnect()) { - // The ObjectInputStream constructor will block until the - // corresponding ObjectOutputStream has written and flushed the - // header, so it is important that the ObjectOutputStreams on server - // and client are opened before the ObjectInputStreams. - ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream()); - ObjectInputStream ois = new ObjectInputStream(socket.getInputStream()); - oos.writeObject(id); - oos.writeObject(SjavacServer.CMD_SYS_INFO); - oos.flush(); - return (SysInfo) ois.readObject(); - } catch (IOException | ClassNotFoundException ex) { - Log.error("[CLIENT] Exception caught: " + ex); - Log.debug(Util.getStackTrace(ex)); - } catch (InterruptedException ie) { - Thread.currentThread().interrupt(); // Restore interrupt - Log.error("[CLIENT] getSysInfo interrupted."); - Log.debug(Util.getStackTrace(ie)); - } - return null; - } - - @Override - public CompilationResult compile(String protocolId, - String invocationId, - String[] args, - List<File> explicitSources, - Set<URI> sourcesToCompile, - Set<URI> visibleSources) { + public CompilationResult compile(String[] args) { CompilationResult result; try (Socket socket = tryConnect()) { // The ObjectInputStream constructor will block until the @@ -170,22 +130,17 @@ ObjectInputStream ois = new ObjectInputStream(socket.getInputStream()); oos.writeObject(id); oos.writeObject(SjavacServer.CMD_COMPILE); - oos.writeObject(protocolId); - oos.writeObject(invocationId); oos.writeObject(args); - oos.writeObject(explicitSources); - oos.writeObject(sourcesToCompile); - oos.writeObject(visibleSources); oos.flush(); result = (CompilationResult) ois.readObject(); } catch (IOException | ClassNotFoundException ex) { Log.error("[CLIENT] Exception caught: " + ex); - result = new CompilationResult(CompilationResult.ERROR_FATAL); + result = new CompilationResult(CompilationSubResult.ERROR_FATAL); result.stderr = Util.getStackTrace(ex); } catch (InterruptedException ie) { Thread.currentThread().interrupt(); // Restore interrupt Log.error("[CLIENT] compile interrupted."); - result = new CompilationResult(CompilationResult.ERROR_FATAL); + result = new CompilationResult(CompilationSubResult.ERROR_FATAL); result.stderr = Util.getStackTrace(ie); } return result;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/CompilationService.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,171 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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 com.sun.tools.sjavac.comp; + +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.net.URI; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import javax.tools.JavaFileObject; +import javax.tools.StandardJavaFileManager; +import javax.tools.StandardLocation; +import javax.tools.ToolProvider; + +import com.sun.tools.javac.api.JavacTaskImpl; +import com.sun.tools.javac.api.JavacTool; +import com.sun.tools.javac.util.Context; +import com.sun.tools.javac.util.Dependencies; +import com.sun.tools.javac.util.ListBuffer; +import com.sun.tools.sjavac.Log; +import com.sun.tools.sjavac.Util; +import com.sun.tools.sjavac.comp.dependencies.NewDependencyCollector; +import com.sun.tools.sjavac.comp.dependencies.PublicApiCollector; +import com.sun.tools.sjavac.server.CompilationSubResult; +import com.sun.tools.sjavac.server.SysInfo; + +/** + * <p><b>This is NOT part of any supported API. + * If you write code that depends on this, you do so at your own risk. + * This code and its internal interfaces are subject to change or + * deletion without notice.</b> + */ +public class CompilationService { + + public SysInfo getSysInfo() { + return new SysInfo(Runtime.getRuntime().availableProcessors(), + Runtime.getRuntime().maxMemory()); + } + + public CompilationSubResult compile(String protocolId, + String invocationId, + String[] args, + List<File> explicitSources, + Set<URI> sourcesToCompile, + Set<URI> visibleSources) { + + JavacTool compiler = (JavacTool) ToolProvider.getSystemJavaCompiler(); + try (StandardJavaFileManager fm = compiler.getStandardFileManager(null, null, null)) { + SmartFileManager sfm = new SmartFileManager(fm); + Context context = new Context(); + + Dependencies.GraphDependencies.preRegister(context); + + // Now setup the actual compilation + CompilationSubResult compilationResult = new CompilationSubResult(0); + + // First deal with explicit source files on cmdline and in at file + ListBuffer<JavaFileObject> explicitJFOs = new ListBuffer<>(); + for (JavaFileObject jfo : fm.getJavaFileObjectsFromFiles(explicitSources)) { + explicitJFOs.append(SmartFileManager.locWrap(jfo, StandardLocation.SOURCE_PATH)); + } + // Now deal with sources supplied as source_to_compile + ListBuffer<File> sourcesToCompileFiles = new ListBuffer<>(); + for (URI u : sourcesToCompile) + sourcesToCompileFiles.append(new File(u)); + + for (JavaFileObject jfo : fm.getJavaFileObjectsFromFiles(sourcesToCompileFiles)) + explicitJFOs.append(SmartFileManager.locWrap(jfo, StandardLocation.SOURCE_PATH)); + + // Create a new logger + StringWriter stdoutLog = new StringWriter(); + StringWriter stderrLog = new StringWriter(); + PrintWriter stdout = new PrintWriter(stdoutLog); + PrintWriter stderr = new PrintWriter(stderrLog); + com.sun.tools.javac.main.Main.Result rc = com.sun.tools.javac.main.Main.Result.OK; + PublicApiCollector pubApiCollector = new PublicApiCollector(context, explicitJFOs); + PathAndPackageVerifier papVerifier = new PathAndPackageVerifier(); + NewDependencyCollector depsCollector = new NewDependencyCollector(context, explicitJFOs); + try { + if (explicitJFOs.size() > 0) { + sfm.setVisibleSources(visibleSources); + sfm.cleanArtifacts(); + sfm.setLog(stdout); + + // Do the compilation! + JavacTaskImpl task = + (JavacTaskImpl) compiler.getTask(stderr, + sfm, + null, + Arrays.asList(args), + null, + explicitJFOs, + context); + sfm.setSymbolFileEnabled(!com.sun.tools.javac.util.Options.instance(context).isSet("ignore.symbol.file")); + task.addTaskListener(depsCollector); + task.addTaskListener(pubApiCollector); + task.addTaskListener(papVerifier); + logJavacInvocation(args); + rc = task.doCall(); + Log.debug("javac returned with code " + rc); + sfm.flush(); + } + } catch (Exception e) { + Log.error(Util.getStackTrace(e)); + stderrLog.append(Util.getStackTrace(e)); + rc = com.sun.tools.javac.main.Main.Result.ERROR; + } + + compilationResult.packageArtifacts = sfm.getPackageArtifacts(); + + if (papVerifier.errorsDiscovered()) + rc = com.sun.tools.javac.main.Main.Result.ERROR; + + compilationResult.packageDependencies = depsCollector.getDependencies(false); + compilationResult.packageCpDependencies = depsCollector.getDependencies(true); + + compilationResult.packagePubapis = pubApiCollector.getPubApis(true); + compilationResult.dependencyPubapis = pubApiCollector.getPubApis(false); + compilationResult.stdout = stdoutLog.toString(); + compilationResult.stderr = stderrLog.toString(); + compilationResult.returnCode = rc.exitCode; + + return compilationResult; + } catch (IOException e) { + throw new Error(e); + } + } + + private void logJavacInvocation(String[] args) { + Log.debug("Invoking javac with args"); + Iterator<String> argIter = Arrays.asList(args).iterator(); + while (argIter.hasNext()) { + String arg = argIter.next(); + String line = " " + arg; + if (arg.matches("\\-(d|cp|classpath|sourcepath|source|target)") + && argIter.hasNext()) { + line += " " + argIter.next(); + } + Log.debug(line); + } + } + +}
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/PooledSjavac.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/PooledSjavac.java Mon Sep 07 13:28:41 2015 -0700 @@ -24,11 +24,7 @@ */ package com.sun.tools.sjavac.comp; -import java.io.File; -import java.net.URI; -import java.util.List; import java.util.Objects; -import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; @@ -36,7 +32,6 @@ import com.sun.tools.sjavac.Log; import com.sun.tools.sjavac.server.CompilationResult; import com.sun.tools.sjavac.server.Sjavac; -import com.sun.tools.sjavac.server.SysInfo; /** * An sjavac implementation that limits the number of concurrent calls by @@ -59,30 +54,10 @@ } @Override - public SysInfo getSysInfo() { - try { - return pool.submit(() -> delegate.getSysInfo()).get(); - } catch (Exception e) { - e.printStackTrace(); - throw new RuntimeException("Error during getSysInfo", e); - } - } - - @Override - public CompilationResult compile(final String protocolId, - final String invocationId, - final String[] args, - final List<File> explicitSources, - final Set<URI> sourcesToCompile, - final Set<URI> visibleSources) { + public CompilationResult compile(String[] args) { try { return pool.submit(() -> { - return delegate.compile(protocolId, - invocationId, - args, - explicitSources, - sourcesToCompile, - visibleSources); + return delegate.compile(args); }).get(); } catch (Exception e) { e.printStackTrace(); @@ -112,8 +87,4 @@ delegate.shutdown(); } - @Override - public String serverSettings() { - return delegate.serverSettings(); - } }
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/SjavacImpl.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/SjavacImpl.java Mon Sep 07 13:28:41 2015 -0700 @@ -24,34 +24,33 @@ */ package com.sun.tools.sjavac.comp; -import java.io.File; +import static com.sun.tools.sjavac.server.CompilationResult.ERROR_FATAL; +import static java.nio.charset.StandardCharsets.UTF_8; + +import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.net.URI; -import java.util.Arrays; -import java.util.Iterator; +import java.io.PrintStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; -import javax.tools.JavaFileObject; -import javax.tools.StandardJavaFileManager; -import javax.tools.StandardLocation; -import javax.tools.ToolProvider; - -import com.sun.tools.javac.api.JavacTaskImpl; -import com.sun.tools.javac.api.JavacTool; -import com.sun.tools.javac.util.Context; -import com.sun.tools.javac.util.Dependencies; -import com.sun.tools.javac.util.ListBuffer; -import com.sun.tools.javac.util.Options; +import com.sun.tools.sjavac.JavacState; import com.sun.tools.sjavac.Log; +import com.sun.tools.sjavac.Module; +import com.sun.tools.sjavac.ProblemException; +import com.sun.tools.sjavac.Source; +import com.sun.tools.sjavac.Transformer; import com.sun.tools.sjavac.Util; -import com.sun.tools.sjavac.comp.dependencies.NewDependencyCollector; -import com.sun.tools.sjavac.comp.dependencies.PublicApiCollector; +import com.sun.tools.sjavac.options.Options; +import com.sun.tools.sjavac.options.SourceLocation; import com.sun.tools.sjavac.server.CompilationResult; import com.sun.tools.sjavac.server.Sjavac; -import com.sun.tools.sjavac.server.SysInfo; /** * The sjavac implementation that interacts with javac and performs the actual @@ -65,123 +64,282 @@ public class SjavacImpl implements Sjavac { @Override - public SysInfo getSysInfo() { - return new SysInfo(Runtime.getRuntime().availableProcessors(), - Runtime.getRuntime().maxMemory()); - } + public CompilationResult compile(String[] args) { - @Override - public CompilationResult compile(String protocolId, - String invocationId, - String[] args, - List<File> explicitSources, - Set<URI> sourcesToCompile, - Set<URI> visibleSources) { + ByteArrayOutputStream outBaos = new ByteArrayOutputStream(); + ByteArrayOutputStream errBaos = new ByteArrayOutputStream(); + PrintStream out = new PrintStream(outBaos); + PrintStream err = new PrintStream(errBaos); - JavacTool compiler = (JavacTool) ToolProvider.getSystemJavaCompiler(); - try (StandardJavaFileManager fm = compiler.getStandardFileManager(null, null, null)) { - SmartFileManager sfm = new SmartFileManager(fm); - Context context = new Context(); + Options options; + try { + options = Options.parseArgs(args); + } catch (IllegalArgumentException e) { + Log.error(e.getMessage()); + return new CompilationResult(ERROR_FATAL); + } - Dependencies.GraphDependencies.preRegister(context); + Log.setLogLevel(options.getLogLevel()); - // Now setup the actual compilation - CompilationResult compilationResult = new CompilationResult(0); + if (!validateOptions(options)) + return new CompilationResult(ERROR_FATAL); - // First deal with explicit source files on cmdline and in at file - ListBuffer<JavaFileObject> explicitJFOs = new ListBuffer<>(); - for (JavaFileObject jfo : fm.getJavaFileObjectsFromFiles(explicitSources)) { - explicitJFOs.append(SmartFileManager.locWrap(jfo, StandardLocation.SOURCE_PATH)); - } - // Now deal with sources supplied as source_to_compile - ListBuffer<File> sourcesToCompileFiles = new ListBuffer<>(); - for (URI u : sourcesToCompile) - sourcesToCompileFiles.append(new File(u)); + if (!createIfMissing(options.getDestDir())) + return new CompilationResult(ERROR_FATAL); - for (JavaFileObject jfo : fm.getJavaFileObjectsFromFiles(sourcesToCompileFiles)) - explicitJFOs.append(SmartFileManager.locWrap(jfo, StandardLocation.SOURCE_PATH)); + if (!createIfMissing(options.getStateDir())) + return new CompilationResult(ERROR_FATAL); - // Create a new logger - StringWriter stdoutLog = new StringWriter(); - StringWriter stderrLog = new StringWriter(); - PrintWriter stdout = new PrintWriter(stdoutLog); - PrintWriter stderr = new PrintWriter(stderrLog); - com.sun.tools.javac.main.Main.Result rc = com.sun.tools.javac.main.Main.Result.OK; - PublicApiCollector pubApiCollector = new PublicApiCollector(context, explicitJFOs); - PathAndPackageVerifier papVerifier = new PathAndPackageVerifier(); - NewDependencyCollector depsCollector = new NewDependencyCollector(context, explicitJFOs); - try { - if (explicitJFOs.size() > 0) { - sfm.setVisibleSources(visibleSources); - sfm.cleanArtifacts(); - sfm.setLog(stdout); + Path gensrc = options.getGenSrcDir(); + if (gensrc != null && !createIfMissing(gensrc)) + return new CompilationResult(ERROR_FATAL); - // Do the compilation! - JavacTaskImpl task = - (JavacTaskImpl) compiler.getTask(stderr, - sfm, - null, - Arrays.asList(args), - null, - explicitJFOs, - context); - sfm.setSymbolFileEnabled(!Options.instance(context).isSet("ignore.symbol.file")); - task.addTaskListener(depsCollector); - task.addTaskListener(pubApiCollector); - task.addTaskListener(papVerifier); - logJavacInvocation(args); - rc = task.doCall(); - Log.debug("javac returned with code " + rc); - sfm.flush(); + Path hdrdir = options.getHeaderDir(); + if (hdrdir != null && !createIfMissing(hdrdir)) + return new CompilationResult(ERROR_FATAL); + + // Load the prev build state database. + JavacState javac_state = JavacState.load(options, out, err); + + // Setup the suffix rules from the command line. + Map<String, Transformer> suffixRules = new HashMap<>(); + + // Handling of .java-compilation + suffixRules.putAll(javac_state.getJavaSuffixRule()); + + // Handling of -copy and -tr + suffixRules.putAll(options.getTranslationRules()); + + // All found modules are put here. + Map<String,Module> modules = new HashMap<>(); + // We start out in the legacy empty no-name module. + // As soon as we stumble on a module-info.java file we change to that module. + Module current_module = new Module("", ""); + modules.put("", current_module); + + // Find all sources, use the suffix rules to know which files are sources. + Map<String,Source> sources = new HashMap<>(); + + // Find the files, this will automatically populate the found modules + // with found packages where the sources are found! + findSourceFiles(options.getSources(), + suffixRules.keySet(), + sources, + modules, + current_module, + options.isDefaultPackagePermitted(), + false); + + if (sources.isEmpty()) { + Log.error("Found nothing to compile!"); + return new CompilationResult(CompilationResult.ERROR_FATAL, + new String(outBaos.toByteArray(), UTF_8), + new String(errBaos.toByteArray(), UTF_8)); + } + + + // Create a map of all source files that are available for linking. Both -src and + // -sourcepath point to such files. It is possible to specify multiple + // -sourcepath options to enable different filtering rules. If the + // filters are the same for multiple sourcepaths, they may be concatenated + // using :(;). Before sending the list of sourcepaths to javac, they are + // all concatenated. The list created here is used by the SmartFileWrapper to + // make sure only the correct sources are actually available. + // We might find more modules here as well. + Map<String,Source> sources_to_link_to = new HashMap<>(); + + List<SourceLocation> sourceResolutionLocations = new ArrayList<>(); + sourceResolutionLocations.addAll(options.getSources()); + sourceResolutionLocations.addAll(options.getSourceSearchPaths()); + findSourceFiles(sourceResolutionLocations, + Collections.singleton(".java"), + sources_to_link_to, + modules, + current_module, + options.isDefaultPackagePermitted(), + true); + + // Add the set of sources to the build database. + javac_state.now().flattenPackagesSourcesAndArtifacts(modules); + javac_state.now().checkInternalState("checking sources", false, sources); + javac_state.now().checkInternalState("checking linked sources", true, sources_to_link_to); + javac_state.setVisibleSources(sources_to_link_to); + + int round = 0; + printRound(round); + + // If there is any change in the source files, taint packages + // and mark the database in need of saving. + javac_state.checkSourceStatus(false); + + // Find all existing artifacts. Their timestamp will match the last modified timestamps stored + // in javac_state, simply because loading of the JavacState will clean out all artifacts + // that do not match the javac_state database. + javac_state.findAllArtifacts(); + + // Remove unidentified artifacts from the bin, gensrc and header dirs. + // (Unless we allow them to be there.) + // I.e. artifacts that are not known according to the build database (javac_state). + // For examples, files that have been manually copied into these dirs. + // Artifacts with bad timestamps (ie the on disk timestamp does not match the timestamp + // in javac_state) have already been removed when the javac_state was loaded. + if (!options.areUnidentifiedArtifactsPermitted()) { + javac_state.removeUnidentifiedArtifacts(); + } + // Go through all sources and taint all packages that miss artifacts. + javac_state.taintPackagesThatMissArtifacts(); + + // Check recorded classpath public apis. Taint packages that depend on + // classpath classes whose public apis have changed. + javac_state.taintPackagesDependingOnChangedClasspathPackages(); + + // Now clean out all known artifacts belonging to tainted packages. + javac_state.deleteClassArtifactsInTaintedPackages(); + // Copy files, for example property files, images files, xml files etc etc. + javac_state.performCopying(Util.pathToFile(options.getDestDir()), suffixRules); + // Translate files, for example compile properties or compile idls. + javac_state.performTranslation(Util.pathToFile(gensrc), suffixRules); + // Add any potentially generated java sources to the tobe compiled list. + // (Generated sources must always have a package.) + Map<String,Source> generated_sources = new HashMap<>(); + + try { + + Source.scanRoot(Util.pathToFile(options.getGenSrcDir()), Util.set(".java"), null, null, null, null, + generated_sources, modules, current_module, false, true, false); + javac_state.now().flattenPackagesSourcesAndArtifacts(modules); + // Recheck the the source files and their timestamps again. + javac_state.checkSourceStatus(true); + + // Now do a safety check that the list of source files is identical + // to the list Make believes we are compiling. If we do not get this + // right, then incremental builds will fail with subtility. + // If any difference is detected, then we will fail hard here. + // This is an important safety net. + javac_state.compareWithMakefileList(Util.pathToFile(options.getSourceReferenceList())); + + // Do the compilations, repeatedly until no tainted packages exist. + boolean again; + // Collect the name of all compiled packages. + Set<String> recently_compiled = new HashSet<>(); + boolean[] rc = new boolean[1]; + + CompilationService compilationService = new CompilationService(); + do { + if (round > 0) + printRound(round); + // Clean out artifacts in tainted packages. + javac_state.deleteClassArtifactsInTaintedPackages(); + again = javac_state.performJavaCompilations(compilationService, options, recently_compiled, rc); + if (!rc[0]) { + Log.debug("Compilation failed."); + break; } - } catch (Exception e) { - Log.error(Util.getStackTrace(e)); - stderrLog.append(Util.getStackTrace(e)); - rc = com.sun.tools.javac.main.Main.Result.ERROR; + if (!again) { + Log.debug("Nothing left to do."); + } + round++; + } while (again); + Log.debug("No need to do another round."); + + // Only update the state if the compile went well. + if (rc[0]) { + javac_state.save(); + // Reflatten only the artifacts. + javac_state.now().flattenArtifacts(modules); + // Remove artifacts that were generated during the last compile, but not this one. + javac_state.removeSuperfluousArtifacts(recently_compiled); } - compilationResult.packageArtifacts = sfm.getPackageArtifacts(); - - if (papVerifier.errorsDiscovered()) - rc = com.sun.tools.javac.main.Main.Result.ERROR; - - compilationResult.packageDependencies = depsCollector.getDependencies(false); - compilationResult.packageCpDependencies = depsCollector.getDependencies(true); - - compilationResult.packagePubapis = pubApiCollector.getPubApis(true); // pubApis.getPubapis(explicitJFOs, true); - compilationResult.dependencyPubapis = pubApiCollector.getPubApis(false); // pubApis.getPubapis(explicitJFOs, false); - compilationResult.stdout = stdoutLog.toString(); - compilationResult.stderr = stderrLog.toString(); - compilationResult.returnCode = rc.exitCode; - - return compilationResult; - } catch (IOException e) { - throw new Error(e); + return new CompilationResult(rc[0] ? 0 : ERROR_FATAL, + new String(outBaos.toByteArray(), UTF_8), + new String(errBaos.toByteArray(), UTF_8)); + } catch (ProblemException e) { + Log.error(e.getMessage()); + return new CompilationResult(ERROR_FATAL, + new String(outBaos.toByteArray(), UTF_8), + new String(errBaos.toByteArray(), UTF_8)); + } catch (Exception e) { + e.printStackTrace(err); + return new CompilationResult(ERROR_FATAL, + new String(outBaos.toByteArray(), UTF_8), + new String(errBaos.toByteArray(), UTF_8)); } } @Override public void shutdown() { // Nothing to clean up - // ... maybe we should wait for any current request to finish? } - @Override - public String serverSettings() { - return ""; + private static boolean validateOptions(Options options) { + + String err = null; + + if (options.getDestDir() == null) { + err = "Please specify output directory."; + } else if (options.isJavaFilesAmongJavacArgs()) { + err = "Sjavac does not handle explicit compilation of single .java files."; + } else if (options.getServerConf() == null) { + err = "No server configuration provided."; + } else if (!options.getImplicitPolicy().equals("none")) { + err = "The only allowed setting for sjavac is -implicit:none"; + } else if (options.getSources().isEmpty()) { + err = "You have to specify -src."; + } else if (options.getTranslationRules().size() > 1 + && options.getGenSrcDir() == null) { + err = "You have translators but no gensrc dir (-s) specified!"; + } + + if (err != null) + Log.error(err); + + return err == null; + } - private void logJavacInvocation(String[] args) { - Log.debug("Invoking javac with args"); - Iterator<String> argIter = Arrays.asList(args).iterator(); - while (argIter.hasNext()) { - String arg = argIter.next(); - String line = " " + arg; - if (arg.matches("\\-(d|cp|classpath|sourcepath|source|target)") - && argIter.hasNext()) { - line += " " + argIter.next(); - } - Log.debug(line); + private static boolean createIfMissing(Path dir) { + + if (Files.isDirectory(dir)) + return true; + + if (Files.exists(dir)) { + Log.error(dir + " is not a directory."); + return false; + } + + try { + Files.createDirectories(dir); + } catch (IOException e) { + Log.error("Could not create directory: " + e.getMessage()); + return false; + } + + return true; + } + + /** Find source files in the given source locations. */ + public static void findSourceFiles(List<SourceLocation> sourceLocations, + Set<String> sourceTypes, + Map<String,Source> foundFiles, + Map<String, Module> foundModules, + Module currentModule, + boolean permitSourcesInDefaultPackage, + boolean inLinksrc) { + + for (SourceLocation source : sourceLocations) { + source.findSourceFiles(sourceTypes, + foundFiles, + foundModules, + currentModule, + permitSourcesInDefaultPackage, + inLinksrc); } } + + private static void printRound(int round) { + Log.debug("****************************************"); + Log.debug("* Round " + round + " *"); + Log.debug("****************************************"); + } }
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/CompilationResult.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/CompilationResult.java Mon Sep 07 13:28:41 2015 -0700 @@ -26,15 +26,8 @@ package com.sun.tools.sjavac.server; import java.io.Serializable; -import java.net.URI; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; - -import com.sun.tools.sjavac.pubapi.PubApi; /** - * * <p><b>This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. * This code and its internal interfaces are subject to change or @@ -47,17 +40,18 @@ // Return code constants public final static int ERROR_FATAL = -1; + public String stdout; + public String stderr; public int returnCode; - public Map<String, Set<URI>> packageArtifacts = new HashMap<>(); - public Map<String, Map<String, Set<String>>> packageDependencies = new HashMap<>(); - public Map<String, Map<String, Set<String>>> packageCpDependencies = new HashMap<>(); - public Map<String, PubApi> packagePubapis = new HashMap<>(); - public Map<String, PubApi> dependencyPubapis = new HashMap<>(); - public String stdout = ""; - public String stderr = ""; public CompilationResult(int returnCode) { + this(returnCode, "", ""); + } + + public CompilationResult(int returnCode, String stdout, String stderr) { this.returnCode = returnCode; + this.stdout = stdout; + this.stderr = stderr; } public void setReturnCode(int returnCode) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/CompilationSubResult.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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 com.sun.tools.sjavac.server; + +import java.io.Serializable; +import java.net.URI; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import com.sun.tools.sjavac.pubapi.PubApi; + +/** + * + * <p><b>This is NOT part of any supported API. + * If you write code that depends on this, you do so at your own risk. + * This code and its internal interfaces are subject to change or + * deletion without notice.</b> + */ +public class CompilationSubResult implements Serializable { + + static final long serialVersionUID = 46739181113L; + + // Return code constants + public final static int ERROR_FATAL = -1; + + public int returnCode; + public Map<String, Set<URI>> packageArtifacts = new HashMap<>(); + public Map<String, Map<String, Set<String>>> packageDependencies = new HashMap<>(); + public Map<String, Map<String, Set<String>>> packageCpDependencies = new HashMap<>(); + public Map<String, PubApi> packagePubapis = new HashMap<>(); + public Map<String, PubApi> dependencyPubapis = new HashMap<>(); + public String stdout = ""; + public String stderr = ""; + + public CompilationSubResult(int returnCode) { + this.returnCode = returnCode; + } + + public void setReturnCode(int returnCode) { + this.returnCode = returnCode; + } +}
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/IdleResetSjavac.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/IdleResetSjavac.java Mon Sep 07 13:28:41 2015 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,10 +24,6 @@ */ package com.sun.tools.sjavac.server; -import java.io.File; -import java.net.URI; -import java.util.List; -import java.util.Set; import java.util.Timer; import java.util.TimerTask; @@ -64,30 +60,10 @@ } @Override - public SysInfo getSysInfo() { + public CompilationResult compile(String[] args) { startCall(); try { - return delegate.getSysInfo(); - } finally { - endCall(); - } - } - - @Override - public CompilationResult compile(String protocolId, - String invocationId, - String[] args, - List<File> explicitSources, - Set<URI> sourcesToCompile, - Set<URI> visibleSources) { - startCall(); - try { - return delegate.compile(protocolId, - invocationId, - args, - explicitSources, - sourcesToCompile, - visibleSources); + return delegate.compile(args); } finally { endCall(); } @@ -129,8 +105,4 @@ delegate.shutdown(); } - @Override - public String serverSettings() { - return delegate.serverSettings(); - } }
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/PortFile.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/PortFile.java Mon Sep 07 13:28:41 2015 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,6 +37,7 @@ import com.sun.tools.javac.util.Assert; import com.sun.tools.sjavac.Log; +import com.sun.tools.sjavac.client.PortFileInaccessibleException; /** * The PortFile class mediates access to a short binary file containing the tcp/ip port (for the localhost) @@ -80,11 +81,16 @@ * Create a new portfile. * @param fn is the path to the file. */ - public PortFile(String fn) throws FileNotFoundException { + public PortFile(String fn) throws PortFileInaccessibleException { filename = fn; file = new File(filename); stopFile = new File(filename+".stop"); - rwfile = new RandomAccessFile(file, "rw"); + try { + rwfile = new RandomAccessFile(file, "rw"); + } catch (FileNotFoundException e) { + // Reached if file for instance already exists and is a directory + throw new PortFileInaccessibleException(e); + } // The rwfile should only be readable by the owner of the process // and no other! How do we do that on a RandomAccessFile? channel = rwfile.getChannel();
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/RequestHandler.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/RequestHandler.java Mon Sep 07 13:28:41 2015 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,16 +24,12 @@ */ package com.sun.tools.sjavac.server; -import java.io.File; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.PrintWriter; import java.io.StringWriter; import java.net.Socket; -import java.net.URI; -import java.util.List; -import java.util.Set; import com.sun.tools.sjavac.Log; @@ -71,8 +67,7 @@ String cmd = (String) oin.readObject(); Log.info("Handling request, id: " + id + " cmd: " + cmd); switch (cmd) { - case SjavacServer.CMD_SYS_INFO: handleSysInfoRequest(oin, oout); break; - case SjavacServer.CMD_COMPILE: handleCompileRequest(oin, oout); break; + case SjavacServer.CMD_COMPILE: handleCompileRequest(oin, oout); break; default: Log.error("Unknown command: " + cmd); } } catch (Exception ex) { @@ -85,31 +80,15 @@ } } - private void handleSysInfoRequest(ObjectInputStream oin, - ObjectOutputStream oout) throws IOException { - oout.writeObject(sjavac.getSysInfo()); - oout.flush(); - } - - @SuppressWarnings("unchecked") private void handleCompileRequest(ObjectInputStream oin, ObjectOutputStream oout) throws IOException { try { // Read request arguments - String protocolId = (String) oin.readObject(); - String invocationId = (String) oin.readObject(); String[] args = (String[]) oin.readObject(); - List<File> explicitSources = (List<File>) oin.readObject(); - Set<URI> sourcesToCompile = (Set<URI>) oin.readObject(); - Set<URI> visibleSources = (Set<URI>) oin.readObject(); // Perform compilation - CompilationResult cr = sjavac.compile(protocolId, - invocationId, - args, - explicitSources, - sourcesToCompile, - visibleSources); + CompilationResult cr = sjavac.compile(args); + // Write request response oout.writeObject(cr); oout.flush();
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/Sjavac.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/Sjavac.java Mon Sep 07 13:28:41 2015 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,10 +24,6 @@ */ package com.sun.tools.sjavac.server; -import java.io.File; -import java.net.URI; -import java.util.List; -import java.util.Set; /** * Interface of the SjavacImpl, the sjavac client and all wrappers such as @@ -39,16 +35,6 @@ * deletion without notice.</b> */ public interface Sjavac { - - SysInfo getSysInfo(); - - CompilationResult compile(String protocolId, - String invocationId, - String[] args, - List<File> explicitSources, - Set<URI> sourcesToCompile, - Set<URI> visibleSources); - + CompilationResult compile(String[] args); void shutdown(); - String serverSettings(); }
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/SjavacServer.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/SjavacServer.java Mon Sep 07 13:28:41 2015 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -39,6 +39,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import com.sun.tools.sjavac.Util; +import com.sun.tools.sjavac.client.PortFileInaccessibleException; import com.sun.tools.sjavac.comp.PooledSjavac; import com.sun.tools.sjavac.comp.SjavacImpl; @@ -54,7 +55,6 @@ // Used in protocol to indicate which method to invoke public final static String CMD_COMPILE = "compile"; - public final static String CMD_SYS_INFO = "sys-info"; final private String portfilename; final private String logfile; @@ -122,7 +122,7 @@ /** * Acquire the port file. Synchronized since several threads inside an smart javac wrapper client acquires the same port file at the same time. */ - public static synchronized PortFile getPortFile(String filename) throws FileNotFoundException { + public static synchronized PortFile getPortFile(String filename) throws PortFileInaccessibleException { if (allPortFiles == null) { allPortFiles = new HashMap<>(); }
--- a/langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C1.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C1.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C2.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C2.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C3.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C3.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C4.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C4.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C5.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C5.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlDocument/TestHtmlDocument.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlDocument/TestHtmlDocument.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlStrongTag/TestHtmlStrongTag.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlStrongTag/TestHtmlStrongTag.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlStrongTag/pkg1/C1.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlStrongTag/pkg1/C1.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlStrongTag/pkg2/C2.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlStrongTag/pkg2/C2.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlTableTags/pkg2/C3.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlTableTags/pkg2/C3.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlTableTags/pkg2/C4.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlTableTags/pkg2/C4.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlTag/TestHtmlTag.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlTag/TestHtmlTag.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlTag/pkg1/C1.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlTag/pkg1/C1.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlTag/pkg2/C2.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlTag/pkg2/C2.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlVersion/pkg/TestError.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg/TestError.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlVersion/pkg/TestException.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg/TestException.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/NestedInnerClass.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/NestedInnerClass.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/PrivateIncludeInnerClass.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/PrivateIncludeInnerClass.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/ProtectedInnerClass.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/ProtectedInnerClass.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/PublicExcludeInnerClass.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/PublicExcludeInnerClass.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testProfiles/pkg2/Anno1Pkg2.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testProfiles/pkg2/Anno1Pkg2.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testProfiles/pkg2/Anno2Pkg2.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testProfiles/pkg2/Anno2Pkg2.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testProfiles/pkg4/Anno1Pkg4.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testProfiles/pkg4/Anno1Pkg4.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testSerializedForm/pkg1/NestedInnerClass.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testSerializedForm/pkg1/NestedInnerClass.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testSerializedForm/pkg1/PrivateIncludeInnerClass.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testSerializedForm/pkg1/PrivateIncludeInnerClass.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testSerializedForm/pkg1/ProtectedInnerClass.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testSerializedForm/pkg1/ProtectedInnerClass.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testSerializedForm/pkg1/PublicExcludeInnerClass.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testSerializedForm/pkg1/PublicExcludeInnerClass.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C1.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C1.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C2.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C2.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C3.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C3.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testSinceTag/pkg1/C1.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testSinceTag/pkg1/C1.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/com/sun/javadoc/testTagOutput/TestTagOutput.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/com/sun/javadoc/testTagOutput/TestTagOutput.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/6668794/badClass/A.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/6668794/badClass/A.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/6668794/badClass/Test.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/6668794/badClass/Test.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/6668794/badSource/p/A.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/6668794/badSource/p/A.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/7129225/Anno.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/7129225/Anno.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/7129225/AnnoProcessor.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/7129225/AnnoProcessor.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/7153958/CPoolRefClassContainingInlinedCts.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/7153958/CPoolRefClassContainingInlinedCts.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/7153958/pkg/ClassToBeStaticallyImportedA.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/7153958/pkg/ClassToBeStaticallyImportedA.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/7153958/pkg/ClassToBeStaticallyImportedB.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/7153958/pkg/ClassToBeStaticallyImportedB.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/7166455/CheckACC_STRICTFlagOnclinitTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/7166455/CheckACC_STRICTFlagOnclinitTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/8005931/CheckACC_STRICTFlagOnPkgAccessClassTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/8005931/CheckACC_STRICTFlagOnPkgAccessClassTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/8074306/TestSyntheticNullChecks.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/8074306/TestSyntheticNullChecks.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/T6668802.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T6668802.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/T7165659/InnerClassAttrMustNotHaveStrictFPFlagTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T7165659/InnerClassAttrMustNotHaveStrictFPFlagTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/T8003967/DetectMutableStaticFields.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T8003967/DetectMutableStaticFields.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/T8009640/CheckRejectProfileBCPOptionsIfUsedTogetherTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T8009640/CheckRejectProfileBCPOptionsIfUsedTogetherTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/T8010659/CompilerCrashWhenMixingBinariesAndSourcesTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T8010659/CompilerCrashWhenMixingBinariesAndSourcesTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/T8011181/EmptyUTF8ForInnerClassNameTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T8011181/EmptyUTF8ForInnerClassNameTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/T8013394/CompileErrorWithIteratorTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T8013394/CompileErrorWithIteratorTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/T8019486/WrongLNTForLambdaTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T8019486/WrongLNTForLambdaTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/T8022186/DeadCodeGeneratedForEmptyTryTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T8022186/DeadCodeGeneratedForEmptyTryTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/T8022316/CompilerErrorGenericThrowPlusMethodRefTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T8022316/CompilerErrorGenericThrowPlusMethodRefTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -1,30 +1,5 @@ /* - * Copyright (c) 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. - */ - -/* - * @test + * @test /nodynamiccopyright/ * @bug 8022316 * @summary Generic throws, overriding and method reference * @compile/fail/ref=CompilerErrorGenericThrowPlusMethodRefTest.out -XDrawDiagnostics CompilerErrorGenericThrowPlusMethodRefTest.java
--- a/langtools/test/tools/javac/T8022316/CompilerErrorGenericThrowPlusMethodRefTest.out Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T8022316/CompilerErrorGenericThrowPlusMethodRefTest.out Mon Sep 07 13:28:41 2015 -0700 @@ -1,2 +1,2 @@ -CompilerErrorGenericThrowPlusMethodRefTest.java:55:26: compiler.err.unreported.exception.need.to.catch.or.throw: java.lang.Exception +CompilerErrorGenericThrowPlusMethodRefTest.java:30:26: compiler.err.unreported.exception.need.to.catch.or.throw: java.lang.Exception 1 error
--- a/langtools/test/tools/javac/T8023112/SkipLazyConstantCreationForMethodRefTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T8023112/SkipLazyConstantCreationForMethodRefTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/T8024039/NoDeadCodeGenerationOnTrySmtTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T8024039/NoDeadCodeGenerationOnTrySmtTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/T8024398/NPETryTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T8024398/NPETryTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/T8024437/ExceptionInferenceFromClassFileTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/T8024437/ExceptionInferenceFromClassFileTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/TestBootstrapMethodsCount.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,236 @@ +/* + * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * 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 8129547 + * @summary Excess entries in BootstrapMethods with the same (bsm, bsmKind, bsmStaticArgs), but different dynamicArgs + * @library lib + * @modules jdk.jdeps/com.sun.tools.classfile + * jdk.compiler/com.sun.tools.javac.api + * jdk.compiler/com.sun.tools.javac.code + * jdk.compiler/com.sun.tools.javac.jvm + * jdk.compiler/com.sun.tools.javac.tree + * jdk.compiler/com.sun.tools.javac.util + * @build JavacTestingAbstractThreadedTest + * @run main/othervm TestBootstrapMethodsCount + */ + +import java.io.File; +import java.net.URI; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Locale; + +import javax.tools.Diagnostic; +import javax.tools.JavaFileObject; +import javax.tools.SimpleJavaFileObject; + +import com.sun.source.tree.MethodInvocationTree; +import com.sun.source.tree.MethodTree; +import com.sun.source.util.TaskEvent; +import com.sun.source.util.TaskListener; +import com.sun.source.util.TreeScanner; + +import com.sun.tools.classfile.Attribute; +import com.sun.tools.classfile.BootstrapMethods_attribute; +import com.sun.tools.classfile.ClassFile; + +import com.sun.tools.javac.api.JavacTaskImpl; +import com.sun.tools.javac.code.Symbol; +import com.sun.tools.javac.code.Symbol.MethodSymbol; +import com.sun.tools.javac.code.Symtab; +import com.sun.tools.javac.code.Types; +import com.sun.tools.javac.tree.JCTree.JCMethodInvocation; +import com.sun.tools.javac.tree.JCTree.JCMethodDecl; +import com.sun.tools.javac.tree.JCTree.JCIdent; +import com.sun.tools.javac.util.Context; +import com.sun.tools.javac.util.Names; + +import static com.sun.tools.javac.jvm.ClassFile.*; + +public class TestBootstrapMethodsCount + extends JavacTestingAbstractThreadedTest + implements Runnable { + + + public static void main(String... args) throws Exception { + pool.execute(new TestBootstrapMethodsCount()); + checkAfterExec(); + } + + DiagChecker dc; + + TestBootstrapMethodsCount() { + dc = new DiagChecker(); + } + + public void run() { + int id = checkCount.incrementAndGet(); + JavaSource source = new JavaSource(id); + JavacTaskImpl ct = (JavacTaskImpl)comp.getTask(null, fm.get(), dc, + Arrays.asList("-g"), null, Arrays.asList(source)); + Context context = ct.getContext(); + Symtab syms = Symtab.instance(context); + Names names = Names.instance(context); + Types types = Types.instance(context); + ct.addTaskListener(new Indifier(syms, names, types)); + try { + ct.generate(); + } catch (Throwable t) { + t.printStackTrace(); + throw new AssertionError( + String.format("Error thrown when compiling following code\n%s", + source.source)); + } + if (dc.diagFound) { + throw new AssertionError( + String.format("Diags found when compiling following code\n%s\n\n%s", + source.source, dc.printDiags())); + } + verifyBytecode(id); + } + + void verifyBytecode(int id) { + File compiledTest = new File(String.format("Test%d.class", id)); + try { + ClassFile cf = ClassFile.read(compiledTest); + BootstrapMethods_attribute bsm_attr = + (BootstrapMethods_attribute)cf + .getAttribute(Attribute.BootstrapMethods); + int length = bsm_attr.bootstrap_method_specifiers.length; + if (length != 1) { + throw new Error("Bad number of method specifiers " + + "in BootstrapMethods attribute: " + length); + } + } catch (Exception e) { + e.printStackTrace(); + throw new Error("error reading " + compiledTest +": " + e); + } + } + + class JavaSource extends SimpleJavaFileObject { + + static final String source_template = "import java.lang.invoke.*;\n" + + "class Bootstrap {\n" + + " public static CallSite bsm(MethodHandles.Lookup lookup, " + + "String name, MethodType methodType) {\n" + + " return null;\n" + + " }\n" + + "}\n" + + "class Test#ID {\n" + + " void m1() { }\n" + + " void m2(Object arg1) { }\n" + + " void test1() {\n" + + " Object o = this; // marker statement \n" + + " m1();\n" + + " }\n" + + " void test2(Object arg1) {\n" + + " Object o = this; // marker statement \n" + + " m2(arg1);\n" + + " }\n" + + "}"; + + String source; + + JavaSource(int id) { + super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE); + source = source_template.replace("#ID", String.valueOf(id)); + } + + @Override + public CharSequence getCharContent(boolean ignoreEncodingErrors) { + return source; + } + } + + class Indifier extends TreeScanner<Void, Void> implements TaskListener { + + MethodSymbol bsm; + Symtab syms; + Names names; + Types types; + + Indifier(Symtab syms, Names names, Types types) { + this.syms = syms; + this.names = names; + this.types = types; + } + + @Override + public void started(TaskEvent e) { + //do nothing + } + + @Override + public void finished(TaskEvent e) { + if (e.getKind() == TaskEvent.Kind.ANALYZE) { + scan(e.getCompilationUnit(), null); + } + } + + @Override + public Void visitMethodInvocation(MethodInvocationTree node, Void p) { + super.visitMethodInvocation(node, p); + JCMethodInvocation apply = (JCMethodInvocation)node; + JCIdent ident = (JCIdent)apply.meth; + Symbol oldSym = ident.sym; + if (!oldSym.isConstructor()) { + ident.sym = new Symbol.DynamicMethodSymbol(oldSym.name, + oldSym.owner, REF_invokeStatic, bsm, oldSym.type, new Object[0]); + } + return null; + } + + @Override + public Void visitMethod(MethodTree node, Void p) { + super.visitMethod(node, p); + if (node.getName().toString().equals("bsm")) { + bsm = ((JCMethodDecl)node).sym; + } + return null; + } + } + + static class DiagChecker + implements javax.tools.DiagnosticListener<JavaFileObject> { + + boolean diagFound; + ArrayList<String> diags = new ArrayList<>(); + + public void report(Diagnostic<? extends JavaFileObject> diagnostic) { + diags.add(diagnostic.getMessage(Locale.getDefault())); + diagFound = true; + } + + String printDiags() { + StringBuilder buf = new StringBuilder(); + for (String s : diags) { + buf.append(s); + buf.append("\n"); + } + return buf.toString(); + } + } + +}
--- a/langtools/test/tools/javac/defaultMethods/CheckACC_STRICTFlagOnDefaultMethodTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/defaultMethods/CheckACC_STRICTFlagOnDefaultMethodTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/diags/examples/BadSourceFileHeader/sourcepath/p/A.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/diags/examples/BadSourceFileHeader/sourcepath/p/A.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/diags/examples/MethodRedundantTypeargs.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/diags/examples/MethodRedundantTypeargs.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/generics/6987475/T6987475pos.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/generics/6987475/T6987475pos.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/generics/8064803/T8064803.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/generics/8064803/T8064803.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/generics/inference/8048838/T8048838.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/generics/inference/8048838/T8048838.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/generics/inference/8055963/T8055963.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/generics/inference/8055963/T8055963.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/generics/inference/8058199/T8058199.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/generics/inference/8058199/T8058199.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/generics/inference/8058511/T8058511a.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/generics/inference/8058511/T8058511a.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/generics/inference/8058511/T8058511b.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/generics/inference/8058511/T8058511b.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/generics/inference/8058511/T8058511c.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/generics/inference/8058511/T8058511c.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/generics/inference/8078024/T8078024.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/generics/inference/8078024/T8078024.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/generics/inference/8130304/T8130304.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/generics/inference/8130304/T8130304.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/generics/inference/EagerReturnTypeResolution/EagerReturnTypeResolutionTesta.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/generics/inference/EagerReturnTypeResolution/EagerReturnTypeResolutionTesta.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/generics/typevars/8129214/T8129214.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/generics/typevars/8129214/T8129214.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/generics/typevars/8129214/pkg/Foo.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/generics/typevars/8129214/pkg/Foo.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/8051958/T8051958.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/8051958/T8051958.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/8068399/T8068399.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/8068399/T8068399.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/8068430/T8068430.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/8068430/T8068430.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/8073842/T8073842.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/8073842/T8073842.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/langtools/test/tools/javac/lambda/8134329/T8134329.java Mon Sep 07 13:28:41 2015 -0700 @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * 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. + */ + +/* + * @test + * @bug 8134329 + * @summary TeeOpTest.java fails across platforms after fix for JDK-8129547 + */ +import java.util.function.Supplier; + +public class T8134329 { + + static void assertEquals(Object o1, Object o2) { + if (!o1.equals(o2)) { + throw new AssertionError(String.format("Expected %s - found %s", o2, o1)); + } + } + + public static void main(String[] args) { + Supplier<String> s1 = new T8134329() { }::m; + assertEquals(s1.get(), "m"); + Supplier<String> s2 = new T8134329() { }::g; + assertEquals(s2.get(), "g"); + Supplier<String> s3 = new T8134329() { }::m; + assertEquals(s3.get(), "m"); + } + + String m() { return "m"; } + String g() { return "g"; } +}
--- a/langtools/test/tools/javac/lambda/LambdaInterfaceStaticField.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/LambdaInterfaceStaticField.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/LambdaMultiCatchTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/LambdaMultiCatchTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/T8038420/LambdaIncrement.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/T8038420/LambdaIncrement.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/T8057800/NPEMethodReferenceAndGenericsTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/T8057800/NPEMethodReferenceAndGenericsTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/lambdaExecution/InInterface.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/lambdaExecution/InInterface.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/lambdaExecution/InnerConstructor.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/lambdaExecution/InnerConstructor.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/lambdaExecution/LambdaTranslationTest1.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/lambdaExecution/LambdaTranslationTest1.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/lambdaExecution/LambdaTranslationTest2.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/lambdaExecution/LambdaTranslationTest2.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/lambdaExecution/TMapper.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/lambdaExecution/TMapper.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/lambdaExecution/TPredicate.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/lambdaExecution/TPredicate.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReference/MethodReferenceComplexNullCheckTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReference/MethodReferenceComplexNullCheckTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceIntersection1.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceIntersection1.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceIntersection2.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceIntersection2.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceIntersection3.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceIntersection3.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceNullCheckTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceNullCheckTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferencePackagePrivateQualifier.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferencePackagePrivateQualifier.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestFDCCE.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestFDCCE.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerDefault.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerDefault.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerInstance.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerInstance.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerVarArgsThis.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerVarArgsThis.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInstance.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInstance.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestKinds.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestKinds.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestMethodHandle.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestMethodHandle.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNew.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNew.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInner.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInner.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInnerImplicitArgs.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInnerImplicitArgs.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase1.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase1.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase2.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase2.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase4.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase4.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuper.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuper.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuperDefault.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuperDefault.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestTypeConversion.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestTypeConversion.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgs.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgs.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsExt.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsExt.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuper.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuper.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuperDefault.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuperDefault.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsThis.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsThis.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambda/methodReferenceExecution/pkg/B.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambda/methodReferenceExecution/pkg/B.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/AttributeInjector.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/AttributeInjector.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFile.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFile.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFilePreprocessor.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFilePreprocessor.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassToInterfaceConverter.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassToInterfaceConverter.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/Compiler.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/Compiler.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/DirectedClassLoader.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/DirectedClassLoader.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/SourceModel.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/SourceModel.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/TestHarness.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/TestHarness.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/ClassCase.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/ClassCase.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Hierarchy.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Hierarchy.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/HierarchyGenerator.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/HierarchyGenerator.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Rule.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Rule.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/RuleGroup.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/RuleGroup.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTNode.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTNode.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTParser.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTParser.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTShape.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTShape.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/vm/FDSeparateCompilationTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/lambdaShapes/org/openjdk/tests/vm/FDSeparateCompilationTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/linenumbers/NestedLineNumberTest.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/linenumbers/NestedLineNumberTest.java Mon Sep 07 13:28:41 2015 -0700 @@ -1,30 +1,5 @@ /* - * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * 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. - */ - -/* - * @test + * @test /nodynamiccopyright/ * @bug 8061778 * @summary Wrong LineNumberTable for default constructors * @modules jdk.jdeps/com.sun.tools.classfile @@ -50,8 +25,8 @@ } int line = lines[0].line_number; - if (line != 79) { - error(String.format("LineNumberTable contains wrong line number - expected %d, found %d", 79, line)); + if (line != 54) { + error(String.format("LineNumberTable contains wrong line number - expected %d, found %d", 54, line)); } }
--- a/langtools/test/tools/javac/processing/messager/MessagerDiags.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/processing/messager/MessagerDiags.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javac/unicode/Wrapper.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javac/unicode/Wrapper.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javap/T4884240.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javap/T4884240.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javap/classfile/deps/GetDeps.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javap/classfile/deps/GetDeps.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javap/classfile/deps/T6907575.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javap/classfile/deps/T6907575.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/javap/classfile/deps/p/C1.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/javap/classfile/deps/p/C1.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/sjavac/ApiExtraction.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/sjavac/ApiExtraction.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/sjavac/ClasspathDependencies.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/sjavac/ClasspathDependencies.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/sjavac/CompileCircularSources.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/sjavac/CompileCircularSources.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/sjavac/CompileExcludingDependency.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/sjavac/CompileExcludingDependency.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/sjavac/CompileWithAtFile.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/sjavac/CompileWithAtFile.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/sjavac/CompileWithInvisibleSources.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/sjavac/CompileWithInvisibleSources.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/sjavac/CompileWithOverrideSources.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/sjavac/CompileWithOverrideSources.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/sjavac/ExclPattern.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/sjavac/ExclPattern.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * 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
--- a/langtools/test/tools/sjavac/IdleShutdown.java Thu Sep 03 15:04:05 2015 -0700 +++ b/langtools/test/tools/sjavac/IdleShutdown.java Mon Sep 07 13:28:41 2015 -0700 @@ -4,9 +4,7 @@ * * 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. + * publis