changeset 3016:c5671e662392 jdk9-b80

Merge
author lana
date Thu, 27 Aug 2015 13:22:04 -0700
parents 9b3da6108876 (current diff) a4d9179cf598 (diff)
children f0e149d3e375 891db670a8cb
files
diffstat 188 files changed, 1150 insertions(+), 1231 deletions(-) [+]
line wrap: on
line diff
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Pool.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Pool.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CleanProperties.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CleanProperties.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileJavaPackages.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileJavaPackages.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileProperties.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CompileProperties.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CopyFile.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/CopyFile.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/JavacState.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/JavacState.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/Transformer.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/Transformer.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/client/ClientMain.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/client/ClientMain.java	Thu Aug 27 13:22:04 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<>();
-
-        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);
-
-        // 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);
-
-        // 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();
+        CompilationResult cr = sjavac.compile(args);
 
-        // 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);
-            }
+        out.print(cr.stdout);
+        err.print(cr.stderr);
 
-            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;
-        }
-    }
-
-    private static boolean validateOptions(Options options) {
-
-        String err = null;
+        if (!background)
+            sjavac.shutdown();
 
-        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;
-
+        return cr.returnCode;
     }
-
-    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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/client/PortFileInaccessibleException.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/client/SjavacClient.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/client/SjavacClient.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/CompilationService.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/PooledSjavac.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/PooledSjavac.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/SjavacImpl.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/SjavacImpl.java	Thu Aug 27 13:22:04 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) {
+
+        ByteArrayOutputStream outBaos = new ByteArrayOutputStream();
+        ByteArrayOutputStream errBaos = new ByteArrayOutputStream();
+        PrintStream out = new PrintStream(outBaos);
+        PrintStream err = new PrintStream(errBaos);
+
+        Options options;
+        try {
+            options = Options.parseArgs(args);
+        } catch (IllegalArgumentException e) {
+            Log.error(e.getMessage());
+            return new CompilationResult(ERROR_FATAL);
+        }
+
+        Log.setLogLevel(options.getLogLevel());
+
+        if (!validateOptions(options))
+            return new CompilationResult(ERROR_FATAL);
 
-    @Override
-    public CompilationResult compile(String protocolId,
-                                     String invocationId,
-                                     String[] args,
-                                     List<File> explicitSources,
-                                     Set<URI> sourcesToCompile,
-                                     Set<URI> visibleSources) {
+        if (!createIfMissing(options.getDestDir()))
+            return new CompilationResult(ERROR_FATAL);
+
+        if (!createIfMissing(options.getStateDir()))
+            return new CompilationResult(ERROR_FATAL);
+
+        Path gensrc = options.getGenSrcDir();
+        if (gensrc != null && !createIfMissing(gensrc))
+            return new CompilationResult(ERROR_FATAL);
 
-        JavacTool compiler = (JavacTool) ToolProvider.getSystemJavaCompiler();
-        try (StandardJavaFileManager fm = compiler.getStandardFileManager(null, null, null)) {
-            SmartFileManager sfm = new SmartFileManager(fm);
-            Context context = new Context();
+        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<>();
 
-            Dependencies.GraphDependencies.preRegister(context);
+        // Handling of .java-compilation
+        suffixRules.putAll(javac_state.getJavaSuffixRule());
+
+        // Handling of -copy and -tr
+        suffixRules.putAll(options.getTranslationRules());
 
-            // Now setup the actual compilation
-            CompilationResult compilationResult = new CompilationResult(0);
+        // 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<>();
 
-            // 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));
+        // 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);
 
-            for (JavaFileObject jfo : fm.getJavaFileObjectsFromFiles(sourcesToCompileFiles))
-                explicitJFOs.append(SmartFileManager.locWrap(jfo, StandardLocation.SOURCE_PATH));
+        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<>();
 
-            // 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);
+        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();
 
-                    // 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();
+        // 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/CompilationResult.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/CompilationResult.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/CompilationSubResult.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/IdleResetSjavac.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/IdleResetSjavac.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/PortFile.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/PortFile.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/RequestHandler.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/RequestHandler.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/Sjavac.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/Sjavac.java	Thu Aug 27 13:22:04 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/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/SjavacServer.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/SjavacServer.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C1.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C1.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C2.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C2.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C3.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C3.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C4.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C4.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C5.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C5.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlDocument/TestHtmlDocument.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlDocument/TestHtmlDocument.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlStrongTag/TestHtmlStrongTag.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlStrongTag/TestHtmlStrongTag.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlStrongTag/pkg1/C1.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlStrongTag/pkg1/C1.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlStrongTag/pkg2/C2.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlStrongTag/pkg2/C2.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlTableTags/pkg2/C3.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlTableTags/pkg2/C3.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlTableTags/pkg2/C4.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlTableTags/pkg2/C4.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlTag/TestHtmlTag.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlTag/TestHtmlTag.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlTag/pkg1/C1.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlTag/pkg1/C1.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlTag/pkg2/C2.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlTag/pkg2/C2.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlVersion/pkg/TestError.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlVersion/pkg/TestError.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlVersion/pkg/TestException.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlVersion/pkg/TestException.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlVersion/pkg1/NestedInnerClass.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlVersion/pkg1/NestedInnerClass.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlVersion/pkg1/PrivateIncludeInnerClass.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlVersion/pkg1/PrivateIncludeInnerClass.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlVersion/pkg1/ProtectedInnerClass.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlVersion/pkg1/ProtectedInnerClass.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testHtmlVersion/pkg1/PublicExcludeInnerClass.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testHtmlVersion/pkg1/PublicExcludeInnerClass.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testProfiles/pkg2/Anno1Pkg2.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testProfiles/pkg2/Anno1Pkg2.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testProfiles/pkg2/Anno2Pkg2.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testProfiles/pkg2/Anno2Pkg2.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testProfiles/pkg4/Anno1Pkg4.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testProfiles/pkg4/Anno1Pkg4.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testSerializedForm/pkg1/NestedInnerClass.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testSerializedForm/pkg1/NestedInnerClass.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testSerializedForm/pkg1/PrivateIncludeInnerClass.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testSerializedForm/pkg1/PrivateIncludeInnerClass.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testSerializedForm/pkg1/ProtectedInnerClass.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testSerializedForm/pkg1/ProtectedInnerClass.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testSerializedForm/pkg1/PublicExcludeInnerClass.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testSerializedForm/pkg1/PublicExcludeInnerClass.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C1.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C1.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C2.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C2.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C3.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C3.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testSinceTag/pkg1/C1.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testSinceTag/pkg1/C1.java	Thu Aug 27 13:22:04 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/test/com/sun/javadoc/testTagOutput/TestTagOutput.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/com/sun/javadoc/testTagOutput/TestTagOutput.java	Thu Aug 27 13:22:04 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/test/tools/javac/6668794/badClass/A.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/6668794/badClass/A.java	Thu Aug 27 13:22:04 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/test/tools/javac/6668794/badClass/Test.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/6668794/badClass/Test.java	Thu Aug 27 13:22:04 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/test/tools/javac/6668794/badSource/p/A.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/6668794/badSource/p/A.java	Thu Aug 27 13:22:04 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/test/tools/javac/7129225/Anno.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/7129225/Anno.java	Thu Aug 27 13:22:04 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/test/tools/javac/7129225/AnnoProcessor.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/7129225/AnnoProcessor.java	Thu Aug 27 13:22:04 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/test/tools/javac/7153958/CPoolRefClassContainingInlinedCts.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/7153958/CPoolRefClassContainingInlinedCts.java	Thu Aug 27 13:22:04 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/test/tools/javac/7153958/pkg/ClassToBeStaticallyImportedA.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/7153958/pkg/ClassToBeStaticallyImportedA.java	Thu Aug 27 13:22:04 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/test/tools/javac/7153958/pkg/ClassToBeStaticallyImportedB.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/7153958/pkg/ClassToBeStaticallyImportedB.java	Thu Aug 27 13:22:04 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/test/tools/javac/7166455/CheckACC_STRICTFlagOnclinitTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/7166455/CheckACC_STRICTFlagOnclinitTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/8005931/CheckACC_STRICTFlagOnPkgAccessClassTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/8005931/CheckACC_STRICTFlagOnPkgAccessClassTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/8074306/TestSyntheticNullChecks.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/8074306/TestSyntheticNullChecks.java	Thu Aug 27 13:22:04 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/test/tools/javac/T6668802.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T6668802.java	Thu Aug 27 13:22:04 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/test/tools/javac/T7165659/InnerClassAttrMustNotHaveStrictFPFlagTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T7165659/InnerClassAttrMustNotHaveStrictFPFlagTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/T8003967/DetectMutableStaticFields.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T8003967/DetectMutableStaticFields.java	Thu Aug 27 13:22:04 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/test/tools/javac/T8009640/CheckRejectProfileBCPOptionsIfUsedTogetherTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T8009640/CheckRejectProfileBCPOptionsIfUsedTogetherTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/T8010659/CompilerCrashWhenMixingBinariesAndSourcesTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T8010659/CompilerCrashWhenMixingBinariesAndSourcesTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/T8011181/EmptyUTF8ForInnerClassNameTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T8011181/EmptyUTF8ForInnerClassNameTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/T8013394/CompileErrorWithIteratorTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T8013394/CompileErrorWithIteratorTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/T8019486/WrongLNTForLambdaTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T8019486/WrongLNTForLambdaTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/T8022186/DeadCodeGeneratedForEmptyTryTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T8022186/DeadCodeGeneratedForEmptyTryTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/T8022316/CompilerErrorGenericThrowPlusMethodRefTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T8022316/CompilerErrorGenericThrowPlusMethodRefTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/T8022316/CompilerErrorGenericThrowPlusMethodRefTest.out	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T8022316/CompilerErrorGenericThrowPlusMethodRefTest.out	Thu Aug 27 13:22:04 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/test/tools/javac/T8023112/SkipLazyConstantCreationForMethodRefTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T8023112/SkipLazyConstantCreationForMethodRefTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/T8024039/NoDeadCodeGenerationOnTrySmtTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T8024039/NoDeadCodeGenerationOnTrySmtTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/T8024398/NPETryTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T8024398/NPETryTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/T8024437/ExceptionInferenceFromClassFileTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/T8024437/ExceptionInferenceFromClassFileTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/TestBootstrapMethodsCount.java	Thu Aug 27 13:22:04 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/test/tools/javac/defaultMethods/CheckACC_STRICTFlagOnDefaultMethodTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/defaultMethods/CheckACC_STRICTFlagOnDefaultMethodTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/diags/examples/BadSourceFileHeader/sourcepath/p/A.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/diags/examples/BadSourceFileHeader/sourcepath/p/A.java	Thu Aug 27 13:22:04 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/test/tools/javac/diags/examples/MethodRedundantTypeargs.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/diags/examples/MethodRedundantTypeargs.java	Thu Aug 27 13:22:04 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/test/tools/javac/generics/6987475/T6987475pos.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/generics/6987475/T6987475pos.java	Thu Aug 27 13:22:04 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/test/tools/javac/generics/8064803/T8064803.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/generics/8064803/T8064803.java	Thu Aug 27 13:22:04 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/test/tools/javac/generics/inference/8048838/T8048838.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/generics/inference/8048838/T8048838.java	Thu Aug 27 13:22:04 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/test/tools/javac/generics/inference/8055963/T8055963.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/generics/inference/8055963/T8055963.java	Thu Aug 27 13:22:04 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/test/tools/javac/generics/inference/8058199/T8058199.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/generics/inference/8058199/T8058199.java	Thu Aug 27 13:22:04 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/test/tools/javac/generics/inference/8058511/T8058511a.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/generics/inference/8058511/T8058511a.java	Thu Aug 27 13:22:04 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/test/tools/javac/generics/inference/8058511/T8058511b.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/generics/inference/8058511/T8058511b.java	Thu Aug 27 13:22:04 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/test/tools/javac/generics/inference/8058511/T8058511c.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/generics/inference/8058511/T8058511c.java	Thu Aug 27 13:22:04 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/test/tools/javac/generics/inference/8078024/T8078024.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/generics/inference/8078024/T8078024.java	Thu Aug 27 13:22:04 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/test/tools/javac/generics/inference/8130304/T8130304.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/generics/inference/8130304/T8130304.java	Thu Aug 27 13:22:04 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/test/tools/javac/generics/inference/EagerReturnTypeResolution/EagerReturnTypeResolutionTesta.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/generics/inference/EagerReturnTypeResolution/EagerReturnTypeResolutionTesta.java	Thu Aug 27 13:22:04 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/test/tools/javac/generics/typevars/8129214/T8129214.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/generics/typevars/8129214/T8129214.java	Thu Aug 27 13:22:04 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/test/tools/javac/generics/typevars/8129214/pkg/Foo.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/generics/typevars/8129214/pkg/Foo.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/8051958/T8051958.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/8051958/T8051958.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/8068399/T8068399.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/8068399/T8068399.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/8068430/T8068430.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/8068430/T8068430.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/8073842/T8073842.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/8073842/T8073842.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/8134329/T8134329.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/LambdaInterfaceStaticField.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/LambdaInterfaceStaticField.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/LambdaMultiCatchTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/LambdaMultiCatchTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/T8038420/LambdaIncrement.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/T8038420/LambdaIncrement.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/T8057800/NPEMethodReferenceAndGenericsTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/T8057800/NPEMethodReferenceAndGenericsTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/lambdaExecution/InInterface.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/lambdaExecution/InInterface.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/lambdaExecution/InnerConstructor.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/lambdaExecution/InnerConstructor.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/lambdaExecution/LambdaTranslationTest1.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/lambdaExecution/LambdaTranslationTest1.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/lambdaExecution/LambdaTranslationTest2.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/lambdaExecution/LambdaTranslationTest2.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/lambdaExecution/TMapper.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/lambdaExecution/TMapper.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/lambdaExecution/TPredicate.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/lambdaExecution/TPredicate.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReference/MethodReferenceComplexNullCheckTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReference/MethodReferenceComplexNullCheckTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceIntersection1.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceIntersection1.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceIntersection2.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceIntersection2.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceIntersection3.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceIntersection3.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceNullCheckTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceNullCheckTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferencePackagePrivateQualifier.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferencePackagePrivateQualifier.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestFDCCE.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestFDCCE.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerDefault.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerDefault.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerInstance.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerInstance.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerVarArgsThis.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInnerVarArgsThis.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInstance.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestInstance.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestKinds.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestKinds.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestMethodHandle.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestMethodHandle.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNew.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNew.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInner.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInner.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInnerImplicitArgs.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestNewInnerImplicitArgs.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase1.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase1.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase2.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase2.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase4.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase4.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuper.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuper.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuperDefault.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSuperDefault.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestTypeConversion.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestTypeConversion.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgs.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgs.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsExt.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsExt.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuper.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuper.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuperDefault.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsSuperDefault.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsThis.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestVarArgsThis.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambda/methodReferenceExecution/pkg/B.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambda/methodReferenceExecution/pkg/B.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/AttributeInjector.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/AttributeInjector.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFile.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFile.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFilePreprocessor.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFilePreprocessor.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassToInterfaceConverter.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassToInterfaceConverter.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/Compiler.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/Compiler.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/DirectedClassLoader.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/DirectedClassLoader.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/SourceModel.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/SourceModel.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/TestHarness.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/separate/TestHarness.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/ClassCase.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/ClassCase.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Hierarchy.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Hierarchy.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/HierarchyGenerator.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/HierarchyGenerator.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Rule.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/Rule.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/RuleGroup.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/RuleGroup.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTNode.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTNode.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTParser.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTParser.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTShape.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/shapegen/TTShape.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/lambdaShapes/org/openjdk/tests/vm/FDSeparateCompilationTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/lambdaShapes/org/openjdk/tests/vm/FDSeparateCompilationTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/linenumbers/NestedLineNumberTest.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/linenumbers/NestedLineNumberTest.java	Thu Aug 27 13:22:04 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/test/tools/javac/processing/messager/MessagerDiags.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/processing/messager/MessagerDiags.java	Thu Aug 27 13:22:04 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/test/tools/javac/unicode/Wrapper.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javac/unicode/Wrapper.java	Thu Aug 27 13:22:04 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/test/tools/javap/T4884240.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javap/T4884240.java	Thu Aug 27 13:22:04 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/test/tools/javap/classfile/deps/GetDeps.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javap/classfile/deps/GetDeps.java	Thu Aug 27 13:22:04 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/test/tools/javap/classfile/deps/T6907575.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javap/classfile/deps/T6907575.java	Thu Aug 27 13:22:04 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/test/tools/javap/classfile/deps/p/C1.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/javap/classfile/deps/p/C1.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/ApiExtraction.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/ApiExtraction.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/ClasspathDependencies.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/ClasspathDependencies.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/CompileCircularSources.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/CompileCircularSources.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/CompileExcludingDependency.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/CompileExcludingDependency.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/CompileWithAtFile.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/CompileWithAtFile.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/CompileWithInvisibleSources.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/CompileWithInvisibleSources.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/CompileWithOverrideSources.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/CompileWithOverrideSources.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/ExclPattern.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/ExclPattern.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/IdleShutdown.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/IdleShutdown.java	Thu Aug 27 13:22:04 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
@@ -31,17 +29,11 @@
  * @build Wrapper
  * @run main Wrapper IdleShutdown
  */
-import java.io.File;
-import java.net.URI;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 
 import com.sun.tools.sjavac.server.CompilationResult;
 import com.sun.tools.sjavac.server.IdleResetSjavac;
 import com.sun.tools.sjavac.server.Sjavac;
-import com.sun.tools.sjavac.server.SysInfo;
 import com.sun.tools.sjavac.server.Terminable;
 
 
@@ -70,35 +62,14 @@
         if (timeoutTimestamp.get() != -1)
             throw new AssertionError("Premature timeout detected.");
 
-        // Call various methods and wait less than TIMEOUT_MS in between
-        Thread.sleep(TIMEOUT_MS - 1000);
-        log("Getting sys info");
-        service.getSysInfo();
-
+        // Use Sjavac object and wait less than TIMEOUT_MS in between calls
         Thread.sleep(TIMEOUT_MS - 1000);
-        log("Getting sys info");
-        service.getSysInfo();
-
-        if (timeoutTimestamp.get() != -1)
-            throw new AssertionError("Premature timeout detected.");
+        log("Compiling");
+        service.compile(new String[0]);
 
         Thread.sleep(TIMEOUT_MS - 1000);
         log("Compiling");
-        service.compile("",
-                        "",
-                        new String[0],
-                        Collections.<File>emptyList(),
-                        Collections.<URI>emptySet(),
-                        Collections.<URI>emptySet());
-
-        Thread.sleep(TIMEOUT_MS - 1000);
-        log("Compiling");
-        service.compile("",
-                        "",
-                        new String[0],
-                        Collections.<File>emptyList(),
-                        Collections.<URI>emptySet(),
-                        Collections.<URI>emptySet());
+        service.compile(new String[0]);
 
         if (timeoutTimestamp.get() != -1)
             throw new AssertionError("Premature timeout detected.");
@@ -129,7 +100,10 @@
 
     private static class NoopJavacService implements Sjavac {
         @Override
-        public SysInfo getSysInfo() {
+        public void shutdown() {
+        }
+        @Override
+        public CompilationResult compile(String[] args) {
             // Attempt to trigger idle timeout during a call by sleeping
             try {
                 Thread.sleep(TIMEOUT_MS + 1000);
@@ -137,21 +111,5 @@
             }
             return null;
         }
-        @Override
-        public void shutdown() {
-        }
-        @Override
-        public CompilationResult compile(String protocolId,
-                                         String invocationId,
-                                         String[] args,
-                                         List<File> explicitSources,
-                                         Set<URI> sourcesToCompile,
-                                         Set<URI> visibleSources) {
-            return null;
-        }
-        @Override
-        public String serverSettings() {
-            return "";
-        }
     }
 }
--- a/test/tools/sjavac/IgnoreSymbolFile.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/IgnoreSymbolFile.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/IncCompInheritance.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/IncCompInheritance.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/IncCompileFullyQualifiedRef.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/IncCompileFullyQualifiedRef.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/JavacOptionPrep.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/JavacOptionPrep.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/OptionDecoding.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/OptionDecoding.java	Thu Aug 27 13:22:04 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
@@ -51,10 +49,10 @@
 import java.util.Map;
 
 import com.sun.tools.sjavac.CopyFile;
-import com.sun.tools.sjavac.Main;
 import com.sun.tools.sjavac.Module;
 import com.sun.tools.sjavac.Source;
 import com.sun.tools.sjavac.client.ClientMain;
+import com.sun.tools.sjavac.comp.SjavacImpl;
 import com.sun.tools.sjavac.options.Options;
 import com.sun.tools.sjavac.options.SourceLocation;
 
@@ -136,7 +134,7 @@
             Options options = Options.parseArgs("-if", "root/pkg1/ClassA1.java", "root");
 
             Map<String, Source> foundFiles = new HashMap<>();
-            ClientMain.findSourceFiles(options.getSources(), Collections.singleton(".java"), foundFiles,
+            SjavacImpl.findSourceFiles(options.getSources(), Collections.singleton(".java"), foundFiles,
                     new HashMap<String, Module>(), new Module("", ""), false, true);
 
             checkFilesFound(foundFiles.keySet(), a1);
@@ -148,7 +146,7 @@
             Options options = Options.parseArgs("-i", "pkg1/*", "root");
 
             Map<String, Source> foundFiles = new HashMap<>();
-            ClientMain.findSourceFiles(options.getSources(), Collections.singleton(".java"), foundFiles,
+            SjavacImpl.findSourceFiles(options.getSources(), Collections.singleton(".java"), foundFiles,
                     new HashMap<String, Module>(), new Module("", ""), false, true);
 
             checkFilesFound(foundFiles.keySet(), a1, a2, b1, b2);
@@ -160,7 +158,7 @@
             Options options = Options.parseArgs("-xf", "root/pkg1/ClassA1.java", "root");
 
             Map<String, Source> foundFiles = new HashMap<>();
-            ClientMain.findSourceFiles(options.getSources(), Collections.singleton(".java"), foundFiles,
+            SjavacImpl.findSourceFiles(options.getSources(), Collections.singleton(".java"), foundFiles,
                     new HashMap<String, Module>(), new Module("", ""), false, true);
 
             checkFilesFound(foundFiles.keySet(), a2, b1, b2, c1, c2);
@@ -171,7 +169,7 @@
             Options options = Options.parseArgs("-i", "pkg1/*", "root");
 
             Map<String, Source> foundFiles = new HashMap<>();
-            ClientMain.findSourceFiles(options.getSources(), Collections.singleton(".java"), foundFiles,
+            SjavacImpl.findSourceFiles(options.getSources(), Collections.singleton(".java"), foundFiles,
                     new HashMap<String, Module>(), new Module("", ""), false, true);
 
             checkFilesFound(foundFiles.keySet(), a1, a2, b1, b2);
@@ -182,7 +180,7 @@
             Options options = Options.parseArgs("-i", "pkg1/*", "-x", "pkg1/pkg2/*", "root");
 
             Map<String, Source> foundFiles = new HashMap<>();
-            ClientMain.findSourceFiles(options.getSources(), Collections.singleton(".java"), foundFiles,
+            SjavacImpl.findSourceFiles(options.getSources(), Collections.singleton(".java"), foundFiles,
                     new HashMap<String, Module>(), new Module("", ""), false, true);
 
             checkFilesFound(foundFiles.keySet(), a1, a2);
--- a/test/tools/sjavac/PackagePathMismatch.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/PackagePathMismatch.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/ParallelCompilations.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/ParallelCompilations.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/PermittedArtifact.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/PermittedArtifact.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/PooledExecution.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/PooledExecution.java	Thu Aug 27 13:22:04 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
@@ -32,18 +30,12 @@
  * @build Wrapper
  * @run main Wrapper PooledExecution
  */
-import java.io.File;
-import java.net.URI;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import com.sun.tools.sjavac.comp.PooledSjavac;
 import com.sun.tools.sjavac.server.CompilationResult;
 import com.sun.tools.sjavac.server.Sjavac;
-import com.sun.tools.sjavac.server.SysInfo;
 
 
 public class PooledExecution {
@@ -75,12 +67,7 @@
             for (int i = 0; i < NUM_REQUESTS; i++) {
                 tasks[i] = new Thread() {
                     public void run() {
-                        service.compile("",
-                                        "",
-                                        new String[0],
-                                        Collections.<File>emptyList(),
-                                        Collections.<URI>emptySet(),
-                                        Collections.<URI>emptySet());
+                        service.compile(new String[0]);
                         tasksFinished.incrementAndGet();
                     }
                 };
@@ -122,12 +109,7 @@
             AtomicInteger activeRequests = new AtomicInteger(0);
 
             @Override
-            public CompilationResult compile(String protocolId,
-                                             String invocationId,
-                                             String[] args,
-                                             List<File> explicitSources,
-                                             Set<URI> sourcesToCompile,
-                                             Set<URI> visibleSources) {
+            public CompilationResult compile(String[] args) {
                 leftToStart.countDown();
                 int numActiveRequests = activeRequests.incrementAndGet();
                 System.out.printf("Left to start: %2d / Currently active: %2d%n",
@@ -145,18 +127,8 @@
             }
 
             @Override
-            public SysInfo getSysInfo() {
-                return null;
-            }
-
-            @Override
             public void shutdown() {
             }
-
-            @Override
-            public String serverSettings() {
-                return "";
-            }
         }
     }
 }
--- a/test/tools/sjavac/SjavacBase.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/SjavacBase.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/StateDir.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/StateDir.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/Wrapper.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/Wrapper.java	Thu Aug 27 13:22:04 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/test/tools/sjavac/util/OptionTestUtil.java	Thu Aug 27 12:59:55 2015 -0700
+++ b/test/tools/sjavac/util/OptionTestUtil.java	Thu Aug 27 13:22:04 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