openejb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Quintin Beukes <quin...@skywalk.co.za>
Subject Re: InitialContext / Comms protocol recovery from a SystemException
Date Wed, 04 Nov 2009 12:00:56 GMT
Though, isn't there a way if a 3rd party SecurityService fails for some
reason for OpenEJB to recover from it?

Quintin Beukes


On Tue, Nov 3, 2009 at 11:12 PM, David Blevins <david.blevins@visi.com>wrote:

> 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
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message