Index / Reload
(僕が調べたことがあるのは Classic VM だけだけど、)ランタイムによるアクセス制御は、それはもうゆるゆるでした。例えば- private, protected なフィールドやメソッドに対して、別パッケージに属するクラスからアクセスできてしまう。- new, newarray バイトコード命令で、アクセスできてはいけないクラス(やその型の配列)のインスタンスを作れてしまう。少なくとも2002年中頃には、javac もこういった illegal なアクセスを許してしまっていたようです。shuJIT には、Classic VM デフォルトのゆるゆる検査よりもきちんとした検査を実装してありまして、そのせいで Orion 1.5.4 が動きませんでした。see http://shudo.net/diary/2002may.html#20020521
(僕が調べたことがあるのは Classic VM だけだけど、)
ランタイムによるアクセス制御は、それはもうゆるゆるでした。
例えば
- private, protected なフィールドやメソッドに対して、別パッケージに属するクラスからアクセスできてしまう。
- new, newarray バイトコード命令で、アクセスできてはいけないクラス(やその型の配列)のインスタンスを作れてしまう。
少なくとも2002年中頃には、javac もこういった illegal なアクセスを許してしまっていたようです。
shuJIT には、Classic VM デフォルトのゆるゆる検査よりもきちんとした検査を実装してありまして、そのせいで Orion 1.5.4 が動きませんでした。
see http://shudo.net/diary/2002may.html#20020521