【发布时间】:2013-08-14 17:42:37
【问题描述】:
我们有一个 Java Swing 客户端应用程序。它作为 Java Web Start 小程序和 install4j 安装程序安装。
由于 Apple 发布了最新的 Java 6 升级,我们的应用程序在安装程序和 Web Start 版本都显示登录对话框后立即卡住。我们禁用了对话框,应用程序在启动后仍然卡住了。我们还尝试使用不同的外观和感觉,因为有报道称这解决了问题,但没有帮助。
我们目前怀疑这是此版本 JRE 中与 Swing 相关的某种错误。
我们在 Oracle 的 1.7.0_25 JRE 上没有这个问题。
我们知道这个更新引起了很多问题,有没有人找到解决这个问题的方法?
这是 EDT 线程堆栈跟踪的最后一部分:
"AWT-EventQueue-1" prio=8 tid=000000002a1abc00 nid=0xb1d3f000 in Object.wait() [00000000b1d3d000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at java.awt.EventQueue.getNextEvent(EventQueue.java:558)
- locked <000000000686af80> (a java.awt.EventQueue)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:263)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:205)
at java.awt.Dialog$1.run(Dialog.java:1049)
at java.awt.Dialog$3.run(Dialog.java:1101)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1099)
at java.awt.Component.show(Component.java:1615)
at java.awt.Component.setVisible(Component.java:1567)
at java.awt.Window.setVisible(Window.java:843)
at java.awt.Dialog.setVisible(Dialog.java:984)
苹果最新更新信息链接:
http://support.apple.com/kb/HT5797
根据发行说明:
Java 1.6.0_45 中存在多个漏洞,其中最严重的 这可能允许不受信任的 Java 小程序执行任意代码 在 Java 沙箱之外。访问包含恶意内容的网页 精心制作的不受信任的 Java 小程序可能导致任意代码执行 具有当前用户的权限。这些问题得到解决 通过更新到 Java 版本 1.6.0_51
【问题讨论】:
-
您使用的是哪个版本?
-
他们在 java7u43 中为此提供了补丁。您是否尝试过安装最新版本的 java?
-
问题在于 Apple 的 Java 发行版 1.6.0_51 版本,而不是 Oracle 的 Java。我们不控制用户的环境,所以我们需要解决这个特定分布的问题
-
Apple 的 1.6.0_51 也有奇怪的问题,并且可以在 Oracle 的 1.7.0_25 上重现它们。对我们来说,配置 webstart 以显示控制台“修复”了所有问题。这对您的方案有什么影响吗?
-
@RafaelChaves Oracle 的 1.7.0_25 没有这些问题。
标签: java macos swing locking java-web-start