7u45 webstart 中出现新的死锁错误?

2024-01-10

java 7u45 的乐趣仍在继续。这次是 webstart 内部陷入僵局。这种情况在启动大型应用程序(约 100 个 jar)时非常一致地(每次)发生。

还有其他人遇到过这个问题或知道任何解决方法吗?除了恢复到 1.7.0_40 之外?

Thanks,

Found one Java-level deadlock:
=============================
"Java Web Start Main Thread":
  waiting to lock monitor 0x066368bc (object 0x29e65428, a java.lang.Class),
  which is held by "Finalizer"
"Finalizer":
  waiting to lock monitor 0x00dbc954 (object 0x2a1b52b0, a com.sun.deploy.cache.CacheEntry),
  which is held by "Java Web Start Main Thread"

Java stack information for the threads listed above:
===================================================
"Java Web Start Main Thread":
    at com.sun.deploy.cache.MemoryCache.getLoadedResource(Unknown Source)
    - waiting to lock <0x29e65428> (a java.lang.Class for com.sun.deploy.cache.MemoryCache)
    at com.sun.deploy.cache.CachedJarFile.getCacheEntry(Unknown Source)
    - locked <0x24810058> (a com.sun.deploy.cache.CachedJarFile)
    at com.sun.deploy.cache.CachedJarFile.getManifest(Unknown Source)
    - locked <0x24810058> (a com.sun.deploy.cache.CachedJarFile)
    at com.sun.deploy.util.JarUtil.isBlobSigned(Unknown Source)
    at com.sun.deploy.cache.CacheEntry.getJarFile(Unknown Source)
    - locked <0x2a1b52b0> (a com.sun.deploy.cache.CacheEntry)
    at com.sun.deploy.security.DeployManifestChecker.verify(Unknown Source)
    at com.sun.javaws.security.AppPolicy.grantUnrestrictedAccess(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareAllResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
    at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
    at com.sun.javaws.Launcher.launch(Unknown Source)
    at com.sun.javaws.Main.launchApp(Unknown Source)
    at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
    at com.sun.javaws.Main.access$000(Unknown Source)
    at com.sun.javaws.Main$1.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
"Finalizer":
    at com.sun.deploy.cache.CacheEntry.storageFilesExist(Unknown Source)
    - waiting to lock <0x2a1b52b0> (a com.sun.deploy.cache.CacheEntry)
    at com.sun.deploy.cache.MemoryCache.validateResource(Unknown Source)
    at com.sun.deploy.cache.MemoryCache.getLoadedResource(Unknown Source)
    - locked <0x29e65428> (a java.lang.Class for com.sun.deploy.cache.MemoryCache)
    at com.sun.deploy.cache.CachedJarFile.isReferencedTo(Unknown Source)
    at com.sun.deploy.cache.CachedJarFile.close(Unknown Source)
    at java.util.zip.ZipFile.finalize(Unknown Source)
    at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
    at java.lang.ref.Finalizer.runFinalizer(Unknown Source)
    at java.lang.ref.Finalizer.access$100(Unknown Source)
    at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

Found 1 deadlock.

我在评论中提到的错误报告现已被接受。

不过,看起来它的 ID 作为该过程的一部分发生了变化。它从JI-命名空间到JDK-命名空间:https://bugs.openjdk.java.net/browse/JI-9007571 https://bugs.openjdk.java.net/browse/JI-9007571现在重定向到https://bugs.openjdk.java.net/browse/JDK-8027029 https://bugs.openjdk.java.net/browse/JDK-8027029。该问题可见于https://bugs.java.com/bugdatabase/view_bug?bug_id=8027029 https://bugs.java.com/bugdatabase/view_bug?bug_id=8027029现在也是。

该修复似乎正在讨论是否包含在 7u51 中,预计将于 1 月份发布。

我们的堆栈跟踪是相似的——死锁本身看起来是相同的。在我们的例子中,页面中有两个同时加载的小程序。

"thread applet-cl.applet.TutorApplet-2" prio=4 tid=0x04f21000 nid=0x528 waiting for monitor entry [0x0652f000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at com.sun.deploy.cache.MemoryCache.getLoadedResource(Unknown Source)
    - waiting to lock <0x29d288b8> (a java.lang.Class for com.sun.deploy.cache.MemoryCache)
    at com.sun.deploy.cache.CachedJarFile.getCacheEntry(Unknown Source)
    - locked <0x247a4f90> (a com.sun.deploy.cache.CachedJarFile)
    at com.sun.deploy.cache.CachedJarFile.getManifest(Unknown Source)
    - locked <0x247a4f90> (a com.sun.deploy.cache.CachedJarFile)
    at com.sun.deploy.util.JarUtil.isBlobSigned(Unknown Source)
    at com.sun.deploy.cache.CacheEntry.getJarFile(Unknown Source)
    - locked <0x29eccc00> (a com.sun.deploy.cache.CacheEntry)
    at com.sun.javaws.security.SigningInfo.check(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source)
    at sun.plugin2.applet.JNLP2Manager.prepareLaunchFile(Unknown Source)
    at sun.plugin2.applet.JNLP2Manager.loadJarFiles(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

"thread applet-cl.applet.TTSApplet-1" prio=4 tid=0x04f1f800 nid=0xa40 waiting for monitor entry [0x0600f000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at com.sun.deploy.cache.CacheEntry.storageFilesExist(Unknown Source)
    - waiting to lock <0x29eccc00> (a com.sun.deploy.cache.CacheEntry)
    at com.sun.deploy.cache.MemoryCache.validateResource(Unknown Source)
    at com.sun.deploy.cache.MemoryCache.getLoadedResource(Unknown Source)
    - locked <0x29d288b8> (a java.lang.Class for com.sun.deploy.cache.MemoryCache)
    at com.sun.deploy.cache.MemoryCache.getLoadedResource(Unknown Source)
    - locked <0x29d288b8> (a java.lang.Class for com.sun.deploy.cache.MemoryCache)
    at com.sun.deploy.cache.Cache.getCacheEntry(Unknown Source)
    at com.sun.deploy.cache.Cache.getCacheEntry(Unknown Source)
    at com.sun.deploy.cache.Cache.getCachedResourceFilePath(Unknown Source)
    at com.sun.deploy.cache.ResourceProviderImpl.getCachedResourceFilePath(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.getSignedJNLPBits(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.getSignedJNLPFile(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedLaunchDescHelper(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedLaunchDesc(Unknown Source)
    at sun.plugin2.applet.JNLP2Manager.prepareLaunchFile(Unknown Source)
    at sun.plugin2.applet.JNLP2Manager.loadJarFiles(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

7u45 webstart 中出现新的死锁错误? 的相关文章

  • 使用 JDBC 获取 Oracle 11g 的最后插入 ID

    我是使用 Oracle 的新手 所以我将放弃之前已经回答过的内容这个问题 https stackoverflow com questions 3131064 get id of last inserted record in oracle
  • Java 7 默认语言环境

    我刚刚安装了 jre7 我很惊讶地发现我的默认区域设置现在是 en US 对于jre6 它是de CH 与jre7有什么不同 默认区域设置不再是操作系统之一吗 顺便说一句 我使用的是Windows7 谢谢你的回答 编辑 我已经看到了语言环境
  • Android 中的列表(特别是 RecyclerView 和 CardView)如何工作

    请原谅我问这个问题 但我是 Android 开发新手 尽管我正在尝试了解developer android com 网站上的基础知识 但大多数示例 即使他们说它们是为 Android Studio 构建的 尚未设置为使用 Gradle 因此
  • 如何强制jar使用(或jar运行的jvm)utf-8而不是系统的默认编码

    我的Windows默认编码是GBK 而我的Eclipse完全是utf 8编码 因此 在我的 Eclipse 中运行良好的应用程序崩溃了 因为导出为 jar 文件时这些单词变得不可读 我必须在 bat 文件中写入以下行才能运行该应用程序 st
  • HAProxy SSL终止+客户端证书验证+curl/java客户端

    我希望使用我自己的自签名证书在 HAProxy 上进行 SSL 终止 并使用我创建的客户端证书验证客户端访问 我通过以下方式创建服务器 也是 CA 证书 openssl genrsa out ca key 1024 openssl req
  • 删除优先级队列的尾部元素

    如何删除优先级队列的尾部元素 我正在尝试使用优先级队列实现波束搜索 一旦优先级队列已满 我想删除最后一个元素 优先级最低的元素 Thanks 没有简单的方法 将元素从原始元素复制到新元素 最后一个除外 PriorityQueue remov
  • 埃拉托色尼筛法 - 实现返回一些非质数值?

    我用 Java 实现了埃拉托斯特尼筛法 通过伪代码 public static void sieveofEratosthenes int n boolean numArray numArray new boolean n for int i
  • FileNotFoundException - Struts2 文件上传

    Strange FileNotFoundException使用Struts2上传文件时 这是 JSP 的一部分
  • 为什么 MOVE CURSOR 在 OS X Mountain Lion 上不显示?

    我正在做一个项目 想看看 Swing 提供的每个光标是什么样子的 public class Test public static void main String args JFrame frame new JFrame frame set
  • 如何检测图像是否像素化

    之前有人在 SO 上提出过这样的问题 在Python中检测像素化图像 https stackoverflow com questions 12942365 detecting a pixelated image in python还有关于q
  • Android蓝牙java.io.IOException:bt套接字已关闭,读取返回:-1

    我正在尝试编写一个代码 仅连接到运行 Android 5 0 KitKat 的设备上的 目前 唯一配对的设备 无论我尝试了多少方法 我仍然会收到此错误 这是我尝试过的最后一个代码 它似乎完成了我看到人们报告为成功的所有事情 有人能指出我做错
  • 在 MongoDB 和 Apache Solr 之间同步数据的简单方法

    我最近开始使用 MongoDB 和 Apache Solr 我使用 MongoDB 作为数据存储 并且希望 Apache Solr 为我的数据创建索引 以实现应用程序中的搜索功能 经过一些研究 我发现 基本上有两种方法可以在 MongoDB
  • 是否可以从 servlet 内部以编程方式设置请求上下文路径?

    这是一个特殊情况 我陷入了处理 企业 网络应用程序的困境 企业应用程序正在调用request getContext 并将其与另一个字符串进行比较 我发现我可以使用 getServletContext getContextPath 获取 se
  • 如何使用正则表达式验证 1-99 范围?

    我需要验证一些用户输入 以确保输入的数字在 1 99 范围内 含 这些必须是整数 Integer 值 允许前面加 0 但可选 有效值 1 01 10 99 09 无效值 0 007 100 10 5 010 到目前为止 我已经制定了以下正则
  • Eclipse - 安装新的 JRE (Java SE 8 1.8.0)

    我正在尝试安装 Java 8 到目前为止我所做的 安装最新版本的 Eclipse 下载并安装 Java SE 运行时环境 8http www oracle com technetwork java javase downloads jre8
  • Java、Spring:使用 Mockito 测试 DAO 的 DataAccessException

    我正在尝试增加测试覆盖率 所以我想知道 您将如何测试 DAO 中抛出的 DataAccessExceptions 例如在一个简单的 findAll 方法中 该方法仅返回数据源中的所有数据 就我而言 我使用 Spring JdbcTempla
  • 如何通过 Android 按钮单击运行单独的应用程序

    我尝试在 Android 应用程序中添加两个按钮 以从单独的两个应用程序订单系统和库存系统中选择一个应用程序 如图所示 我已将这两个应用程序实现为两个单独的 Android 项目 当我尝试运行此应用程序时 它会出现直到正确选择窗口 但是当按
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • ECDH使用Android KeyStore生成私钥

    我正在尝试使用 Android KeyStore Provider 生成的私有文件在 Android 中实现 ECDH public byte ecdh PublicKey otherPubKey throws Exception try
  • 记录类名、方法名和行号的性能影响

    我正在我的 java 应用程序中实现日志记录 以便我可以调试应用程序投入生产后可能出现的潜在问题 考虑到在这种情况下 人们不会奢侈地使用 IDE 开发工具 以调试模式运行事物或单步执行完整代码 因此在每条消息中记录类名 方法名和行号将非常有

随机推荐

  • 基于构建的不同 SASS/Coffeescript 变量值

    我正在尝试为前端框架创建一个构建系统 该框架将根据我部署到的位置在 SASS 可能还有 Coffeescript 中创建不同的路径 例如 我可能有一个在本地 SASS 中引用的图像文件 images image png 这在我当地的环境中运
  • 尝试从元组中删除最后一个类型失败

    我正在尝试删除元组的最后一个元素 当我在元组中只有一个元素需要删除时 它会起作用 但当我有不止一个时 事情就会出错 我不明白为什么这不起作用 这些是我收到的错误 prog cpp 在函数 int main prog cpp 24 22 错误
  • 用于检测最小化窗口的钩子 C#

    大家好 在C 中如何检测用户单击了外部程序 例如记事本 的最小化按钮 谢谢 这应该有效 public class myClass DllImport user32 dll return MarshalAs UnmanagedType Boo
  • 将 Dropzone 与 Typescript 结合使用

    我有一个使用 dropzone 4 3 并用 Typescript 编写的应用程序 在将其转换为打字稿之前 我们必须在 Dropzone 上设置一个全局变量 一切都很顺利 Dropzone autoDiscover false 我已经拉入了
  • 如何告诉调试器忽略抛出异常时的中断?

    我有一个文本框 在其中使用第三方库验证输入 但是 当语法不正确时 该库会引发自定义异常 这并不是什么大问题 除非您正在调试 调试时 由于 TextBox 中的文本最初总是错误的 我仍在输入它 因此调试器将在每个字母之后停止 直到它正确为止
  • 像 CCSprite 对象一样移动 Box2d 实体

    在cocos2d中 您可以轻松使用CCSprites并以各种方式移动它们 最重要的是 他们可以缓入 缓出 对于大多数游戏来说 这对于平滑移动等是可取的 id action CCMoveTo actionWithDuration dur po
  • Android onCreateContextMenu 和 onContextItemSelected 中的 NULL menuInfo 仅在 onListItemClick 中手动调用 openContextMenu 时出现。长按有效

    我已经解析了这里的很多帖子 但没有发现任何像我的问题一样的东西 基本上我想打电话openContextMenu l in onListItemClick 这样做会创建一个没有内容的上下文菜单menuInfo 长按即可正常工作 执行长按后 我
  • Xdebug 无法连接远程服务器

    我希望使用不同计算机的团队能够在同一台计算机上调试 PHPremote服务器 但我很难让 Xdebug 在 NetBeans 7 0 1 中工作 我尝试了很多网上的建议 但没有效果 作为记录 我已经成功安装了 Xdebuglocally在运
  • 将 scipy 对象保存到文件

    我想保存对象interpolator产生自scipy interpolate InterpolatedUnivariateSpline到一个文件 以便随后加载并使用它 这是控制台上的结果 gt gt gt interpolator
  • 弹出到 expokit 时,Expo 卡在“配置同步”上

    当尝试从 expokit 中弹出项目时 它不会完成并卡在config syncing一个多小时 当我用 expo 创建一个新项目然后运行时也会发生这种情况expo run android 我解决了下面的步骤 删除文件以获得新的感觉 rm r
  • 字符串值中的 Coder 是什么?

    我正在读取 CSV 文件 方法是使用com opencsv CSVReader像下面这样 String headers csvReader readNext 标题的值如下屏幕截图所示 这里的编码器是什么 以黄色突出显示 为什么第一个索引的值
  • 在与 ActiveSync 同步的同时读取 PDA 目录的内容

    我有一个项目 需要复制 PDA 中找到的文件 就我而言 如果这有什么区别的话 它是 MC3000 我安装了 ActiveSync 它为我创建了同步文件夹 效果很好 但是 我希望不仅能够在其 MyDocument 文件夹中读取 PDA 的内容
  • 如何处理选项卡更改时的 CSS 动画

    我正在开发一个小轮盘游戏 例如 https csgofast com https csgofast com 我的问题是 当我在实际选项卡中时 与变换和过渡一起使用的轮盘动画效果很好 问题是 当我移动到另一个选项卡或最小化时 在轮盘赌开始之前
  • 在 Web Api 控制器中将 JSON 反序列化为字典

    我有这样的 JSON 字符串 1 1 3 5 2 2 5 6 3 5 6 8 我想将其发送到 Web Api 控制器而不使用 ajax 请求进行更改 ajax type POST url Api Serialize Dict data JS
  • 设置HBase、hadoop、hive通过hive访问Hbase的正确方法是什么?

    我在配置和安装 hbase hadoop hive 时遇到问题 到目前为止我在 ubuntu 14 04 3 LTS 的虚拟机上做了什么 像这样安装了jdk和版本jdk1 8 0 60 https askubuntu com questio
  • 根据 textContent 中的索引突出显示文本

    Bounty 正如 jsPerf 所展示的 测试时最新发布版本的 Firefox Chrome 和 Internet Explorer 中最快的解决方案将获得奖励or创建此类解决方案最有用的答案由我自行决定 哇哈哈 I ll be most
  • 卸载后执行命令

    我需要卸载才能运行命令after它删除了已安装的文件 UninstallRun 没有用 据我所知 它在文件被删除之前运行 我有点需要一个 卸载后 标志 关于我如何实现上述目标有什么建议吗 See 卸载事件函数 http www jrsoft
  • 包含过期项的哈希表

    我想实施一个HashTable 或者也许是一个HashSet or Dictionary 其中有独特的成员 一段时间后就会过期 例如 Items expire automatically after 10 seconds Expiratio
  • Celery:WorkerLostError:工作人员过早退出:信号 9 (SIGKILL)

    我在 Django 应用程序 在 Elastic Beanstalk 上 中使用 Celery 和 RabbitMQ 来管理后台任务 并使用 Supervisor 对其进行守护进程 现在的问题是 我定义的周期任务之一失败 在正常工作一周后
  • 7u45 webstart 中出现新的死锁错误?

    java 7u45 的乐趣仍在继续 这次是 webstart 内部陷入僵局 这种情况在启动大型应用程序 约 100 个 jar 时非常一致地 每次 发生 还有其他人遇到过这个问题或知道任何解决方法吗 除了恢复到 1 7 0 40 之外 Th