users@glassfish.java.net

CORBA barf all of a sudden

From: <glassfish_at_javadesktop.org>
Date: Thu, 15 Feb 2007 13:53:30 PST

Hi. Today the JEE5 application that has been running fine up through yesterday began incurring the following horrendous error from its Java application client. There has been one change to the application's entire codebase in between yesterday and today, which I've since rolled back to no effect (and it had to do with the name of an icon being loaded).

The Exception chain, which I've trimmed and edited for as much brevity as I can, seems to indicate that all of a sudden for no apparent reason a permission that was previously granted has suddenly been revoked. I am in total control of server and client as well as all development, so I know no configuration change has been made.

The apparent root cause of the exception is this:
[code]
java.lang.RuntimePermission accessClassInPackage.sun.corba
[/code]

I haven't done anything about security. I've deployed the application as a garden variety JEE5 ear that passes validation. And, as I said before, this has been working fine for months.

Here is the stack. Can anyone tell me why the appserver might suddenly start enforcing a given permission it wasn't enforcing before?

[code]
Exception in thread "AWT-EventQueue-0" java.lang.InternalError: Error loading com.sun.corba.ee.impl.io.IIOPOutputStream
        at com.sun.corba.ee.impl.io.ValueHandlerImpl$StreamFactory.run(ValueHandlerImpl.java:839)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.corba.ee.impl.io.ValueHandlerImpl.createOutputStream(ValueHandlerImpl.java:795)
        at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValueWithVersion(ValueHandlerImpl.java:198)
        at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:146)
        at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.writeRMIIIOPValueType(CDROutputStream_1_0.java:782)
        at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:831)
        at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:845)
        at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:638)
        at com.sun.corba.ee.impl.encoding.CDROutputStream.write_value(CDROutputStream.java:245)
        at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl$14.write(DynamicMethodMarshallerImpl.java:338)
        at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.writeArguments(DynamicMethodMarshallerImpl.java:407)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:161)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:123)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:196)
        at mycode.__RoleTypeManager_Remote_DynamicStub.setManagerRepository(__RoleTypeManager_Remote_DynamicStub.java)
        at mycode._RoleTypeManager_Wrapper.setManagerRepository(mycode._RoleTypeManager_Wrapper.java)
        at mycode.ManagerRepository.getLocator(ManagerRepository.java:159)
        at mycode.Reference.dereference(Reference.java:235)
[other mycode stack frames omitted for brevity]
Caused by: java.lang.ExceptionInInitializerError
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.lang.Class.newInstance0(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at com.sun.corba.ee.impl.io.ValueHandlerImpl$StreamFactory.run(ValueHandlerImpl.java:837)
        ... 51 more
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.corba)
        at java.security.AccessControlContext.checkPermission(Unknown Source)
        at java.security.AccessController.checkPermission(Unknown Source)
        at java.lang.SecurityManager.checkPermission(Unknown Source)
        at java.lang.SecurityManager.checkPackageAccess(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at com.sun.corba.ee.impl.io.IIOPOutputStream$1.run(IIOPOutputStream.java:70)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.corba.ee.impl.io.IIOPOutputStream.<clinit>(IIOPOutputStream.java:66)
        ... 58 more
[/code]

Thanks,
Laird
[Message sent by forum member 'ljnelson' (ljnelson)]

http://forums.java.net/jive/thread.jspa?messageID=203947