### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core.tests.model Index: src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java,v retrieving revision 1.251 diff -u -r1.251 FormatterRegressionTests.java --- src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java 24 Aug 2009 18:13:59 -0000 1.251 +++ src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java 24 Aug 2009 18:29:57 -0000 @@ -10773,8 +10773,7 @@ ); } // duplicate bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=201022 -// TODO (frederic) Enable when bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=287462 will be fixed -public void _testBug201022() throws JavaModelException { +public void testBug201022() throws JavaModelException { this.formatterPrefs.join_wrapped_lines = false; String source = "public class Test {\n" + @@ -10792,10 +10791,10 @@ "\n" + " void foo() {\n" + " String sQuery =\n" + - " \"select * \" +\n" + - " \"from person p, address a \" +\n" + - " \"where p.person_id = a.person_id \" +\n" + - " \"and p.person_id = ?\";\n" + + " \"select * \" +\n" + + " \"from person p, address a \" +\n" + + " \"where p.person_id = a.person_id \" +\n" + + " \"and p.person_id = ?\";\n" + " }\n" + "}\n" ); #P org.eclipse.jdt.core Index: formatter/org/eclipse/jdt/internal/formatter/Scribe.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/Scribe.java,v retrieving revision 1.172 diff -u -r1.172 Scribe.java --- formatter/org/eclipse/jdt/internal/formatter/Scribe.java 21 Aug 2009 18:04:51 -0000 1.172 +++ formatter/org/eclipse/jdt/internal/formatter/Scribe.java 24 Aug 2009 18:30:02 -0000 @@ -818,9 +818,12 @@ } int getCurrentIndentation(int start) { - int linePtr = -Arrays.binarySearch(this.lineEnds, start); + int linePtr = Arrays.binarySearch(this.lineEnds, start); + if (linePtr < 0) { + linePtr = -linePtr - 1; + } int offset = 0; - int beginningOfLine = getLineEnd(linePtr - 1); + int beginningOfLine = getLineEnd(linePtr); if (beginningOfLine == -1) { beginningOfLine = 0; }