felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <Alexander.Ber...@finnova.ch>
Subject possible framework bug in hashCode() function
Date Fri, 06 Mar 2009 11:04:52 GMT
>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.

Kind regards
- Alex

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Mime
View raw message