Skip to content

Tubeness Op throws NullPointerException #173

@gselzer

Description

@gselzer

Describe the bug
Running the Tubeness Op throws a NullPointerException when run with ops.run. I originally saw this running in napari-imagej

To Reproduce

  1. Ensure Neuroanatomy is enabled within Fiji
  2. Open the Script Editor, and paste the following groovy script in:
#@ Img input
#@ output Img out
#@ OpService ops

out = ops.create().img(input)
spacing = [2.0, 2.0]
scale = [2.0, 2.0]
numThreads = 2

ops.run("filter.tubeness", out, input, spacing, scale, numThreads)
  1. Click Run
  2. See error

Note that when I run in napari-imagej, I actually see a more detailed error:

[java.lang.Enum.toString] [ERROR] Command errored: filter.tubeness
java.lang.NullPointerException
	at net.imagej.ops.DefaultOpMatchingService.createModule(DefaultOpMatchingService.java:571)
	at net.imagej.ops.DefaultOpMatchingService.moduleConforms(DefaultOpMatchingService.java:486)
	at net.imagej.ops.DefaultOpMatchingService.filterMatches(DefaultOpMatchingService.java:292)
	at net.imagej.ops.DefaultOpMatchingService.filterMatches(DefaultOpMatchingService.java:137)
	at net.imagej.ops.DefaultOpMatchingService.findMatch(DefaultOpMatchingService.java:94)
	at net.imagej.ops.DefaultOpMatchingService.findMatch(DefaultOpMatchingService.java:82)
	at net.imagej.ops.OpEnvironment.module(OpEnvironment.java:253)
	at net.imagej.ops.OpEnvironment.run(OpEnvironment.java:136)
	at net.imagej.ops.OpListingModule.run(OpListingModule.java:68)
	at org.scijava.module.ModuleRunner.run(ModuleRunner.java:165)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:125)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:64)
	at org.scijava.thread.DefaultThreadService.lambda$wrap$2(DefaultThreadService.java:247)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:750)
[ERROR] Cannot create module: sc.fiji.snt.filter.Tubeness
org.scijava.module.ModuleException: org.scijava.InstantiableException: java.lang.InstantiationException: sc.fiji.snt.filter.Tubeness
	at org.scijava.command.CommandModule.instantiateCommand(CommandModule.java:251)
	at org.scijava.command.CommandModule.<init>(CommandModule.java:98)
	at org.scijava.command.CommandInfo.createModule(CommandInfo.java:326)
	at org.scijava.module.DefaultModuleService.createModule(DefaultModuleService.java:167)
	at net.imagej.ops.DefaultOpMatchingService.createModule(DefaultOpMatchingService.java:565)
	at net.imagej.ops.DefaultOpMatchingService.moduleConforms(DefaultOpMatchingService.java:486)
	at net.imagej.ops.DefaultOpMatchingService.filterMatches(DefaultOpMatchingService.java:292)
	at net.imagej.ops.DefaultOpMatchingService.filterMatches(DefaultOpMatchingService.java:137)
	at net.imagej.ops.DefaultOpMatchingService.findMatch(DefaultOpMatchingService.java:94)
	at net.imagej.ops.DefaultOpMatchingService.findMatch(DefaultOpMatchingService.java:82)
	at net.imagej.ops.OpEnvironment.module(OpEnvironment.java:253)
	at net.imagej.ops.OpEnvironment.run(OpEnvironment.java:136)
	at net.imagej.ops.OpListingModule.run(OpListingModule.java:68)
	at org.scijava.module.ModuleRunner.run(ModuleRunner.java:165)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:125)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:64)
	at org.scijava.thread.DefaultThreadService.lambda$wrap$2(DefaultThreadService.java:247)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:750)
Caused by: org.scijava.InstantiableException: java.lang.InstantiationException: sc.fiji.snt.filter.Tubeness
	at org.scijava.plugin.PluginInfo.createInstance(PluginInfo.java:309)
	at org.scijava.command.CommandInfo.createInstance(CommandInfo.java:248)
	at org.scijava.command.CommandModule.instantiateCommand(CommandModule.java:248)
	... 20 more
Caused by: java.lang.InstantiationException: sc.fiji.snt.filter.Tubeness
	at java.lang.Class.newInstance(Class.java:427)
	at org.scijava.plugin.PluginInfo.createInstance(PluginInfo.java:304)
	... 22 more
Caused by: java.lang.NoSuchMethodException: sc.fiji.snt.filter.Tubeness.<init>()
	at java.lang.Class.getConstructor0(Class.java:3082)
	at java.lang.Class.newInstance(Class.java:412)
	... 23 more

Expected behavior

The Op should run without error

Screenshots

image

Additional context

Fiji details:
(Output too long, can provide via Gist if it would be helpful)
Running Fiji 2.9.0/1.53t, Java 1.8.0_322

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions