From 78fd11386cbe0318eb03f701651cb7b9ee08b10f Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons Date: Thu, 4 Dec 2014 19:09:29 -0800 Subject: [PATCH 01/10] 8066737: langtools/test/tools/javac/processing/6348193/T6348193.java fails Reviewed-by: darcy --- langtools/test/tools/javac/processing/6348193/T6348193.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/langtools/test/tools/javac/processing/6348193/T6348193.java b/langtools/test/tools/javac/processing/6348193/T6348193.java index 1a631b20a08..4a4cb563d92 100644 --- a/langtools/test/tools/javac/processing/6348193/T6348193.java +++ b/langtools/test/tools/javac/processing/6348193/T6348193.java @@ -31,6 +31,7 @@ import java.io.*; import java.net.*; +import java.security.*; import java.util.*; import javax.annotation.processing.*; import javax.lang.model.element.*; @@ -176,6 +177,7 @@ public class T6348193 extends AbstractProcessor public void checkPropertyAccess(String key) { /*OK*/ } public void checkDelete(String file) { /*OK*/ } + public void checkPermission(Permission perm) { /*OK*/ } public void checkRead(FileDescriptor fd) { /*OK*/ } public void checkRead(String file) { /*OK*/ } public void checkRead(String file, Object context) { /*OK*/ } From 113babff27e41592c1e5c6318e793c73229b8100 Mon Sep 17 00:00:00 2001 From: Jan Lahoda Date: Mon, 8 Dec 2014 11:50:19 +0100 Subject: [PATCH 02/10] 8065753: javac crashing on a html-like file Avoiding special-case in error recovery for bad token on position 0. Reviewed-by: jjg --- .../com/sun/tools/javac/parser/JavacParser.java | 4 ++-- .../tools/javac/parser/JavacParserTest.java | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java index 04bdc11e36e..77ee0014b6c 100644 --- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java +++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java @@ -3067,7 +3067,7 @@ public class JavacParser implements Parser { boolean checkForImports = true; boolean firstTypeDecl = true; while (token.kind != EOF) { - if (token.pos > 0 && token.pos <= endPosTable.errorEndPos) { + if (token.pos <= endPosTable.errorEndPos) { // error recovery skip(checkForImports, false, false, false); if (token.kind == EOF) @@ -4083,7 +4083,7 @@ public class JavacParser implements Parser { /** * Store the last error position. */ - protected int errorEndPos; + protected int errorEndPos = Position.NOPOS; public AbstractEndPosTable(JavacParser parser) { this.parser = parser; diff --git a/langtools/test/tools/javac/parser/JavacParserTest.java b/langtools/test/tools/javac/parser/JavacParserTest.java index e52ea53c607..7f0a620a294 100644 --- a/langtools/test/tools/javac/parser/JavacParserTest.java +++ b/langtools/test/tools/javac/parser/JavacParserTest.java @@ -23,7 +23,7 @@ /* * @test - * @bug 7073631 7159445 7156633 8028235 + * @bug 7073631 7159445 7156633 8028235 8065753 * @summary tests error and diagnostics positions * @author Jan Lahoda */ @@ -49,8 +49,10 @@ import com.sun.source.util.SourcePositions; import com.sun.source.util.TreeScanner; import com.sun.source.util.Trees; import com.sun.tools.javac.api.JavacTaskImpl; +import com.sun.tools.javac.main.Main; import com.sun.tools.javac.tree.JCTree; import java.io.IOException; +import java.io.StringWriter; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -941,6 +943,19 @@ public class JavacParserTest extends TestCase { TypeKind.VOID); } + @Test //JDK-8065753 + void testWrongFirstToken() throws IOException { + String code = "<"; + String expectedErrors = "Test.java:1:1: compiler.err.expected3: class, interface, enum\n" + + "1 error\n"; + StringWriter out = new StringWriter(); + JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(out, fm, null, + Arrays.asList("-XDrawDiagnostics"), null, Arrays.asList(new MyFileObject(code))); + + assertEquals("the error code is not correct", Main.Result.ERROR, ct.doCall()); + assertEquals("the error message is not correct", expectedErrors, out.toString()); + } + void run(String[] args) throws Exception { int passed = 0, failed = 0; final Pattern p = (args != null && args.length > 0) From fb05a0309521da2624e3eb1ebe1a5e047aa0fc86 Mon Sep 17 00:00:00 2001 From: Maurizio Cimadamore Date: Mon, 8 Dec 2014 16:30:43 +0000 Subject: [PATCH 03/10] 8066889: IntelliJ langtools launcher ought to be Windows friendly Fixup file and path separators in project setup stage. Reviewed-by: jlahoda --- langtools/make/build.xml | 2 ++ langtools/make/intellij/workspace.xml | 12 ++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/langtools/make/build.xml b/langtools/make/build.xml index d2e543a6d56..8eff38083aa 100644 --- a/langtools/make/build.xml +++ b/langtools/make/build.xml @@ -422,6 +422,8 @@ + + diff --git a/langtools/make/intellij/workspace.xml b/langtools/make/intellij/workspace.xml index 6f613f966a6..7783a75f876 100644 --- a/langtools/make/intellij/workspace.xml +++ b/langtools/make/intellij/workspace.xml @@ -10,7 +10,7 @@