bigdataviewer / bigdataviewer-core

ImgLib2-based viewer for registered SPIM stacks and more
BSD 2-Clause "Simplified" License
33 stars 35 forks source link

Mamut and Mastodon update sites break BDV: java.lang.NoSuchFieldError: list #111

Closed Xqua closed 3 years ago

Xqua commented 3 years ago

I am not sure if this bug belongs here or on the Mamut / Mastodon repos ...

On a fresh install of FIJI, after all is updated, BDV opens XML/H5 files just fine. After installing Mamut or Mastodon from the update site (which neither seem to affect anything BDV related?) then Big Data Viewer will fail systematically to open dataset with this error: java.lang.NoSuchFieldError: list

Very confusing issue and rendering all tracking workflows moot !

But downloading Mamut-0.29.jar from the update site and placing it in the Plugin folder does not break anything.

Full trace:

Exception in thread "AWT-EventQueue-0" java.lang.NoSuchFieldError: list
    at bdv.viewer.BasicViewerState.notifyListeners(BasicViewerState.java:1650)
    at bdv.viewer.BasicViewerState.addSources(BasicViewerState.java:752)
    at bdv.viewer.SynchronizedViewerState.addSources(SynchronizedViewerState.java:524)
    at bdv.viewer.state.ViewerState.<init>(ViewerState.java:80)
    at org.mastodon.revised.bdv.SharedBigDataViewerData.<init>(SharedBigDataViewerData.java:108)
    at org.mastodon.revised.mamut.ProjectManager.open(ProjectManager.java:306)
    at org.mastodon.revised.mamut.ProjectManager.createProject(ProjectManager.java:162)
    at org.scijava.ui.behaviour.util.RunnableAction.actionPerformed(RunnableAction.java:47)
    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.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6539)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6304)
    at java.awt.Container.processEvent(Container.java:2239)
    at java.awt.Component.dispatchEventImpl(Component.java:4889)
    at java.awt.Container.dispatchEventImpl(Container.java:2297)
    at java.awt.Component.dispatchEvent(Component.java:4711)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
    at java.awt.Container.dispatchEventImpl(Container.java:2283)
    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:74)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
    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:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
    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)
tinevez commented 3 years ago

Hello.

I tried with a freshly updated Fiji. I subscribed to the MaMuT update site, and the error does not happen. I remember fixing it recently by the way.

Can you try on your side?

Xqua commented 3 years ago

Ok now I am very confused ... I have done this like 6 times on multiple computers recently and it always gave me this bug.

Literally today, I did the exact same procedure (what you described) and it worked just fine.

So first, I apologize for wasting your time, second, I am more than confused about this .... .... .... I know this was happening ...

Well in any case, it all works now !!! :D

Onward to keep writing my Thesis XD

tpietzsch commented 3 years ago

Hi @Xqua Did you have perhaps any other update sites enable in the version where you had the problem? This very issue (Exception in thread "AWT-EventQueue-0" java.lang.NoSuchFieldError: list) came up quite often recently and is related to some incompatibilities with recent BigDataViewer versions. If you still have the failing Fiji, details on enabled update sites would help us track down the issues.

tpietzsch commented 3 years ago

I subscribed to the MaMuT update site, and the error does not happen. I remember fixing it recently by the way.

@tinevez Can you point me to details on how you fixed it? I had already added to my TODO list to track this down...

tpietzsch commented 3 years ago

@tinevez @Xqua I just tried with:

For me the problem still happens.

Could you please both either

tinevez commented 3 years ago

Look no further. The Mastodon preview update site ships a probably old version of scijava-listener.

Screenshot 2020-10-01 at 11 22 38

The MaMuT site does not.

tinevez commented 3 years ago

In MaMuT the fix happens at this commit: https://github.com/fiji/MaMuT/commit/548289ce58ab8d55ad3ea284c433d3d0570fee1c

Because at the time we did not have pom-scijava-29.2.1 I had to explicitly set the bdv core version.

tpietzsch commented 3 years ago

@tinevez thanks! I did not read careful enough and missed that the discussion was about MaMuT and not Mastodon :-) I removed scijava-listeners-1.0.0-beta-2.jar from the Mastodon update site. It should work now for Mastodon too.

Xqua commented 3 years ago

Sorry I was in the Thesis zone ! Ok, yes so actually I did have plenty of update sites on, but mostly I think it must have been the Mastodon plugin.

Though this is good to know that this bug is due to scijava I'll keep an eye out.

Do let me know if there is something else I can do to help.

imagesc-bot commented 3 years ago

This issue has been mentioned on Image.sc Forum. There might be relevant details there:

https://forum.image.sc/t/error-when-visualizing-a-cachedcellimg-with-bigdataviewer/45872/2