git clone https://github.com/starlocke/flow.git
cd flow
docker run -it --rm --name ccfx -v $(pwd):/project kyoheif/ccfx /bin/bash
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
On the host computer, load the flow project into Eclipse having JDeodorant.
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
Double-clicked a clone's row (Duplicated Code utility tab) with the intent to jump directly to that source code line.
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
Steps to reproduce:
Have Docker installer.
Host computer (assuming
bash
shell):Docker container instance:
a.ccfxd
and.ccfxprepdir
should now existOn the host computer, load the
flow
project into Eclipse having JDeodorant.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
Double-clicked a clone's row (Duplicated Code utility tab) with the intent to jump directly to that source code line.
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.Attachment, "ccfx inputs" as generated earlier: flow-ccfx.zip