OpenJDK 8 Update 232 では以下の変更が行われました。
- 8213429: Windows file handling redux
- 8167646: Better invalid FilePermission
<参考>https://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/b148d99d5cc3
この変更により、FilePermission の引数に与えられたファイルパスが不正な形式である場合に、FilePermission の implies メソッドが必ず false を返すようになりました。そのため不正なパスに対しては、無条件で権限無しと判定されます。
ただし、この変更による不具合は OpenJDK の JDK Bug System に登録されており(
JDK-8235909)、OpenJDK 8 Update 242 で修正されました。また、OpenJDK 9 以降、Oracle社がリリースしている Java SE Development Kit では発生しません。
本事象が発生すると次の例外が出力されます。
(事象1の場合)
-----------------------------------------------------
javax.management.MBeanException: Exception invoking method in runtime bean bindI
orInternal
Target exception message: java.security.AccessControlException: access denied ("
java.io.FilePermission" "C:\WebOTX\domains\domain1\config\file:\C:\WebOTX\domain
s\domain1\applications\<リソースアダプタ名>" "read")
javax.management.MBeanException: Exception invoking method in runtime bean bindI
orInternal
-----------------------------------------------------
(事象2の場合)
-----------------------------------------------------
yyyy-mm-dd 05:12:05,248 WARN ADMIN - OTX01140002: MBean の初期化に失敗しました : [RMI TCP Connection(638)-192.168.3.2]
java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\WebOTX\domains\domain1\config\mbean-default-value\runtime\j2ee-applications\foo:bar.xml" "read")
:
:
at com.nec.webotx.enterprise.admin.WebOTXModelMBean.initialize(WebOTXModelMBean.java:355)
at com.nec.webotx.enterprise.admin.WebOTXModelMBean.<init>(WebOTXModelMBean.java:315)
-----------------------------------------------------
(事象3の場合)
OpenJDK 8 Update 232 を使用した場合のエラー内容
-----------------------------------------------------
ConfigManager : unexpected error, java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\olftp:conf\OlfAdapter.ini" "read"), reason = 0x00050300.
-----------------------------------------------------
それ以外の JDK を使用した場合のエラー内容
-----------------------------------------------------
ConfigManager : Olf library initialize failed, property file = C:/olftp:conf/OlfAdapter.ini, reason = 0x00050404.
-----------------------------------------------------