diff options
author | Mateusz Matela | 2015-05-13 11:30:02 +0000 |
---|---|---|
committer | Manoj Palat | 2015-05-13 11:30:02 +0000 |
commit | fa568df637cfba49109de9a23ecbf57eda89325f (patch) | |
tree | 72d187b6882f609faa6dd868cde9feb049d5f632 | |
parent | 42f7a750991845ea38763c1731c7ef38a727c093 (diff) | |
download | eclipse.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>
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); |