Latest git release does not find class org.esa.snap.core.gpf.GPF

Hello,

I have the following problem when trying to compute coherence estimation:

java.lang.NoClassDefFoundError: Could not initialize class org.esa.snap.core.gpf.GPF
at org.esa.snap.graphbuilder.rcp.dialogs.SingleOperatorDialog.(SingleOperatorDialog.java:103)
at org.esa.snap.graphbuilder.rcp.actions.OperatorAction.createOperatorDialog(OperatorAction.java:83)
at org.esa.snap.graphbuilder.rcp.actions.OperatorAction.actionPerformed(OperatorAction.java:63)
at org.openide.awt.AlwaysEnabledAction$1.run(AlwaysEnabledAction.java:199)
at org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:95)
at org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:116)
at org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:99)
at org.openide.awt.AlwaysEnabledAction.actionPerformed(AlwaysEnabledAction.java:202)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at com.jidesoft.plaf.vsnet.VsnetMenuItemUI.doClick(VsnetMenuItemUI.java:1395)
at com.jidesoft.plaf.vsnet.VsnetMenuItemUI$MouseInputHandler.mouseReleased(VsnetMenuItemUI.java:1190)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2238)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2296)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4897)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4534)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4475)
at java.awt.Container.dispatchEventImpl(Container.java:2282)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
[catch] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

I get this exception when trying to access interferometric->products->coherence estimation on s1tbx. I compiled the source code from the following commits:

  1. snap-engine(f1155ec
  2. snap-desktop(30ef8a1)
  3. s1tbx(8590848)

All commits are from the master branch. I also tried compiling with the latest commits of master rather than latest release commits, but had the same problem. I deleted my local maven repository and compiled again, but with the same results.

I use intellij to run the build and my launch parameters for snap desktop are as follows:

  1. Main class: org.esa.snap.nbexec.Launcher

  2. VM options: -Dsun.java2d.noddraw=true -Dsun.awt.nopixfmt=true -Dsun.java2d.dpiaware=false -Dorg.netbeans.level=INFO -Dsnap.debug=true -Xms8G -Xmx8G

  3. Program Arguments: --userdir “C:/Users/erik.soekov/esaSnap/code2/snap-desktop/snap-application/target/snap/userdir/” --patches “C:\Users\erik.soekov\esaSnap\code2\snap-engine$\target\classes;C:\Users\erik.soekov\esaSnap\code2\s1tbx$\target\classes” --clusters “C:\Users\erik.soekov\esaSnap\code2\s1tbx\s1tbx-kit\target\netbeans_clusters\s1tbx”

  4. Working directory: C:\Users\erik.soekov\esaSnap\code\snap-desktop\snap-application\target\snap

I had no problems with the build in January this year, which was the last time I was working with it. Because I’m building a mod for SNAP, I ran it with and without my modifications. Got the same results in both cases.

I think there are missing some things in your program arguments.

Mine are looking like this:

--userdir
"C:\Users\Marco\Projects\senbox\snap-desktop\snap-application\target\userdir\.snap"
--clusters
"C:\Users\Marco\Projects\senbox\smos-box\smos-kit\target\netbeans_clusters\smos;C:\Users\Marco\Projects\senbox\s1tbx\s1tbx-kit\target\netbeans_clusters\s1tbx;C:\Users\Marco\Projects\senbox\s2tbx\s2tbx-kit\target\netbeans_clusters\s2tbx;C:\Users\Marco\Projects\senbox\s3tbx\s3tbx-kit\target\netbeans_clusters\s3tbx;C:\Users\Marco\Projects\senbox\probavbox\probavbox-kit\target\netbeans_clusters\probavbox;C:\Users\Marco\Projects\senbox\s1tbx\rstb\rstb-kit\target\netbeans_clusters\rstb"
--patches
"C:\Users\Marco\Projects\senbox\snap-engine\$\target\classes;C:\Users\Marco\Projects\senbox\snap-desktop\$\target\classes;C:\Users\Marco\Projects\senbox\s1tbx\$\target\classes;C:\Users\Marco\Projects\senbox\s2tbx\$\target\classes;C:\Users\Marco\Projects\senbox\s3tbx\$\target\classes;C:\Users\Marco\Projects\senbox\probavbox\$\target\classes;C:\Users\Marco\Projects\senbox\s1tbx\rstb\$\target\classses;C:\Users\Marco\Projects\senbox\smos-box\$\target\classes"

I think you should add to the --patches paremeter the snap-desktop output:

C:\Users\Marco\Projects\senbox\snap-desktop\$\target\classes;

Recently some things changed in the build but it sill works for me.
Maybe you need to make a clean build and call mvn clean package on the three projects starting from snap-engine, then snap-desktop and then s1tbx.

These suggestions did not help unfortunately.

I did “mvn clean package -DskipTests” on all 3 projects. (I usually do “mvn clean install -DskipTests” on them.)

I added C:\Users\erik.soekov\esaSnap\code2\snap-desktop$\target\classes and C:\Users\erik.soekov\esaSnap\code2\s1tbx\rstb$\target\classes to my --patches, but it did not have any effect. I have no idea what the last one does, but I just saw that you had it.

Do you have anything else in mind, that could help?

I got things working again after getting a fresh copy of everything. I’m surprised however that git hard reset and the clearing of maven caches did not give the results that I was looking for.

Now when I think back, I had a similar problem some time in autumn.

1 Like

Good to hear that you have solved.
It seems to be a strange problem, a new checkout should not be necessary.
And I guess you had all the classes locally.
However, now it works. Good.