[ https://issues.apache.org/jira/browse/SLING-2713?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Carsten Ziegeler resolved SLING-2713. ------------------------------------- Resolution: Fixed > java.lang.IllegalStateException: Service already unregistered during > unregistering of resource resolver > ------------------------------------------------------------------------------------------------------- > > Key: SLING-2713 > URL: https://issues.apache.org/jira/browse/SLING-2713 > Project: Sling > Issue Type: Bug > Components: ResourceResolver > Affects Versions: Resource Resolver 1.0.0 > Reporter: Carsten Ziegeler > Assignee: Carsten Ziegeler > Priority: Minor > Fix For: Resource Resolver 1.0.4 > > > When unregistering, the following stacktrace shows that > ResourceResolverFactoryActivator#unregisterFactory is invoked recursively > causing unregister() to be called more than once on the same registration > object > 23.01.2013 16:19:17.428 *ERROR* [FelixFrameworkWiring] > org.apache.sling.resourceresolver > [org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl] The > unbindResourceProvider method has thrown an exception > (java.lang.IllegalStateException: Service already unregistered.) > java.lang.IllegalStateException: Service already unregistered. > at > org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:123) > at > org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.unregisterFactory(ResourceResolverFactoryActivator.java:302) > at > org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.checkFactoryPreconditions(ResourceResolverFactoryActivator.java:331) > at > org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.unbindResourceProvider(ResourceResolverFactoryActivator.java:353) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:236) > at > org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37) > at > org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:613) > at > org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:496) > at > org.apache.felix.scr.impl.helper.BindMethod.invoke(BindMethod.java:38) > at > org.apache.felix.scr.impl.manager.DependencyManager.invokeUnbindMethod(DependencyManager.java:1404) > at > org.apache.felix.scr.impl.manager.ImmediateComponentManager.invokeUnbindMethod(ImmediateComponentManager.java:327) > at > org.apache.felix.scr.impl.manager.DependencyManager.serviceRemoved(DependencyManager.java:530) > at > org.apache.felix.scr.impl.manager.DependencyManager.serviceChanged(DependencyManager.java:274) > at > org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932) > at > org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793) > at > org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543) > at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4335) > at org.apache.felix.framework.Felix.access$000(Felix.java:74) > at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:390) > at > org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:148) > at > org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127) > at > org.apache.sling.servlets.resolver.internal.SlingServletResolver.destroyServlet(SlingServletResolver.java:1050) > at > org.apache.sling.servlets.resolver.internal.SlingServletResolver.destroyAllServlets(SlingServletResolver.java:1039) > at > org.apache.sling.servlets.resolver.internal.SlingServletResolver.deactivate(SlingServletResolver.java:921) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:236) > at > org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37) > at > org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:613) > at > org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:496) > at > org.apache.felix.scr.impl.helper.ActivateMethod.invoke(ActivateMethod.java:149) > at > org.apache.felix.scr.impl.manager.ImmediateComponentManager.disposeImplementationObject(ImmediateComponentManager.java:286) > at > org.apache.felix.scr.impl.manager.ImmediateComponentManager.deleteComponent(ImmediateComponentManager.java:160) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager$Active.ungetService(AbstractComponentManager.java:1661) > at > org.apache.felix.scr.impl.manager.ImmediateComponentManager.ungetService(ImmediateComponentManager.java:717) > at > org.apache.felix.framework.ServiceRegistrationImpl.ungetFactoryUnchecked(ServiceRegistrationImpl.java:349) > at > org.apache.felix.framework.ServiceRegistrationImpl.ungetService(ServiceRegistrationImpl.java:258) > at > org.apache.felix.framework.ServiceRegistry.ungetService(ServiceRegistry.java:389) > at org.apache.felix.framework.Felix.ungetService(Felix.java:3502) > at > org.apache.felix.framework.BundleContextImpl.ungetService(BundleContextImpl.java:486) > at > org.apache.felix.scr.impl.manager.DependencyManager.ungetService(DependencyManager.java:961) > at > org.apache.felix.scr.impl.manager.DependencyManager.serviceRemoved(DependencyManager.java:534) > at > org.apache.felix.scr.impl.manager.DependencyManager.serviceChanged(DependencyManager.java:274) > at > org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932) > at > org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793) > at > org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543) > at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4335) > at org.apache.felix.framework.Felix.access$000(Felix.java:74) > at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:390) > at > org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:148) > at > org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager.unregisterComponentService(AbstractComponentManager.java:702) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager$State.doDeactivate(AbstractComponentManager.java:1301) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager$Satisfied.deactivate(AbstractComponentManager.java:1599) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:555) > at > org.apache.felix.scr.impl.manager.DependencyManager.serviceRemoved(DependencyManager.java:451) > at > org.apache.felix.scr.impl.manager.DependencyManager.serviceChanged(DependencyManager.java:274) > at > org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932) > at > org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793) > at > org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543) > at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4335) > at org.apache.felix.framework.Felix.access$000(Felix.java:74) > at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:390) > at > org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:148) > at > org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:127) > at > org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.unregisterFactory(ResourceResolverFactoryActivator.java:302) > at > org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.checkFactoryPreconditions(ResourceResolverFactoryActivator.java:331) > at > org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.unbindResourceProviderFactory(ResourceResolverFactoryActivator.java:371) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira