tsantalis / JDeodorant

JDeodorant
https://marketplace.eclipse.org/content/jdeodorant
MIT License
139 stars 59 forks source link

NullPointerException when reviewing CCFinderX inputs #81

Closed starlocke closed 4 years ago

starlocke commented 4 years ago

Steps to reproduce:

  1. Have Docker installer.

  2. Host computer (assuming bash shell):

    git clone https://github.com/starlocke/flow.git
    cd flow
    docker run -it --rm --name ccfx -v $(pwd):/project kyoheif/ccfx /bin/bash
  3. Docker container instance:

    cd projects
    /usr/src/ccfx/ccfx-master/ubuntu32/ccfx d java -dn /project
    ls -lA
    • a.ccfxd and .ccfxprepdir should now exist
  4. On the host computer, load the flow project into Eclipse having JDeodorant.

  5. Load the CCFX files as input into JDeodorant (Duplicated Code utility tab), for example, and "Finish":

    • C:\Projects\flow\a.ccfxd
    • C:\Projects\flow\.ccfxprepdir
  6. Double-clicked a clone's row (Duplicated Code utility tab) with the intent to jump directly to that source code line.

  7. ERROR: NullPointException happened instead of a file editor opening up and jumping to the clone. EXPECTED: jump to a source code file directly to the clone's line.

eclipse.buildId=4.17.0.I20200902-1800
java.fullversion=14.0.1+7
JRE 14 Windows 8 amd64-64-Bit Compressed References 20200422_50 (JIT enabled, AOT enabled)
OpenJ9   - 05fa2d361
OMR      - d4365f371
JCL      - 5757187cae based on jdk-14.0.1+7
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_CA
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

org.eclipse.jface
Error
Sun Sep 27 21:51:34 EDT 2020
Problems occurred when invoking code from plug-in: "org.eclipse.jface".

java.lang.NullPointerException
    at gr.uom.java.jdeodorant.refactoring.views.DuplicatedCode$11.run(DuplicatedCode.java:661)
    at gr.uom.java.jdeodorant.refactoring.views.DuplicatedCode$12.doubleClick(DuplicatedCode.java:689)
    at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:782)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
    at org.eclipse.ui.internal.JFaceUtil Lambda$118/0000000000000000.run(UnknownSource)atorg.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)atorg.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:779)atorg.eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSelect(AbstractTreeViewer.java:1531)atorg.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1213)atorg.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:251)atorg.eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.java:249)atorg.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:308)atorg.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)atorg.eclipse.swt.widgets.Display.sendEvent(Display.java:4195)atorg.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1037)atorg.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4012)atorg.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3612)atorg.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1157)atorg.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)atorg.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)atorg.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)atorg.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644)atorg.eclipse.ui.internal.Workbench Lambda$114/0000000000000000.run(Unknown Source)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:153)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
    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:401)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)

Attachment, "ccfx inputs" as generated earlier: flow-ccfx.zip