Issue with Clicy block on Linux

Hi,

for while already I am using Icy on Windows and Linux and all went well. Now I have a new protocol which involves, among others, the Clicy block CLIj2_connected components labeling box. On Windows the protocol runs fine but on my Linux box (CentOS 7, Nvidia Quadro P2000 graphics) I receive the error message attached below.

To check what’s going wrong I copied the Icy installation folder from Linux to Windows and rerun the protocol there - without error. Changing the Java version from 8 to 11 on Linux did not help either.

So, I suspect there is something in the environment on the Linux box which leads to the error or some Linux specific installation detail. But for now I do not know where to start searching.

I attach a little protocol and an image to (may be) reproduce the error.

Thanks already for any advice on this.

The error Message:
An error occured while plugin ‘clicy’ was running :
java.lang.NoSuchMethodError: net.imglib2.img.array.ArrayImgFactory.(Lnet/imglib2/type/NativeType;)V
at net.imglib2.img.display.imagej.ImageJVirtualStack.getSlice(ImageJVirtualStack.java:170)
at net.imglib2.img.display.imagej.ImageJVirtualStack.getPixelsZeroBasedIndex(ImageJVirtualStack.java:198)
at net.imglib2.img.display.imagej.AbstractVirtualStack.getPixels(AbstractVirtualStack.java:102)
at net.imglib2.img.display.imagej.AbstractVirtualStack.getProcessor(AbstractVirtualStack.java:163)
at ij.ImagePlus.setStack(ImagePlus.java:737)
at ij.ImagePlus.(ImagePlus.java:157)
at net.imglib2.img.display.imagej.ImageJFunctions.makeImagePlus(ImageJFunctions.java:299)
at net.imglib2.img.display.imagej.ImageJFunctions.wrapUnsignedShort(ImageJFunctions.java:588)
at net.imglib2.img.display.imagej.ImageJFunctions.wrap(ImageJFunctions.java:229)
at net.imglib2.img.display.imagej.ImageJFunctions.wrap(ImageJFunctions.java:255)
at net.haesleinhuepf.clij.converters.implementations.ClearCLBufferToImagePlusConverter.convertLegacy(ClearCLBufferToImagePlusConverter.java:138)
at net.haesleinhuepf.clij.converters.implementations.ClearCLBufferToImagePlusConverter.convert(ClearCLBufferToImagePlusConverter.java:84)
at net.haesleinhuepf.clij.converters.implementations.ClearCLBufferToImagePlusConverter.convert(ClearCLBufferToImagePlusConverter.java:26)
at net.haesleinhuepf.clij.CLIJ.convert(CLIJ.java:475)
at net.haesleinhuepf.clij2.CLIJ2.pull(CLIJ2.java:117)
at net.haesleinhuepf.clij2.plugins.ConnectedComponentsLabeling.connectedComponentsLabeling_internal(ConnectedComponentsLabeling.java:98)
at net.haesleinhuepf.clij2.plugins.ConnectedComponentsLabelingBox.connectedComponentsLabelingBox(ConnectedComponentsLabelingBox.java:45)
at net.haesleinhuepf.clij2.CLIJ2Ops.connectedComponentsLabelingBox(CLIJ2Ops.java:6043)
at net.haesleinhuepf.clij2.plugins.ConnectedComponentsLabelingBox.executeCL(ConnectedComponentsLabelingBox.java:40)
at plugins.haesleinhuepf.AbstractCLIJ2Block.run(AbstractCLIJ2Block.java:193)
at plugins.adufour.blocks.lang.BlockDescriptor.run(BlockDescriptor.java:568)
at plugins.adufour.blocks.lang.WorkFlow.run(WorkFlow.java:923)
at plugins.adufour.blocks.lang.BlockDescriptor.run(BlockDescriptor.java:568)
at java.lang.Thread.run(Thread.java:748)
cells3d_ch0_substack.tif (436.9 KB) DebugIt.protocol (5.9 KB)

1 Like

Hi @Gucki ,

it appears the installation of clicy is incomplete. It cannot find imglib2. Can you try to download it from here https://sites.imagej.net/Java-8/jars/imglib2-5.10.0.jar-20200731193402, remove the numbers from the end of the file and put it in your Icy installation folder to other .jar files? Maybe @MarionLouveaux or @Stephane can give us a hint, where to put dependencies inside Icy…

Let us know if this helps!

Cheers,
Robert

Hi @haesleinhuepf ,

thanks a lot for the immediate reply! So far I have not found the proper place for the extra jar in the icy folder. I tried the root folder, lib and also ij/plugins/jar. Then I got a bit adventurous and copied the net folder tree of the downloaded imglib2 jar into ( a copy of ) the icy.jar. That solved the issue for now. The test protocol and my original one run fine now.

So, it’s really the placement/reference of those classes. What puzzles me is why on one platform (Win) the classes are found and on another (Lin) they are not.

Cheers,
Ekkehard

1 Like

Hi @Gucki, @haesleinhuepf,

Normally you can just put the jar in the plugins folder of Icy to get it work :slight_smile:
Still it’s indeed surprising that it works for Windows but not on Linux system.

Best,

  • Stephane
2 Likes

Indeed that’s the place - and the only one I did not try … :smiley:

Thanks!
Ekkehard

2 Likes