ImageJ startup is too fragile
- 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