You can make a difference in the Apple Support Community!

When you sign up with your Apple Account, you can provide valuable feedback to other community members by upvoting helpful replies and User Tips.

Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

After installing "Java for OS X 2013-004" update, Java apps don't work anymore as expected

After installing "Java for OS X 2013-004" update, Java apps don't work anymore as expected.


Windows of Swing apps don't display all GUI elements.


After replacing System/Library/Java from a Time MAchine Backup, everything works normal again.


Is this update corrupted?

Java-OTHER, OS X Mountain Lion (10.8.4), Java for OS X 2013-004

Posted on Jun 18, 2013 3:19 PM

Reply
40 replies

Jun 20, 2013 1:26 AM in response to hpp23

Does anyone know specifically what causes this problem? I'm a developer who wants to fix our now-broken application, but I can't find any resources to point me in the right direction when debugging.


The PaperCut site indicated that changing the look and feel might help, but that does not help me. We're using a custom L&F here with a bunch of extra ComponentUI classes, so I can't just change to another one.

Jun 20, 2013 11:23 AM in response to yangyang_zhang

Apple is such a loser that they cannot offer quick solution!!!!!!!!!


Again, so many people here are blaming Apple, but please keep in mind that Apple is really not involved here. The update code is entirely created by Oracle, no matter whether you downloaded it from Oracle's site, allowed Java to update itself or accepted an Apple software update that provided it. Apple, at most, did no more than provide an important third-party software update.


If you want to be mad at someone, that's your prerogative, but at least choose the right people. You should be annoyed at Oracle, for allowing Java to get into such a bad state with security that major overhauls have become necessary, and at the maker of whatever Java-based software stopped working, for not keeping it better updated.

Jun 20, 2013 11:32 AM in response to thomas_r.

Thomas A Reed wrote:


Again, so many people here are blaming Apple, but please keep in mind that Apple is really not involved here. The update code is entirely created by Oracle, no matter whether you downloaded it from Oracle's site, allowed Java to update itself or accepted an Apple software update that provided it. Apple, at most, did no more than provide an important third-party software update.

java -version

java version "1.6.0_51"

Java(TM) SE Runtime Environment (build 1.6.0_51-b11-456-11M4508)

Java HotSpot(TM) 64-Bit Server VM (build 20.51-b01-456, mixed mode)



from java.com:


Why I cannot find Java 6 for Mac OS X here?

For Java versions 6 and below, Apple supplies their own version of Java. For Mac OS X 10.6 and below, use the Software Update feature (available on the Apple menu) to check that you have the most up-to-date version of Java 6 for your Mac. For issues related to Apple Java 6 on Mac, contact Apple Support.

Jun 20, 2013 11:47 AM in response to thomas_r.

Mr. Reed,


Do you have any evidence that, in fact, Oracle supplied the code for this update? Up until last year, all of Java 6 was supplied by Apple; this was NOT the Sun/Oracle version of Java. The Java Look and Feel was entirely written by Apple.


It's possible that, when Apple stopped supplying their own version of Java, they turned over the code to Oracle for them to update. However, with the latest update (to 1.6.0_51), the system properties java.vendor = "Apple, Inc.", and java.vendor.url.bug = "http://bugreport.apple.com".

Jun 20, 2013 11:57 AM in response to nixwizard

Apple used to supply their own version of Java 6, and it caused problems for people and headaches for Apple, because their updates were invariably late. They had to fold the updates into their codebase, and that took time. Apple has since washed their hands of that, and they provide Java 6 through the same old interfaces only as legacy support. It's all Oracle code at this point, as evidenced by the fact that it was perfectly timed with Oracle's release.


Really, folks, this Apple-bashing is not only not based on reality, it's also completely and utterly useless and unproductive. Java is a complete mess, and only Oracle can be blamed for that.

Jun 20, 2013 12:16 PM in response to thomas_r.

Thomas A Reed wrote:


... Java is a complete mess, and only Oracle can be blamed for that.


Sorry, this is absolute nonsense.


Oracle yesterday supplied Java 7 u25. All my Java Swing applications run under this updated JRE/SDK without problems. Why should I blame Oracle?


Some of my Swing Apps must also be supplied for Mac users who did not installed Oracle's Java 7 JRE, and use Apple's Java 6 JRE, which is now broken.

Apple is solely responsibe for this buggy update.

Jun 20, 2013 12:43 PM in response to hpp23

Aside from the relatively minor fact that Apple used to be responsible for Java 6, Java 6 and Java 7 are very different. They have significantly different codebases. You don't suppose that that might not be more relevant to the problem?


In any case, I'm tired of trying to bring some reason into this topic, so I'm bowing out. If blaming Apple somehow helps you to get your problem fixed, more power to you.

Jun 20, 2013 6:12 PM in response to hpp23

Hi, I'm the developer at Biomatters who tracked this down for Geneious. Here is what I found.


It has always been the case that the Swing documentation says that all Swing methods must be called only from within the Swing thread unless the method's API doc specifically says that method is thread-safe. Up to now there have been no problems seen calling some methods that do not say "thread-safe" in the javadoc and that seem like they don't cause actions in the GUI and should be safe. In particular, it is common to not think about threads when you initialize the Swing GUI layout theme by calling UIManager.setLookAndFeel() at the very start of running an application, before you display anything.


With this update to Java 6 we have found that you must wrap the call to UIManager.setLookAndFeel to ensure it is called from within the Swing thread, just like you do with other Swing calls. Some small test programs that don't do that still seem to work, but you can no longer get away with it.


It is probably common practice to set the application's look and feel when it starts up. If you do, change that to do it in the Swing (also known as the dispatch or the GUI) thread.


There may be other Swing methods that are not documented as thread-safe which used to let you get away with that too, so check your use of Swing to ensure that you are properly using the methods that are not labeled in their JavaDoc as thread-safe.

After installing "Java for OS X 2013-004" update, Java apps don't work anymore as expected

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.