### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: batch/org/eclipse/jdt/internal/compiler/batch/Main.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java,v retrieving revision 1.293 diff -u -r1.293 Main.java --- batch/org/eclipse/jdt/internal/compiler/batch/Main.java 8 Mar 2007 20:32:44 -0000 1.293 +++ batch/org/eclipse/jdt/internal/compiler/batch/Main.java 16 Mar 2007 13:50:23 -0000 @@ -252,8 +252,11 @@ //sanity ..... int startPosition = problem.getSourceStart(); int endPosition = problem.getSourceEnd(); + int length = unitSource.length; if ((startPosition > endPosition) - || ((startPosition < 0) && (endPosition < 0))) { + || ((startPosition < 0) && (endPosition < 0)) + || (length <= 0) + || (endPosition > length)) { this.parameters.put(Logger.VALUE, Messages.problem_noSourceInformation); this.parameters.put(Logger.SOURCE_START, "-1"); //$NON-NLS-1$ this.parameters.put(Logger.SOURCE_END, "-1"); //$NON-NLS-1$ @@ -267,7 +270,7 @@ //(the code still works but the display is not optimal !) // expand to line limits - int length = unitSource.length, begin, end; + int begin, end; for (begin = startPosition >= length ? length - 1 : startPosition; begin > 0; begin--) { if ((c = unitSource[begin - 1]) == '\n' || c == '\r') break; } Index: compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java,v retrieving revision 1.345 diff -u -r1.345 ProblemReporter.java --- compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java 6 Mar 2007 02:38:51 -0000 1.345 +++ compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java 16 Mar 2007 13:50:24 -0000 @@ -2415,7 +2415,7 @@ new String[] {new String(type.shortReadableName()), typesAsString(false, argumentTypes, true)}, ProblemSeverities.AbortCompilation | ProblemSeverities.Error | ProblemSeverities.Fatal, 0, - 1); + 0); return; // not reached since aborted above } this.handle( @@ -4883,7 +4883,7 @@ new String[] {new String(type.shortReadableName()), typesAsString(false, argumentTypes, true)}, ProblemSeverities.AbortCompilation | ProblemSeverities.Error | ProblemSeverities.Fatal, 0, - 1); + 0); return; } this.handle( @@ -5153,7 +5153,7 @@ new String[] {new String(type.shortReadableName())}, ProblemSeverities.AbortCompilation | ProblemSeverities.Error | ProblemSeverities.Fatal, 0, - 1); + 0); return; } this.handle( @@ -5475,7 +5475,7 @@ new String[] {new String(type.shortReadableName()), typesAsString(false, argumentTypes, true), new String(type.enclosingType().shortReadableName())}, ProblemSeverities.AbortCompilation | ProblemSeverities.Error | ProblemSeverities.Fatal, 0, - 1); + 0); return; } this.handle( @@ -5777,7 +5777,7 @@ new String[] {new String(type.shortReadableName()), new String(type.enclosingType().shortReadableName()), }, ProblemSeverities.AbortCompilation | ProblemSeverities.Error | ProblemSeverities.Fatal, 0, - 1); + 0); return; } int end = location.sourceEnd; @@ -6023,7 +6023,7 @@ new String[] { new String(typeArgument.shortReadableName()), new String(genericType.shortReadableName()), new String(typeParameter.sourceName), parameterBoundAsString(typeParameter, true) }, ProblemSeverities.AbortCompilation | ProblemSeverities.Error | ProblemSeverities.Fatal, 0, - 1); + 0); return; } this.handle( @@ -6074,7 +6074,7 @@ new String[] {new String(variableName), new String(binaryType.shortReadableName())}, ProblemSeverities.AbortCompilation | ProblemSeverities.Error | ProblemSeverities.Fatal, 0, - 1); + 0); } public void undocumentedEmptyBlock(int blockStart, int blockEnd) { this.handle(