ENIGMA Forums

General fluff => General ENIGMA => Topic started by: Goombert on October 31, 2015, 08:47:08 pm

Title: What Java version do you use?
Post by: Goombert on October 31, 2015, 08:47:08 pm
This is an important question I wanted to ask some of you. Primarily because of a ton of crazy issues you all keep having. More specifically this question relates to Linux installations of ENIGMA. The newer OpenJDK releases are virtually unable to run LateralGM or any Swing application, from dialog panes freezing to not closing and random frequent segfaults. a2h who built this website we currently use came back from some of his studies and things he's been doing and brought it to my attention.
https://github.com/IsmAvatar/LateralGM/issues/227

I tested for him in my VirtualBox Ubuntu 15.1 install with both OpenJDK 7 and 8 (specifically 8u60) and both of them easily reproduced his issues. Simply opening the Help->About dialog would hang and crash, even though nothing more is being done than a simple JOptionPane call. I then removed both of these and installed the Oracle proprietary JDK and the issues all but seemingly vanished. Historically, the Oracle JDK is what I have used to test and develop LateralGM myself and from here on out, I am going to say that is the recommended installation because Swing applications are virtually unusable with OpenJDK.

This post will tell you how to install it on Ubuntu, works the same for 15.1, look at the top answer:
http://askubuntu.com/questions/521145/how-to-install-oracle-java-on-ubuntu-14-04

These issues may be related to the new Java modularization for Java 9 which adds modules that have metadata for a package manager type interface that will come to Java. So when you install Java, you won't install the runtime and when you run a Java program it can tell the Java installation where to download the necessary packages/runtime libraries from. Because Swing and the older Java jars/libraries were not built with modularity in mind they are moving things around and hiding certain interfaces, the following news article clarifies all of this:
http://www.javaworld.com/article/2861074/java-platform/modular-javas-changes-could-break-ides.html

Many people are afraid that some IDE's, including Eclipse and NetBeans, may require substantial refactoring to work properly with the newer Java's. So this is basically just a pointer that if you are having crazy problems with LateralGM on Linux, try out the proprietary Oracle JDK.
Title: Re: What Java version do you use?
Post by: TheExDeus on November 01, 2015, 12:15:22 pm
I use Oracle's Java on Windows. But there is a slight development here - A few days ago a new updates auto-downloaded for me - now I have the 1.8.0_45-b14. And now LGM is at least 4-5x more stable. Previously I had to relaunch LGM about 5 times before I could Run a project. Now I can often run it the first time and it crashes only after the fourth or fifth run. So it is still very unstable, but it is much more usable than it was.
Title: Re: What Java version do you use?
Post by: Goombert on November 01, 2015, 11:31:05 pm
Yeah that's probably because of things I mentioned. I know JavaFX was pretty buggy too from experience in the first 8u45 release. Eclipse is even being affected by these Swing changes, so yeah. And like people are saying, it's most likely to occur where you are doing undefined things by the API. So I think a lot of those are going to creep up and break if they haven't already.

Just to mention I was not lying about cleaning up LateralGM. The new release is coming and there is nothing revolutionary, but many changes that make it more stable. I did some things like removing empty lines with tabs and other excess whitespace, I've enabled whitespace symbols in Eclipse now and these won't pop up from me again. I addressed an issue reported by sorlok, you can now actually rename instances in the room editor for the GMX format, instances will have a randomly hashed name when a GMK is loaded for convenience. I've also made external editors more reliable, image editing used to annoy me because it would always fail after the second save and I never realized to fix it. Turns out the problem was leaving the file handle open, which was a similar issue with EGM when I first got here. In other places some of the layouts have been improved, and then there's the new hex color picker.

Right now I am waiting for 3 icons from Josh because I added the buttons for Community, Website, and Submit Issue to the help menu which you can configure the URI's in preferences just like with documentation. I need icons for those buttons and Josh has been too busy to do them. Also, the room editor has the nice transparency pattern now on its viewport. There's a host of tiny little bugs that I've fixed, all of which will be in the change log and I'm doing the best I can to make sure the solutions are correct. The other thing I am waiting on is to discuss how to revamp the preferences frame so changes can be reverted on it, I want to discuss that with Josh. Then clean up any mistakes I made in JoshEdit and the issue with building LGM right now, then release.
(http://i.imgur.com/ADuiiK4.png)
Title: Re: What Java version do you use?
Post by: TheExDeus on November 02, 2015, 05:20:47 am
Quote
Yeah that's probably because of things I mentioned. I know JavaFX was pretty buggy too from experience in the first 8u45 release. Eclipse is even being affected by these Swing changes, so yeah. And like people are saying, it's most likely to occur where you are doing undefined things by the API. So I think a lot of those are going to creep up and break if they haven't already.
Yeah, but I said its more STABLE, not UNstable. I couldn't get from that paragraph if you understood me or not.

I did notice the external image editor bug,  but found that it works again if you close the sprite properties window and open again. It wasn't that big of a deal if you knew this workaround but I'm glad it is now fixed.

And thanks for all the changes and fixes. Do you also included the changes from the other contributors? Like the selection box thing in room editor? Because we sadly didn't make a new LGM release after those were added which made some contributors feel their work not being appreciated.
Title: Re: What Java version do you use?
Post by: Goombert on November 02, 2015, 11:06:26 am
Right, I understood you perfectly. I just don't know where in the process of Swing modularity that jigsaw is at, so I don't know if it's getting better or worse right now, as you say it is getting better, but either way there are going to be places that will be broken permanently and not get any better that will need fixed manually in LGM.

I was aware of the work around, I had done it myself several times, but it's completely fixed for every external editor now, no need to worry about it again it was a simple mistake made by very early contributors or else IsmAvatar herself since it is in 16b4 too. Another one is the room editor will no longer complain about unsaved changes, that had to do with the frame size, I was manually overriding the default frame size instead of putting it into the room defaults. That change was made by me in 1.8.2 before I properly understood how that was implemented. Overall it's very simple fixes aimed at improving the stability and responsiveness of the program, which is healthy and I think the most important for the next update.

His contributions should already also be included in the last build that was made, I believe the confusion there is that the portable ZIP was never rebuilt with the latest build. I have all of the recent changes from GitHub because I only do a release with everything synced to master. Besides that, I don't actually know what feature you are talking about, I've seen most of the room editor changes in the room editor and had to work through some of them to put the name text field on there.
Title: Re: What Java version do you use?
Post by: egofree on November 02, 2015, 01:10:18 pm
Robert, it's great to see you are working again on LateralGM. We are eager to see your work.

By the way, did you see that Sorlok has made a pull request for LateralGM a while ago : https://github.com/IsmAvatar/LateralGM/pull/216
Title: Re: What Java version do you use?
Post by: Goombert on November 03, 2015, 10:25:31 pm
Yes I am aware of that pull request egofree. The reason it has not been pulled is because there's more than just those changes required to fix it fully. It's a relatively simple task at this time, I just got too burnt out to finish it the last time along with the JoshEdit changes. I would like to address that after this release, as I indicated in my other reply, I want to just focus on these simple little stability fixes and bug patches, I want a nice solid healthy release. So I do not want to get off track and go working to address a ton of other things, especially when these fixes I have are permanent and likely won't be undone. Let's just focus on this for now, and then we can go from there.