diff options
| author | John Glassmyer | 2015-02-23 20:36:44 +0000 |
|---|---|---|
| committer | Markus Keller | 2015-03-05 19:22:52 +0000 |
| commit | 1490ec2d61fb8e59c378e50775f4749531490d5f (patch) | |
| tree | 3b3758f05aae115517b46db16992e0165da96272 | |
| parent | 245e2f8d15197f114d023f090474032f3cfd3cac (diff) | |
| download | eclipse.jdt.core-1490ec2d61fb8e59c378e50775f4749531490d5f.tar.gz eclipse.jdt.core-1490ec2d61fb8e59c378e50775f4749531490d5f.tar.xz eclipse.jdt.core-1490ec2d61fb8e59c378e50775f4749531490d5f.zip | |
Bug 460484: ImportRewrite throws SIOOBE when trying to add import
(Adds a minimal test that addresses the cause of the SIOOBE.)
Change-Id: Ib1c40b3629a2042ecc6ccf73335002c9e3adcd57
Signed-off-by: John Glassmyer <jogl@google.com>
| -rw-r--r-- | org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ImportRewriteTest.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ImportRewriteTest.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ImportRewriteTest.java index c3883db3fa..e1d22922d3 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ImportRewriteTest.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ImportRewriteTest.java @@ -1411,6 +1411,37 @@ public class ImportRewriteTest extends AbstractJavaModelTests { assertEqualString(cuWithoutFiltering.getSource(), expectedWithoutFiltering.toString()); } + /** + * Addresses https://bugs.eclipse.org/460484 ("ImportRewrite throws SIOOBE when trying to add + * import"). + */ + public void testAddAdjacentImportWithCommonPrefixButLongerInitialSegment() throws Exception { + StringBuffer contents = new StringBuffer(); + contents.append("package pack1;\n"); + contents.append("\n"); + contents.append("import a.FromA;\n"); + contents.append("import b.FromB;\n"); + contents.append("\n"); + contents.append("public class Clazz {}\n"); + ICompilationUnit cu = createCompilationUnit("pack1", "Clazz", contents.toString()); + + ImportRewrite rewrite = newImportsRewrite(cu, new String[] {}, 999, 999, true); + rewrite.setUseContextToFilterImplicitImports(true); + // Expect that no exception is thrown when "ab" is compared with "a". + rewrite.addImport("ab.FromAb"); + apply(rewrite); + + StringBuffer expected = new StringBuffer(); + expected.append("package pack1;\n"); + expected.append("\n"); + expected.append("import a.FromA;\n"); + expected.append("import ab.FromAb;\n"); + expected.append("import b.FromB;\n"); + expected.append("\n"); + expected.append("public class Clazz {}\n"); + assertEqualString(cu.getSource(), expected.toString()); + } + public void testAddImports1() throws Exception { IPackageFragment pack1= this.sourceFolder.createPackageFragment("pack1", false, null); |
