Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Arthanareeswaran2016-04-15 16:06:14 +0000
committerJay Arthanareeswaran2016-04-18 10:02:37 +0000
commit89064619aeb8bef37f5bff6f529bbe42c208b813 (patch)
treed4df3f3405950116035eac9254f6dc2abe00f9b9 /org.eclipse.jdt.apt.pluggable.tests
parentc42c7e657b077ec634fd7716be6404b721c1a1dc (diff)
downloadeclipse.jdt.core-89064619aeb8bef37f5bff6f529bbe42c208b813.tar.gz
eclipse.jdt.core-89064619aeb8bef37f5bff6f529bbe42c208b813.tar.xz
eclipse.jdt.core-89064619aeb8bef37f5bff6f529bbe42c208b813.zip
Bug 468893 - processor gets multiple processingOver=true calls in some
cases Change-Id: I6e665202e3687c455d46c61feb28dd948cb894ab Signed-off-by: Jay Arthanareeswaran <jarthana@in.ibm.com>
Diffstat (limited to 'org.eclipse.jdt.apt.pluggable.tests')
-rw-r--r--org.eclipse.jdt.apt.pluggable.tests/META-INF/services/javax.annotation.processing.Processor1
-rw-r--r--org.eclipse.jdt.apt.pluggable.tests/lib/annotations.jarbin4090 -> 4090 bytes
-rw-r--r--org.eclipse.jdt.apt.pluggable.tests/plugin.xml3
-rw-r--r--org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug468893/Annotated.java6
-rw-r--r--org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug468893/Annotation.java6
-rw-r--r--org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug468893/TypeIndexClient.java6
-rw-r--r--org.eclipse.jdt.apt.pluggable.tests/src/org/eclipse/jdt/apt/pluggable/tests/BuilderTests.java14
-rw-r--r--org.eclipse.jdt.apt.pluggable.tests/src/org/eclipse/jdt/apt/pluggable/tests/processors/buildertester/Bug468893Processor.java66
8 files changed, 101 insertions, 1 deletions
diff --git a/org.eclipse.jdt.apt.pluggable.tests/META-INF/services/javax.annotation.processing.Processor b/org.eclipse.jdt.apt.pluggable.tests/META-INF/services/javax.annotation.processing.Processor
index feeeb8c42d..03e9d27ea2 100644
--- a/org.eclipse.jdt.apt.pluggable.tests/META-INF/services/javax.annotation.processing.Processor
+++ b/org.eclipse.jdt.apt.pluggable.tests/META-INF/services/javax.annotation.processing.Processor
@@ -6,3 +6,4 @@ org.eclipse.jdt.apt.pluggable.tests.processors.buildertester.TestFinalRoundProc
org.eclipse.jdt.apt.pluggable.tests.processors.buildertester.BugsProc
org.eclipse.jdt.apt.pluggable.tests.processors.modeltester.ModelTesterProc
org.eclipse.jdt.apt.pluggable.tests.processors.buildertester.Bug387956Processor
+org.eclipse.jdt.apt.pluggable.tests.processors.buildertester.Bug468893Processor
diff --git a/org.eclipse.jdt.apt.pluggable.tests/lib/annotations.jar b/org.eclipse.jdt.apt.pluggable.tests/lib/annotations.jar
index 8c8c71eec4..a09e550584 100644
--- a/org.eclipse.jdt.apt.pluggable.tests/lib/annotations.jar
+++ b/org.eclipse.jdt.apt.pluggable.tests/lib/annotations.jar
Binary files differ
diff --git a/org.eclipse.jdt.apt.pluggable.tests/plugin.xml b/org.eclipse.jdt.apt.pluggable.tests/plugin.xml
index 1940aa7b9f..cab9cf288a 100644
--- a/org.eclipse.jdt.apt.pluggable.tests/plugin.xml
+++ b/org.eclipse.jdt.apt.pluggable.tests/plugin.xml
@@ -44,6 +44,9 @@
class="org.eclipse.jdt.apt.pluggable.tests.processors.buildertester.Bug387956Processor">
</java6processor>
<java6processor
+ class="org.eclipse.jdt.apt.pluggable.tests.processors.buildertester.Bug468893Processor">
+ </java6processor>
+ <java6processor
class="org.eclipse.jdt.apt.pluggable.tests.processors.genclass6.Bug419769Proc">
</java6processor>
</java6processors>
diff --git a/org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug468893/Annotated.java b/org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug468893/Annotated.java
new file mode 100644
index 0000000000..186ef5b3b6
--- /dev/null
+++ b/org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug468893/Annotated.java
@@ -0,0 +1,6 @@
+package targets.bug468893;
+import targets.bug468893.Annotation;
+
+@Annotation
+public class Annotated {
+} \ No newline at end of file
diff --git a/org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug468893/Annotation.java b/org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug468893/Annotation.java
new file mode 100644
index 0000000000..24ea601f0e
--- /dev/null
+++ b/org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug468893/Annotation.java
@@ -0,0 +1,6 @@
+package targets.bug468893;
+import java.lang.annotation.Inherited;
+
+@Inherited
+public @interface Annotation {
+} \ No newline at end of file
diff --git a/org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug468893/TypeIndexClient.java b/org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug468893/TypeIndexClient.java
new file mode 100644
index 0000000000..7f8541e0cc
--- /dev/null
+++ b/org.eclipse.jdt.apt.pluggable.tests/resources/targets/bug468893/TypeIndexClient.java
@@ -0,0 +1,6 @@
+package targets.bug468893;
+
+import generated.TypeIndex;
+
+public class TypeIndexClient implements TypeIndex {
+} \ No newline at end of file
diff --git a/org.eclipse.jdt.apt.pluggable.tests/src/org/eclipse/jdt/apt/pluggable/tests/BuilderTests.java b/org.eclipse.jdt.apt.pluggable.tests/src/org/eclipse/jdt/apt/pluggable/tests/BuilderTests.java
index e9d19ad5f4..b645759a93 100644
--- a/org.eclipse.jdt.apt.pluggable.tests/src/org/eclipse/jdt/apt/pluggable/tests/BuilderTests.java
+++ b/org.eclipse.jdt.apt.pluggable.tests/src/org/eclipse/jdt/apt/pluggable/tests/BuilderTests.java
@@ -18,6 +18,7 @@ import java.util.List;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jdt.apt.core.util.AptConfig;
+import org.eclipse.jdt.apt.pluggable.tests.processors.buildertester.Bug468893Processor;
import org.eclipse.jdt.apt.pluggable.tests.processors.buildertester.BugsProc;
import org.eclipse.jdt.apt.pluggable.tests.processors.buildertester.InheritedAnnoProc;
import org.eclipse.jdt.apt.pluggable.tests.processors.buildertester.TestFinalRoundProc;
@@ -214,7 +215,18 @@ public class BuilderTests extends TestBase
org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.MAX_AT_ONCE = old;
}
}
-
+ public void testBug468893() throws Throwable {
+ ProcessorTestStatus.reset();
+ IJavaProject jproj = createJavaProject(_projectName);
+ disableJava5Factories(jproj);
+ IProject proj = jproj.getProject();
+ IdeTestUtils.copyResources(proj, "targets/bug468893", "src/targets/bug468893");
+
+ AptConfig.setEnabled(jproj, true);
+ fullBuild();
+ expectingNoProblems();
+ assertEquals("Should have been processed over just once", 1, Bug468893Processor.count());
+ }
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=419769
public void testBug419769() throws Throwable {
try {
diff --git a/org.eclipse.jdt.apt.pluggable.tests/src/org/eclipse/jdt/apt/pluggable/tests/processors/buildertester/Bug468893Processor.java b/org.eclipse.jdt.apt.pluggable.tests/src/org/eclipse/jdt/apt/pluggable/tests/processors/buildertester/Bug468893Processor.java
new file mode 100644
index 0000000000..359473a522
--- /dev/null
+++ b/org.eclipse.jdt.apt.pluggable.tests/src/org/eclipse/jdt/apt/pluggable/tests/processors/buildertester/Bug468893Processor.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * Copyright (c) 2016 IBM Corporation.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jdt.apt.pluggable.tests.processors.buildertester;
+
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.util.Set;
+
+import javax.annotation.processing.AbstractProcessor;
+import javax.annotation.processing.RoundEnvironment;
+import javax.annotation.processing.SupportedAnnotationTypes;
+import javax.annotation.processing.SupportedSourceVersion;
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.TypeElement;
+import javax.tools.Diagnostic.Kind;
+import javax.tools.FileObject;
+
+@SupportedAnnotationTypes("targets.bug468893.Annotation")
+@SupportedSourceVersion(SourceVersion.RELEASE_6)
+public class Bug468893Processor extends AbstractProcessor {
+
+ private static int count = 0;
+
+ public Bug468893Processor() {
+ count = 0;
+ }
+ @Override
+ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
+ if (roundEnv.processingOver()) {
+ count++;
+ processingEnv.getMessager().printMessage(Kind.WARNING, "Processing over...");
+ try {
+ FileObject resource = processingEnv.getFiler().createSourceFile("generated.TypeIndex");
+ BufferedWriter w = new BufferedWriter(resource.openWriter());
+ try {
+ w.append("package generated;");
+ w.newLine();
+ w.append("public interface TypeIndex {");
+ w.newLine();
+ w.append("\tpublic static final String ANNOTATED = null;");
+ w.newLine();
+ w.append("}");
+ w.newLine();
+ } finally {
+ w.close();
+ }
+ } catch (IOException e) {
+ processingEnv.getMessager().printMessage(Kind.ERROR, "Could not create output " + e.getMessage());
+ throw new RuntimeException(e);
+ }
+ }
+ return false;
+ }
+
+ public static int count() {
+ return count;
+ }
+}

Back to the top