[jira] [Created] (BATIK-1260) Java11 module-info batik-script/batik-bridge compatibility issue

"Roman Valls Guimera (JIRA)" <[email protected]> Wed, 3 Apr 2019 05:25:00 +0000 (UTC)
Newsgroups gmane.text.xml.batik.devel
Message-ID <[email protected]>
Roman Valls Guimera created BATIK-1260:
------------------------------------------

             Summary: Java11 module-info batik-script/batik-bridge compatibility issue
                 Key: BATIK-1260
                 URL: https://issues.apache.org/jira/browse/BATIK-1260
             Project: Batik
          Issue Type: Bug
          Components: Bridge, Scripting
    Affects Versions: 1.11
         Environment: openjdk 11.0.2 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
            Reporter: Roman Valls Guimera


Hello Batik devs,

I'm refreshing a legacy genomics visualization application (IGV) towards Java11 dependencies:

[https://github.com/igvteam/igv/pull/620]

I've found the following Java11+Batik hiccups.

When I use the following maven artifacts to fix a SVG issue in the application I'm working on:

[https://github.com/igvteam/igv/pull/620/commits/f30bc3699856afa68277595a2392c2f34392c165]

**Everything works in runtime** (as in _./gradlew run_ and then File->Save Image as SVG, generates a correct .svg).

But strangely, *when running the tests* (as in _./gradlew test_) I'm faced with this:

 
{code:java}
Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for /Users/romanvg/.gradle/caches/modules-2/files-2.1/org.apache.xmlgraphics/batik-script/1.11/f7284dabc28aaa7407bef45f31dd204e58a35810/batik-script-1.11.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: Provider class org.apache.batik.bridge.RhinoInterpreterFactory not in module
Process 'Gradle Test Executor 46' finished with non-zero exit value 1
org.gradle.process.internal.ExecException: Process 'Gradle Test Executor 46' finished with non-zero exit value 1
{code}
Here's a more detailed TravisCI run and Gradle scan, for reference:

[https://travis-ci.org/umccr/igv/builds/514966124]

[https://scans.gradle.com/s/z3oulnfefttkm/console-log]

Then my first attempt is to just exclude _batik-bridge_ and _batik-script_ via Gradle:
{code:java}
exclude group: 'org.apache.xmlgraphics', module: 'batik-bridge'
exclude group: 'org.apache.xmlgraphics', module: 'batik-script'  
{code}
 
 But unfortunately this goes further down the dependencies rabbit hole with xalan, bsf et al:
{code:java}
Error occurred during initialization of boot layer java.lang.module.FindException: Unable to derive module descriptor for /Users/romanvg/.gradle/caches/modules-2/files-2.1/xalan/xalan/2.7.2/d55d3f02a56ec4c25695fe67e1334ff8c2ecea23/xalan-2.7.2.jar Caused by: java.lang.module.InvalidModuleDescriptorException: Provider class org.apache.bsf.BSFManager not in module Process 'Gradle Test Executor 188' finished with non-zero exit value 1{code}
Can somebody tell me if in _batik-script-1.11.jar_ the Java11 module-info.class, services, etc... We have not found a module descriptor within the _batik-script_ jar. We suspect that the RhinoInterpreterFactory service reference points to a different jar file, namely:

 
{code:java}
org.apache.batik.script.InterpreterFactory ->  org.apache.batik.bridge.RhinoInterpreterFactory 
{code}
Is there an easy fix so that the _RhinoInterpreterFactory_ error does not show up in the first place?

Thanks in advance for any hint!



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)