openejb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Blevins <david.blev...@visi.com>
Subject Re: InitialContext / Comms protocol recovery from a SystemException
Date Tue, 03 Nov 2009 21:12:14 GMT
Haven't seen this before, looks like the null is coming from the  
GeronimoSecurityService.

We test system and application exceptions in the itests for each bean  
type on both the remote and local servers as well as on Tomcat.  We  
don't run those on Geronimo though, which we really should. There was  
some code in Geronimo to do that at one point, but it got axed as  
being too hard to maintain quite a while ago.  I think we should bring  
it back.

I'm not sure what it might take Geronimo plan-wise, but here's the app:

   http://repo2.maven.org/maven2/org/apache/openejb/openejb-itests-beans/3.1.2/openejb-itests-beans-3.1.2.jar

And the client which includes all deps and is an executable jar:

   http://repo2.maven.org/maven2/org/apache/openejb/openejb-itests-standalone-client/3.1.2/openejb-itests-standalone-client-3.1.2.jar

-David

On Nov 2, 2009, at 10:44 AM, Quintin Beukes wrote:

> Hey,
>
> When I get a SystemException from the container during remote EJB
> invocation, all future requests for the InitialContext are "broken".  
> My
> exact situation (reason for causing the SystemException) is on my  
> fault, but
> if there is another reason I think it's good to recover from it so  
> to be
> able to continue serving requests. I got the following by invoking  
> on a
> method which isn't in the remote EJB class/Remote interface.
>
> This is what I got:
> ------- SNIP -------
> 02 Nov 2009 20:28:33,649 ERROR -- Exception: Error deleting  
> employee: XXXXXX
> (javax.ejb.EJBException)
> javax.ejb.EJBException: Container has suffered a SystemException
>
> org 
> .apache 
> .openejb.client.EJBObjectHandler._invoke(EJBObjectHandler.java:178)
>
> org 
> .apache 
> .openejb 
> .client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:117)
>
> org 
> .apache 
> .openejb 
> .client 
> .proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:52)
>    $Proxy7.deletePerson(Unknown Source)
>
> net 
> .kunye 
> .personnel 
> .client 
> .employees 
> .delete 
> .DeleteEmployeeWizardAction 
> .performAction(DeleteEmployeeWizardAction.java:87)
>
> net 
> .kunye 
> .personnel 
> .client 
> .employees 
> .delete 
> .DeleteEmployeeWizardAction 
> .performAction(DeleteEmployeeWizardAction.java:55)
>
> org.openide.util.actions.NodeAction$DelegateAction 
> $1.run(NodeAction.java:589)
>
> org 
> .netbeans 
> .modules 
> .openide.util.ActionsBridge.doPerformAction(ActionsBridge.java:77)
>
> org.openide.util.actions.NodeAction 
> $DelegateAction.actionPerformed(NodeAction.java:585)
>     
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java: 
> 1995)
>
> javax.swing.AbstractButton 
> $Handler.actionPerformed(AbstractButton.java:2318)
>
> javax 
> .swing 
> .DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
>    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java: 
> 242)
>    javax.swing.AbstractButton.doClick(AbstractButton.java:357)
>
> javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java: 
> 1220)
>
> javax.swing.plaf.basic.BasicMenuItemUI 
> $Handler.mouseReleased(BasicMenuItemUI.java:1261)
>    java.awt.Component.processMouseEvent(Component.java:6041)
>    javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
>    java.awt.Component.processEvent(Component.java:5806)
>    java.awt.Container.processEvent(Container.java:2058)
>    java.awt.Component.dispatchEventImpl(Component.java:4413)
>    java.awt.Container.dispatchEventImpl(Container.java:2116)
>    java.awt.Component.dispatchEvent(Component.java:4243)
>    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java: 
> 4322)
>    java.awt.LightweightDispatcher.processMouseEvent(Container.java: 
> 3986)
>    java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
>    java.awt.Container.dispatchEventImpl(Container.java:2102)
>    java.awt.Window.dispatchEventImpl(Window.java:2440)
>    java.awt.Component.dispatchEvent(Component.java:4243)
>    java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
>
> org 
> .netbeans 
> .core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
>
> java 
> .awt 
> .EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java: 
> 273)
>
> java 
> .awt 
> .EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
>
> java 
> .awt 
> .EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java: 
> 173)
>    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 
> 168)
>    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 
> 160)
>    java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
>
> java.rmi.RemoteException: The server has encountered a fatal error:  
> Unknown
> error in container java.lang.NullPointerException; nested exception  
> is:
> java.lang.NullPointerException
>
> org 
> .apache 
> .openejb 
> .server 
> .ejbd.EjbRequestHandler.replyWithFatalError(EjbRequestHandler.java: 
> 425)
>
> org 
> .apache 
> .openejb 
> .server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java: 
> 205)
>
> org 
> .apache 
> .openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:196)
>    org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java: 
> 149)
>    org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:71)
>
> org.apache.openejb.server.ejbd.KeepAliveServer 
> $Session.service(KeepAliveServer.java:213)
>
> org 
> .apache 
> .openejb.server.ejbd.KeepAliveServer.service(KeepAliveServer.java:233)
>    org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:66)
>    org.apache.openejb.server.ServicePool$2.run(ServicePool.java:91)
>    org.apache.openejb.server.ServicePool$3.run(ServicePool.java:120)
>
> java.util.concurrent.ThreadPoolExecutor 
> $Worker.runTask(ThreadPoolExecutor.java:886)
>
> java.util.concurrent.ThreadPoolExecutor 
> $Worker.run(ThreadPoolExecutor.java:908)
>    java.lang.Thread.run(Thread.java:619)
>
> java.lang.NullPointerException: null
>
> org 
> .apache 
> .geronimo 
> .openejb 
> .GeronimoSecurityService 
> .isCallerAuthorized(GeronimoSecurityService.java:96)
>
> org 
> .apache 
> .openejb 
> .core.stateless.StatelessContainer.invoke(StatelessContainer.java:151)
>
> org 
> .apache 
> .openejb 
> .core.stateless.StatelessContainer.invoke(StatelessContainer.java:136)
>
> org 
> .apache 
> .openejb 
> .server 
> .ejbd 
> .EjbRequestHandler 
> .doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:238)
>
> org 
> .apache 
> .openejb 
> .server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java: 
> 129)
>
> org 
> .apache 
> .openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:196)
>    org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java: 
> 149)
>    org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:71)
>
> org.apache.openejb.server.ejbd.KeepAliveServer 
> $Session.service(KeepAliveServer.java:213)
>
> org 
> .apache 
> .openejb.server.ejbd.KeepAliveServer.service(KeepAliveServer.java:233)
>    org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:66)
>    org.apache.openejb.server.ServicePool$2.run(ServicePool.java:91)
>    org.apache.openejb.server.ServicePool$3.run(ServicePool.java:120)
>
> java.util.concurrent.ThreadPoolExecutor 
> $Worker.runTask(ThreadPoolExecutor.java:886)
>
> java.util.concurrent.ThreadPoolExecutor 
> $Worker.run(ThreadPoolExecutor.java:908)
>    java.lang.Thread.run(Thread.java:619)
>
> ------- SNIP -------
>
> There after, when I try to invoke OTHER methods, I get this:
>
>
>
> 02 Nov 2009 20:29:45,990 ERROR -- Exception: Error creating new  
> employee:
> XXXXXX (javax.ejb.EJBException)
> javax.ejb.EJBException: Unknown Container Exception:
> java.rmi.RemoteException: Received invalid response code from  
> server: -1
>
> org 
> .apache 
> .openejb.client.EJBObjectHandler._invoke(EJBObjectHandler.java:184)
>
> org 
> .apache 
> .openejb 
> .client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:117)
>
> org 
> .apache 
> .openejb 
> .client 
> .proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:52)
>    $Proxy7.registerPerson(Unknown Source)
>
> net 
> .kunye 
> .personnel 
> .client 
> .employees 
> .add 
> .AddEmployeeWizardAction.performAction(AddEmployeeWizardAction.java: 
> 69)
>
> net 
> .kunye 
> .personnel 
> .client 
> .employees 
> .add.AddEmployeeWizardAction.openWizard(AddEmployeeWizardAction.java: 
> 47)
>
> net 
> .kunye 
> .personnel 
> .client 
> .navigation 
> .NavigationRootTopComponent 
> .btnAddEmployeeActionPerformed(NavigationRootTopComponent.java:107)
>
> net 
> .kunye.personnel.client.navigation.NavigationRootTopComponent.access 
> $000(NavigationRootTopComponent.java:36)
>
> net.kunye.personnel.client.navigation.NavigationRootTopComponent 
> $1.actionPerformed(NavigationRootTopComponent.java:67)
>     
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java: 
> 1995)
>
> javax.swing.AbstractButton 
> $Handler.actionPerformed(AbstractButton.java:2318)
>
> javax 
> .swing 
> .DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
>    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java: 
> 242)
>
> javax 
> .swing 
> .plaf 
> .basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
>    java.awt.Component.processMouseEvent(Component.java:6041)
>    javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
>    java.awt.Component.processEvent(Component.java:5806)
>    java.awt.Container.processEvent(Container.java:2058)
>    java.awt.Component.dispatchEventImpl(Component.java:4413)
>    java.awt.Container.dispatchEventImpl(Container.java:2116)
>    java.awt.Component.dispatchEvent(Component.java:4243)
>    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java: 
> 4322)
>    java.awt.LightweightDispatcher.processMouseEvent(Container.java: 
> 3986)
>    java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
>    java.awt.Container.dispatchEventImpl(Container.java:2102)
>    java.awt.Window.dispatchEventImpl(Window.java:2440)
>    java.awt.Component.dispatchEvent(Component.java:4243)
>    java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
>
> org 
> .netbeans 
> .core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
>
> java 
> .awt 
> .EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java: 
> 273)
>
> java 
> .awt 
> .EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
>
> java 
> .awt 
> .EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java: 
> 173)
>    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 
> 168)
>    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 
> 160)
>    java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
>
> java.rmi.RemoteException: Received invalid response code from  
> server: -1
>
> org 
> .apache 
> .openejb 
> .client.EJBObjectHandler.businessMethod(EJBObjectHandler.java:239)
>
> org 
> .apache 
> .openejb.client.EJBObjectHandler._invoke(EJBObjectHandler.java:157)
>
> org 
> .apache 
> .openejb 
> .client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:117)
>
> org 
> .apache 
> .openejb 
> .client 
> .proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:52)
>    $Proxy7.registerPerson(Unknown Source)
>
> net 
> .kunye 
> .personnel 
> .client 
> .employees 
> .add 
> .AddEmployeeWizardAction.performAction(AddEmployeeWizardAction.java: 
> 69)
>
> net 
> .kunye 
> .personnel 
> .client 
> .employees 
> .add.AddEmployeeWizardAction.openWizard(AddEmployeeWizardAction.java: 
> 47)
>
> net 
> .kunye 
> .personnel 
> .client 
> .navigation 
> .NavigationRootTopComponent 
> .btnAddEmployeeActionPerformed(NavigationRootTopComponent.java:107)
>
> net 
> .kunye.personnel.client.navigation.NavigationRootTopComponent.access 
> $000(NavigationRootTopComponent.java:36)
>
> net.kunye.personnel.client.navigation.NavigationRootTopComponent 
> $1.actionPerformed(NavigationRootTopComponent.java:67)
>     
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java: 
> 1995)
>
> javax.swing.AbstractButton 
> $Handler.actionPerformed(AbstractButton.java:2318)
>
> javax 
> .swing 
> .DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
>    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java: 
> 242)
>
> javax 
> .swing 
> .plaf 
> .basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
>    java.awt.Component.processMouseEvent(Component.java:6041)
>    javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
>    java.awt.Component.processEvent(Component.java:5806)
>    java.awt.Container.processEvent(Container.java:2058)
>    java.awt.Component.dispatchEventImpl(Component.java:4413)
>    java.awt.Container.dispatchEventImpl(Container.java:2116)
>    java.awt.Component.dispatchEvent(Component.java:4243)
>    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java: 
> 4322)
>    java.awt.LightweightDispatcher.processMouseEvent(Container.java: 
> 3986)
>    java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
>    java.awt.Container.dispatchEventImpl(Container.java:2102)
>    java.awt.Window.dispatchEventImpl(Window.java:2440)
>    java.awt.Component.dispatchEvent(Component.java:4243)
>    java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
>
> org 
> .netbeans 
> .core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:104)
>
> java 
> .awt 
> .EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java: 
> 273)
>
> java 
> .awt 
> .EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
>
> java 
> .awt 
> .EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java: 
> 173)
>    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 
> 168)
>    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 
> 160)
>    java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
>
> Quintin Beukes


Mime
View raw message