Skip to content

Commit a698e17

Browse files
committed
Support Eclipse 4.6 Neon
1 parent d6d95a8 commit a698e17

File tree

10 files changed

+100
-66
lines changed

10 files changed

+100
-66
lines changed

sources/net.sf.j2s.core/src/net/sf/j2s/core/builder/AbstractImageBuilder.java

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2013 IBM Corporation and others.
2+
* Copyright (c) 2000, 2016 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v1.0
55
* which accompanies this distribution, and is available at
@@ -80,11 +80,12 @@ public abstract class AbstractImageBuilder implements ICompilerRequestor, ICompi
8080
IMarker.USER_EDITABLE,
8181
IMarker.SOURCE_ID,
8282
};
83-
public final static Integer S_ERROR = new Integer(IMarker.SEVERITY_ERROR);
84-
public final static Integer S_WARNING = new Integer(IMarker.SEVERITY_WARNING);
85-
public final static Integer P_HIGH = new Integer(IMarker.PRIORITY_HIGH);
86-
public final static Integer P_NORMAL = new Integer(IMarker.PRIORITY_NORMAL);
87-
public final static Integer P_LOW = new Integer(IMarker.PRIORITY_LOW);
83+
public final static Integer S_ERROR = Integer.valueOf(IMarker.SEVERITY_ERROR);
84+
public final static Integer S_WARNING = Integer.valueOf(IMarker.SEVERITY_WARNING);
85+
public final static Integer S_INFO = Integer.valueOf(IMarker.SEVERITY_INFO);
86+
public final static Integer P_HIGH = Integer.valueOf(IMarker.PRIORITY_HIGH);
87+
public final static Integer P_NORMAL = Integer.valueOf(IMarker.PRIORITY_NORMAL);
88+
public final static Integer P_LOW = Integer.valueOf(IMarker.PRIORITY_LOW);
8889

8990
protected AbstractImageBuilder(JavaBuilder javaBuilder, boolean buildStarting, State newState) {
9091
// local copies
@@ -413,7 +414,7 @@ protected void createProblemFor(IResource resource, IMember javaElement, String
413414
int end = range == null ? 1 : start + range.getLength();
414415
marker.setAttributes(
415416
new String[] {IMarker.MESSAGE, IMarker.SEVERITY, IMarker.CHAR_START, IMarker.CHAR_END, IMarker.SOURCE_ID},
416-
new Object[] {message, new Integer(severity), new Integer(start), new Integer(end), JavaBuilder.SOURCE_ID});
417+
new Object[] {message, Integer.valueOf(severity), Integer.valueOf(start), Integer.valueOf(end), JavaBuilder.SOURCE_ID});
417418
} catch (CoreException e) {
418419
throw internalException(e);
419420
}
@@ -698,8 +699,8 @@ protected void storeProblemsFor(SourceFile sourceFile, CategorizedProblem[] prob
698699
new String[] {IMarker.MESSAGE, IMarker.SEVERITY, IJavaModelMarker.CATEGORY_ID, IMarker.SOURCE_ID},
699700
new Object[] {
700701
Messages.bind(Messages.build_incompleteClassPath, missingClassfileName),
701-
new Integer(isInvalidClasspathError ? IMarker.SEVERITY_ERROR : IMarker.SEVERITY_WARNING),
702-
new Integer(CategorizedProblem.CAT_BUILDPATH),
702+
Integer.valueOf(isInvalidClasspathError ? IMarker.SEVERITY_ERROR : IMarker.SEVERITY_WARNING),
703+
Integer.valueOf(CategorizedProblem.CAT_BUILDPATH),
703704
JavaBuilder.SOURCE_ID
704705
}
705706
);
@@ -763,13 +764,13 @@ protected void storeProblemsFor(SourceFile sourceFile, CategorizedProblem[] prob
763764
// standard attributes
764765
int index = 0;
765766
allValues[index++] = problem.getMessage(); // message
766-
allValues[index++] = problem.isError() ? S_ERROR : S_WARNING; // severity
767-
allValues[index++] = new Integer(id); // ID
768-
allValues[index++] = new Integer(problem.getSourceStart()); // start
769-
allValues[index++] = new Integer(problem.getSourceEnd() + 1); // end
770-
allValues[index++] = new Integer(problem.getSourceLineNumber()); // line
767+
allValues[index++] = problem.isError() ? S_ERROR : problem.isWarning() ? S_WARNING : S_INFO; // severity
768+
allValues[index++] = Integer.valueOf(id); // ID
769+
allValues[index++] = Integer.valueOf(problem.getSourceStart()); // start
770+
allValues[index++] = Integer.valueOf(problem.getSourceEnd() + 1); // end
771+
allValues[index++] = Integer.valueOf(problem.getSourceLineNumber()); // line
771772
allValues[index++] = Util.getProblemArgumentsForMarker(problem.getArguments()); // arguments
772-
allValues[index++] = new Integer(problem.getCategoryID()); // category ID
773+
allValues[index++] = Integer.valueOf(problem.getCategoryID()); // category ID
773774
// SOURCE_ID attribute for JDT problems
774775
if (managedLength > 0)
775776
allValues[index++] = JavaBuilder.SOURCE_ID;
@@ -815,10 +816,10 @@ else if (JavaCore.COMPILER_TASK_PRIORITY_LOW.equals(compilerPriority))
815816
int index = 0;
816817
allValues[index++] = task.getMessage();
817818
allValues[index++] = priority;
818-
allValues[index++] = new Integer(task.getID());
819-
allValues[index++] = new Integer(task.getSourceStart());
820-
allValues[index++] = new Integer(task.getSourceEnd() + 1);
821-
allValues[index++] = new Integer(task.getSourceLineNumber());
819+
allValues[index++] = Integer.valueOf(task.getID());
820+
allValues[index++] = Integer.valueOf(task.getSourceStart());
821+
allValues[index++] = Integer.valueOf(task.getSourceEnd() + 1);
822+
allValues[index++] = Integer.valueOf(task.getSourceLineNumber());
822823
allValues[index++] = Boolean.FALSE;
823824
allValues[index++] = JavaBuilder.SOURCE_ID;
824825
// optional extra attributes

sources/net.sf.j2s.core/src/net/sf/j2s/core/builder/BatchImageBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2009 IBM Corporation and others.
2+
* Copyright (c) 2000, 2013 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v1.0
55
* which accompanies this distribution, and is available at

sources/net.sf.j2s.core/src/net/sf/j2s/core/builder/ClasspathDirectory.java

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2009 IBM Corporation and others.
2+
* Copyright (c) 2000, 2016 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v1.0
55
* which accompanies this distribution, and is available at
@@ -11,6 +11,7 @@
1111
package net.sf.j2s.core.builder;
1212

1313
import java.io.IOException;
14+
import java.util.zip.ZipFile;
1415

1516
import org.eclipse.core.resources.*;
1617
import org.eclipse.core.runtime.*;
@@ -30,15 +31,26 @@ public class ClasspathDirectory extends ClasspathLocation {
3031
SimpleLookupTable directoryCache;
3132
String[] missingPackageHolder = new String[1];
3233
AccessRuleSet accessRuleSet;
34+
ZipFile annotationZipFile;
35+
String externalAnnotationPath;
3336

34-
ClasspathDirectory(IContainer binaryFolder, boolean isOutputFolder, AccessRuleSet accessRuleSet) {
37+
ClasspathDirectory(IContainer binaryFolder, boolean isOutputFolder, AccessRuleSet accessRuleSet, IPath externalAnnotationPath) {
3538
this.binaryFolder = binaryFolder;
3639
this.isOutputFolder = isOutputFolder || binaryFolder.getProjectRelativePath().isEmpty(); // if binaryFolder == project, then treat it as an outputFolder
3740
this.directoryCache = new SimpleLookupTable(5);
3841
this.accessRuleSet = accessRuleSet;
42+
if (externalAnnotationPath != null)
43+
this.externalAnnotationPath = externalAnnotationPath.toOSString();
3944
}
4045

4146
public void cleanup() {
47+
if (this.annotationZipFile != null) {
48+
try {
49+
this.annotationZipFile.close();
50+
} catch(IOException e) { // ignore it
51+
}
52+
this.annotationZipFile = null;
53+
}
4254
this.directoryCache = null;
4355
}
4456

@@ -106,9 +118,16 @@ public NameEnvironmentAnswer findClass(String binaryFileName, String qualifiedPa
106118
return null;
107119
}
108120
if (reader != null) {
121+
String fileNameWithoutExtension = qualifiedBinaryFileName.substring(0, qualifiedBinaryFileName.length() - SuffixConstants.SUFFIX_CLASS.length);
122+
if (this.externalAnnotationPath != null) {
123+
try {
124+
this.annotationZipFile = reader.setExternalAnnotationProvider(this.externalAnnotationPath, fileNameWithoutExtension, this.annotationZipFile, null);
125+
} catch (IOException e) {
126+
// don't let error on annotations fail class reading
127+
}
128+
}
109129
if (this.accessRuleSet == null)
110130
return new NameEnvironmentAnswer(reader, null);
111-
String fileNameWithoutExtension = qualifiedBinaryFileName.substring(0, qualifiedBinaryFileName.length() - SuffixConstants.SUFFIX_CLASS.length);
112131
return new NameEnvironmentAnswer(reader, this.accessRuleSet.getViolatedRestriction(fileNameWithoutExtension.toCharArray()));
113132
}
114133
return null;

sources/net.sf.j2s.core/src/net/sf/j2s/core/builder/ClasspathLocation.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2015 IBM Corporation and others.
2+
* Copyright (c) 2000, 2016 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v1.0
55
* which accompanies this distribution, and is available at
@@ -24,8 +24,8 @@ static ClasspathLocation forSourceFolder(IContainer sourceFolder, IContainer out
2424
return new ClasspathMultiDirectory(sourceFolder, outputFolder, inclusionPatterns, exclusionPatterns, ignoreOptionalProblems);
2525
}
2626

27-
public static ClasspathLocation forBinaryFolder(IContainer binaryFolder, boolean isOutputFolder, AccessRuleSet accessRuleSet) {
28-
return new ClasspathDirectory(binaryFolder, isOutputFolder, accessRuleSet);
27+
public static ClasspathLocation forBinaryFolder(IContainer binaryFolder, boolean isOutputFolder, AccessRuleSet accessRuleSet, IPath externalAnnotationPath) {
28+
return new ClasspathDirectory(binaryFolder, isOutputFolder, accessRuleSet, externalAnnotationPath);
2929
}
3030

3131
static ClasspathLocation forLibrary(String libraryPathname, long lastModified, AccessRuleSet accessRuleSet, IPath annotationsPath) {

sources/net.sf.j2s.core/src/net/sf/j2s/core/builder/ClasspathMultiDirectory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2012 IBM Corporation and others.
2+
* Copyright (c) 2000, 2016 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v1.0
55
* which accompanies this distribution, and is available at
@@ -24,7 +24,7 @@ public class ClasspathMultiDirectory extends ClasspathDirectory {
2424
public boolean ignoreOptionalProblems;
2525

2626
ClasspathMultiDirectory(IContainer sourceFolder, IContainer binaryFolder, char[][] inclusionPatterns, char[][] exclusionPatterns, boolean ignoreOptionalProblems) {
27-
super(binaryFolder, true, null);
27+
super(binaryFolder, true, null, null);
2828

2929
this.sourceFolder = sourceFolder;
3030
this.inclusionPatterns = inclusionPatterns;

sources/net.sf.j2s.core/src/net/sf/j2s/core/builder/Java2ScriptBatchImageBuilder.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public Java2ScriptBatchImageBuilder(JavaBuilder javaBuilder, boolean buildStarti
3636

3737
protected Compiler newCompiler() {
3838
// disable entire javadoc support if not interested in diagnostics
39-
Map projectOptions = javaBuilder.javaProject.getOptions(true);
39+
Map projectOptions = this.javaBuilder.javaProject.getOptions(true);
4040
String option = (String) projectOptions.get(JavaCore.COMPILER_PB_INVALID_JAVADOC);
4141
if (option == null || option.equals(JavaCore.IGNORE)) { // TODO (frederic) see why option is null sometimes while running model tests!?
4242
option = (String) projectOptions.get(JavaCore.COMPILER_PB_MISSING_JAVADOC_TAGS);
@@ -50,13 +50,13 @@ protected Compiler newCompiler() {
5050
}
5151
}
5252
}
53-
53+
5454
// called once when the builder is initialized... can override if needed
5555
CompilerOptions compilerOptions = new CompilerOptions(projectOptions);
5656
compilerOptions.performMethodsFullRecovery = true;
5757
compilerOptions.performStatementsRecovery = true;
5858
Compiler newCompiler = new Java2ScriptImageCompiler(
59-
nameEnvironment,
59+
this.nameEnvironment,
6060
DefaultErrorHandlingPolicies.proceedWithAllProblems(),
6161
compilerOptions,
6262
this,
@@ -65,7 +65,7 @@ protected Compiler newCompiler() {
6565
// temporary code to allow the compiler to revert to a single thread
6666
String setting = System.getProperty("jdt.compiler.useSingleThread"); //$NON-NLS-1$
6767
newCompiler.useSingleThread = setting != null && setting.equals("true"); //$NON-NLS-1$
68-
68+
6969
// enable the compiler reference info support
7070
options.produceReferenceInfo = true;
7171

@@ -74,7 +74,7 @@ protected Compiler newCompiler() {
7474
// support for Java 6 annotation processors
7575
initializeAnnotationProcessorManager(newCompiler);
7676
}
77-
77+
7878
return newCompiler;
7979
}
8080

sources/net.sf.j2s.core/src/net/sf/j2s/core/builder/Java2ScriptIncrementalImageBuilder.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public Java2ScriptIncrementalImageBuilder(JavaBuilder javaBuilder) {
3737

3838
protected Compiler newCompiler() {
3939
// disable entire javadoc support if not interested in diagnostics
40-
Map projectOptions = javaBuilder.javaProject.getOptions(true);
40+
Map projectOptions = this.javaBuilder.javaProject.getOptions(true);
4141
String option = (String) projectOptions.get(JavaCore.COMPILER_PB_INVALID_JAVADOC);
4242
if (option == null || option.equals(JavaCore.IGNORE)) { // TODO (frederic) see why option is null sometimes while running model tests!?
4343
option = (String) projectOptions.get(JavaCore.COMPILER_PB_MISSING_JAVADOC_TAGS);
@@ -51,13 +51,13 @@ protected Compiler newCompiler() {
5151
}
5252
}
5353
}
54-
54+
5555
// called once when the builder is initialized... can override if needed
5656
CompilerOptions compilerOptions = new CompilerOptions(projectOptions);
5757
compilerOptions.performMethodsFullRecovery = true;
5858
compilerOptions.performStatementsRecovery = true;
5959
Compiler newCompiler = new Java2ScriptImageCompiler(
60-
nameEnvironment,
60+
this.nameEnvironment,
6161
DefaultErrorHandlingPolicies.proceedWithAllProblems(),
6262
compilerOptions,
6363
this,
@@ -66,7 +66,7 @@ protected Compiler newCompiler() {
6666
// temporary code to allow the compiler to revert to a single thread
6767
String setting = System.getProperty("jdt.compiler.useSingleThread"); //$NON-NLS-1$
6868
newCompiler.useSingleThread = setting != null && setting.equals("true"); //$NON-NLS-1$
69-
69+
7070
// enable the compiler reference info support
7171
options.produceReferenceInfo = true;
7272

@@ -75,7 +75,7 @@ protected Compiler newCompiler() {
7575
// support for Java 6 annotation processors
7676
initializeAnnotationProcessorManager(newCompiler);
7777
}
78-
78+
7979
return newCompiler;
8080
}
8181
}

sources/net.sf.j2s.core/src/net/sf/j2s/core/builder/JavaBuilder.java

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2014 IBM Corporation and others.
2+
* Copyright (c) 2000, 2016 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v1.0
55
* which accompanies this distribution, and is available at
@@ -226,7 +226,7 @@ protected IProject[] build(int kind, Map ignored, IProgressMonitor monitor) thro
226226
new String[] {IMarker.MESSAGE, IMarker.SEVERITY, IMarker.SOURCE_ID},
227227
new Object[] {
228228
Messages.bind(Messages.build_missingSourceFile, e.missingSourceFile),
229-
new Integer(IMarker.SEVERITY_ERROR),
229+
Integer.valueOf(IMarker.SEVERITY_ERROR),
230230
JavaBuilder.SOURCE_ID
231231
}
232232
);
@@ -319,8 +319,8 @@ private void createInconsistentBuildMarker(CoreException coreException) throws C
319319
new String[] {IMarker.MESSAGE, IMarker.SEVERITY, IJavaModelMarker.CATEGORY_ID, IMarker.SOURCE_ID},
320320
new Object[] {
321321
Messages.bind(Messages.build_inconsistentProject, message),
322-
new Integer(IMarker.SEVERITY_ERROR),
323-
new Integer(CategorizedProblem.CAT_BUILDPATH),
322+
Integer.valueOf(IMarker.SEVERITY_ERROR),
323+
Integer.valueOf(CategorizedProblem.CAT_BUILDPATH),
324324
JavaBuilder.SOURCE_ID
325325
}
326326
);
@@ -653,21 +653,34 @@ private int initializeBuilder(int kind, boolean forBuild) throws CoreException {
653653
return kind;
654654
}
655655

656-
private boolean isClasspathBroken(IClasspathEntry[] classpath, IProject p) throws CoreException {
657-
IMarker[] markers = p.findMarkers(IJavaModelMarker.BUILDPATH_PROBLEM_MARKER, false, IResource.DEPTH_ZERO);
658-
for (int i = 0, l = markers.length; i < l; i++)
659-
if (markers[i].getAttribute(IMarker.SEVERITY, -1) == IMarker.SEVERITY_ERROR)
656+
private boolean isClasspathBroken(JavaProject jProj, boolean tryRepair) throws CoreException {
657+
IMarker[] markers = jProj.getProject().findMarkers(IJavaModelMarker.BUILDPATH_PROBLEM_MARKER, false, IResource.DEPTH_ZERO);
658+
for (int i = 0, l = markers.length; i < l; i++) {
659+
if (markers[i].getAttribute(IMarker.SEVERITY, -1) == IMarker.SEVERITY_ERROR) {
660+
if (tryRepair) {
661+
Object code = markers[i].getAttribute(IJavaModelMarker.ID);
662+
if (code instanceof Integer && ((Integer)code) == IJavaModelStatusConstants.CP_INVALID_EXTERNAL_ANNOTATION_PATH) {
663+
new ClasspathValidation(jProj).validate();
664+
return isClasspathBroken(jProj, false);
665+
}
666+
}
660667
return true;
668+
}
669+
}
661670
return false;
662671
}
663672

664673
private boolean isWorthBuilding() throws CoreException {
665674
boolean abortBuilds =
666675
JavaCore.ABORT.equals(this.javaProject.getOption(JavaCore.CORE_JAVA_BUILD_INVALID_CLASSPATH, true));
667-
if (!abortBuilds) return true;
676+
if (!abortBuilds) {
677+
if (DEBUG)
678+
System.out.println("JavaBuilder: Ignoring invalid classpath"); //$NON-NLS-1$
679+
return true;
680+
}
668681

669682
// Abort build only if there are classpath errors
670-
if (isClasspathBroken(this.javaProject.getRawClasspath(), this.currentProject)) {
683+
if (isClasspathBroken(this.javaProject, true)) {
671684
if (DEBUG)
672685
System.out.println("JavaBuilder: Aborted build because project has classpath errors (incomplete or involved in cycle)"); //$NON-NLS-1$
673686

@@ -678,8 +691,8 @@ private boolean isWorthBuilding() throws CoreException {
678691
new String[] {IMarker.MESSAGE, IMarker.SEVERITY, IJavaModelMarker.CATEGORY_ID, IMarker.SOURCE_ID},
679692
new Object[] {
680693
Messages.build_abortDueToClasspathProblems,
681-
new Integer(IMarker.SEVERITY_ERROR),
682-
new Integer(CategorizedProblem.CAT_BUILDPATH),
694+
Integer.valueOf(IMarker.SEVERITY_ERROR),
695+
Integer.valueOf(CategorizedProblem.CAT_BUILDPATH),
683696
JavaBuilder.SOURCE_ID
684697
}
685698
);
@@ -718,11 +731,11 @@ private boolean isWorthBuilding() throws CoreException {
718731
marker.setAttributes(
719732
new String[] {IMarker.MESSAGE, IMarker.SEVERITY, IJavaModelMarker.CATEGORY_ID, IMarker.SOURCE_ID},
720733
new Object[] {
721-
isClasspathBroken(prereq.getRawClasspath(), p)
734+
isClasspathBroken(prereq, true)
722735
? Messages.bind(Messages.build_prereqProjectHasClasspathProblems, p.getName())
723736
: Messages.bind(Messages.build_prereqProjectMustBeRebuilt, p.getName()),
724-
new Integer(IMarker.SEVERITY_ERROR),
725-
new Integer(CategorizedProblem.CAT_BUILDPATH),
737+
Integer.valueOf(IMarker.SEVERITY_ERROR),
738+
Integer.valueOf(CategorizedProblem.CAT_BUILDPATH),
726739
JavaBuilder.SOURCE_ID
727740
}
728741
);

sources/net.sf.j2s.core/src/net/sf/j2s/core/builder/NameEnvironment.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2015 IBM Corporation and others.
2+
* Copyright (c) 2000, 2016 IBM Corporation and others.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v1.0
55
* which accompanies this distribution, and is available at
@@ -146,7 +146,7 @@ private void computeClasspathLocations(
146146
: (IContainer) root.getFolder(prereqOutputPath);
147147
if (binaryFolder.exists() && !seen.contains(binaryFolder)) {
148148
seen.add(binaryFolder);
149-
ClasspathLocation bLocation = ClasspathLocation.forBinaryFolder(binaryFolder, true, entry.getAccessRuleSet());
149+
ClasspathLocation bLocation = ClasspathLocation.forBinaryFolder(binaryFolder, true, entry.getAccessRuleSet(), externalAnnotationPath);
150150
bLocations.add(bLocation);
151151
if (binaryLocationsPerProject != null) { // normal builder mode
152152
ClasspathLocation[] existingLocations = (ClasspathLocation[]) binaryLocationsPerProject.get(prereqProject);
@@ -181,7 +181,7 @@ private void computeClasspathLocations(
181181
&& JavaCore.IGNORE.equals(javaProject.getOption(JavaCore.COMPILER_PB_DISCOURAGED_REFERENCE, true)))
182182
? null
183183
: entry.getAccessRuleSet();
184-
bLocation = ClasspathLocation.forBinaryFolder((IContainer) target, false, accessRuleSet); // is library folder not output folder
184+
bLocation = ClasspathLocation.forBinaryFolder((IContainer) target, false, accessRuleSet, externalAnnotationPath); // is library folder not output folder
185185
}
186186
bLocations.add(bLocation);
187187
if (binaryLocationsPerProject != null) { // normal builder mode

0 commit comments

Comments
 (0)