diff -r 265376df8b48 -r 3e1520a857fa langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java --- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Thu Jan 05 15:39:57 2017 -0800 +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Fri Jan 06 14:16:45 2017 +0100 @@ -114,6 +114,7 @@ private final boolean fatalErrors; private final boolean werror; private final boolean showResolveErrors; + private final boolean allowModules; private final JavacFiler filer; private final JavacMessager messager; @@ -178,7 +179,6 @@ private final Enter enter; private final Completer initialCompleter; private final Check chk; - private final ModuleSymbol defaultModule; private final Context context; @@ -230,8 +230,7 @@ chk = Check.instance(context); initProcessorLoader(); - defaultModule = source.allowModules() && options.isUnset("noModules") - ? symtab.unnamedModule : symtab.noModule; + allowModules = source.allowModules() && options.isUnset("noModules"); } public void setProcessors(Iterable processors) { @@ -665,7 +664,7 @@ private ArrayList supportedAnnotationPatterns; private ArrayList supportedOptionNames; - ProcessorState(Processor p, Log log, Source source, ProcessingEnvironment env) { + ProcessorState(Processor p, Log log, Source source, boolean allowModules, ProcessingEnvironment env) { processor = p; contributed = false; @@ -676,7 +675,8 @@ supportedAnnotationPatterns = new ArrayList<>(); for (String importString : processor.getSupportedAnnotationTypes()) { - supportedAnnotationPatterns.add(importStringToPattern(importString, + supportedAnnotationPatterns.add(importStringToPattern(allowModules, + importString, processor, log)); } @@ -768,7 +768,8 @@ if (psi.processorIterator.hasNext()) { ProcessorState ps = new ProcessorState(psi.processorIterator.next(), - log, source, JavacProcessingEnvironment.this); + log, source, allowModules, + JavacProcessingEnvironment.this); psi.procStateList.add(ps); return ps; } else @@ -834,7 +835,8 @@ for(TypeElement a : annotationsPresent) { ModuleElement mod = elementUtils.getModuleOf(a); - unmatchedAnnotations.put((mod != null ? mod.getSimpleName() + "/" : "") + a.getQualifiedName().toString(), + String moduleSpec = allowModules && mod != null ? mod.getSimpleName() + "/" : ""; + unmatchedAnnotations.put(moduleSpec + a.getQualifiedName().toString(), a); } @@ -1657,7 +1659,7 @@ * regex matching that string. If the string is not a valid * import-style string, return a regex that won't match anything. */ - private static Pattern importStringToPattern(String s, Processor p, Log log) { + private static Pattern importStringToPattern(boolean allowModules, String s, Processor p, Log log) { String module; String pkg; int slash = s.indexOf('/'); @@ -1672,7 +1674,7 @@ pkg = s.substring(slash + 1); } if (MatchingUtils.isValidImportString(pkg)) { - return Pattern.compile(module + MatchingUtils.validImportStringToPatternString(pkg)); + return Pattern.compile((allowModules ? module : "") + MatchingUtils.validImportStringToPatternString(pkg)); } else { log.warning("proc.malformed.supported.string", s, p.getClass().getName()); return noMatches; // won't match any valid identifier