Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1254399

Summary: Run DV 6.2.0.ER4 with Java 8 met "Provider com.sun.script.javascript.RhinoScriptEngineFactory not found" stderr
Product: [JBoss] JBoss Data Virtualization 6 Reporter: kylin <ksoong>
Component: Distribution, InstallerAssignee: Thomas Hauser <thauser>
Status: CLOSED WONTFIX QA Contact: Filip Elias <felias>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.2.0CC: aszczucz, atangrin, dlesage, eunderhi, jolee, jstastny, ksoong, thauser, vhalbert
Target Milestone: CR1   
Target Release: 6.2.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-10-26 13:10:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description kylin 2015-08-18 01:56:43 UTC
This may be a Quality Risk, which RhinoScriptEngineFactory be removed in Java 8 cause OData war deploy output Error:

---
09:30:51,315 WARN  [org.jboss.as.dependency.unsupported] (MSC service thread 1-6) JBAS015868: Deployment "deployment.teiid-odata-8.7.1.6_2-redhat-2.war" is using an unsupported module ("org.joda.time:main") which may be changed or removed in future versions without notice.

09:30:51,424 ERROR [stderr] (MSC service thread 1-6) ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider com.sun.script.javascript.RhinoScriptEngineFactory not found

09:30:51,429 ERROR [stderr] (MSC service thread 1-1) ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider com.sun.script.javascript.RhinoScriptEngineFactory not found

09:30:51,505 ERROR [stderr] (MSC service thread 1-1) ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider com.sun.script.javascript.RhinoScriptEngineFactory not found

09:30:51,513 ERROR [stderr] (MSC service thread 1-1) ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider com.sun.script.javascript.RhinoScriptEngineFactory not found

09:30:51,583 ERROR [stderr] (MSC service thread 1-1) ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider com.sun.script.javascript.RhinoScriptEngineFactory not found
---

Comment 2 Van Halbert 2015-08-18 02:29:31 UTC
This is an EAP issue.   See https://issues.jboss.org/browse/WFLY-1769
it appears the 2nd step of adding: 

jdk.nashorn.api.scripting.NashornScriptEngineFactory

to the java.script.ScriptEngineFactory is not there (according to what's needed in the jira).

Comment 3 Van Halbert 2015-08-18 02:46:28 UTC
Part of the problem with adding:

jdk.nashorn.api.scripting.NashornScriptEngineFactory

is that if I'm using JDK 1.7, I see the error:

21:43:05,785 ERROR [stderr] (MSC service thread 1-14) ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider jdk.nashorn.api.scripting.NashornScriptEngineFactory not found

Comment 4 JBoss JIRA Server 2015-08-18 06:31:47 UTC
Kylin Soong <ksoong> updated the status of jira TEIID-3642 to Closed

Comment 5 Van Halbert 2015-08-18 12:43:30 UTC
Alex,

Is there anything that can be done in the installer to make the adjustment to the  java.script.ScriptEngineFactory file to add jdk.nashorn.api.scripting.NashornScriptEngineFactory when the JDK in use is 1.8?

see See https://issues.jboss.org/browse/WFLY-1769  step #2

Comment 6 Alex Szczuczko 2015-08-18 12:53:16 UTC
Seems feasible to me, Tom?

Comment 7 Thomas Hauser 2015-08-19 14:03:00 UTC
Yeah, we can do this.

Comment 8 Emmett Underhill 2015-08-19 20:18:31 UTC
The installer has been updated to do step 2 of https://issues.jboss.org/browse/WFLY-1769 if the open jdk version is 1.8. This gets rid of the error message.

Comment 9 Jan Stastny 2015-09-10 08:27:44 UTC
For DV 6.2.0 CR2.
I installed with java:
> $ java -version
> java version "1.8.0_51"
> Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
> Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

but I still get:
> ERROR [stderr] (MSC service thread 1-6) ScriptEngineManager providers.next(): 
> javax.script.ScriptEngineFactory: Provider 
> com.sun.script.javascript.RhinoScriptEngineFactory not found
during server startup.

The file JBOSS_HOME/modules/system/layers/base/sun/jdk/main/service-loader-resources/META-INF/services/javax.script.ScriptEngineFactory after installation still contains only:
> com.sun.script.javascript.RhinoScriptEngineFactory

Also I am not sure about the fix used. Adding of line:
> jdk.nashorn.api.scripting.NashornScriptEngineFactory
hasn't solved the issue for me on JAVA 8.
But removing the line (leaving the file empty):
> com.sun.script.javascript.RhinoScriptEngineFactory
did solve it. (As far as I can say from lack of the ERROR log during startup)

Comment 10 Emmett Underhill 2015-09-10 15:16:25 UTC
Hi Jan,

Sorry, this was my bad, when I was testing this bug for jdk 1.7 I must have made a mistake and not set my machine back to 1.8 and missed this issue. I've added a fix that checks for the jdk version properly now. Before the fix the Nashorn line was not getting written to the file.

I no longer get any errors when deploying the server on 1.8. In regards to your other concern, adding the line alone does not fix the issue, the Rhino line must be removed and the Nashorn line must be put in its place. However, if you already did this then I have no explanation.

Thank you,

Emmett Underhill