yannrichet/rsession

Cannot load math.js in R2jsSession

Closed this issue · 2 comments

javax.script.ScriptException: :50921:3 Property "???" already defined
"???": "\---",
^ in at line number 50921 at column number 3
at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470)
at jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:537)
at jdk.nashorn.api.scripting.NashornScriptEngine.compileImpl(NashornScriptEngine.java:524)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402)
at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:150)
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
at org.math.R.R2jsSession.loadJSLibraries(R2jsSession.java:263)
at org.math.R.R2jsSession.(R2jsSession.java:158)
at org.math.R.R2jsSession.(R2jsSession.java:215)
at org.math.R.R2jsSession.(R2jsSession.java:211)
at org.math.R.R2jsSession.main(R2jsSession.java:3132)
Caused by: jdk.nashorn.internal.runtime.ParserException: :50921:3 Property "???" already defined

to reproduce:

  1. compile RSession: ant dist. this will create 'dist/rsession.jar'
  2. Start a docker ubuntu18: sudo docker run -ti -v $(readlink -f "."):/rsession -v /usr/java/jre-8u221-linux64b:/jre ubuntu:18.04 /bin/bash
  3. Try to execute some R (through R2js) command requiring math.js:
export PATH=$PATH:/jre/bin
java -cp dist/rsession.jar:commons-io-2.6.jar org.math.R.R2jsSession "print(t(runif(10)))"

This is due to UTF-8 characters inside math.js.
Turn-around inside docker ubuntu18:

echo $LANG # Will return nothing
apt-get install -y locales
locale-gen en_US.UTF-8
export LANG=en_US.UTF-8
java -cp dist/rsession.jar:commons-io-2.6.jar org.math.R.R2jsSession "print(t(runif(10)))"

Will return something like:

[eval] setwd('/tmp/.R2js/6254')
print(t(runif(10))): [eval] print(t(runif(10)))
0.9473259546474977,0.6993170631087086,0.6877413010704656,0.9071397659770887,0.2627771900117959,0.03350498781786859,0.8666079559257673,0.03922062191369413,0.6084198036438923,0.0310944624251569
[object Array]
[D@59ee0fbc