JAVA: SecurityException для ThreadGroup.getParent () - PullRequest
0 голосов
/ 29 октября 2010

У меня есть довольно симпатичный Java-код, который выполняет цикл while с tg.getParent (), чтобы получить корневую группу потоков.Это работает в течение нескольких месяцев в четырех различных средах (одна Windows и три Linux).Недавно мы добавили пятую среду для нашего тестирования валидации доступа.Предполагается, что эта среда должна быть максимально точной копией нашей производственной среды.Разработчики имеют очень ограниченный доступ к этой системе, и это был многонедельный процесс, когда наша группа хостинга настроила систему так, чтобы она имела все необходимые разрешения и свойства.

Почти все теперь работает, однакосегодня, когда тестер перешел к той части приложения, которая выполняет метод getRootThreadGroup (), упомянутый выше, вызов ThreadGroup.getParent () явно вызвал исключение SecurityException.У меня не так много подробностей, потому что на данный момент я не смог найти файл журнала приложения.Но я на 99,99% уверен, что здесь произошла исключительная ситуация SecurityException.Я посмотрел на javadoc для SecurityException и getParent () и checkAccess () и т. Д., Но ничего из этого не имеет для меня большого смысла.

Может кто-нибудь придумать простую причину, по которой эта новая средаВызвало бы бы наше приложение исключение SecurityEx для этого вызова, когда это никогда не наблюдалось ни в каких других средах (и код определенно выполняется без исключения во всех других средах)?У меня такое чувство, что пользователь приложения не имеет разрешения на «что-то» ...

О, он работает на сервере Bea Weblogic с java 1.6 (jrockit-jdk), нодолжен быть настроен точно так же, как и в других средах.

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 29 октября 2010

Похоже, что менеджер безопасности используется. Если вы напишите простую программу для выполнения Thread.currentThread().getThreadGroup().getParent() и запустите ее с -Djava.security.manager, вы увидите:

Exception in thread "main" java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)
0 голосов
/ 29 октября 2010

Неважно.Я обнаружил, что проблема на самом деле в отсутствующем столбце базы данных.Сегодня утром мне потребовалось два часа, чтобы наконец найти журнал, и как только я обнаружил это, найти настоящую проблему было очень просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...