Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 42294 Details for
Bug 142793
NPE in core.dom.ASTConverter.createFakeEmptyStatement results in java.lang.OutOfMemory
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
New patch
patch_142793_2.txt (text/plain), 7.67 KB, created by
Olivier Thomann
on 2006-05-23 14:09:13 EDT
(
hide
)
Description:
New patch
Filename:
MIME Type:
Creator:
Olivier Thomann
Created:
2006-05-23 14:09:13 EDT
Size:
7.67 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: dom/org/eclipse/jdt/core/dom/ASTParser.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java,v >retrieving revision 1.63 >diff -u -r1.63 ASTParser.java >--- dom/org/eclipse/jdt/core/dom/ASTParser.java 4 Apr 2006 19:00:54 -0000 1.63 >+++ dom/org/eclipse/jdt/core/dom/ASTParser.java 23 May 2006 18:09:02 -0000 >@@ -25,7 +25,6 @@ > import org.eclipse.jdt.core.compiler.CharOperation; > import org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration; > import org.eclipse.jdt.internal.compiler.ast.ConstructorDeclaration; >-import org.eclipse.jdt.internal.compiler.ast.Statement; > import org.eclipse.jdt.internal.compiler.env.IBinaryType; > import org.eclipse.jdt.internal.compiler.parser.RecoveryScanner; > import org.eclipse.jdt.internal.compiler.parser.RecoveryScannerData; >@@ -978,14 +977,17 @@ > compilationUnit.setLineEndTable(recordedParsingInformation.lineEnds); > if (constructorDeclaration != null) { > Block block = ast.newBlock(); >- Statement[] statements = constructorDeclaration.statements; >+ org.eclipse.jdt.internal.compiler.ast.Statement[] statements = constructorDeclaration.statements; > if (statements != null) { > int statementsLength = statements.length; > for (int i = 0; i < statementsLength; i++) { > if (statements[i] instanceof org.eclipse.jdt.internal.compiler.ast.LocalDeclaration) { > converter.checkAndAddMultipleLocalDeclaration(statements, i, block.statements()); > } else { >- block.statements().add(converter.convert(statements[i])); >+ Statement statement = converter.convert(statements[i]); >+ if (statement != null) { >+ block.statements().add(statement); >+ } > } > } > } >Index: dom/org/eclipse/jdt/core/dom/ASTConverter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java,v >retrieving revision 1.238 >diff -u -r1.238 ASTConverter.java >--- dom/org/eclipse/jdt/core/dom/ASTConverter.java 29 Mar 2006 02:54:50 -0000 1.238 >+++ dom/org/eclipse/jdt/core/dom/ASTConverter.java 23 May 2006 18:09:02 -0000 >@@ -508,7 +508,10 @@ > if (statements[i] instanceof org.eclipse.jdt.internal.compiler.ast.LocalDeclaration) { > checkAndAddMultipleLocalDeclaration(statements, i, block.statements()); > } else { >- block.statements().add(convert(statements[i])); >+ final Statement statement = convert(statements[i]); >+ if (statement != null) { >+ block.statements().add(statement); >+ } > } > } > } >@@ -1118,7 +1121,10 @@ > if (statements[i] instanceof org.eclipse.jdt.internal.compiler.ast.LocalDeclaration) { > checkAndAddMultipleLocalDeclaration(statements, i, block.statements()); > } else { >- block.statements().add(convert(statements[i])); >+ Statement statement2 = convert(statements[i]); >+ if (statement2 != null) { >+ block.statements().add(statement2); >+ } > } > } > } >@@ -1344,7 +1350,9 @@ > DoStatement doStatement = new DoStatement(this.ast); > doStatement.setSourceRange(statement.sourceStart, statement.sourceEnd - statement.sourceStart + 1); > doStatement.setExpression(convert(statement.condition)); >- doStatement.setBody(convert(statement.action)); >+ final Statement action = convert(statement.action); >+ if (action == null) return null; >+ doStatement.setBody(action); > retrieveSemiColonPosition(doStatement); > return doStatement; > } >@@ -1705,7 +1713,9 @@ > EnhancedForStatement enhancedForStatement = new EnhancedForStatement(this.ast); > enhancedForStatement.setParameter(convertToSingleVariableDeclaration(statement.elementVariable)); > enhancedForStatement.setExpression(convert(statement.collection)); >- enhancedForStatement.setBody(convert(statement.action)); >+ final Statement action = convert(statement.action); >+ if (action == null) return null; >+ enhancedForStatement.setBody(action); > int start = statement.sourceStart; > int end = statement.sourceEnd; > enhancedForStatement.setSourceRange(start, end - start + 1); >@@ -1755,7 +1765,9 @@ > forStatement.updaters().add(convertToExpression(increments[i])); > } > } >- forStatement.setBody(convert(statement.action)); >+ final Statement action = convert(statement.action); >+ if (action == null) return null; >+ forStatement.setBody(action); > return forStatement; > } > >@@ -1763,9 +1775,14 @@ > IfStatement ifStatement = new IfStatement(this.ast); > ifStatement.setSourceRange(statement.sourceStart, statement.sourceEnd - statement.sourceStart + 1); > ifStatement.setExpression(convert(statement.condition)); >- ifStatement.setThenStatement(convert(statement.thenStatement)); >- if (statement.elseStatement != null) { >- ifStatement.setElseStatement(convert(statement.elseStatement)); >+ final Statement thenStatement = convert(statement.thenStatement); >+ if (thenStatement == null) return null; >+ ifStatement.setThenStatement(thenStatement); >+ org.eclipse.jdt.internal.compiler.ast.Statement statement2 = statement.elseStatement; >+ if (statement2 != null) { >+ final Statement elseStatement = convert(statement2); >+ if (elseStatement == null) return null; >+ ifStatement.setElseStatement(elseStatement); > } > return ifStatement; > } >@@ -1860,9 +1877,10 @@ > public LabeledStatement convert(org.eclipse.jdt.internal.compiler.ast.LabeledStatement statement) { > LabeledStatement labeledStatement = new LabeledStatement(this.ast); > final int sourceStart = statement.sourceStart; >- labeledStatement.setSourceRange(sourceStart, statement.sourceEnd - sourceStart + 1); >- org.eclipse.jdt.internal.compiler.ast.Statement body = statement.statement; >- labeledStatement.setBody(convert(body)); >+ labeledStatement.setSourceRange(sourceStart, statement.sourceEnd - sourceStart + 1); >+ Statement body = convert(statement.statement); >+ if (body == null) return null; >+ labeledStatement.setBody(body); > final SimpleName name = new SimpleName(this.ast); > name.internalSetIdentifier(new String(statement.label)); > name.setSourceRange(sourceStart, statement.labelEnd - sourceStart + 1); >@@ -2488,7 +2506,10 @@ > if (statements[i] instanceof org.eclipse.jdt.internal.compiler.ast.LocalDeclaration) { > checkAndAddMultipleLocalDeclaration(statements, i, switchStatement.statements()); > } else { >- switchStatement.statements().add(convert(statements[i])); >+ final Statement currentStatement = convert(statements[i]); >+ if (currentStatement != null) { >+ switchStatement.statements().add(currentStatement); >+ } > } > } > } >@@ -2725,8 +2746,9 @@ > final WhileStatement whileStatement = new WhileStatement(this.ast); > whileStatement.setSourceRange(statement.sourceStart, statement.sourceEnd - statement.sourceStart + 1); > whileStatement.setExpression(convert(statement.condition)); >- org.eclipse.jdt.internal.compiler.ast.Statement action = statement.action; >- whileStatement.setBody(convert(action)); >+ final Statement action = convert(statement.action); >+ if (action == null) return null; >+ whileStatement.setBody(action); > return whileStatement; > } > >@@ -3314,6 +3336,7 @@ > } > > protected Statement createFakeEmptyStatement(org.eclipse.jdt.internal.compiler.ast.Statement statement) { >+ if (statement == null) return null; > EmptyStatement emptyStatement = new EmptyStatement(this.ast); > emptyStatement.setFlags(emptyStatement.getFlags() | ASTNode.MALFORMED); > int start = statement.sourceStart;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 142793
:
42031
|
42040
|
42057
|
42059
| 42294