In my new computer (Windows 7, 64-bit) I have been unable to compile any of my old and new simulations, even after installing the last (non-beta) version and updating my Java RTL. Even for the most simple simulation I get the following error:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at org.colos.ejs.osejs.Generate.generateModel(Unknown Source) at org.colos.ejs.osejs.Generate.generate(Unknown Source) at org.colos.ejs.osejs.Osejs.firstCompile(Unknown Source) at org.colos.ejs.osejs.Osejs.runSimulation(Unknown Source) at org.colos.ejs.osejs.Osejs.access$26(Unknown Source) at org.colos.ejs.osejs.Osejs$12$6.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Paco: You can try any of my old simulations in OSP (or the EJS distribution): I am including the first one. No old or new simulation compile, although they compile and run without problems in my other systems (Windows 7 32-bit and Windows 8.1 64-bit): it is probably something related to (my) Windows 7 64-bit and/or the recent versions of Java. Regards
Try the new EjsS 5.0 beta. You will most likely get the same error, but since this release has debugging turned on, we can see where in the code we get this error.
(I tried compiling the action.xml example and it run Ok, as you suspected. I also thing there is something strange with your Java+OS. I think we have seen this problem before...)
Now 4.3.7 also works fine! I had tried installing the last EJS 4.3.7, the last Java jre, the last Java jdk, ... nothing worked. But after installing EJS 5.0 beta and compiling a simulation, 4.3.7 also works fine, after ignoring the warning about the file having been created by a later EJS version. Version 4.3.7 doesn't issues the warning about description files. I thought maybe 5.0 beta had changed something in the .ejs file, but 4.3.7 reads it without further warnings and the file it saves only differs in blanks from the file I saved yesterday to another disk. Thanks again
========================================== With version 4.3.7 ==========================================
The description is displayed when the package is run.
----------------------------- No error in the console
----------------------------- Compile time warnings:
----------------------------- Target: Java 1.5 warning: [options] bootstrap class path not set in conjunction with -source 1.5 warning: [options] source value 1.5 is obsolete and will be removed in a future release warning: [options] target value 1.5 is obsolete and will be removed in a future release warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
----------------------------- Target: Java 1.6 warning: [options] bootstrap class path not set in conjunction with -source 1.6
----------------------------- I don't get the options Java 1.7 and 1.8 (which appear in version 5.0 beta).
----------------------------- In the Windows 7, 32-bit system I don't get any of the above warnings and I also have the option of Java 1.7 (probably I don't have there Java 1.8, which, I think, was installed in the 64-bit system only when I tried the last Java SDK).
========================================== With version 5.0 beta ==========================================
The description is *not* displayed when the package is run.
----------------------------- The console messages are the same with targets Java 1.5, 1.6, 1.7 and 1.8:
However the files are there. For instance: "C:\prog\EJS_4.3.4\workspace\output\accelerated\accelerated_Intro 1.html" (I'm using an old workspace)
----------------------------- Compile time warnings: ----------------------------- Target: Java 1.5 warning: [options] source value 1.5 is obsolete and will be removed in a future release warning: [options] target value 1.5 is obsolete and will be removed in a future release warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
----------------------------- Targets: Java 1.6, 1.7 and 1.8 No compile time warning
==================================== With versions 3.47 and 5.0 I have also found two other problems that don't happen in the 32-bit system:
If the target is Java 1.6 the simulation doesn't stop when I try to close it. Afterwards it doesn't appear in the console and the "Processes currently running" list. I have to kill it with the Task Manager.
When I try "Remove compiled code", I get "Couldn't remove compiled code". The code is not removed and if I try again "Remove compiled code", I get "There are no files to process", although the files are still there. ====================================
Although EJS 4.3.7 and older versions of Java are still available on the Internet, I hope you and other EJS users will migrate to the EJS 5 and Java 8. (We are now calling it EjsS 5 because this version supports both Java and JavaScript.) Apple has stopped development of the Mac Java VM and Apple now recommends that users obtain Java from Oracle so Mac users will have 64 bit Java 1.7 or 1.8 from Oracle if they are running a recent version of OS X. We also need these new versions of Java to provide support for JavaScript and new technologies such as WebGL 3D drawing.
EjsS Version 5 has many excellent new features, such as JavaScript and ePub support, but there are some small API changes that you may need to pay attention too. For example, we have dropped the initial value property in the Inspector for input Elements. We had far too many programs where a user would set the initial value of a variable using BOTH the Var Table and the Initial Value field in the Inspector. These two values were often not the same and this conflict sometimes caused a crash. Good programming practice requires that global variables be defined, initialized, and documented in the Var Table so we dropped this Initial Field in the Inspector panel. You will get a warning message if EjsS 5 detects the use of the the Initial value field. The Initial Value is then removed from the Inspector and you must define that initial value in the Var Table.
I hope you will be able to update your old models so that we can get the updated source code into ComPADRE. The old jar files will still run but users may have difficulty compiling the source code.
Dear Wolfgang, I see your point but I also have some concerns. I have found in my own department that many people have old Java jres and will discard any simulation that doesn't run out-of-the box. In fact I had the same problem, years ago, when I submitted to the EPAPS library the EJS simulation for a paper in the AJP: they weren't able to run it because of an old jre... Anyway, I will try to find time to update my simulations. Best regards