Hi Ralf --

On 03/23/2010 11:53 PM, Ralf B wrote:
> Hi all,
> 
> I am using R and JRI under Windows XP Pro. I am posting this question
> here since the reason might be R related (since I am running an R
> script) but there is also a very good chance that it is JRI only
> (since I am using the JRI interface to activate the script) -- in
> which case I want to apologize for misplacing this message.
> 
> I have a method that instantiates an REngine object every time it is
> called. It runs a script provided by a file name and closes REngine
> afterward. The script works fine, the png file is successfully
> generated and the PNG file is released so that I can delete it if I
> want ( but I don't in that case). For some strange reason, when
> running this code twice I get the following error: upon which the Java
> Virtual machine dies on me.
> 
>  Any explanation would be greatly appreciated!

A bit of a shot in the dark, but it might be related to signal handling

  http://java.sun.com/javase/6/webnotes/trouble/TSG-VM/html/signals.html

with the solution being use of -Xrs when starting the JVM.

Martin

> 
> Best,
> Ralf
> 
> Here the Java code, the R code, and the Java VM error:
> 
> ++++++++++++++++ START JAVA CODE ++++++++++++++++++
> 
> /** Helper method */
> private static void eval(Rengine r, String s) {
>       r.eval(s, false);
> }
>       
> /** Assigns the given java value to the given R variable name */
> private static void assign(Rengine r, String rVariableName, String javaValue) 
> {
>       r.assign(rVariableName, javaValue);
> }
> 
> public void run() throws Exception {
>               String filepath = this.path;
>               
>               if (filepath != null) {
>                       File rFile = new File(filepath );
>                   if (rFile.exists()) {       // run R script
>                       // start R engine
>                               if (!Rengine.versionCheck()) {
>                                       System.err.println("** Version mismatch 
> - Java files don't match
> library version.");
>                                       System.exit(1);
>                               }
>                               // creating R engine
>                               Rengine rEngine = new Rengine(null, false, new 
> EmptyCallbacks());
>                               // the engine creates R is a new thread, so we 
> should wait until it's ready
>                               if (!rEngine.waitForR()) {
>                                       System.out.println("Cannot load R for " 
> + this.getClass().getName());
>                                       return;
>                               }
> 
>                               // executing logic
>                               try {
>                                       assign(rEngine, "filename", filepath);
>                                       eval(rEngine, "source(filename)");
>                               } catch (Exception e) {
>                                       
> System.out.println(this.getClass().getName() + ": Error in R code: " + e);
>                                       e.printStackTrace();
>                                       // stopping R engine
>                                       System.out.println("Error when running 
> script - rEngine stopped!");
>                                       if (rEngine != null){
>                                               rEngine.end();
>                                       }
>                               }
> 
>                               // stopping R engine
>                               rEngine.end();
>                   } else {
>                       throw new Exception(getClass().getName() + " not run - 
> missing
> R file - location: " + rFile.getAbsolutePath());
>                   }
>               }
>       }
> 
> +++++++++++++++++++++ END JAVA CODE +++++++++++++++++++++++++
> 
> 
> +++++ START  R Code ++++++++
> library(RJDBC)
> 
> # db connection
> driver <- 
> JDBC("com.mysql.jdbc.Driver","lib/mysql-connector-java-5.0.6-bin.jar")
> con <- dbConnect(driver, "jdbc:mysql://localhost/mydb", "xxx", "yyy")
> 
> # list tables
> dbListTables(con)
> 
> # user, task and event information
> result = dbGetQuery(con, "SELECT x,y from mytable;")
> png(file="output.png")
> plot(result$x, result$y)
> dev.off()
> 
> +++++ START  R Code ++++++++
> 
> ERROR:
> 
> #
> # An unexpected error has been detected by Java Runtime Environment:
> #
> #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=...., pid=5400, tid=3204
> #
> # Java VM: Java HotSpot(TM) Client VM (11.2-b01 mixed mode, ....)
> # Problematic frame:
> # C  [R.dll+0x1136fe]
> #
> 
> # An error report file with more information is saved as:
> # ....
> [WARN] 404 - GET /output.png (127.0.0.1) 1402 bytes
>    Request headers
>       Host: localhost:8888
>       User-Agent: ....
>       Accept: image/png,image/*;q=0.8,*/*;q=0.5
>       Accept-Language: en-us,en;q=0.5
>       Accept-Encoding: gzip,deflate
>       Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
>       Keep-Alive: 115
>       Connection: keep-alive
>       Referer: http://localhost....
>    Response headers
>       Content-Length: 1402
>       Content-Type: text/html; charset=iso-8859-1
> #
> # If you would like to submit a bug report, please visit:
> #   http://java.sun.com/webapps/bugreport/crash.jsp
> # The crash happened outside the Java Virtual Machine in native code.
> # See problematic frame for where to report the bug.
> #
> 
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.


-- 
Martin Morgan
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to