imagej / imagej/imagej2

ImageJ startup is too fragile

Open
#97 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
1.4k
Forks
350
PR merge metrics
No merged PRs in 30d

Description

From a fresh Fiji installation, try this:

``` shell
$ rm jars/bio-formats/*.jar
$ Contents/MacOS/ImageJ-macosx
```

And the application will fail to start up with an error similar to:

```
java.lang.IllegalArgumentException: Invalid service: io.scif.ome.services.DefaultOMEMetadataService
at org.scijava.service.ServiceHelper.createExactService(ServiceHelper.java:280)
*snip*
Caused by: java.lang.ClassNotFoundException: loci.common.services.ServiceException
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
```

We specifically tried to address this sort of fragility by adding a `scijava.context.strict` system property, which tries much harder to continue creating the context despite such issues, but adding `-Dscijava.context.strict=false` to the above program launch does not alleviate the issue.

Investigation needed into how to improve the situation.

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the failure from a fresh Fiji installation by removing jars/bio-formats/*.jar and launching Contents/MacOS/ImageJ-macosx, then compare it with scijava.context.strict=false. Start from the ServiceHelper.createExactService stack trace and the DefaultOMEMetadataService/ClassNotFoundException details. Done means the startup fragility is addressed and the missing-jar scenario is verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.