TrakEM2: zooming is broken

Hi all, maybe particularly @albertcardona :wink:

with the latest Fiji (tested on a fresh download, before and after running the updater), I’m getting the following exception in TrakEM2 when trying to zoom in / out:

Exception in thread "T2-Canvas-Offscreen" java.lang.NoClassDefFoundError: javax/vecmath/Tuple3f
	at ini.trakem2.display.Bucket.find(Bucket.java:211)
	at ini.trakem2.display.Bucket.find(Bucket.java:194)
	at ini.trakem2.display.Layer.find(Layer.java:657)
	at ini.trakem2.display.DisplayCanvas.gatherDisplayables(DisplayCanvas.java:2482)
	at ini.trakem2.display.DisplayCanvas.paintOffscreen(DisplayCanvas.java:2577)
	at ini.trakem2.display.DisplayCanvas$OffscreenThread.paint(DisplayCanvas.java:2452)
	at ini.trakem2.display.AbstractOffscreenThread.run(AbstractOffscreenThread.java:55)
Caused by: java.lang.ClassNotFoundException: javax.vecmath.Tuple3f
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 7 more

This unfortunately renders the whole TrakEM2 essentially useless for me :confused:

Is there anything that can be done? Tried this on Win7 and Ubuntu…

Cheers,
Niko

Hi Niko,

you’re running on Java 8, right? The current version TrakEM2_-1.0g is not compatible with the Java-8 update site, and version 1.0h is not yet released (see this discussion on gitter and this github issue for details).

You can work around the issue by checking out the current TrakEM2 master branch and building it yourself using Maven.

3 Likes

Thanks Jan, you’re right. As the regular Fiji download is shipping Java 8 nowadays, I thought that’s the best choice. Guess I’ll wait for the new TrakEM2 release then…

10 posts were split to a new topic: Building TrakEM2 from source

For anyone having the issue with Mac OS X
I found downloading the Fiji Life-Line Version, 2015 December 22 solved the zooming issue.
Cheers, G

Yes, that’s expected, because the Life-Line Version ships with Java 6. It’s the switch to a different Java3d served by the Java-8 update site that causes the TrakEM2 breakage.

To be precise: at least on some platforms, Java 3D 1.5.2 does not work properly with Java 8. You can install Java 3D 1.5.2 into your Java 8 JRE, but when you try to run the 3D Viewer, it dies with:

Exception occurred in RenderingErrorListener:
java.lang.RuntimeException
	at ij3d.ImageWindow3D$ErrorListener.errorOccurred(ImageWindow3D.java:310)
	at javax.media.j3d.VirtualUniverse.notifyRenderingErrorListeners(VirtualUniverse.java:1329)
	at javax.media.j3d.NotificationThread.processNotifications(NotificationThread.java:90)
	at javax.media.j3d.NotificationThread.run(NotificationThread.java:107)

I did not thoroughly try to overcome this error, but instead decided to switch to Java 3D 1.6, because it can be shipped as a normal Maven dependency, rather than requiring all the convoluted installation logic. In other words: we can ship Java 3D 1.6 with Fiji, whereas with Java 3D 1.5.2 and earlier, we cannot legally to do so.

The TrakEM2 code has been updated to use the new 1.6 version of Java 3D—we just haven’t cut a release and uploaded it to the Java-8 update site yet. [EDIT: TrakEM2 1.0h is now included in the latest Fiji, and should work as intended again, including its 3D features.]

@axtimwalde: FYI, I will be on vacation starting tomorrow, returning Monday, March 21. If you want to update TrakEM2 on the Java-8 update site in the meantime, @hinerm should be around to help as needed.

2 Likes