You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by "Roman Valls Guimera (JIRA)" <ji...@apache.org> on 2019/07/08 03:57:00 UTC

[jira] [Commented] (BATIK-1260) Java11 module-info batik-script/batik-bridge issue w/ RhinoInterpreterFactory

    [ https://issues.apache.org/jira/browse/BATIK-1260?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16880014#comment-16880014 ] 

Roman Valls Guimera commented on BATIK-1260:
--------------------------------------------

The problem is clearly the batik-script jar file:

 

{{$ jar --file=./batik-script-1.12.0-SNAPSHOT.jar --describe-module}}
{{Kan inte härleda moduldeskriptor för: ./batik-script-1.12.0-SNAPSHOT.jar}}
{{Provider class org.apache.batik.bridge.RhinoInterpreterFactory not in module}}

 

So disabling Rhino altogether (luckily my app does not use any of that), seems to work via this simple comment/change:

 

{{diff --git a/batik-script/src/main/resources/META-INF/services/org.apache.batik.script.InterpreterFactory b/batik-script/src/main/resources/META-INF/services/org.apache.batik.script.InterpreterFactory}}
{{index 4912fea64..ad9f485c4 100644}}
{{--- a/batik-script/src/main/resources/META-INF/services/org.apache.batik.script.InterpreterFactory}}
{{+++ b/batik-script/src/main/resources/META-INF/services/org.apache.batik.script.InterpreterFactory}}
{{@@ -23,7 +23,7 @@}}
{{ # ECMAScript}}
{{-org.apache.batik.bridge.RhinoInterpreterFactory}}
{{+#org.apache.batik.bridge.RhinoInterpreterFactory}}
{{ # TCL}}
{{ #org.apache.batik.script.jacl.JaclInterpreterFactory}}
{{ # Python}}

 

If you are running your dependency management via Gradle instead of (still) juggling with jars under /lib, this should work too (again, assuming your app does not need this functionality). Under Gradle:

 


{{configurations {}}
{{ implementation {}}{{(...)}}{{exclude group: 'org.apache.xmlgraphics', module: 'batik-script'(...)}}

> Java11 module-info batik-script/batik-bridge issue w/ RhinoInterpreterFactory
> -----------------------------------------------------------------------------
>
>                 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
>            Priority: Major
>              Labels: test
>
> 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)

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: batik-dev-help@xmlgraphics.apache.org