Yes, this is fixed in trunk. regards,
Karl On Fri, Mar 6, 2009 at 12:19 PM, Stuart McCulloch <mccu...@gmail.com> wrote: > 2009/3/6 <alexander.ber...@finnova.ch> > >> From time to time I get the following exception when using Apache Felix >> SCR. I am not yet sure if this is a problem of SCR or a framework bug. For >> me it looks like a framework bug caused by the hashCode() function of >> org.apache.felix.framework.ServiceReferenceImpl respectively >> org.apache.felix.framework.ServiceRegistrationImpl. These functions throw a >> IllegalStateException when the ServiceRegistration is not valid anymore. As >> to my understanding hashCode() should never throw an exception and always >> return the same integer value for the same object instance. If this contract >> is violated classes like HashMap will not work correctly, possibly >> introducing memory leaks if the Map (Set or whatever) entries are not >> removed due to changing hash codes or thrown exceptions. >> >> java.lang.IllegalStateException The service registration is no longer >> valid. >> org.apache.felix.framework.ServiceRegistrationImpl getReference >> ServiceRegistrationImpl.java 88 >> org.apache.felix.framework.ServiceReferenceImpl hashCode >> ServiceReferenceImpl.java 87 >> java.util.HashMap removeEntryForKey HashMap.java 548 >> java.util.HashMap remove HashMap.java 538 >> java.util.Collections$SynchronizedMap remove Collections.java 1982 >> org.apache.felix.scr.impl.DependencyManagerun getService >> DependencyManager.java 578 >> org.apache.felix.scr.impl.DependencyManager close DependencyManager.java >> 374 >> org.apache.felix.scr.impl.AbstractComponentManager disableInternal >> AbstractComponentManager.java 589 >> org.apache.felix.scr.impl.AbstractComponentManager disposeInternal >> AbstractComponentManager.java 616 >> org.apache.felix.scr.impl.AbstractComponentManager dispose >> AbstractComponentManager.java 272 >> org.apache.felix.scr.impl.ImmediateComponentManager dispose >> ImmediateComponentManager.java 120 >> org.apache.felix.scr.impl.BundleComponentActivator dispose >> BundleComponentActivator.java 261 >> org.apache.felix.scr.impl.Activator disposeComponents Activator.java 264 >> org.apache.felix.scr.impl.Activator bundleChanged Activator.java 177 >> org.apache.felix.framework.util.EventDispatcher >> invokeBundleListenerCallback EventDispatcher.java 745 >> org.apache.felix.framework.util.EventDispatcher fireEventImmediately >> EventDispatcher.java 674 >> org.apache.felix.framework.util.EventDispatcher fireBundleEvent >> EventDispatcher.java 587 >> org.apache.felix.framework.Felix fireBundleEvent Felix.java 3629 >> org.apache.felix.framework.Felix _stopBundle Felix.java 2076 >> org.apache.felix.framework.Felix stopBundle Felix.java 2034 >> org.apache.felix.framework.BundleImpl stop BundleImpl.java 418 >> org.apache.felix.framework.BundleImpl stop BundleImpl.java 405 >> org.apache.felix.shell.impl.StopCommandImpl execute StopCommandImpl.java >> 70 >> org.apache.felix.shell.impl.Activator$ShellServiceImpl executeCommand >> Activator.java 276 >> org.apache.felix.shell.remote.Shell run Shell.java 109 >> java.lang.Thread run Thread.java 619 >> >> Please tell me if I am wrong else I will open a JIRA issue for this >> problem. >> > > I believe this has already been fixed in trunk: a single service reference > is > now cached inside the registration (it uses an inner class) and neither the > registration or the reference now override the hashcode() method > > >> Kind regards >> - Alex >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@felix.apache.org >> For additional commands, e-mail: users-h...@felix.apache.org >> >> > > > -- > Cheers, Stuart > -- Karl Pauls karlpa...@gmail.com --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@felix.apache.org For additional commands, e-mail: users-h...@felix.apache.org