Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMateusz Matela2015-05-13 11:30:02 +0000
committerManoj Palat2015-05-13 11:30:02 +0000
commitfa568df637cfba49109de9a23ecbf57eda89325f (patch)
tree72d187b6882f609faa6dd868cde9feb049d5f632
parent42f7a750991845ea38763c1731c7ef38a727c093 (diff)
downloadeclipse.jdt.core-fa568df637cfba49109de9a23ecbf57eda89325f.tar.gz
eclipse.jdt.core-fa568df637cfba49109de9a23ecbf57eda89325f.tar.xz
eclipse.jdt.core-fa568df637cfba49109de9a23ecbf57eda89325f.zip
Fix for Bug 465669 NPE in WrapExecutor during Java text formatting
Change-Id: Iab22f82030a1a5f13d047b1da8c2c186e2eaac74 Signed-off-by: Mateusz Matela <mateusz.matela@gmail.com>
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java44
-rw-r--r--org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapExecutor.java2
2 files changed, 46 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java
index 0659687767..d90105fc82 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java
@@ -12,6 +12,7 @@
* Mateusz Matela <mateusz.matela@gmail.com> - [formatter] Formatter does not format Java code correctly, especially when max line width is set - https://bugs.eclipse.org/303519
* Mateusz Matela <mateusz.matela@gmail.com> - [formatter] IndexOutOfBoundsException in TokenManager - https://bugs.eclipse.org/462945
* Mateusz Matela <mateusz.matela@gmail.com> - [formatter] follow up bug for comments - https://bugs.eclipse.org/458208
+ * Mateusz Matela <mateusz.matela@gmail.com> - NPE in WrapExecutor during Java text formatting - https://bugs.eclipse.org/465669
*******************************************************************************/
package org.eclipse.jdt.core.tests.formatter;
@@ -10889,4 +10890,47 @@ public void testBug458208d() throws Exception {
"}"
);
}
+/**
+ * @bug 465669: NPE in WrapExecutor during Java text formatting
+ * @test test that no NPE is thrown
+ * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=465669"
+ */
+public void testBug465669() throws Exception {
+ this.formatterPrefs.tab_char = DefaultCodeFormatterOptions.SPACE;
+ this.formatterPrefs.indentation_size = 2;
+ setPageWidth80();
+ String source =
+ "public class ffffffffffffffffff\r\n" +
+ "{\r\n" +
+ " private static void test(String s)\r\n" +
+ " {\r\n" +
+ " dddd = (aaaaaaaaaaaaaaaaaaaaaaa.ffffffffffffffffff)new dddddddddddddddd()\r\n" +
+ " .ttt(null, aaaaaaaaaaaaaaaaaaaaaaa.ffffffffffffffffff.class)\r\n" +
+ " .ttt(\"bbbbbbb\", xxxxxxxxx.class)\r\n" +
+ " .ttt(\"sssssssvvvvvvv\", new fffffffffff(\"xxxx\")\r\n" +
+ " .add(\"eeeeeeee\", aaaaaaaaaaaaaaaaaaaaaaa.ffffffffffffffffff.ssssssssssssss.class)\r\n" +
+ " .add(\"cccccccccc\", aaaaaaaaaaaaaaaaaaaaaaa.ffffffffffffffffff.wwwwwwwwwwwwwwww.class)\r\n" +
+ " )\r\n" +
+ " .bbbbbbbbbbb(s);\r\n" +
+ " }\r\n" +
+ " \r\n" +
+ "}";
+ formatSource(source,
+ "public class ffffffffffffffffff {\r\n" +
+ " private static void test(String s) {\r\n" +
+ " dddd = (aaaaaaaaaaaaaaaaaaaaaaa.ffffffffffffffffff) new dddddddddddddddd()\r\n" +
+ " .ttt(null, aaaaaaaaaaaaaaaaaaaaaaa.ffffffffffffffffff.class)\r\n" +
+ " .ttt(\"bbbbbbb\", xxxxxxxxx.class)\r\n" +
+ " .ttt(\"sssssssvvvvvvv\",\r\n" +
+ " new fffffffffff(\"xxxx\")\r\n" +
+ " .add(\"eeeeeeee\",\r\n" +
+ " aaaaaaaaaaaaaaaaaaaaaaa.ffffffffffffffffff.ssssssssssssss.class)\r\n" +
+ " .add(\"cccccccccc\",\r\n" +
+ " aaaaaaaaaaaaaaaaaaaaaaa.ffffffffffffffffff.wwwwwwwwwwwwwwww.class))\r\n" +
+ " .bbbbbbbbbbb(s);\r\n" +
+ " }\r\n" +
+ "\r\n" +
+ "}"
+ );
+}
}
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapExecutor.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapExecutor.java
index c06dc48e0c..791c385da1 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapExecutor.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/linewrap/WrapExecutor.java
@@ -8,6 +8,7 @@
* Contributors:
* Mateusz Matela <mateusz.matela@gmail.com> - [formatter] Formatter does not format Java code correctly, especially when max line width is set - https://bugs.eclipse.org/303519
* Mateusz Matela <mateusz.matela@gmail.com> - [formatter] follow up bug for comments - https://bugs.eclipse.org/458208
+ * Mateusz Matela <mateusz.matela@gmail.com> - NPE in WrapExecutor during Java text formatting - https://bugs.eclipse.org/465669
*******************************************************************************/
package org.eclipse.jdt.internal.formatter.linewrap;
@@ -316,6 +317,7 @@ public class WrapExecutor {
if (shouldForceWrap(token, currentIndent)) {
currentIndent = token.getIndent();
wrapInfo = new WrapInfo(index, currentIndent);
+ findWrapsCached(index, currentIndent);
break;
}
token.setIndent(currentIndent);

Back to the top