Bug 466596 - NullPointerException in JFaceNodeAdapterForJs.filter (142)
Summary: NullPointerException in JFaceNodeAdapterForJs.filter (142)
Status: ASSIGNED
Alias: None
Product: JSDT
Classification: WebTools
Component: Web (show other bugs)
Version: 3.7   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 3.7.1   Edit
Assignee: Nick Sandonato CLA
QA Contact: Victor Rubezhny CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-06 10:54 EDT by EPP Error Reports CLA
Modified: 2016-02-21 09:25 EST (History)
4 users (show)

See Also:


Attachments
Patch to fix the issue (3.67 KB, patch)
2015-05-06 11:35 EDT, Victor Rubezhny CLA
no flags Details | Diff
Patch to fix the issue (updated) (7.33 KB, patch)
2015-06-01 20:11 EDT, Victor Rubezhny CLA
vrubezhny: review?
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description EPP Error Reports CLA 2015-05-06 10:54:24 EDT
The following incident was reported via the automated error reporting:


    code:                   2
    plugin:                 org.eclipse.e4.ui.workbench_1.3.0.v20150113-2327
    message:                Problems occurred when invoking code from plug-in: "org.eclipse.e4.ui.workbench".
    fingerprint:            ef105742
    exception class:        java.lang.NullPointerException
    exception message:      -
    number of children:     0
    
    java.lang.NullPointerException: null
    at org.eclipse.wst.jsdt.web.ui.views.contentoutline.JFaceNodeAdapterForJs.filter(JFaceNodeAdapterForJs.java:142)
    at org.eclipse.wst.jsdt.web.ui.views.contentoutline.JFaceNodeAdapterForJs.getChildren(JFaceNodeAdapterForJs.java:109)
    at org.eclipse.wst.xml.ui.internal.contentoutline.JFaceNodeContentProvider.getChildren(JFaceNodeContentProvider.java:63)
    at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1372)
    at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:353)
    at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:906)
    at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:617)
    at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:815)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:791)
    at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:611)
    at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:762)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpand(AbstractTreeViewer.java:1639)
    at org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:2531)
    at org.eclipse.jface.viewers.StructuredViewer.setSelectionToWidget(StructuredViewer.java:1775)
    at org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:3004)
    at org.eclipse.jface.viewers.StructuredViewer.setSelection(StructuredViewer.java:1731)
    at org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:1093)
    at org.eclipse.wst.sse.ui.internal.contentoutline.ConfigurableContentOutlinePage$PostSelectionServiceListener.selectionChanged(ConfigurableContentOutlinePage.java:168)
    at org.eclipse.ui.internal.e4.compatibility.SelectionService.notifyListeners(SelectionService.java:237)
    at org.eclipse.ui.internal.e4.compatibility.SelectionService.handlePostSelectionChanged(SelectionService.java:122)
    at org.eclipse.ui.internal.e4.compatibility.SelectionService.access$1(SelectionService.java:112)
    at org.eclipse.ui.internal.e4.compatibility.SelectionService$3.selectionChanged(SelectionService.java:80)
    at org.eclipse.e4.ui.internal.workbench.SelectionAggregator$4.run(SelectionAggregator.java:166)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.e4.ui.internal.workbench.SelectionAggregator.notifyPostListeners(SelectionAggregator.java:163)
    at org.eclipse.e4.ui.internal.workbench.SelectionAggregator.access$8(SelectionAggregator.java:160)
    at org.eclipse.e4.ui.internal.workbench.SelectionAggregator$8$1.run(SelectionAggregator.java:272)
    at org.eclipse.e4.core.contexts.RunAndTrack.runExternalCode(RunAndTrack.java:56)
    at org.eclipse.e4.ui.internal.workbench.SelectionAggregator$8.changed(SelectionAggregator.java:269)
    at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:110)
    at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:338)
    at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:352)
    at org.eclipse.e4.ui.internal.workbench.SelectionServiceImpl.setPostSelection(SelectionServiceImpl.java:36)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart$3.selectionChanged(CompatibilityPart.java:130)
    at org.eclipse.wst.sse.ui.StructuredTextEditor$4.run(StructuredTextEditor.java:594)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.wst.sse.ui.StructuredTextEditor$StructuredSelectionProvider.fireSelectionChanged(StructuredTextEditor.java:592)
    at org.eclipse.wst.sse.ui.StructuredTextEditor$StructuredSelectionProvider.handlePostSelectionChanged(StructuredTextEditor.java:673)
    at org.eclipse.wst.sse.ui.StructuredTextEditor$3.selectionChanged(StructuredTextEditor.java:566)
    at org.eclipse.jface.text.TextViewer.firePostSelectionChanged(TextViewer.java:2750)
    at org.eclipse.jface.text.TextViewer.firePostSelectionChanged(TextViewer.java:2698)
    at org.eclipse.jface.text.TextViewer$5.run(TextViewer.java:2677)
    at org.eclipse.swt.widgets.Display.runTimers(Display.java:4174)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:648)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:592)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
   
  

General Information:

    reported-by:      
    anonymous-id:     46e68908-bc1a-4e1c-8fbd-72fc2ddda607
    eclipse-build-id: 4.5.0.I20150203-1300
    eclipse-product:  org.eclipse.epp.package.jee.product
    operating system: MacOSX 10.9.4 (x86_64) - cocoa
    jre-version:      1.7.0_67-b01

The following plug-ins were present on the execution stack (*):
    1. org.eclipse.core.databinding.observable_1.4.1.v20140910-2107
    2. org.eclipse.core.databinding_1.4.100.v20141002-1314
    3. org.eclipse.core.runtime_3.10.0.v20150112-1422
    4. org.eclipse.e4.core.contexts_1.3.100.v20140407-1019
    5. org.eclipse.e4.ui.workbench_1.3.0.v20150113-2327
    6. org.eclipse.e4.ui.workbench.swt_0.12.100.v20150114-0905
    7. org.eclipse.equinox.app_1.3.200.v20130910-1609
    8. org.eclipse.equinox.launcher_1.3.0.v20140415-2008
    9. org.eclipse.jface.text_3.10.0.v20150112-1146
    10. org.eclipse.jface_3.11.0.v20150121-1751
    11. org.eclipse.swt_3.104.0.v20150203-2243
    12. org.eclipse.ui_3.107.0.v20150107-0903
    13. org.eclipse.ui.ide.application_1.0.600.v20150120-1542
    14. org.eclipse.ui.ide_3.10.100.v20150126-1117
    15. org.eclipse.wst.jsdt.web.ui_1.0.800.v201403271809
    16. org.eclipse.wst.sse.ui_1.3.301.v201501151629
    17. org.eclipse.wst.xml.ui_1.1.501.v201501212057

Please note that:
* Messages, stacktraces, and nested status objects may be shortened.
* Bug fields like status, resolution, and whiteboard are sent
  back to reporters.
* The list of present bundles and their respective versions was
  calculated by package naming heuristics. This may or may not reflect reality.

Other Resources:
* Report: https://dev.eclipse.org/recommenders/committers/confess/#/problems/54f5db53e4b03058b001f111  
* Manual: https://dev.eclipse.org/recommenders/community/confess/#/guide


Thank you for your assistance.
Your friendly error-reports-inbox.
Comment 1 Victor Rubezhny CLA 2015-05-06 11:35:16 EDT
Created attachment 253234 [details]
Patch to fix the issue
Comment 2 Victor Rubezhny CLA 2015-05-20 14:28:49 EDT
Nick, please review the patch attached.
Comment 3 Victor Rubezhny CLA 2015-06-01 20:01:37 EDT
Yet another problem shows the same class generating an NPE: https://dev.eclipse.org/recommenders/committers/confess/#/problems/556c3d72e4b051e0865c76c5/details

Stacktrace shows the similar problems:

    Plugin: org.eclipse.search 3.10.0.v20150318-0856
    Message: Problems occurred when invoking code from plug-in: "org.eclipse.search".
    Exception:
    java.lang.NullPointerException:
    at org.eclipse.wst.jsdt.web.ui.views.contentoutline.JFaceNodeAdapterForJs.filterChildrenForRange(JFaceNodeAdapterForJs.java:185)
    at org.eclipse.wst.jsdt.web.ui.views.contentoutline.JFaceNodeAdapterForJs.getJSElementsFromNode(JFaceNodeAdapterForJs.java:254)
    at org.eclipse.wst.jsdt.web.ui.views.contentoutline.JFaceNodeAdapterForJs.hasChildren(JFaceNodeAdapterForJs.java:384)
    at org.eclipse.wst.xml.ui.internal.contentoutline.JFaceNodeContentProvider.hasChildren(JFaceNodeContentProvider.java:100)
    at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2139)
    at org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer.java:553)
    at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2169)
    at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(AbstractTreeViewer.java:2861)
    at org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.java:804)
    at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2753)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1916)
    at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:684)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1923)
    at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:684)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1923)
    at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:684)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1891)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1848)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1834)
    at org.eclipse.jface.viewers.StructuredViewer$7.run(StructuredViewer.java:1526)
    at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1462)
    at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:366)
    at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1423)
    at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1523)
    at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:522)
    at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1482)
    at org.eclipse.jface.viewers.ContentViewer.setLabelProvider(ContentViewer.java:323)
    at org.eclipse.jface.viewers.StructuredViewer.setLabelProvider(StructuredViewer.java:2222)
    at org.eclipse.jface.viewers.ColumnViewer.setLabelProvider(ColumnViewer.java:351)
    at org.eclipse.wst.sse.ui.internal.contentoutline.ConfigurableContentOutlinePage.setConfiguration(ConfigurableContentOutlinePage.java:539)
    at org.eclipse.wst.sse.ui.StructuredTextEditor.update(StructuredTextEditor.java:3089)
    at org.eclipse.wst.sse.ui.StructuredTextEditor.setModel(StructuredTextEditor.java:3004)
    at org.eclipse.wst.sse.ui.StructuredTextEditor.doSetInput(StructuredTextEditor.java:1965)
    at org.eclipse.ui.texteditor.AbstractTextEditor.setInputWithNotify(AbstractTextEditor.java:4297)
    at org.eclipse.ui.texteditor.AbstractTextEditor.setInput(AbstractTextEditor.java:4319)
    at org.eclipse.wst.jsdt.internal.ui.search.JavaSearchEditorOpener.showInEditor(JavaSearchEditorOpener.java:117)
    at org.eclipse.wst.jsdt.internal.ui.search.JavaSearchEditorOpener.showWithReuse(JavaSearchEditorOpener.java:66)
    at org.eclipse.wst.jsdt.internal.ui.search.JavaSearchEditorOpener.openElement(JavaSearchEditorOpener.java:44)
    at org.eclipse.wst.jsdt.internal.ui.search.JavaSearchEditorOpener.openMatch(JavaSearchEditorOpener.java:51)
    at org.eclipse.wst.jsdt.internal.ui.search.JavaSearchResultPage.showMatch(JavaSearchResultPage.java:174)
    at org.eclipse.search.ui.text.AbstractTextSearchViewPage$7.run(AbstractTextSearchViewPage.java:938)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.search.ui.text.AbstractTextSearchViewPage.showMatch(AbstractTextSearchViewPage.java:941)
    at org.eclipse.search.ui.text.AbstractTextSearchViewPage.showCurrentMatch(AbstractTextSearchViewPage.java:1006)
    at org.eclipse.search.ui.text.AbstractTextSearchViewPage.gotoNextMatch(AbstractTextSearchViewPage.java:971)
    at org.eclipse.search.ui.text.AbstractTextSearchViewPage.handleOpen(AbstractTextSearchViewPage.java:1430)
    at org.eclipse.wst.jsdt.internal.ui.search.JavaSearchResultPage.handleOpen(JavaSearchResultPage.java:538)
    at org.eclipse.search.ui.text.AbstractTextSearchViewPage$5.open(AbstractTextSearchViewPage.java:756)
    at org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:48)
    at org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:854)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
    at org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:851)
    at org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1168)
    at org.eclipse.jface.viewers.StructuredViewer$6.handleOpen(StructuredViewer.java:1275)
    at org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:278)
    at org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:272)
    at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:313)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4362)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1113)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4180)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3769)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(:-2)
    at sun.reflect.NativeMethodAccessorImpl.invoke(:-1)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(:-1)
    at java.lang.reflect.Method.invoke(:-1)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
Comment 4 Victor Rubezhny CLA 2015-06-01 20:11:20 EDT
Created attachment 253991 [details]
Patch to fix the issue (updated)

The patche fixes the original problem as well as yet another problem: NullPointerException in JFaceNodeAdapterForJs.filterChildrenForRange (185)

Both NPE's are fixed. Little performance improvment is made on filterChildrenForRange() method as well as exceptions are written into the log instead of printing them into System.out
Comment 5 Victor Rubezhny CLA 2015-07-08 19:38:49 EDT
Nick, please review the patch attached.
Comment 6 Orlando Rincon CLA 2015-09-22 12:53:13 EDT
Hello Victor:

I've reviewed your patch and it looks fine to me. I consider it's ready to be merged.

Thanks
Orlando.
Comment 7 Charbel Gereige CLA 2016-02-21 09:25:25 EST
when will this fix be released? 
I'm getting this error all the time in my eclipse: 

eclipse.buildId=4.5.1.M20150904-0015
java.version=1.8.0_73
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_GB
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product