gpt4 book ai didi

JAVA:ThreadGroup.getParent() 上的 SecurityException

转载 作者:行者123 更新时间:2023-12-01 16:00:34 28 4
gpt4 key购买 nike

我有一些漂亮的样板 Java 代码,它使用 tg.getParent() 执行 while 循环来获取根线程组。它已经在四种不同的环境(一个 Windows 和三个 Linux)上运行了几个月。最近,我们为访问验证测试添加了第五个环境。这个环境应该尽可能地复制我们的生产环境。开发人员对该系统的访问权限非常有限,我们的托管组花费了数周的时间才将系统设置为拥有所有正确的权限和属性。

现在一切都正常了,但是今天,当测试人员转到应用程序中执行上述 getRootThreadGroup() 方法的部分时,对 ThreadGroup.getParent() 的调用显然抛出了 SecurityException。我没有太多详细信息,因为目前我无法找到应用程序日志文件。但我 99.99% 确信这里发生了 SecurityException。我查看了 SecurityException、getParent() 和 checkAccess() 等的 javadoc,但它们对我来说没有多大意义。

任何人都可以想到一个简单的原因,为什么这个新环境会导致我们的应用程序在此调用上抛出 SecurityException,而在任何其他环境中从未观察到这种情况(并且代码在所有其他环境中肯定会毫无异常(exception)地执行) ?我的直觉是,不知何故,应用程序的运行时用户没有“某些东西”的权限......

哦,它运行在带有 java 1.6 (jrockit-jdk) 的 Bea Weblogic 服务器上,但它的配置应该与其他环境完全相同。

感谢您的帮助。

最佳答案

听起来像是正在使用安全管理器。如果您编写一个简单的程序来执行 Thread.currentThread().getThreadGroup().getParent() 并使用 -Djava.security.manager 运行它,您将看到:

Exception in thread "main" java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)

关于JAVA:ThreadGroup.getParent() 上的 SecurityException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4048878/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com