[
https://issues.apache.org/jira/browse/FELIX-1188?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
S. Ali Tokmen updated FELIX-1188:
---------------------------------
Attachment: FELIX-1188.patch
Behavior detailed in
http://download.java.net/jdk7/docs/api/javax/management/remote/rmi/RMIConnectorServer.html#stop()
Solution is simple:
1. Call stop()
2. If there were pending connections, stop() closes all of them but throws an
IOException
3. Catch the exception and call stop() again
4. This time, it should not throw anything and stop successfully
Patch attached
> RmiConnectorActivator.stop throws exception and prints stack trace
> ------------------------------------------------------------------
>
> Key: FELIX-1188
> URL: https://issues.apache.org/jira/browse/FELIX-1188
> Project: Felix
> Issue Type: Bug
> Components: MOSGi
> Environment: SVN Revision 447866
> Reporter: S. Ali Tokmen
> Attachments: FELIX-1188.patch
>
>
> When stopping the MOSGi RMI registry bundle when there are pending JMX
> connections, it throws:
> java.io.IOException: Cannot bind to URL: javax.naming.CommunicationException
> [Root exception is java.rmi.NoSuchObjectException: no such object in table]
> at
> javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnectorServer.java:804)
> at
> javax.management.remote.rmi.RMIConnectorServer.stop(RMIConnectorServer.java:555)
> at
> org.apache.felix.mosgi.jmx.rmiconnector.RmiConnectorActivator.stopRmiConnector(RmiConnectorActivator.java:196)
> at
> org.apache.felix.mosgi.jmx.rmiconnector.RmiConnectorActivator.serviceChanged(RmiConnectorActivator.java:105)
> at
> org.apache.felix.framework.util.EventDispatcher$4.run(EventDispatcher.java:838)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:835)
> at
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:704)
> at
> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:635)
> at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3420)
> at org.apache.felix.framework.Felix.access$000(Felix.java:39)
> at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:622)
> at
> org.apache.felix.framework.ServiceRegistry.fireServiceChanged(ServiceRegistry.java:576)
> at
> org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:110)
> at
> org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:120)
> at
> org.apache.felix.mosgi.jmx.registry.mx4j.tools.naming.NamingService.stop(NamingService.java:75)
> at
> org.apache.felix.framework.util.SecureAction$Actions.run(SecureAction.java:1119)
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.apache.felix.framework.util.SecureAction.stopActivator(SecureAction.java:602)
> at org.apache.felix.framework.Felix.stopBundle(Felix.java:1815)
> at
> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1001)
> at
> org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:263)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: javax.naming.CommunicationException [Root exception is
> java.rmi.NoSuchObjectException: no such object in table]
> at
> com.sun.jndi.rmi.registry.RegistryContext.unbind(RegistryContext.java:160)
> at
> com.sun.jndi.toolkit.url.GenericURLContext.unbind(GenericURLContext.java:254)
> at javax.naming.InitialContext.unbind(InitialContext.java:416)
> at
> javax.management.remote.rmi.RMIConnectorServer.stop(RMIConnectorServer.java:547)
> ... 21 more
> Caused by: java.rmi.NoSuchObjectException: no such object in table
> at
> sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
> at
> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
> at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:359)
> at sun.rmi.registry.RegistryImpl_Stub.unbind(Unknown Source)
> at
> com.sun.jndi.rmi.registry.RegistryContext.unbind(RegistryContext.java:156)
> ... 24 more
> That behavior is detailed in
> http://download.java.net/jdk7/docs/api/javax/management/remote/rmi/RMIConnectorServer.html#stop()
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.