Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

DataflowViewPage: Nullpointer while getDocument if XML is open

未关闭
#28 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
java
领域
desktop, devtools

调研方向

首先在 Eclipse 4.7 中复现报告的操作序列:打开 Dataflow View,然后打开一个 XML 文件。以报告中的第 77 行和第 341 行作为入口点,通过 AbstractStructureInspectorPage.getDocument 跟踪 DataflowViewPage.createControl。完成的标准是该操作序列不再引发 NullPointerException。

由索引模型根据 Issue 内容生成。

描述

bug

If I open a XML File I got following error:
Problems occurred when invoking code from plug-in: "org.eclipse.ui.workbench".
It seems it is required to open the Dataflow View one time and then open the XML File. With a fresh restarted Eclipse no error is shown.

Steps:

  1. Start Eclipse
  2. Open Dataflow View
  3. Open XML File

Stacktrace:
java.lang.NullPointerException at net.sourceforge.pmd.eclipse.ui.views.AbstractStructureInspectorPage.getDocument(AbstractStructureInspectorPage.java:341) at net.sourceforge.pmd.eclipse.ui.views.AbstractStructureInspectorPage.getPMDMethods(AbstractStructureInspectorPage.java:312) at net.sourceforge.pmd.eclipse.ui.views.AbstractStructureInspectorPage.refreshPMDMethods(AbstractStructureInspectorPage.java:222) at net.sourceforge.pmd.eclipse.ui.views.AbstractStructureInspectorPage.buildMethodSelector(AbstractStructureInspectorPage.java:264) at net.sourceforge.pmd.eclipse.ui.views.dataflow.DataflowViewPage.createControl(DataflowViewPage.java:77) at net.sourceforge.pmd.eclipse.ui.views.dataflow.DataflowView.doCreatePage(DataflowView.java:36) at org.eclipse.ui.part.PageBookView.createPage(PageBookView.java:385) at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:728) at net.sourceforge.pmd.eclipse.ui.views.AbstractResourceView.partActivated(AbstractResourceView.java:38) at org.eclipse.ui.part.PageBookView$1.partActivated(PageBookView.java:1028) at org.eclipse.ui.internal.WorkbenchPage$15.run(WorkbenchPage.java:4999) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.WorkbenchPage.firePartActivated(WorkbenchPage.java:4996) at org.eclipse.ui.internal.WorkbenchPage.access$19(WorkbenchPage.java:4975) at org.eclipse.ui.internal.WorkbenchPage$E4PartListener.partActivated(WorkbenchPage.java:212) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$3.run(PartServiceImpl.java:250) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.firePartActivated(PartServiceImpl.java:247) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:755) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:680) at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activate(AbstractPartRenderer.java:95) at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.lambda$1(StackRenderer.java:1036) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1088) at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1542) at org.eclipse.swt.widgets.Shell.WM_MOUSEACTIVATE(Shell.java:2467) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4887) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359) at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1657) at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2199) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method) at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2555) at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:88) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4941) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5191) at org.eclipse.swt.internal.win32.OS.PeekMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.PeekMessage(OS.java:3152) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3812) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151) 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:388) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590) at org.eclipse.equinox.launcher.Main.run(Main.java:1499)

Eclipse Version: 4.7.0.I20170612-0950
PMD Eclipse Version: PMD Plug-in 4.0.12.v20170331-0813

主要语言
Java
星标
99
派生
42
平均合并
21 小时 41 分钟
30 天内合并 PR
7

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

pmd/pmd-eclipse-plugin 的其他 Issue

查看 pmd/pmd-eclipse-plugin 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。