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.