### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core.tests.model Index: src/org/eclipse/jdt/core/tests/rewrite/describing/ImportRewriteTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/rewrite/describing/ImportRewriteTest.java,v retrieving revision 1.11 diff -u -r1.11 ImportRewriteTest.java --- src/org/eclipse/jdt/core/tests/rewrite/describing/ImportRewriteTest.java 27 Jun 2008 16:02:41 -0000 1.11 +++ src/org/eclipse/jdt/core/tests/rewrite/describing/ImportRewriteTest.java 24 Oct 2008 10:38:18 -0000 @@ -268,6 +268,37 @@ buf.append("}\n"); assertEqualString(cu.getSource(), buf.toString()); } + + public void testAddImports4() throws Exception { + getJavaProject("P").setOption(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_SEMICOLON, JavaCore.INSERT); + + IPackageFragment pack1= this.sourceFolder.createPackageFragment("pack1", false, null); + StringBuffer buf= new StringBuffer(); + buf.append("package pack1;\n"); + buf.append("\n"); + buf.append("import java.util.Set; // comment\n"); + buf.append("\n"); + buf.append("public class C {\n"); + buf.append("}\n"); + ICompilationUnit cu= pack1.createCompilationUnit("C.java", buf.toString(), false, null); + + String[] order= new String[] { "java", "java.util", "com", "pack" }; + + ImportRewrite imports= newImportsRewrite(cu, order, 99, 99, true); + imports.addImport("java.util.Vector"); + + apply(imports); + + buf= new StringBuffer(); + buf.append("package pack1;\n"); + buf.append("\n"); + buf.append("import java.util.Set; // comment\n"); + buf.append("import java.util.Vector ;\n"); + buf.append("\n"); + buf.append("public class C {\n"); + buf.append("}\n"); + assertEqualString(cu.getSource(), buf.toString()); + } public void testAddImportsWithGroupsOfUnmatched1() throws Exception { #P org.eclipse.jdt.core Index: dom/org/eclipse/jdt/internal/core/dom/rewrite/ImportRewriteAnalyzer.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ImportRewriteAnalyzer.java,v retrieving revision 1.12 diff -u -r1.12 ImportRewriteAnalyzer.java --- dom/org/eclipse/jdt/internal/core/dom/rewrite/ImportRewriteAnalyzer.java 27 Jun 2008 16:04:10 -0000 1.12 +++ dom/org/eclipse/jdt/internal/core/dom/rewrite/ImportRewriteAnalyzer.java 24 Oct 2008 10:38:19 -0000 @@ -104,6 +104,10 @@ } return 1; } + + private boolean insertSpaceBeforeSemicolon() { + return JavaCore.INSERT.equals(this.compilationUnit.getJavaProject().getOption(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_SEMICOLON, true)); + } private void addPreferenceOrderHolders(PackageEntry[] preferenceOrder) { if (this.packageEntries.isEmpty()) { @@ -709,6 +713,7 @@ buf.append("static "); //$NON-NLS-1$ } buf.append(importName); + if (insertSpaceBeforeSemicolon()) buf.append(' '); buf.append(';'); buf.append(lineDelim);