Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 526029

Summary: DOT Editor throws NPE when calculating folding regions for incomplete statements
Product: [Tools] GEF Reporter: Tamas Miklossy <miklossy>
Component: GEF DOTAssignee: gef-inbox <gef-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 Keywords: triaged
Version: unspecified   
Target Milestone: 5.0.2 (Oxygen.2) M1   
Hardware: PC   
OS: All   
Whiteboard:

Description Tamas Miklossy CLA 2017-10-14 05:25:45 EDT
When the DOT Editor calculates the folding regions for incomplete statements (e.g: "graph {1[color= ]}"), the following NullPointerException is thrown:

java.lang.NullPointerException
	at org.eclipse.gef.dot.internal.ui.language.folding.DotFoldingRegionProvider.computeDotAttributeValueFolding(DotFoldingRegionProvider.java:86)
	at org.eclipse.gef.dot.internal.ui.language.folding.DotFoldingRegionProvider.computeObjectFolding(DotFoldingRegionProvider.java:67)
	at org.eclipse.xtext.ui.editor.folding.DefaultFoldingRegionProvider.doGetFoldingRegions(DefaultFoldingRegionProvider.java:98)
	at org.eclipse.xtext.ui.editor.folding.DefaultFoldingRegionProvider$1.exec(DefaultFoldingRegionProvider.java:80)
	at org.eclipse.xtext.ui.editor.folding.DefaultFoldingRegionProvider$1.exec(DefaultFoldingRegionProvider.java:1)
	at org.eclipse.xtext.util.concurrent.CancelableUnitOfWork.exec(CancelableUnitOfWork.java:25)
	at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.internalReadOnly(XtextDocument.java:494)
	at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.readOnly(XtextDocument.java:465)
	at org.eclipse.xtext.ui.editor.model.XtextDocument.readOnly(XtextDocument.java:105)
	at org.eclipse.xtext.ui.editor.folding.DefaultFoldingRegionProvider.getFoldingRegions(DefaultFoldingRegionProvider.java:72)
	at org.eclipse.xtext.ui.editor.folding.DefaultFoldingStructureProvider.calculateProjectionAnnotationModel(DefaultFoldingStructureProvider.java:116)
	at org.eclipse.xtext.ui.editor.folding.DefaultFoldingStructureProvider.initialize(DefaultFoldingStructureProvider.java:59)
	at org.eclipse.xtext.ui.editor.folding.DefaultFoldingStructureProvider.handleProjectionEnabled(DefaultFoldingStructureProvider.java:100)
	at org.eclipse.xtext.ui.editor.folding.DefaultFoldingStructureProvider$ProjectionChangeListener.projectionEnabled(DefaultFoldingStructureProvider.java:191)
	at org.eclipse.jface.text.source.projection.ProjectionViewer.fireProjectionEnabled(ProjectionViewer.java:488)
	at org.eclipse.jface.text.source.projection.ProjectionViewer.enableProjection(ProjectionViewer.java:536)
	at org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1408)
	at org.eclipse.xtext.ui.editor.XtextEditor.installFoldingSupport(XtextEditor.java:523)
	at org.eclipse.xtext.ui.editor.XtextEditor.createPartControl(XtextEditor.java:503)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:141)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor.createPartControl(CompatibilityEditor.java:99)
Comment 1 Tamas Miklossy CLA 2017-10-14 05:40:01 EDT
The following changes are published on the origin/R5_0_0_maintenance and origin/master branches:

[526029] Avoid NPE in Dot Folding in case of incomplete statements.

- Modify the DotFoldingProvider to be able to calculate the folding
regions even for incomplete statements.
- Implement corresponding DotFoldingTests test cases.

Resolving as fixed in 5.0.2 M1.