Java プラグインを 1.7.0_25 にアップグレードしたところ、数年前に作成したアプレットで致命的なエラーが発生しました (それ以来維持されています)。
アプレットの init() メソッドの早い段階で呼び出す
logger = Logger.getAnonymousLogger();
この呼び出しは、Java 1.4.2 以降問題なく実行されています。現在、Java 1.7.0_25 (少なくとも Windows 7 では、ここでテストする Mac または Linux マシンはありません) を使用すると、アプレットを初めてロードしたときに問題なく動作します。ただし、アプレットのブラウザ ページが閉じられ、ページが再度読み込まれると、アプレットは次のコンソール メッセージで失敗します。
basic: Applet loaded.
basic: Applet resized and added to parent container
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 756747 us, pluginInit dt 76093467 us, TotalTime: 76850214 us java.lang.NullPointerException
at java.util.logging.Logger.doSetParent(Unknown Source)
at java.util.logging.Logger.getAnonymousLogger(Unknown Source)
at java.util.logging.Logger.getAnonymousLogger(Unknown Source)
at com.optix.applet.viewer.ObjectViewer.init(ObjectViewer.java:214)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.init(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Ignored exception: java.lang.NullPointerException
アプレットを再度ロードするには、ブラウザを閉じて再起動する必要があります。
これは、Java 1.4 で java.util.logger が導入されて以来、以前の Java リリースでは発生していません。
パーミッションの問題はないはずです: META-INF/MANFEST.MF に新しい属性を追加しました
Permissions: all-permissions
Codebase: *
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/no_redeploy.htmlで求められているとおりです。アプレットは、現在の GoDaddy 証明書で署名され、タイムスタンプが付けられます。
でロガーを作成すると、
logger = Logger.getLogger(String);
アプレットは毎回ロードされます。
このエラーには何も見つかりません。誰もそれを見たことがありますか?Java 1.7.0_25 で表示される原因や、ブラウザ セッションで呼び出しが 1 回は機能するが、2 回目は機能しない理由を知っている人はいますか?