JDK1.6.0_13とJDK1.7.0_55が共存する(インストールさている)環境にて、アプレットにてJDK1.6.0_13を指定して
印刷処理を起動すると、セキュリティーエラーが発生します。
(JDK1.6.0_13のみまたはJDK1.7.0_55のみがインストールされた環境ではエラーが発生しません。)
上記の原因を教えて頂けないでしょうか。
再現用ソースとスタックトレースを下記に記載しました。
★再現用ソース
下記をJDK1.6.0_13でコンパイルし、htmlファイルをサーバに配置して、
JDK1.6.0_13とJDK1.7.0_55が配置されているクライアントにてアクセスしてください。
-----------------------
■HTML
<html>
<head><title>Applet Test</title></head>
<body>
<applet code="AppletPrinterJobSample.class" width="150" height="150">
<param name="java_version" value="1.6*"> </applet>
</body>
</html>
-----------------------
■Java
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.print.PrinterJob;
public class AppletPrinterJobSample extends Applet{
public void init(){
}
public void paint(Graphics g){
// java のバージョン表示
g.drawString(System.getProperty("java.version"),10,10);
System.out.println(System.getProperty("java.version"));
// 印刷処理の起動
try {
PrinterJob.getPrinterJob();
} catch (SecurityException e){
e.printStackTrace();
System.out.println("NG!");
return;
}
System.out.println("OK!");
}
}
-----------------------
★スタックトレース
使用中のJREのバージョン 1.6.0_13-b03 Java HotSpot(TM) Client VM
ユーザーのホーム・ディレクトリ = C:\Users\A2228729
----------------------------------------------------
c: コンソール・ウィンドウをクリア
f: ファイナライズ・キューのオブジェクトをファイナライズ
g: ガベージ・コレクト
h: このヘルプ・メッセージを表示
l: クラスローダー・リストをダンプ
m: メモリー使用率を表示
o: ロギングをトリガー
q: コンソールを非表示
r: ポリシー構成を再ロード
s: システム・プロパティとデプロイメント・プロパティをダンプ
t: スレッド・リストをダンプ
v: スレッド・スタックをダンプ
x: クラスローダー・キャッシュをクリア
0-5: トレース・レベルを<n>に設定
----------------------------------------------------
トレース・レベルを5に設定: すべて ... 完了。1.6.0_13
ui: Pushing modality for applet ID 1 with dialog sun.plugin.util.PluginSysUtil$DummyDialog[dialog0,-100,-100,116x27,layout=java.awt.BorderLayout,APPLICATION_MODAL,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,3,22,110x2,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
ui: missing resource: java.util.MissingResourceException: Can't find resource for bundle com.sun.deploy.resources.Deployment, key OK
ui: missing resource: java.util.MissingResourceException: Can't find resource for bundle com.sun.deploy.resources.Deployment, key OK
ui: missing resource: java.util.MissingResourceException: Can't find resource for bundle com.sun.deploy.resources.Deployment, key 取消
basic: Dialog type is not candidate for embedding
java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(Unknown Source)
at javax.swing.SwingUtilities.invokeAndWait(Unknown Source)
at com.sun.deploy.ui.DialogTemplate.setVisible(Unknown Source)
at com.sun.deploy.ui.UIFactory$11.execute(Unknown Source)
at sun.plugin.util.PluginSysUtil$SysExecutionThread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at com.sun.deploy.ui.DialogHelper.setVisible(Unknown Source)
at com.sun.deploy.ui.DialogTemplate$31.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
java.lang.SecurityException: checkPrintJobAccess
at sun.plugin2.applet.SecurityManagerHelper.showPrintDialog(Unknown Source)
at sun.plugin2.applet.SecurityManagerHelper.access$000(Unknown Source)
at sun.plugin2.applet.SecurityManagerHelper$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.SecurityManagerHelper.checkPrintJobAccessHelper(Unknown Source)
at sun.plugin2.applet.AWTAppletSecurityManager.checkPrintJobAccess(Unknown Source)
at java.awt.print.PrinterJob.getPrinterJob(Unknown Source)
at AppletPrinterJobSample.paint(AppletPrinterJobSample.java:17)
at sun.awt.RepaintArea.paintComponent(Unknown Source)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
以上になります、よろしくお願いいたします。