renjin icon indicating copy to clipboard operation
renjin copied to clipboard

Caused by: java.lang.UnsupportedOperationException: TODO when running script

Open aherrada opened this issue 5 years ago • 2 comments

Hi! I am new with R and Renjin but I am trying to run an R script from within an spring boot application. The error I am getting is the following

org.renjin.eval.EvalException: TODO
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:89) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Closure.applyPromised(Closure.java:200) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Closure.apply(Closure.java:133) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Promise.doEval(Promise.java:87) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Promise.force(Promise.java:81) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.R$primitive$$bang.applyPromised(R$primitive$$bang.java:35) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.BuiltinFunction.apply(BuiltinFunction.java:100) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.eval.Context.evaluate(Context.java:280) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.IfFunction.apply(IfFunction.java:34) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:39) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Closure.applyPromised(Closure.java:200) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.UseMethod.apply(UseMethod.java:166) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:39) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Closure.applyPromised(Closure.java:200) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Closure.apply(Closure.java:133) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.AssignLeftFunction.assignLeft(AssignLeftFunction.java:58) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.AssignLeftFunction.apply(AssignLeftFunction.java:42) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:39) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.IfFunction.apply(IfFunction.java:40) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:39) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Closure.applyPromised(Closure.java:200) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Closure.apply(Closure.java:133) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.eval.Context.evaluate(Context.java:280) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.Evaluation.lapply(Evaluation.java:94) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.R$primitive$lapply.doApply(R$primitive$lapply.java:65) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.R$primitive$lapply.applyPromised(R$primitive$lapply.java:30) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.BuiltinFunction.apply(BuiltinFunction.java:100) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.InternalFunction.apply(InternalFunction.java:46) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:39) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Closure.applyPromised(Closure.java:200) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Closure.apply(Closure.java:133) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.AssignLeftFunction.assignLeft(AssignLeftFunction.java:58) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.AssignLeftFunction.apply(AssignLeftFunction.java:42) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:39) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Closure.applyPromised(Closure.java:200) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Closure.apply(Closure.java:133) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.AssignLeftFunction.assignLeft(AssignLeftFunction.java:58) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.AssignLeftFunction.apply(AssignLeftFunction.java:42) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.ExpressionVector.eval(ExpressionVector.java:85) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.eval.Context.evaluate(Context.java:280) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:174) ~[renjin-script-engine-3.5-beta76.jar:na]
	at org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:133) ~[renjin-script-engine-3.5-beta76.jar:na]
Caused by: java.lang.UnsupportedOperationException: TODO
	at org.renjin.sexp.FunctionEnvironment.isBound(FunctionEnvironment.java:280) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.Environment.exists(Environment.java:495) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.Environments.existsAnySymbol(Environments.java:292) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.Environments.exists(Environments.java:284) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.R$primitive$exists.doApply(R$primitive$exists.java:104) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.R$primitive$exists.applyPromised(R$primitive$exists.java:34) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.BuiltinFunction.apply(BuiltinFunction.java:100) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.primitives.special.InternalFunction.apply(InternalFunction.java:46) ~[renjin-core-3.5-beta76.jar:na]
	at org.renjin.sexp.FunctionCall.eval(FunctionCall.java:80) ~[renjin-core-3.5-beta76.jar:na]

The script I am running is kind of long but I have narrow down the error to this call in particular svymean(question_id_formula, design = svy_design, method = "lo", df = degf(svy_all), na.rm = FALSE)

And these are the dependencies I have added in my pom ` <groupId>org.renjin</groupId> <artifactId>renjin-script-engine</artifactId> 3.5-beta76

    <dependency>
        <groupId>org.renjin.cran</groupId>
        <artifactId>survey</artifactId>
        <version>3.36-b2</version>
    </dependency>
    <dependency>
        <groupId>org.renjin.cran</groupId>
        <artifactId>Matrix</artifactId>
        <version>1.2-17-b8</version>
    </dependency>
	<dependency>
		<groupId>org.renjin.cran</groupId>
		<artifactId>data.table</artifactId>
		<version>1.10.4-3-b38</version>
	</dependency>`

Is there some dependency I am missing or is this a function not supported yet by the framework? Thanks in advanced!

aherrada avatar Feb 14 '20 20:02 aherrada

This is indeed a bug in the beta release. You can try using the latest stable release (0.9.x).

See here: http://packages.renjin.org/package/org.renjin.cran/survey/3.35-1

But keep in mind that no version of Renjin supports the data.table package.

akbertram avatar Feb 18 '20 07:02 akbertram

Thanks for your reply! I need indeed to use a data table so I'll have to see another way around it.

aherrada avatar Feb 18 '20 12:02 aherrada