Index: ASTParser.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java,v retrieving revision 1.46 diff -u -r1.46 ASTParser.java --- ASTParser.java 15 Sep 2005 18:48:54 -0000 1.46 +++ ASTParser.java 28 Sep 2005 13:53:03 -0000 @@ -72,6 +72,7 @@ * @since 3.0 */ public class ASTParser { + private static final int[] EMPTY_LINE_ENDS = new int[0]; /** * Kind constant used to request that the source be parsed @@ -920,7 +921,12 @@ if (comments != null) { converter.buildCommentsTable(compilationUnit, comments); } - compilationUnit.setLineEndTable(recordedParsingInformation.lineEnds); + int[] lineEnds = recordedParsingInformation.lineEnds; + if (lineEnds == null) { + compilationUnit.setLineEndTable(EMPTY_LINE_ENDS); + } else { + compilationUnit.setLineEndTable(lineEnds); + } if (constructorDeclaration != null) { Block block = ast.newBlock(); Statement[] statements = constructorDeclaration.statements; @@ -954,7 +960,12 @@ if (comments != null) { converter.buildCommentsTable(compilationUnit, comments); } - compilationUnit.setLineEndTable(recordedParsingInformation.lineEnds); + lineEnds = recordedParsingInformation.lineEnds; + if (lineEnds == null) { + compilationUnit.setLineEndTable(EMPTY_LINE_ENDS); + } else { + compilationUnit.setLineEndTable(lineEnds); + } if (expression != null) { Expression expression2 = converter.convert(expression); rootNodeToCompilationUnit(expression2.getAST(), compilationUnit, expression2, codeSnippetParsingUtil.recordedParsingInformation); @@ -977,7 +988,12 @@ if (comments != null) { converter.buildCommentsTable(compilationUnit, comments); } - compilationUnit.setLineEndTable(recordedParsingInformation.lineEnds); + lineEnds = recordedParsingInformation.lineEnds; + if (lineEnds == null) { + compilationUnit.setLineEndTable(EMPTY_LINE_ENDS); + } else { + compilationUnit.setLineEndTable(lineEnds); + } if (nodes != null) { TypeDeclaration typeDeclaration = converter.convert(nodes); rootNodeToCompilationUnit(typeDeclaration.getAST(), compilationUnit, typeDeclaration, codeSnippetParsingUtil.recordedParsingInformation); Index: CompilationUnitResolver.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CompilationUnitResolver.java,v retrieving revision 1.107 diff -u -r1.107 CompilationUnitResolver.java --- CompilationUnitResolver.java 31 May 2005 10:42:08 -0000 1.107 +++ CompilationUnitResolver.java 28 Sep 2005 13:53:03 -0000 @@ -58,6 +58,7 @@ import org.eclipse.jdt.internal.core.util.DOMFinder; class CompilationUnitResolver extends Compiler { + private static final int[] EMPTY_LINE_ENDS = new int[0]; /* A list of int */ static class IntArrayList { @@ -249,7 +250,12 @@ ast.setBindingResolver(resolver); converter.setAST(ast); compilationUnit = converter.convert(compilationUnitDeclaration, source); - compilationUnit.setLineEndTable(compilationUnitDeclaration.compilationResult.lineSeparatorPositions); + final int[] lineEnds = compilationUnitDeclaration.compilationResult.lineSeparatorPositions; + if (lineEnds == null) { + compilationUnit.setLineEndTable(EMPTY_LINE_ENDS); + } else { + compilationUnit.setLineEndTable(lineEnds); + } ast.setDefaultNodeFlag(0); ast.setOriginalModificationCount(ast.modificationCount()); return compilationUnit; @@ -683,7 +689,12 @@ converter.setAST(ast); CompilationUnit compilationUnit = converter.convert(unit, contents); compilationUnit.setJavaElement(source); - compilationUnit.setLineEndTable(compilationResult.lineSeparatorPositions); + final int[] lineEnds = compilationResult.lineSeparatorPositions; + if (lineEnds == null) { + compilationUnit.setLineEndTable(EMPTY_LINE_ENDS); + } else { + compilationUnit.setLineEndTable(lineEnds); + } ast.setDefaultNodeFlag(0); ast.setOriginalModificationCount(ast.modificationCount()); Index: AST.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java,v retrieving revision 1.143 diff -u -r1.143 AST.java --- AST.java 28 Jul 2005 16:33:24 -0000 1.143 +++ AST.java 28 Sep 2005 13:53:02 -0000 @@ -93,6 +93,8 @@ * @since 2.0 */ public final class AST { + private static final int[] EMPTY_LINE_ENDS = new int[0]; + /** * Constant for indicating the AST API that handles JLS2. * This API is capable of handling all constructs @@ -268,7 +270,12 @@ converter.setAST(ast); CompilationUnit unit = converter.convert(compilationUnitDeclaration, source); - unit.setLineEndTable(compilationUnitDeclaration.compilationResult.lineSeparatorPositions); + final int[] lineEnds = compilationUnitDeclaration.compilationResult.lineSeparatorPositions; + if (lineEnds == null) { + unit.setLineEndTable(EMPTY_LINE_ENDS); + } else { + unit.setLineEndTable(lineEnds); + } unit.setJavaElement(workingCopy); ast.setDefaultNodeFlag(savedDefaultNodeFlag); return unit;