First of all: What's JRE 7?
JRE is just the acronym of the Java Runtime Environment. This sounds too geeky, however it is just the proper name of what sometimes is called "Java". If a desktop piece of software needs Java, then probably it needs, at least, the JRE installed in your operating system to work.
One of the main benefits of Java, at least for software developers, is its portability. This means that a piece of software written in Java can be run in different operating systems avoiding the developers to create a specific app for each OS.
However JRE is not just a library, but it relates to a concept called Java Virtual Machine. If you hear the Virtual Machine words, the first image that should cross immediately your mind, since now, is a "machine crawling in the floor". And well, let's admit that, software built with Java are not among the fastest in the world.
In other words, since Java have overhead and implements its own Environment, Java is probably going to drive us nuts regarding memory management. If our Memory Manager doesn't work and performs as the Window's one, it'll be pretty hard to make ReactOS compatible with JRE.
JRE 7: The Setup bug
Testing JRE 7 is a two-step process: First downloading the JRE 7 from Oracle's archives, and afterwards executing the JRE 7 installer. However the result was a really nice and blue-ish BSOD. Even more, attempting to run the JRE 7 installer seemed to end in a gorgeous registry corruption which was preventing further runs of ReactOS. A complete disaster!
During the testing process we discovered that a previous JRE version, JRE 6 setup, wasn't blowing up the ReactOS registry showing itself as a nice start pointing to discover potential bugs which could bite us after the corruption issue was fixed.
JRE 6: The Polling bug.
"To Poll or not to Poll? That's the question"
The first test after successfully installing JRE 6u41 was something as easy as writing "java" and hitting Enter
The good news was that the "Java" command was "understood" by the console (aka, the environment variables were correctly set). The bad news, well, erhh..a mysterious error was printed to the console as you can see in the following screenshot.
- What does this error mean?
- How we worked together as a team to find the issue!
- How did we fix this important issue?
This, and much more, in the next "Development: Java RE" article.
Several technicalities have been oversimplified to ease the comprehension of this article so it shouldn't be read as a paper. However if, in our try of easing the reading, you think any paragraph is misleading or you detect any technical typo, please use the comment section below to notify us. Thanks a lot!