felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Karl Pauls <karlpa...@gmail.com>
Subject Re: possible framework bug in hashCode() function
Date Fri, 06 Mar 2009 11:37:02 GMT
Yes, this is fixed in trunk.

regards,

Karl

On Fri, Mar 6, 2009 at 12:19 PM, Stuart McCulloch <mcculls@gmail.com> wrote:
> 2009/3/6 <Alexander.Berger@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-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>>
>
>
> --
> Cheers, Stuart
>



-- 
Karl Pauls
karlpauls@gmail.com

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


Mime
View raw message