Frage

ich einige ziemlich vorformulierten Java-Code, der eine while-Schleife mit einem tg.getParent tut (), um die Root-Thread-Gruppe zu erhalten. Dies wurde für mehrere Monate auf vier verschiedenen Umgebungen (ein Windows-und drei Linux) arbeiten. Vor kurzem haben wir eine fünfte Umgebung für unsere Accessment Validierungstests. Diese Umgebung soll möglichst eine Kopie unserer Produktionsumgebung so viel sein. Die Entwickler haben Zugriff auf dieses System sehr begrenzt, und es ist ein mehrwöchigen Prozess das System durch unsere Hosting-Gruppe eingerichtet bekommen alle die richtigen Berechtigungen und Eigenschaften zu haben.

So gut wie alles, was jetzt funktioniert, aber heute, wenn der Tester an den Teil der Anmeldung ging, dass der getRootThreadGroup () -Methode ausübt oben erwähnt, um den Anruf zu ThreadGroup.getParent () scheinbar wirft einen Security. Ich habe nicht viele Details, weil ich im Moment nicht in der Lage, die Anwendungsprotokolldatei zu suchen. Aber ich bin 99,99% sicher, dass eine Security hier aufgetreten. Ich habe an der javadoc suchte Security und getParent () und checkaccess (), usw., aber nichts davon ist viel Sinn für mich zu machen.

denken kann jemand aus einem einfachen Grunde, warum diese neue Umgebung unserer Anwendung verursachen würde eine Security auf diesem Aufruf zu werfen, wenn diese noch nie auf irgendwelchen anderen Umgebungen (auf jeden Fall, und der Code wird ausnahmslos auf allen anderen Umgebungen ausgeführt werden) beobachtet ? Mein Bauchgefühl ist, dass irgendwie die Laufzeitbenutzer für die Anwendung keine Berechtigungen auf „etwas“ ...

Oh, es auf einem WebLogic-Server mit Java läuft 1.6 (jrockit-jdk), aber es sollte genau das gleiche wie die anderen Umgebungen konfiguriert werden.

Vielen Dank für jede Hilfe.

War es hilfreich?

Lösung

Sounds wie ein Sicherheits-Manager verwendet werden. Wenn Sie ein einfaches Programm auszuführen Thread.currentThread().getThreadGroup().getParent() schreiben und führen Sie es mit -Djava.security.manager, werden Sie sehen:

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

Andere Tipps

Das macht nichts. Ich fand, dass das Problem war eigentlich eine fehlende Datenbankspalte. Es dauerte 2 Stunden an diesem Morgen, um endlich das Protokoll zu finden, und sobald ich das gefunden, es war sehr einfach, das eigentliche Problem zu finden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top