]> source.dussan.org Git - aspectj.git/commitdiff
Fix 404345: another occurence of broken annotation building in JDT
authorAndy Clement <aclement@pivotal.io>
Thu, 10 Nov 2016 20:13:43 +0000 (12:13 -0800)
committerAndy Clement <aclement@pivotal.io>
Thu, 10 Nov 2016 20:13:43 +0000 (12:13 -0800)
14 files changed:
org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip
org.eclipse.jdt.core/jdtcore-for-aspectj.jar
tests/multiIncremental/pr404345/base/src/org/Constants.java [new file with mode: 0644]
tests/multiIncremental/pr404345/base/src/org/FetchProfile.java [new file with mode: 0644]
tests/multiIncremental/pr404345/base/src/org/FetchProfileName.java [new file with mode: 0644]
tests/multiIncremental/pr404345/base/src/org/FetchProfiles.java [new file with mode: 0644]
tests/multiIncremental/pr404345/base/src/org/package-info.java [new file with mode: 0644]
tests/multiIncremental/pr404345/inc1/src/org/Constants.java [new file with mode: 0644]
tests/multiIncremental/pr404345/inc1/src/org/FetchProfileName.java [new file with mode: 0644]
tests/multiIncremental/pr404345/inc2/src/org/package-info.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/incremental/tools/AjdeInteractionTestbed.java
tests/src/org/aspectj/systemtest/incremental/tools/MultiProjTestCompilerConfiguration.java
tests/src/org/aspectj/systemtest/incremental/tools/MultiProjTestMessageHandler.java
tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java

index 29a5eb821dbe56ac06aa8f7d18bfbef0b4161148..76d1be79c7ada597a0b7eab1e8ba2aa4e7a73fce 100644 (file)
Binary files a/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip and b/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip differ
index 6aa41c4c189f1c58779e567a063b62279a1fd308..3ef06f53785f65ff3b37faba5d739a5a6c472f2e 100644 (file)
Binary files a/org.eclipse.jdt.core/jdtcore-for-aspectj.jar and b/org.eclipse.jdt.core/jdtcore-for-aspectj.jar differ
diff --git a/tests/multiIncremental/pr404345/base/src/org/Constants.java b/tests/multiIncremental/pr404345/base/src/org/Constants.java
new file mode 100644 (file)
index 0000000..c09fdf3
--- /dev/null
@@ -0,0 +1,5 @@
+package org;
+
+public class Constants {
+       public static final String MISSING="missing";
+}
diff --git a/tests/multiIncremental/pr404345/base/src/org/FetchProfile.java b/tests/multiIncremental/pr404345/base/src/org/FetchProfile.java
new file mode 100644 (file)
index 0000000..5ad345d
--- /dev/null
@@ -0,0 +1,16 @@
+package org;
+
+public @interface FetchProfile { 
+       String name();
+       FetchProfile.FetchOverride[] fetchOverrides();
+       
+       @interface FetchOverride {
+               Class<?> entity();
+               String association() default "";
+       }
+}
+
+//@FetchProfiles({
+//@FetchProfile(name = FetchProfileName.LOCATION, fetchOverrides = {
+//                             @FetchProfile.FetchOverride(entity = Location.class, association = Location.PROPERTY_SYSTEMSTATE),
+//                             @FetchProfile.FetchOverride(entity = Location.class, association = Location.PROPERTY_KEYVAULT) }),
diff --git a/tests/multiIncremental/pr404345/base/src/org/FetchProfileName.java b/tests/multiIncremental/pr404345/base/src/org/FetchProfileName.java
new file mode 100644 (file)
index 0000000..b7d9af0
--- /dev/null
@@ -0,0 +1,5 @@
+package org;
+
+public class FetchProfileName {
+       public static final String LOCATION="missing";
+}
diff --git a/tests/multiIncremental/pr404345/base/src/org/FetchProfiles.java b/tests/multiIncremental/pr404345/base/src/org/FetchProfiles.java
new file mode 100644 (file)
index 0000000..bba90b0
--- /dev/null
@@ -0,0 +1,10 @@
+package org;
+
+public @interface FetchProfiles { 
+       FetchProfile[] value();
+}
+
+//@FetchProfiles({
+//@FetchProfile(name = FetchProfileName.LOCATION, fetchOverrides = {
+//                             @FetchProfile.FetchOverride(entity = Location.class, association = Location.PROPERTY_SYSTEMSTATE),
+//                             @FetchProfile.FetchOverride(entity = Location.class, association = Location.PROPERTY_KEYVAULT) }),
\ No newline at end of file
diff --git a/tests/multiIncremental/pr404345/base/src/org/package-info.java b/tests/multiIncremental/pr404345/base/src/org/package-info.java
new file mode 100644 (file)
index 0000000..c1e4ee1
--- /dev/null
@@ -0,0 +1,9 @@
+//@FetchProfiles({
+  @FetchProfile(name = FetchProfileName.LOCATION, fetchOverrides = {
+//                             @FetchProfile.FetchOverride(entity = Location.class, association = Location.PROPERTY_SYSTEMSTATE),
+                               @FetchProfile.FetchOverride(entity = Location.class, association = Location.PROPERTY_KEYVAULT) 
+})
+//})
+package org;
+
+
diff --git a/tests/multiIncremental/pr404345/inc1/src/org/Constants.java b/tests/multiIncremental/pr404345/inc1/src/org/Constants.java
new file mode 100644 (file)
index 0000000..851d682
--- /dev/null
@@ -0,0 +1,3 @@
+package org;
+class Constants {
+}
diff --git a/tests/multiIncremental/pr404345/inc1/src/org/FetchProfileName.java b/tests/multiIncremental/pr404345/inc1/src/org/FetchProfileName.java
new file mode 100644 (file)
index 0000000..b7d9af0
--- /dev/null
@@ -0,0 +1,5 @@
+package org;
+
+public class FetchProfileName {
+       public static final String LOCATION="missing";
+}
diff --git a/tests/multiIncremental/pr404345/inc2/src/org/package-info.java b/tests/multiIncremental/pr404345/inc2/src/org/package-info.java
new file mode 100644 (file)
index 0000000..9ffa9f1
--- /dev/null
@@ -0,0 +1,2 @@
+@Foo(Constants.MISSING)
+package org;
index 9b6c11e9036e498fa6acb5fb9115ed7f753336c4..cfe4495a4558e95e9d7ae270f21f26504fd50dd7 100644 (file)
@@ -335,9 +335,8 @@ public class AjdeInteractionTestbed extends TestCase {
                MultiProjTestMessageHandler handler = (MultiProjTestMessageHandler) compiler.getMessageHandler();
                if (handler.hasErrorMessages()) {
                        System.err.println("Build errors:");
-                       for (Iterator<IMessage> iter = handler.getErrorMessages().iterator(); iter.hasNext();) {
-                               IMessage element = iter.next();
-                               System.err.println(element);
+                       for (IMessage message: handler.getErrorMessages()) {
+                               System.err.println(message);
                        }
                        System.err.println("---------");
                }
@@ -358,7 +357,7 @@ public class AjdeInteractionTestbed extends TestCase {
                return ((MultiProjTestMessageHandler) compiler.getMessageHandler()).getWeavingMessages();
        }
 
-       public List<IMessage> getCompilerErrorMessages(String projectName) {
+       public List<String> getCompilerErrorMessages(String projectName) {
                AjCompiler compiler = CompilerFactory.getCompilerForProjectWithDir(sandboxDir + File.separator + projectName);
                return ((MultiProjTestMessageHandler) compiler.getMessageHandler()).getCompilerErrors();
        }
index 562291c6933cf2019e21fc47ad4eafe0c8ef4d3d..86302bfbaf0a8676002fbb00a59f1692bb62a2c2 100644 (file)
@@ -13,7 +13,6 @@ package org.aspectj.systemtest.incremental.tools;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -30,11 +29,11 @@ public class MultiProjTestCompilerConfiguration implements ICompilerConfiguratio
        private boolean verbose = false;
 
        private String classPath = "";
-       private Set aspectPath = null;
-       private Map sourcePathResources = null;
+       private Set<File> aspectPath = null;
+       private Map<String,File> sourcePathResources = null;
        private IOutputLocationManager outputLocationManager = null;
        private List<String> dependants;
-       private Map javaOptionsMap;
+       private Map<String,String> javaOptionsMap;
        private Set<File> inpath;
        private String encoding = null;
        private String outjar;
@@ -43,8 +42,8 @@ public class MultiProjTestCompilerConfiguration implements ICompilerConfiguratio
        private String nonstandardoptions;
        private List<File> modifiedFiles;
        private List<String> modifiedDirs;
-       private List<String> projectSourceFiles = new ArrayList();
-       private List xmlConfigFiles = new ArrayList();
+       private List<String> projectSourceFiles = new ArrayList<>();
+       private List<String> xmlConfigFiles = new ArrayList<>();
        private String projectPath;
 
        int changed;
@@ -53,7 +52,7 @@ public class MultiProjTestCompilerConfiguration implements ICompilerConfiguratio
                this.projectPath = projectPath;
        }
 
-       public Set getAspectPath() {
+       public Set<File> getAspectPath() {
                log("ICompilerConfiguration.getAspectPath(" + aspectPath + ")");
                return aspectPath;
        }
@@ -62,9 +61,8 @@ public class MultiProjTestCompilerConfiguration implements ICompilerConfiguratio
                log("ICompilerConfiguration.getClasspath()");
                // AJDT has all the output directories on it's classpath
                StringBuffer sb = new StringBuffer();
-               List allOutputPaths = getOutputLocationManager().getAllOutputLocations();
-               for (Iterator iterator = allOutputPaths.iterator(); iterator.hasNext();) {
-                       File dir = (File) iterator.next();
+               List<File> allOutputPaths = getOutputLocationManager().getAllOutputLocations();
+               for (File dir: allOutputPaths) {
                        sb.append(File.pathSeparator + dir.getAbsolutePath());
                }
                String cp = sb.toString() + File.pathSeparator + new File(AjdeInteractionTestbed.testdataSrcDir) + File.pathSeparator
@@ -77,8 +75,8 @@ public class MultiProjTestCompilerConfiguration implements ICompilerConfiguratio
 
                // look at dependant projects
                if (dependants != null) {
-                       for (Iterator iter = dependants.iterator(); iter.hasNext();) {
-                               cp = AjdeInteractionTestbed.getFile((String) iter.next(), "bin") + File.pathSeparator + cp;
+                       for (String dependant: dependants) {
+                               cp = AjdeInteractionTestbed.getFile(dependant, "bin") + File.pathSeparator + cp;
                        }
                }
                // System.err.println("For project "+projectPath+" getClasspath() returning "+cp);
@@ -120,12 +118,12 @@ public class MultiProjTestCompilerConfiguration implements ICompilerConfiguratio
                return outputLocationManager;
        }
 
-       public List getProjectSourceFiles() {
+       public List<String> getProjectSourceFiles() {
                log("ICompilerConfiguration.getProjectSourceFiles()");
                return projectSourceFiles;
        }
 
-       public List getProjectXmlConfigFiles() {
+       public List<String> getProjectXmlConfigFiles() {
                return xmlConfigFiles;
        }
 
@@ -134,7 +132,7 @@ public class MultiProjTestCompilerConfiguration implements ICompilerConfiguratio
                return modifiedFiles;
        }
 
-       public Map getSourcePathResources() {
+       public Map<String,File> getSourcePathResources() {
                log("ICompilerConfiguration.getSourcePathResources()");
                return sourcePathResources;
        }
@@ -152,7 +150,7 @@ public class MultiProjTestCompilerConfiguration implements ICompilerConfiguratio
        }
 
        // -------------------- setter methods useful for testing ---------------
-       public void setAspectPath(Set aspectPath) {
+       public void setAspectPath(Set<File> aspectPath) {
                this.aspectPath = aspectPath;
                this.changed |= ICompilerConfiguration.ASPECTPATH_CHANGED;
        }
@@ -177,7 +175,7 @@ public class MultiProjTestCompilerConfiguration implements ICompilerConfiguratio
                this.changed |= ICompilerConfiguration.PROCESSOR_CHANGED;
        }
 
-       public void setJavaOptions(Map javaOptions) {
+       public void setJavaOptions(Map<String,String> javaOptions) {
                this.javaOptionsMap = javaOptions;
                this.changed |= ICompilerConfiguration.JAVAOPTIONS_CHANGED;
        }
@@ -215,7 +213,7 @@ public class MultiProjTestCompilerConfiguration implements ICompilerConfiguratio
                }
        }
 
-       public void setSourcePathResources(Map sourcePathResources) {
+       public void setSourcePathResources(Map<String,File> sourcePathResources) {
                this.sourcePathResources = sourcePathResources;
                this.changed |= ICompilerConfiguration.PROJECTSOURCERESOURCES_CHANGED;
        }
@@ -240,7 +238,7 @@ public class MultiProjTestCompilerConfiguration implements ICompilerConfiguratio
                modifiedDirs = null;
        }
 
-       public List getClasspathElementsWithModifiedContents() {
+       public List<String> getClasspathElementsWithModifiedContents() {
                return modifiedDirs;
        }
 
index 26afbf88240669cec193a108b5789798b3f5254a..fa66bede7f5026d959b17f10bf18af7130d78af0 100644 (file)
@@ -32,15 +32,15 @@ public class MultiProjTestMessageHandler implements IBuildMessageHandler {
        private List<IMessage> errorMessages;
        private List<IMessage> warningMessages;
        private List<IMessage> weavingMessages;
-       private List compilerErrors;
-       private List ignoring;
+       private List<String> compilerErrors;
+       private List<Kind> ignoring;
 
        public MultiProjTestMessageHandler() {
-               ignoring = new ArrayList();
+               ignoring = new ArrayList<>();
                errorMessages = new ArrayList<IMessage>();
                warningMessages = new ArrayList<IMessage>();
                weavingMessages = new ArrayList<IMessage>();
-               compilerErrors = new ArrayList();
+               compilerErrors = new ArrayList<>();
                ignore(IMessage.INFO);
                ignore(IMessage.WEAVEINFO);
        }
@@ -112,7 +112,7 @@ public class MultiProjTestMessageHandler implements IBuildMessageHandler {
                return weavingMessages;
        }
 
-       public List<IMessage> getCompilerErrors() {
+       public List<String> getCompilerErrors() {
                return compilerErrors;
        }
 
index 7080c03c9562c507b6354f0a9f3a2253c321dd3c..36001fe6a96b8610085c8f0e0cef8421d2d20dca 100644 (file)
@@ -14,8 +14,6 @@ package org.aspectj.systemtest.incremental.tools;
 import java.io.File;
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.net.URL;
-import java.net.URLClassLoader;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -101,7 +99,16 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
                runMethod(p, "demo.ConverterTest", "run");
        }
 
-
+       public void testRogueConstantReference() throws Exception {
+               String p = "pr404345";
+               initialiseProject(p);
+               setProjectEncoding(p, "UTF-8");
+               build(p);
+               checkWasFullBuild();
+               // Should both indicate that Location cannot be resolved
+               assertEquals(2,getErrorMessages(p).size());
+       } 
+       
        public void testIncrementalITDInners4() throws Exception {
                String p = "prInner4";
                initialiseProject(p);
@@ -1150,7 +1157,7 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
                alter(p, "inc1");
                build(p);
                checkWasntFullBuild();
-               List l = getCompilerErrorMessages(p);
+               List<String> l = getCompilerErrorMessages(p);
                assertEquals("Unexpected compiler error", 0, l.size());
        }
 
@@ -1159,14 +1166,14 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
                String p = "pr298504";
                initialiseProject(p);
                build(p);
-               List l = getErrorMessages(p);
+               List<IMessage> l = getErrorMessages(p);
                assertTrue(l.toString().indexOf("ManagedResource cannot be resolved to a type") != -1);
                // checkWasFullBuild();
                alter(p, "inc1");
                build(p);
                // checkWasntFullBuild();
-               l = getCompilerErrorMessages(p);
-               assertTrue(l.toString().indexOf("NullPointerException") == -1);
+               List<String> compilerErrors = getCompilerErrorMessages(p);
+               assertTrue(compilerErrors.toString().indexOf("NullPointerException") == -1);
                l = getErrorMessages(p);
                assertTrue(l.toString().indexOf("ManagedResource cannot be resolved to a type") != -1);
        }
@@ -1210,7 +1217,7 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
                // "src/q/Asp.java"));
                build(p);
                checkWasntFullBuild();
-               List<IMessage> l = getCompilerErrorMessages(p);
+               List<String> l = getCompilerErrorMessages(p);
                assertEquals("Unexpected compiler error", 0, l.size());
        }
 
@@ -1245,7 +1252,7 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
                alter(p, "inc1");
                build(p);
                checkWasntFullBuild();
-               List<IMessage> l = getCompilerErrorMessages(p);
+               List<String> l = getCompilerErrorMessages(p);
                assertEquals("Unexpected compiler error", 0, l.size());
        }
 
@@ -1263,7 +1270,7 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
                checkWasFullBuild();
                alter(p, "inc1");
                build(p);
-               List<IMessage> l = getCompilerErrorMessages(p);
+               List<String> l = getCompilerErrorMessages(p);
                assertEquals("Unexpected compiler error", 0, l.size());
        }
 
@@ -1909,7 +1916,6 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
                                + "ms  second=" + timeTakenForSimpleIncBuild + "ms", timeTakenForSimpleIncBuild < timeTakenForFullBuildAndWeave);
        }
 
-       @SuppressWarnings("rawtypes")
        public void testBuildingTwoProjectsInTurns() {
                initialiseProject("P1");
                initialiseProject("P2");
@@ -2114,7 +2120,7 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
                long stime = System.currentTimeMillis();
                try {
                        ZipFile zf = new ZipFile("c:/jvms/jdk1.6.0_06/jre/lib/rt.jar");
-                       Enumeration e = zf.entries();
+                       Enumeration<? extends ZipEntry> e = zf.entries();
                        while (e.hasMoreElements()) {
                                ZipEntry ze = (ZipEntry) e.nextElement();
                                String n = ze.getName();
@@ -3052,12 +3058,11 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
                                getWarningMessages("PR133117").size() == 1);
                alter("PR133117", "inc1");
                build("PR133117");
-               List warnings = getWarningMessages("PR133117");
-               List noGuardWarnings = new ArrayList();
-               for (Iterator iter = warnings.iterator(); iter.hasNext();) {
-                       IMessage element = (IMessage) iter.next();
-                       if (element.getMessage().indexOf("Xlint:noGuardForLazyTjp") != -1) {
-                               noGuardWarnings.add(element);
+               List<IMessage> warnings = getWarningMessages("PR133117");
+               List<IMessage> noGuardWarnings = new ArrayList<>();
+               for (IMessage warning: warnings) {
+                       if (warning.getMessage().indexOf("Xlint:noGuardForLazyTjp") != -1) {
+                               noGuardWarnings.add(warning);
                        }
                }
                assertTrue("There should only be two Xlint:noGuardForLazyTjp warning message reported:\n" + noGuardWarnings,
@@ -3687,7 +3692,7 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
                configureJavaOptionsMap("PR164384", javaOptions);
 
                build("PR164384");
-               List errors = getErrorMessages("PR164384");
+               List<IMessage> errors = getErrorMessages("PR164384");
 
                if (getCompilerForProjectWithName("PR164384").isJava6Compatible()) {
                        assertTrue("There should be no errros:\n" + errors, errors.isEmpty());
@@ -3957,9 +3962,8 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
                                return ipe;
                        }
                }
-               List kids = ipe.getChildren();
-               for (Iterator iter = kids.iterator(); iter.hasNext();) {
-                       IProgramElement kid = (IProgramElement) iter.next();
+               List<IProgramElement> kids = ipe.getChildren();
+               for (IProgramElement kid: kids) {                       
                        IProgramElement found = findAdvice(kid, whichOne);
                        if (found != null) {
                                return found;
@@ -3986,8 +3990,7 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
                        }
                }
                List<IProgramElement> kids = ipe.getChildren();
-               for (Iterator iter = kids.iterator(); iter.hasNext();) {
-                       IProgramElement kid = (IProgramElement) iter.next();
+               for (IProgramElement kid: kids) {
                        IProgramElement found = findCode(kid, linenumber);
                        if (found != null) {
                                return found;