You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Ali Naddaf <al...@naddaf.org> on 2008/10/31 21:41:49 UTC

java.lang.LinkageError exception

Hello all.

I have an OSGi based application (using Felix) that is under heavy 
development and a few days ago, I started seeing the following exception 
showing up in my logs:

java.lang.LinkageError: loader (instance of  
org/apache/felix/framework/searchpolicy/ContentClassLoader): attempted  
duplicate class definition for name: "org/simplecenter/upnp/av/DIDLParser"
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at 
org.apache.felix.framework.searchpolicy.ContentClassLoader.findClass(ContentClassLoader.java:149)
    at 
org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClassFromModule(ContentClassLoader.java:51)
    at 
org.apache.felix.framework.searchpolicy.ContentLoaderImpl.getClass(ContentLoaderImpl.java:121)
    at 
org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:86)
    at 
org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchImports(R4SearchPolicyCore.java:392)
    at 
org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:353)
    at 
org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:136)
    at 
org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
    at 
org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:70)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at 
org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.parseMetaData(BaseAVTransportListener.java:87)
    at 
org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.change(BaseAVTransportListener.java:78)
    at 
org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseStates(LastChangeListener.java:98)
    at 
org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseEvent(LastChangeListener.java:74)
    at 
org.simplecenter.upnp.av.controlpoint.LastChangeListener.LastChangeChanged(LastChangeListener.java:45)
    at 
org.simplecenter.upnp.av.renderer.RendererAVTransport.LastChangeChanged(RendererAVTransport.java:48)
    at 
org.simplecenter.upnp.av.renderer.RendererDeviceInstance$1.sendEvent(RendererDeviceInstance.java:101)
    at 
org.simplecenter.upnp.av.renderer.LastChangeEventSender.flushEvents(LastChangeEventSender.java:122)
    at 
org.simplecenter.upnp.av.renderer.LastChangeEventSender.access$300(LastChangeEventSender.java:38)
    at 
org.simplecenter.upnp.av.renderer.LastChangeEventSender$EventTimer.run(LastChangeEventSender.java:101)
    at java.lang.Thread.run(Unknown Source)

I cannot find any duplicate classes in my code and also this problem 
doesn't show itself all the times, and yet I haven't been able to find 
accurate reproduction steps. Anyhow, if any one has any suggestion as to 
what this may mean and how I can debug that, it would be greatly 
appreciated.

Many thanks
Ali


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


Re: java.lang.LinkageError exception

Posted by "Richard S. Hall" <he...@ungoverned.org>.
Ali Naddaf wrote:
> Hi Richard.
>
> Thanks for your suggestion. I made the upgrade and understandably, it 
> wasn't without some fun; some constructors and methods had changed 
> their signatures, etc. I have got the application up and running with 
> the new version and haven't run into my old issue yet so hopefully 
> that has been resolved.

Yeah, I think this will resolve it. Sorry for the pain when moving to 
1.2.2, but it should be worth it, since it is drastically improved over 
0.8.0. We are working on a 1.4.0 release that will also change the API 
for those embedding Felix, but that move should be much easier than from 
0.8.0 to 1.2.2. The new API is a proposal for a new standard framework 
API, so hopefully the embedding API will become more stable and work 
across framework implementations.

-> richard

> I, however, noticed having some less serious exceptions in my log and 
> looked further into it. Basically, I am seeing an exception in the 
> URLHandlersBundleStreamHandler.openConnection(URL) method. Here is the 
> part I am referring to:
>
> if (framework != null)
>        {
>            // TODO: optimize this to not use reflection if not needed
>            try
>            {
>                Class targetClass = 
> framework.getClass().getClassLoader().loadClass(
>                    URLHandlersBundleURLConnection.class.getName());
>                              return (URLConnection) 
> m_action.invoke(m_action.getConstructor(targetClass,
>                    new Class[]{URL.class, framework.getClass()}),
>                    new Object[]{url, framework});
>            }
>            catch (Exception ex)
>            {
>                throw new IOException(ex.getMessage());
>            }
>        }
>        throw new IOException("No framework context found");
>
> The problem happens when reflection fails to find the appropriate 
> constructor and throws a NoSuchMethodException; here the targetClass 
> resolves to 
> "org.apache.felix.framework.URLHandlersBundleURLConnection" and
> the exception is:
>
> java.lang.NoSuchMethodException: 
> org.apache.felix.framework.URLHandlersBundleURLConnection.<init>(java.net.URL, 
> org.simplecenter.application.SimpleCenterApplication)
>
> Note that SimpleCenterApplicaion extends Felix and  
> URLHandlersBundleURLConnection has the constructor 
> URLHandlersBundleURLConnection(URL, Felix).
>
> Any thoughts?
>
> Thanks
> Ali.
>
> P.S. In the older version, it was not relying on the reflection and 
> was calling the URLHandlersBundleURLConnection(URL, Felix) directly.
>
> Richard S. Hall wrote:
>> If you are using 0.8.0 of Felix, then you seriously need to upgrade. 
>> You can get the version of Felix by starting it and typing "version" 
>> in the Felix shell or by typing "ps" and looking at the version of 
>> the system bundle.
>>
>> If you really are using 0.8.0, then it is possible that this was 
>> related to a bug from a while ago where Felix was not properly 
>> guarding class definition with a lock. Try upgrading to the latest 
>> 1.2.2 release (1.4.0 will be coming soon too).
>>
>> -> richard
>>
>>
>> Ali Naddaf wrote:
>>> Hi Richard.
>>>
>>> In the manifest of felix.jar I see "Bundle-Version: 
>>> 0.8.0.incubator", so is that the version you are asking for? As for 
>>> what I was doing, this is a multimedia application and I was trying 
>>> to open a media file for playback. I am trying to see how I can 
>>> deterministically reproduce this but otherwise, do yo have any 
>>> suggestion as to how I can debug the issue?
>>>
>>> Thanks,
>>> Ali.
>>>
>>>
>>> Richard S. Hall wrote:
>>>> Which version of Felix are you using?
>>>>
>>>> What are you doing when this error occurs?
>>>>
>>>> It certainly would be great to find some way to reproduce it. I am 
>>>> sure it is explainable.
>>>>
>>>> -> richard
>>>>
>>>> Ali Naddaf wrote:
>>>>> Hello all.
>>>>>
>>>>> I have an OSGi based application (using Felix) that is under heavy 
>>>>> development and a few days ago, I started seeing the following 
>>>>> exception showing up in my logs:
>>>>>
>>>>> java.lang.LinkageError: loader (instance of  
>>>>> org/apache/felix/framework/searchpolicy/ContentClassLoader): 
>>>>> attempted  duplicate class definition for name: 
>>>>> "org/simplecenter/upnp/av/DIDLParser"
>>>>>    at java.lang.ClassLoader.defineClass1(Native Method)
>>>>>    at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>>    at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>>    at 
>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.findClass(ContentClassLoader.java:149) 
>>>>>
>>>>>    at 
>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClassFromModule(ContentClassLoader.java:51) 
>>>>>
>>>>>    at 
>>>>> org.apache.felix.framework.searchpolicy.ContentLoaderImpl.getClass(ContentLoaderImpl.java:121) 
>>>>>
>>>>>    at 
>>>>> org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:86) 
>>>>>
>>>>>    at 
>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchImports(R4SearchPolicyCore.java:392) 
>>>>>
>>>>>    at 
>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:353) 
>>>>>
>>>>>    at 
>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:136) 
>>>>>
>>>>>    at 
>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45) 
>>>>>
>>>>>    at 
>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:70) 
>>>>>
>>>>>    at java.lang.ClassLoader.loadClass(Unknown Source)
>>>>>    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>>>>>    at 
>>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.parseMetaData(BaseAVTransportListener.java:87) 
>>>>>
>>>>>    at 
>>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.change(BaseAVTransportListener.java:78) 
>>>>>
>>>>>    at 
>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseStates(LastChangeListener.java:98) 
>>>>>
>>>>>    at 
>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseEvent(LastChangeListener.java:74) 
>>>>>
>>>>>    at 
>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.LastChangeChanged(LastChangeListener.java:45) 
>>>>>
>>>>>    at 
>>>>> org.simplecenter.upnp.av.renderer.RendererAVTransport.LastChangeChanged(RendererAVTransport.java:48) 
>>>>>
>>>>>    at 
>>>>> org.simplecenter.upnp.av.renderer.RendererDeviceInstance$1.sendEvent(RendererDeviceInstance.java:101) 
>>>>>
>>>>>    at 
>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.flushEvents(LastChangeEventSender.java:122) 
>>>>>
>>>>>    at 
>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.access$300(LastChangeEventSender.java:38) 
>>>>>
>>>>>    at 
>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender$EventTimer.run(LastChangeEventSender.java:101) 
>>>>>
>>>>>    at java.lang.Thread.run(Unknown Source)
>>>>>
>>>>> I cannot find any duplicate classes in my code and also this 
>>>>> problem doesn't show itself all the times, and yet I haven't been 
>>>>> able to find accurate reproduction steps. Anyhow, if any one has 
>>>>> any suggestion as to what this may mean and how I can debug that, 
>>>>> it would be greatly appreciated.
>>>>>
>>>>> Many thanks
>>>>> Ali
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>

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


Re: java.lang.LinkageError exception

Posted by Karl Pauls <ka...@gmail.com>.
Well, you don't need to make the changes yourself because I think it
should be fixed in trunk. I would recommend for you to grab the
current trunk and get that working. As of 1.4.0, it should be out by
next week.

Please test the current trunk and close the JIRA issue if it fixes your issue.

regards,

Karl

On Mon, Nov 3, 2008 at 5:52 PM, Ali Naddaf <al...@naddaf.org> wrote:
> Thanks for your note Karl. I will probably need to do a local fix for the
> issue before 1.4 is released and since our app is going into production, I
> would like to ask for your recommendation: should I grab 1.4 (which is not
> released yet) and make the changes there and go with that or should I stick
> with 1.2.2?
>
> Ali.
>
> Karl Pauls wrote:
>>
>> Thanks. I will track work on the JIRA issue.
>>
>> regards,
>>
>> Karl
>>
>> On Mon, Nov 3, 2008 at 2:19 PM, Ali Naddaf <al...@naddaf.org> wrote:
>>
>>>
>>> I just created FELIX-800.
>>>
>>> Many thanks
>>> Ali.
>>>
>>>
>>>
>>> Karl Pauls wrote:
>>>
>>>>
>>>> Good catch. I didn't think about the possibility that somebody could
>>>> extend felix when I did this. Could you please create a JIRA for this.
>>>> I will fix it asap.
>>>>
>>>> regards,
>>>>
>>>> Karl
>>>>
>>>> On Mon, Nov 3, 2008 at 6:36 AM, Ali Naddaf <al...@naddaf.org> wrote:
>>>>
>>>>
>>>>>
>>>>> Hi Richard.
>>>>>
>>>>> Thanks for your suggestion. I made the upgrade and understandably, it
>>>>> wasn't
>>>>> without some fun; some constructors and methods had changed their
>>>>> signatures, etc. I have got the application up and running with the new
>>>>> version and haven't run into my old issue yet so hopefully that has
>>>>> been
>>>>> resolved. I, however, noticed having some less serious exceptions in my
>>>>> log
>>>>> and looked further into it. Basically, I am seeing an exception in the
>>>>> URLHandlersBundleStreamHandler.openConnection(URL) method. Here is the
>>>>> part
>>>>> I am referring to:
>>>>>
>>>>> if (framework != null)
>>>>>     {
>>>>>         // TODO: optimize this to not use reflection if not needed
>>>>>         try
>>>>>         {
>>>>>             Class targetClass =
>>>>> framework.getClass().getClassLoader().loadClass(
>>>>>                 URLHandlersBundleURLConnection.class.getName());
>>>>>                           return (URLConnection)
>>>>> m_action.invoke(m_action.getConstructor(targetClass,
>>>>>                 new Class[]{URL.class, framework.getClass()}),
>>>>>                 new Object[]{url, framework});
>>>>>         }
>>>>>         catch (Exception ex)
>>>>>         {
>>>>>             throw new IOException(ex.getMessage());
>>>>>         }
>>>>>     }
>>>>>     throw new IOException("No framework context found");
>>>>>
>>>>> The problem happens when reflection fails to find the appropriate
>>>>> constructor and throws a NoSuchMethodException; here the targetClass
>>>>> resolves to "org.apache.felix.framework.URLHandlersBundleURLConnection"
>>>>> and
>>>>> the exception is:
>>>>>
>>>>> java.lang.NoSuchMethodException:
>>>>>
>>>>>
>>>>> org.apache.felix.framework.URLHandlersBundleURLConnection.<init>(java.net.URL,
>>>>> org.simplecenter.application.SimpleCenterApplication)
>>>>>
>>>>> Note that SimpleCenterApplicaion extends Felix and
>>>>>  URLHandlersBundleURLConnection has the constructor
>>>>> URLHandlersBundleURLConnection(URL, Felix).
>>>>>
>>>>> Any thoughts?
>>>>>
>>>>> Thanks
>>>>> Ali.
>>>>>
>>>>> P.S. In the older version, it was not relying on the reflection and was
>>>>> calling the URLHandlersBundleURLConnection(URL, Felix) directly.
>>>>>
>>>>> Richard S. Hall wrote:
>>>>>
>>>>>
>>>>>>
>>>>>> If you are using 0.8.0 of Felix, then you seriously need to upgrade.
>>>>>> You
>>>>>> can get the version of Felix by starting it and typing "version" in
>>>>>> the
>>>>>> Felix shell or by typing "ps" and looking at the version of the system
>>>>>> bundle.
>>>>>>
>>>>>> If you really are using 0.8.0, then it is possible that this was
>>>>>> related
>>>>>> to a bug from a while ago where Felix was not properly guarding class
>>>>>> definition with a lock. Try upgrading to the latest 1.2.2 release
>>>>>> (1.4.0
>>>>>> will be coming soon too).
>>>>>>
>>>>>> -> richard
>>>>>>
>>>>>>
>>>>>> Ali Naddaf wrote:
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Hi Richard.
>>>>>>>
>>>>>>> In the manifest of felix.jar I see "Bundle-Version: 0.8.0.incubator",
>>>>>>> so
>>>>>>> is that the version you are asking for? As for what I was doing, this
>>>>>>> is a
>>>>>>> multimedia application and I was trying to open a media file for
>>>>>>> playback. I
>>>>>>> am trying to see how I can deterministically reproduce this but
>>>>>>> otherwise,
>>>>>>> do yo have any suggestion as to how I can debug the issue?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Ali.
>>>>>>>
>>>>>>>
>>>>>>> Richard S. Hall wrote:
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> Which version of Felix are you using?
>>>>>>>>
>>>>>>>> What are you doing when this error occurs?
>>>>>>>>
>>>>>>>> It certainly would be great to find some way to reproduce it. I am
>>>>>>>> sure
>>>>>>>> it is explainable.
>>>>>>>>
>>>>>>>> -> richard
>>>>>>>>
>>>>>>>> Ali Naddaf wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Hello all.
>>>>>>>>>
>>>>>>>>> I have an OSGi based application (using Felix) that is under heavy
>>>>>>>>> development and a few days ago, I started seeing the following
>>>>>>>>> exception
>>>>>>>>> showing up in my logs:
>>>>>>>>>
>>>>>>>>> java.lang.LinkageError: loader (instance of
>>>>>>>>>  org/apache/felix/framework/searchpolicy/ContentClassLoader):
>>>>>>>>> attempted
>>>>>>>>>  duplicate class definition for name:
>>>>>>>>> "org/simplecenter/upnp/av/DIDLParser"
>>>>>>>>>  at java.lang.ClassLoader.defineClass1(Native Method)
>>>>>>>>>  at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>>>>>>  at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.findClass(ContentClassLoader.java:149)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClassFromModule(ContentClassLoader.java:51)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.felix.framework.searchpolicy.ContentLoaderImpl.getClass(ContentLoaderImpl.java:121)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:86)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchImports(R4SearchPolicyCore.java:392)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:353)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:136)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:70)
>>>>>>>>>  at java.lang.ClassLoader.loadClass(Unknown Source)
>>>>>>>>>  at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.parseMetaData(BaseAVTransportListener.java:87)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.change(BaseAVTransportListener.java:78)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseStates(LastChangeListener.java:98)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseEvent(LastChangeListener.java:74)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.LastChangeChanged(LastChangeListener.java:45)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.simplecenter.upnp.av.renderer.RendererAVTransport.LastChangeChanged(RendererAVTransport.java:48)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.simplecenter.upnp.av.renderer.RendererDeviceInstance$1.sendEvent(RendererDeviceInstance.java:101)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.flushEvents(LastChangeEventSender.java:122)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.access$300(LastChangeEventSender.java:38)
>>>>>>>>>  at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender$EventTimer.run(LastChangeEventSender.java:101)
>>>>>>>>>  at java.lang.Thread.run(Unknown Source)
>>>>>>>>>
>>>>>>>>> I cannot find any duplicate classes in my code and also this
>>>>>>>>> problem
>>>>>>>>> doesn't show itself all the times, and yet I haven't been able to
>>>>>>>>> find
>>>>>>>>> accurate reproduction steps. Anyhow, if any one has any suggestion
>>>>>>>>> as
>>>>>>>>> to
>>>>>>>>> what this may mean and how I can debug that, it would be greatly
>>>>>>>>> appreciated.
>>>>>>>>>
>>>>>>>>> Many thanks
>>>>>>>>> Ali
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>>
>>>
>>>
>>
>>
>>
>>
>



-- 
Karl Pauls
karlpauls@gmail.com

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


Re: java.lang.LinkageError exception

Posted by Ali Naddaf <al...@naddaf.org>.
Thanks for your note Karl. I will probably need to do a local fix for 
the issue before 1.4 is released and since our app is going into 
production, I would like to ask for your recommendation: should I grab 
1.4 (which is not released yet) and make the changes there and go with 
that or should I stick with 1.2.2?

Ali.

Karl Pauls wrote:
> Thanks. I will track work on the JIRA issue.
>
> regards,
>
> Karl
>
> On Mon, Nov 3, 2008 at 2:19 PM, Ali Naddaf <al...@naddaf.org> wrote:
>   
>> I just created FELIX-800.
>>
>> Many thanks
>> Ali.
>>
>>
>>
>> Karl Pauls wrote:
>>     
>>> Good catch. I didn't think about the possibility that somebody could
>>> extend felix when I did this. Could you please create a JIRA for this.
>>> I will fix it asap.
>>>
>>> regards,
>>>
>>> Karl
>>>
>>> On Mon, Nov 3, 2008 at 6:36 AM, Ali Naddaf <al...@naddaf.org> wrote:
>>>
>>>       
>>>> Hi Richard.
>>>>
>>>> Thanks for your suggestion. I made the upgrade and understandably, it
>>>> wasn't
>>>> without some fun; some constructors and methods had changed their
>>>> signatures, etc. I have got the application up and running with the new
>>>> version and haven't run into my old issue yet so hopefully that has been
>>>> resolved. I, however, noticed having some less serious exceptions in my
>>>> log
>>>> and looked further into it. Basically, I am seeing an exception in the
>>>> URLHandlersBundleStreamHandler.openConnection(URL) method. Here is the
>>>> part
>>>> I am referring to:
>>>>
>>>> if (framework != null)
>>>>      {
>>>>          // TODO: optimize this to not use reflection if not needed
>>>>          try
>>>>          {
>>>>              Class targetClass =
>>>> framework.getClass().getClassLoader().loadClass(
>>>>                  URLHandlersBundleURLConnection.class.getName());
>>>>                            return (URLConnection)
>>>> m_action.invoke(m_action.getConstructor(targetClass,
>>>>                  new Class[]{URL.class, framework.getClass()}),
>>>>                  new Object[]{url, framework});
>>>>          }
>>>>          catch (Exception ex)
>>>>          {
>>>>              throw new IOException(ex.getMessage());
>>>>          }
>>>>      }
>>>>      throw new IOException("No framework context found");
>>>>
>>>> The problem happens when reflection fails to find the appropriate
>>>> constructor and throws a NoSuchMethodException; here the targetClass
>>>> resolves to "org.apache.felix.framework.URLHandlersBundleURLConnection"
>>>> and
>>>> the exception is:
>>>>
>>>> java.lang.NoSuchMethodException:
>>>>
>>>> org.apache.felix.framework.URLHandlersBundleURLConnection.<init>(java.net.URL,
>>>> org.simplecenter.application.SimpleCenterApplication)
>>>>
>>>> Note that SimpleCenterApplicaion extends Felix and
>>>>  URLHandlersBundleURLConnection has the constructor
>>>> URLHandlersBundleURLConnection(URL, Felix).
>>>>
>>>> Any thoughts?
>>>>
>>>> Thanks
>>>> Ali.
>>>>
>>>> P.S. In the older version, it was not relying on the reflection and was
>>>> calling the URLHandlersBundleURLConnection(URL, Felix) directly.
>>>>
>>>> Richard S. Hall wrote:
>>>>
>>>>         
>>>>> If you are using 0.8.0 of Felix, then you seriously need to upgrade. You
>>>>> can get the version of Felix by starting it and typing "version" in the
>>>>> Felix shell or by typing "ps" and looking at the version of the system
>>>>> bundle.
>>>>>
>>>>> If you really are using 0.8.0, then it is possible that this was related
>>>>> to a bug from a while ago where Felix was not properly guarding class
>>>>> definition with a lock. Try upgrading to the latest 1.2.2 release (1.4.0
>>>>> will be coming soon too).
>>>>>
>>>>> -> richard
>>>>>
>>>>>
>>>>> Ali Naddaf wrote:
>>>>>
>>>>>           
>>>>>> Hi Richard.
>>>>>>
>>>>>> In the manifest of felix.jar I see "Bundle-Version: 0.8.0.incubator",
>>>>>> so
>>>>>> is that the version you are asking for? As for what I was doing, this
>>>>>> is a
>>>>>> multimedia application and I was trying to open a media file for
>>>>>> playback. I
>>>>>> am trying to see how I can deterministically reproduce this but
>>>>>> otherwise,
>>>>>> do yo have any suggestion as to how I can debug the issue?
>>>>>>
>>>>>> Thanks,
>>>>>> Ali.
>>>>>>
>>>>>>
>>>>>> Richard S. Hall wrote:
>>>>>>
>>>>>>             
>>>>>>> Which version of Felix are you using?
>>>>>>>
>>>>>>> What are you doing when this error occurs?
>>>>>>>
>>>>>>> It certainly would be great to find some way to reproduce it. I am
>>>>>>> sure
>>>>>>> it is explainable.
>>>>>>>
>>>>>>> -> richard
>>>>>>>
>>>>>>> Ali Naddaf wrote:
>>>>>>>
>>>>>>>               
>>>>>>>> Hello all.
>>>>>>>>
>>>>>>>> I have an OSGi based application (using Felix) that is under heavy
>>>>>>>> development and a few days ago, I started seeing the following
>>>>>>>> exception
>>>>>>>> showing up in my logs:
>>>>>>>>
>>>>>>>> java.lang.LinkageError: loader (instance of
>>>>>>>>  org/apache/felix/framework/searchpolicy/ContentClassLoader):
>>>>>>>> attempted
>>>>>>>>  duplicate class definition for name:
>>>>>>>> "org/simplecenter/upnp/av/DIDLParser"
>>>>>>>>  at java.lang.ClassLoader.defineClass1(Native Method)
>>>>>>>>  at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>>>>>  at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.findClass(ContentClassLoader.java:149)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClassFromModule(ContentClassLoader.java:51)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.apache.felix.framework.searchpolicy.ContentLoaderImpl.getClass(ContentLoaderImpl.java:121)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:86)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchImports(R4SearchPolicyCore.java:392)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:353)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:136)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:70)
>>>>>>>>  at java.lang.ClassLoader.loadClass(Unknown Source)
>>>>>>>>  at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.parseMetaData(BaseAVTransportListener.java:87)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.change(BaseAVTransportListener.java:78)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseStates(LastChangeListener.java:98)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseEvent(LastChangeListener.java:74)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.LastChangeChanged(LastChangeListener.java:45)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.simplecenter.upnp.av.renderer.RendererAVTransport.LastChangeChanged(RendererAVTransport.java:48)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.simplecenter.upnp.av.renderer.RendererDeviceInstance$1.sendEvent(RendererDeviceInstance.java:101)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.flushEvents(LastChangeEventSender.java:122)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.access$300(LastChangeEventSender.java:38)
>>>>>>>>  at
>>>>>>>>
>>>>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender$EventTimer.run(LastChangeEventSender.java:101)
>>>>>>>>  at java.lang.Thread.run(Unknown Source)
>>>>>>>>
>>>>>>>> I cannot find any duplicate classes in my code and also this problem
>>>>>>>> doesn't show itself all the times, and yet I haven't been able to
>>>>>>>> find
>>>>>>>> accurate reproduction steps. Anyhow, if any one has any suggestion as
>>>>>>>> to
>>>>>>>> what this may mean and how I can debug that, it would be greatly
>>>>>>>> appreciated.
>>>>>>>>
>>>>>>>> Many thanks
>>>>>>>> Ali
>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>>>>
>>>>>>>>
>>>>>>>>                 
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>>
>>>>>>
>>>>>>             
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>
>>>>>
>>>>>           
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>
>>>>
>>>>
>>>>         
>>>
>>>
>>>       
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>>
>>     
>
>
>
>   

Re: java.lang.LinkageError exception

Posted by Karl Pauls <ka...@gmail.com>.
Thanks. I will track work on the JIRA issue.

regards,

Karl

On Mon, Nov 3, 2008 at 2:19 PM, Ali Naddaf <al...@naddaf.org> wrote:
> I just created FELIX-800.
>
> Many thanks
> Ali.
>
>
>
> Karl Pauls wrote:
>>
>> Good catch. I didn't think about the possibility that somebody could
>> extend felix when I did this. Could you please create a JIRA for this.
>> I will fix it asap.
>>
>> regards,
>>
>> Karl
>>
>> On Mon, Nov 3, 2008 at 6:36 AM, Ali Naddaf <al...@naddaf.org> wrote:
>>
>>>
>>> Hi Richard.
>>>
>>> Thanks for your suggestion. I made the upgrade and understandably, it
>>> wasn't
>>> without some fun; some constructors and methods had changed their
>>> signatures, etc. I have got the application up and running with the new
>>> version and haven't run into my old issue yet so hopefully that has been
>>> resolved. I, however, noticed having some less serious exceptions in my
>>> log
>>> and looked further into it. Basically, I am seeing an exception in the
>>> URLHandlersBundleStreamHandler.openConnection(URL) method. Here is the
>>> part
>>> I am referring to:
>>>
>>> if (framework != null)
>>>      {
>>>          // TODO: optimize this to not use reflection if not needed
>>>          try
>>>          {
>>>              Class targetClass =
>>> framework.getClass().getClassLoader().loadClass(
>>>                  URLHandlersBundleURLConnection.class.getName());
>>>                            return (URLConnection)
>>> m_action.invoke(m_action.getConstructor(targetClass,
>>>                  new Class[]{URL.class, framework.getClass()}),
>>>                  new Object[]{url, framework});
>>>          }
>>>          catch (Exception ex)
>>>          {
>>>              throw new IOException(ex.getMessage());
>>>          }
>>>      }
>>>      throw new IOException("No framework context found");
>>>
>>> The problem happens when reflection fails to find the appropriate
>>> constructor and throws a NoSuchMethodException; here the targetClass
>>> resolves to "org.apache.felix.framework.URLHandlersBundleURLConnection"
>>> and
>>> the exception is:
>>>
>>> java.lang.NoSuchMethodException:
>>>
>>> org.apache.felix.framework.URLHandlersBundleURLConnection.<init>(java.net.URL,
>>> org.simplecenter.application.SimpleCenterApplication)
>>>
>>> Note that SimpleCenterApplicaion extends Felix and
>>>  URLHandlersBundleURLConnection has the constructor
>>> URLHandlersBundleURLConnection(URL, Felix).
>>>
>>> Any thoughts?
>>>
>>> Thanks
>>> Ali.
>>>
>>> P.S. In the older version, it was not relying on the reflection and was
>>> calling the URLHandlersBundleURLConnection(URL, Felix) directly.
>>>
>>> Richard S. Hall wrote:
>>>
>>>>
>>>> If you are using 0.8.0 of Felix, then you seriously need to upgrade. You
>>>> can get the version of Felix by starting it and typing "version" in the
>>>> Felix shell or by typing "ps" and looking at the version of the system
>>>> bundle.
>>>>
>>>> If you really are using 0.8.0, then it is possible that this was related
>>>> to a bug from a while ago where Felix was not properly guarding class
>>>> definition with a lock. Try upgrading to the latest 1.2.2 release (1.4.0
>>>> will be coming soon too).
>>>>
>>>> -> richard
>>>>
>>>>
>>>> Ali Naddaf wrote:
>>>>
>>>>>
>>>>> Hi Richard.
>>>>>
>>>>> In the manifest of felix.jar I see "Bundle-Version: 0.8.0.incubator",
>>>>> so
>>>>> is that the version you are asking for? As for what I was doing, this
>>>>> is a
>>>>> multimedia application and I was trying to open a media file for
>>>>> playback. I
>>>>> am trying to see how I can deterministically reproduce this but
>>>>> otherwise,
>>>>> do yo have any suggestion as to how I can debug the issue?
>>>>>
>>>>> Thanks,
>>>>> Ali.
>>>>>
>>>>>
>>>>> Richard S. Hall wrote:
>>>>>
>>>>>>
>>>>>> Which version of Felix are you using?
>>>>>>
>>>>>> What are you doing when this error occurs?
>>>>>>
>>>>>> It certainly would be great to find some way to reproduce it. I am
>>>>>> sure
>>>>>> it is explainable.
>>>>>>
>>>>>> -> richard
>>>>>>
>>>>>> Ali Naddaf wrote:
>>>>>>
>>>>>>>
>>>>>>> Hello all.
>>>>>>>
>>>>>>> I have an OSGi based application (using Felix) that is under heavy
>>>>>>> development and a few days ago, I started seeing the following
>>>>>>> exception
>>>>>>> showing up in my logs:
>>>>>>>
>>>>>>> java.lang.LinkageError: loader (instance of
>>>>>>>  org/apache/felix/framework/searchpolicy/ContentClassLoader):
>>>>>>> attempted
>>>>>>>  duplicate class definition for name:
>>>>>>> "org/simplecenter/upnp/av/DIDLParser"
>>>>>>>  at java.lang.ClassLoader.defineClass1(Native Method)
>>>>>>>  at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>>>>  at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>>>>  at
>>>>>>>
>>>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.findClass(ContentClassLoader.java:149)
>>>>>>>  at
>>>>>>>
>>>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClassFromModule(ContentClassLoader.java:51)
>>>>>>>  at
>>>>>>>
>>>>>>> org.apache.felix.framework.searchpolicy.ContentLoaderImpl.getClass(ContentLoaderImpl.java:121)
>>>>>>>  at
>>>>>>>
>>>>>>> org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:86)
>>>>>>>  at
>>>>>>>
>>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchImports(R4SearchPolicyCore.java:392)
>>>>>>>  at
>>>>>>>
>>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:353)
>>>>>>>  at
>>>>>>>
>>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:136)
>>>>>>>  at
>>>>>>>
>>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
>>>>>>>  at
>>>>>>>
>>>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:70)
>>>>>>>  at java.lang.ClassLoader.loadClass(Unknown Source)
>>>>>>>  at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>>>>>>>  at
>>>>>>>
>>>>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.parseMetaData(BaseAVTransportListener.java:87)
>>>>>>>  at
>>>>>>>
>>>>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.change(BaseAVTransportListener.java:78)
>>>>>>>  at
>>>>>>>
>>>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseStates(LastChangeListener.java:98)
>>>>>>>  at
>>>>>>>
>>>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseEvent(LastChangeListener.java:74)
>>>>>>>  at
>>>>>>>
>>>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.LastChangeChanged(LastChangeListener.java:45)
>>>>>>>  at
>>>>>>>
>>>>>>> org.simplecenter.upnp.av.renderer.RendererAVTransport.LastChangeChanged(RendererAVTransport.java:48)
>>>>>>>  at
>>>>>>>
>>>>>>> org.simplecenter.upnp.av.renderer.RendererDeviceInstance$1.sendEvent(RendererDeviceInstance.java:101)
>>>>>>>  at
>>>>>>>
>>>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.flushEvents(LastChangeEventSender.java:122)
>>>>>>>  at
>>>>>>>
>>>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.access$300(LastChangeEventSender.java:38)
>>>>>>>  at
>>>>>>>
>>>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender$EventTimer.run(LastChangeEventSender.java:101)
>>>>>>>  at java.lang.Thread.run(Unknown Source)
>>>>>>>
>>>>>>> I cannot find any duplicate classes in my code and also this problem
>>>>>>> doesn't show itself all the times, and yet I haven't been able to
>>>>>>> find
>>>>>>> accurate reproduction steps. Anyhow, if any one has any suggestion as
>>>>>>> to
>>>>>>> what this may mean and how I can debug that, it would be greatly
>>>>>>> appreciated.
>>>>>>>
>>>>>>> Many thanks
>>>>>>> Ali
>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>>
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>>
>>>
>>>
>>
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>



-- 
Karl Pauls
karlpauls@gmail.com

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


Re: java.lang.LinkageError exception

Posted by Ali Naddaf <al...@naddaf.org>.
I just created FELIX-800.

Many thanks
Ali.



Karl Pauls wrote:
> Good catch. I didn't think about the possibility that somebody could
> extend felix when I did this. Could you please create a JIRA for this.
> I will fix it asap.
>
> regards,
>
> Karl
>
> On Mon, Nov 3, 2008 at 6:36 AM, Ali Naddaf <al...@naddaf.org> wrote:
>   
>> Hi Richard.
>>
>> Thanks for your suggestion. I made the upgrade and understandably, it wasn't
>> without some fun; some constructors and methods had changed their
>> signatures, etc. I have got the application up and running with the new
>> version and haven't run into my old issue yet so hopefully that has been
>> resolved. I, however, noticed having some less serious exceptions in my log
>> and looked further into it. Basically, I am seeing an exception in the
>> URLHandlersBundleStreamHandler.openConnection(URL) method. Here is the part
>> I am referring to:
>>
>> if (framework != null)
>>       {
>>           // TODO: optimize this to not use reflection if not needed
>>           try
>>           {
>>               Class targetClass =
>> framework.getClass().getClassLoader().loadClass(
>>                   URLHandlersBundleURLConnection.class.getName());
>>                             return (URLConnection)
>> m_action.invoke(m_action.getConstructor(targetClass,
>>                   new Class[]{URL.class, framework.getClass()}),
>>                   new Object[]{url, framework});
>>           }
>>           catch (Exception ex)
>>           {
>>               throw new IOException(ex.getMessage());
>>           }
>>       }
>>       throw new IOException("No framework context found");
>>
>> The problem happens when reflection fails to find the appropriate
>> constructor and throws a NoSuchMethodException; here the targetClass
>> resolves to "org.apache.felix.framework.URLHandlersBundleURLConnection" and
>> the exception is:
>>
>> java.lang.NoSuchMethodException:
>> org.apache.felix.framework.URLHandlersBundleURLConnection.<init>(java.net.URL,
>> org.simplecenter.application.SimpleCenterApplication)
>>
>> Note that SimpleCenterApplicaion extends Felix and
>>  URLHandlersBundleURLConnection has the constructor
>> URLHandlersBundleURLConnection(URL, Felix).
>>
>> Any thoughts?
>>
>> Thanks
>> Ali.
>>
>> P.S. In the older version, it was not relying on the reflection and was
>> calling the URLHandlersBundleURLConnection(URL, Felix) directly.
>>
>> Richard S. Hall wrote:
>>     
>>> If you are using 0.8.0 of Felix, then you seriously need to upgrade. You
>>> can get the version of Felix by starting it and typing "version" in the
>>> Felix shell or by typing "ps" and looking at the version of the system
>>> bundle.
>>>
>>> If you really are using 0.8.0, then it is possible that this was related
>>> to a bug from a while ago where Felix was not properly guarding class
>>> definition with a lock. Try upgrading to the latest 1.2.2 release (1.4.0
>>> will be coming soon too).
>>>
>>> -> richard
>>>
>>>
>>> Ali Naddaf wrote:
>>>       
>>>> Hi Richard.
>>>>
>>>> In the manifest of felix.jar I see "Bundle-Version: 0.8.0.incubator", so
>>>> is that the version you are asking for? As for what I was doing, this is a
>>>> multimedia application and I was trying to open a media file for playback. I
>>>> am trying to see how I can deterministically reproduce this but otherwise,
>>>> do yo have any suggestion as to how I can debug the issue?
>>>>
>>>> Thanks,
>>>> Ali.
>>>>
>>>>
>>>> Richard S. Hall wrote:
>>>>         
>>>>> Which version of Felix are you using?
>>>>>
>>>>> What are you doing when this error occurs?
>>>>>
>>>>> It certainly would be great to find some way to reproduce it. I am sure
>>>>> it is explainable.
>>>>>
>>>>> -> richard
>>>>>
>>>>> Ali Naddaf wrote:
>>>>>           
>>>>>> Hello all.
>>>>>>
>>>>>> I have an OSGi based application (using Felix) that is under heavy
>>>>>> development and a few days ago, I started seeing the following exception
>>>>>> showing up in my logs:
>>>>>>
>>>>>> java.lang.LinkageError: loader (instance of
>>>>>>  org/apache/felix/framework/searchpolicy/ContentClassLoader): attempted
>>>>>>  duplicate class definition for name: "org/simplecenter/upnp/av/DIDLParser"
>>>>>>   at java.lang.ClassLoader.defineClass1(Native Method)
>>>>>>   at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>>>   at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>>>   at
>>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.findClass(ContentClassLoader.java:149)
>>>>>>   at
>>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClassFromModule(ContentClassLoader.java:51)
>>>>>>   at
>>>>>> org.apache.felix.framework.searchpolicy.ContentLoaderImpl.getClass(ContentLoaderImpl.java:121)
>>>>>>   at
>>>>>> org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:86)
>>>>>>   at
>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchImports(R4SearchPolicyCore.java:392)
>>>>>>   at
>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:353)
>>>>>>   at
>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:136)
>>>>>>   at
>>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
>>>>>>   at
>>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:70)
>>>>>>   at java.lang.ClassLoader.loadClass(Unknown Source)
>>>>>>   at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>>>>>>   at
>>>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.parseMetaData(BaseAVTransportListener.java:87)
>>>>>>   at
>>>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.change(BaseAVTransportListener.java:78)
>>>>>>   at
>>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseStates(LastChangeListener.java:98)
>>>>>>   at
>>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseEvent(LastChangeListener.java:74)
>>>>>>   at
>>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.LastChangeChanged(LastChangeListener.java:45)
>>>>>>   at
>>>>>> org.simplecenter.upnp.av.renderer.RendererAVTransport.LastChangeChanged(RendererAVTransport.java:48)
>>>>>>   at
>>>>>> org.simplecenter.upnp.av.renderer.RendererDeviceInstance$1.sendEvent(RendererDeviceInstance.java:101)
>>>>>>   at
>>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.flushEvents(LastChangeEventSender.java:122)
>>>>>>   at
>>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.access$300(LastChangeEventSender.java:38)
>>>>>>   at
>>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender$EventTimer.run(LastChangeEventSender.java:101)
>>>>>>   at java.lang.Thread.run(Unknown Source)
>>>>>>
>>>>>> I cannot find any duplicate classes in my code and also this problem
>>>>>> doesn't show itself all the times, and yet I haven't been able to find
>>>>>> accurate reproduction steps. Anyhow, if any one has any suggestion as to
>>>>>> what this may mean and how I can debug that, it would be greatly
>>>>>> appreciated.
>>>>>>
>>>>>> Many thanks
>>>>>> Ali
>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>>
>>>>>>             
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>
>>>>>           
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>
>>>>         
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>>
>>>       
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>>
>>     
>
>
>
>   


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


Re: java.lang.LinkageError exception

Posted by Karl Pauls <ka...@gmail.com>.
Good catch. I didn't think about the possibility that somebody could
extend felix when I did this. Could you please create a JIRA for this.
I will fix it asap.

regards,

Karl

On Mon, Nov 3, 2008 at 6:36 AM, Ali Naddaf <al...@naddaf.org> wrote:
> Hi Richard.
>
> Thanks for your suggestion. I made the upgrade and understandably, it wasn't
> without some fun; some constructors and methods had changed their
> signatures, etc. I have got the application up and running with the new
> version and haven't run into my old issue yet so hopefully that has been
> resolved. I, however, noticed having some less serious exceptions in my log
> and looked further into it. Basically, I am seeing an exception in the
> URLHandlersBundleStreamHandler.openConnection(URL) method. Here is the part
> I am referring to:
>
> if (framework != null)
>       {
>           // TODO: optimize this to not use reflection if not needed
>           try
>           {
>               Class targetClass =
> framework.getClass().getClassLoader().loadClass(
>                   URLHandlersBundleURLConnection.class.getName());
>                             return (URLConnection)
> m_action.invoke(m_action.getConstructor(targetClass,
>                   new Class[]{URL.class, framework.getClass()}),
>                   new Object[]{url, framework});
>           }
>           catch (Exception ex)
>           {
>               throw new IOException(ex.getMessage());
>           }
>       }
>       throw new IOException("No framework context found");
>
> The problem happens when reflection fails to find the appropriate
> constructor and throws a NoSuchMethodException; here the targetClass
> resolves to "org.apache.felix.framework.URLHandlersBundleURLConnection" and
> the exception is:
>
> java.lang.NoSuchMethodException:
> org.apache.felix.framework.URLHandlersBundleURLConnection.<init>(java.net.URL,
> org.simplecenter.application.SimpleCenterApplication)
>
> Note that SimpleCenterApplicaion extends Felix and
>  URLHandlersBundleURLConnection has the constructor
> URLHandlersBundleURLConnection(URL, Felix).
>
> Any thoughts?
>
> Thanks
> Ali.
>
> P.S. In the older version, it was not relying on the reflection and was
> calling the URLHandlersBundleURLConnection(URL, Felix) directly.
>
> Richard S. Hall wrote:
>>
>> If you are using 0.8.0 of Felix, then you seriously need to upgrade. You
>> can get the version of Felix by starting it and typing "version" in the
>> Felix shell or by typing "ps" and looking at the version of the system
>> bundle.
>>
>> If you really are using 0.8.0, then it is possible that this was related
>> to a bug from a while ago where Felix was not properly guarding class
>> definition with a lock. Try upgrading to the latest 1.2.2 release (1.4.0
>> will be coming soon too).
>>
>> -> richard
>>
>>
>> Ali Naddaf wrote:
>>>
>>> Hi Richard.
>>>
>>> In the manifest of felix.jar I see "Bundle-Version: 0.8.0.incubator", so
>>> is that the version you are asking for? As for what I was doing, this is a
>>> multimedia application and I was trying to open a media file for playback. I
>>> am trying to see how I can deterministically reproduce this but otherwise,
>>> do yo have any suggestion as to how I can debug the issue?
>>>
>>> Thanks,
>>> Ali.
>>>
>>>
>>> Richard S. Hall wrote:
>>>>
>>>> Which version of Felix are you using?
>>>>
>>>> What are you doing when this error occurs?
>>>>
>>>> It certainly would be great to find some way to reproduce it. I am sure
>>>> it is explainable.
>>>>
>>>> -> richard
>>>>
>>>> Ali Naddaf wrote:
>>>>>
>>>>> Hello all.
>>>>>
>>>>> I have an OSGi based application (using Felix) that is under heavy
>>>>> development and a few days ago, I started seeing the following exception
>>>>> showing up in my logs:
>>>>>
>>>>> java.lang.LinkageError: loader (instance of
>>>>>  org/apache/felix/framework/searchpolicy/ContentClassLoader): attempted
>>>>>  duplicate class definition for name: "org/simplecenter/upnp/av/DIDLParser"
>>>>>   at java.lang.ClassLoader.defineClass1(Native Method)
>>>>>   at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>>   at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>>   at
>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.findClass(ContentClassLoader.java:149)
>>>>>   at
>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClassFromModule(ContentClassLoader.java:51)
>>>>>   at
>>>>> org.apache.felix.framework.searchpolicy.ContentLoaderImpl.getClass(ContentLoaderImpl.java:121)
>>>>>   at
>>>>> org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:86)
>>>>>   at
>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchImports(R4SearchPolicyCore.java:392)
>>>>>   at
>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:353)
>>>>>   at
>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:136)
>>>>>   at
>>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
>>>>>   at
>>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:70)
>>>>>   at java.lang.ClassLoader.loadClass(Unknown Source)
>>>>>   at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>>>>>   at
>>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.parseMetaData(BaseAVTransportListener.java:87)
>>>>>   at
>>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.change(BaseAVTransportListener.java:78)
>>>>>   at
>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseStates(LastChangeListener.java:98)
>>>>>   at
>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseEvent(LastChangeListener.java:74)
>>>>>   at
>>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.LastChangeChanged(LastChangeListener.java:45)
>>>>>   at
>>>>> org.simplecenter.upnp.av.renderer.RendererAVTransport.LastChangeChanged(RendererAVTransport.java:48)
>>>>>   at
>>>>> org.simplecenter.upnp.av.renderer.RendererDeviceInstance$1.sendEvent(RendererDeviceInstance.java:101)
>>>>>   at
>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.flushEvents(LastChangeEventSender.java:122)
>>>>>   at
>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.access$300(LastChangeEventSender.java:38)
>>>>>   at
>>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender$EventTimer.run(LastChangeEventSender.java:101)
>>>>>   at java.lang.Thread.run(Unknown Source)
>>>>>
>>>>> I cannot find any duplicate classes in my code and also this problem
>>>>> doesn't show itself all the times, and yet I haven't been able to find
>>>>> accurate reproduction steps. Anyhow, if any one has any suggestion as to
>>>>> what this may mean and how I can debug that, it would be greatly
>>>>> appreciated.
>>>>>
>>>>> Many thanks
>>>>> Ali
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>



-- 
Karl Pauls
karlpauls@gmail.com

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


Re: java.lang.LinkageError exception

Posted by Ali Naddaf <al...@naddaf.org>.
Hi Richard.

Thanks for your suggestion. I made the upgrade and understandably, it 
wasn't without some fun; some constructors and methods had changed their 
signatures, etc. I have got the application up and running with the new 
version and haven't run into my old issue yet so hopefully that has been 
resolved. I, however, noticed having some less serious exceptions in my 
log and looked further into it. Basically, I am seeing an exception in 
the URLHandlersBundleStreamHandler.openConnection(URL) method. Here is 
the part I am referring to:

 if (framework != null)
        {
            // TODO: optimize this to not use reflection if not needed
            try
            {
                Class targetClass = 
framework.getClass().getClassLoader().loadClass(
                    URLHandlersBundleURLConnection.class.getName());
               
                return (URLConnection) 
m_action.invoke(m_action.getConstructor(targetClass,
                    new Class[]{URL.class, framework.getClass()}),
                    new Object[]{url, framework});
            }
            catch (Exception ex)
            {
                throw new IOException(ex.getMessage());
            }
        }
        throw new IOException("No framework context found");

The problem happens when reflection fails to find the appropriate 
constructor and throws a NoSuchMethodException; here the targetClass 
resolves to "org.apache.felix.framework.URLHandlersBundleURLConnection" and
the exception is:

java.lang.NoSuchMethodException: 
org.apache.felix.framework.URLHandlersBundleURLConnection.<init>(java.net.URL, 
org.simplecenter.application.SimpleCenterApplication)

Note that SimpleCenterApplicaion extends Felix and  
URLHandlersBundleURLConnection has the constructor 
URLHandlersBundleURLConnection(URL, Felix).

Any thoughts?

Thanks
Ali.

P.S. In the older version, it was not relying on the reflection and was 
calling the URLHandlersBundleURLConnection(URL, Felix) directly.

Richard S. Hall wrote:
> If you are using 0.8.0 of Felix, then you seriously need to upgrade. 
> You can get the version of Felix by starting it and typing "version" 
> in the Felix shell or by typing "ps" and looking at the version of the 
> system bundle.
>
> If you really are using 0.8.0, then it is possible that this was 
> related to a bug from a while ago where Felix was not properly 
> guarding class definition with a lock. Try upgrading to the latest 
> 1.2.2 release (1.4.0 will be coming soon too).
>
> -> richard
>
>
> Ali Naddaf wrote:
>> Hi Richard.
>>
>> In the manifest of felix.jar I see "Bundle-Version: 0.8.0.incubator", 
>> so is that the version you are asking for? As for what I was doing, 
>> this is a multimedia application and I was trying to open a media 
>> file for playback. I am trying to see how I can deterministically 
>> reproduce this but otherwise, do yo have any suggestion as to how I 
>> can debug the issue?
>>
>> Thanks,
>> Ali.
>>
>>
>> Richard S. Hall wrote:
>>> Which version of Felix are you using?
>>>
>>> What are you doing when this error occurs?
>>>
>>> It certainly would be great to find some way to reproduce it. I am 
>>> sure it is explainable.
>>>
>>> -> richard
>>>
>>> Ali Naddaf wrote:
>>>> Hello all.
>>>>
>>>> I have an OSGi based application (using Felix) that is under heavy 
>>>> development and a few days ago, I started seeing the following 
>>>> exception showing up in my logs:
>>>>
>>>> java.lang.LinkageError: loader (instance of  
>>>> org/apache/felix/framework/searchpolicy/ContentClassLoader): 
>>>> attempted  duplicate class definition for name: 
>>>> "org/simplecenter/upnp/av/DIDLParser"
>>>>    at java.lang.ClassLoader.defineClass1(Native Method)
>>>>    at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>    at java.lang.ClassLoader.defineClass(Unknown Source)
>>>>    at 
>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.findClass(ContentClassLoader.java:149) 
>>>>
>>>>    at 
>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClassFromModule(ContentClassLoader.java:51) 
>>>>
>>>>    at 
>>>> org.apache.felix.framework.searchpolicy.ContentLoaderImpl.getClass(ContentLoaderImpl.java:121) 
>>>>
>>>>    at 
>>>> org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:86) 
>>>>
>>>>    at 
>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchImports(R4SearchPolicyCore.java:392) 
>>>>
>>>>    at 
>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:353) 
>>>>
>>>>    at 
>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:136) 
>>>>
>>>>    at 
>>>> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45) 
>>>>
>>>>    at 
>>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:70) 
>>>>
>>>>    at java.lang.ClassLoader.loadClass(Unknown Source)
>>>>    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>>>>    at 
>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.parseMetaData(BaseAVTransportListener.java:87) 
>>>>
>>>>    at 
>>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.change(BaseAVTransportListener.java:78) 
>>>>
>>>>    at 
>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseStates(LastChangeListener.java:98) 
>>>>
>>>>    at 
>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseEvent(LastChangeListener.java:74) 
>>>>
>>>>    at 
>>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.LastChangeChanged(LastChangeListener.java:45) 
>>>>
>>>>    at 
>>>> org.simplecenter.upnp.av.renderer.RendererAVTransport.LastChangeChanged(RendererAVTransport.java:48) 
>>>>
>>>>    at 
>>>> org.simplecenter.upnp.av.renderer.RendererDeviceInstance$1.sendEvent(RendererDeviceInstance.java:101) 
>>>>
>>>>    at 
>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.flushEvents(LastChangeEventSender.java:122) 
>>>>
>>>>    at 
>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.access$300(LastChangeEventSender.java:38) 
>>>>
>>>>    at 
>>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender$EventTimer.run(LastChangeEventSender.java:101) 
>>>>
>>>>    at java.lang.Thread.run(Unknown Source)
>>>>
>>>> I cannot find any duplicate classes in my code and also this 
>>>> problem doesn't show itself all the times, and yet I haven't been 
>>>> able to find accurate reproduction steps. Anyhow, if any one has 
>>>> any suggestion as to what this may mean and how I can debug that, 
>>>> it would be greatly appreciated.
>>>>
>>>> Many thanks
>>>> Ali
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>>> For additional commands, e-mail: users-help@felix.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>


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


Re: java.lang.LinkageError exception

Posted by "Richard S. Hall" <he...@ungoverned.org>.
If you are using 0.8.0 of Felix, then you seriously need to upgrade. You 
can get the version of Felix by starting it and typing "version" in the 
Felix shell or by typing "ps" and looking at the version of the system 
bundle.

If you really are using 0.8.0, then it is possible that this was related 
to a bug from a while ago where Felix was not properly guarding class 
definition with a lock. Try upgrading to the latest 1.2.2 release (1.4.0 
will be coming soon too).

-> richard


Ali Naddaf wrote:
> Hi Richard.
>
> In the manifest of felix.jar I see "Bundle-Version: 0.8.0.incubator", 
> so is that the version you are asking for? As for what I was doing, 
> this is a multimedia application and I was trying to open a media file 
> for playback. I am trying to see how I can deterministically reproduce 
> this but otherwise, do yo have any suggestion as to how I can debug 
> the issue?
>
> Thanks,
> Ali.
>
>
> Richard S. Hall wrote:
>> Which version of Felix are you using?
>>
>> What are you doing when this error occurs?
>>
>> It certainly would be great to find some way to reproduce it. I am 
>> sure it is explainable.
>>
>> -> richard
>>
>> Ali Naddaf wrote:
>>> Hello all.
>>>
>>> I have an OSGi based application (using Felix) that is under heavy 
>>> development and a few days ago, I started seeing the following 
>>> exception showing up in my logs:
>>>
>>> java.lang.LinkageError: loader (instance of  
>>> org/apache/felix/framework/searchpolicy/ContentClassLoader): 
>>> attempted  duplicate class definition for name: 
>>> "org/simplecenter/upnp/av/DIDLParser"
>>>    at java.lang.ClassLoader.defineClass1(Native Method)
>>>    at java.lang.ClassLoader.defineClass(Unknown Source)
>>>    at java.lang.ClassLoader.defineClass(Unknown Source)
>>>    at 
>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.findClass(ContentClassLoader.java:149) 
>>>
>>>    at 
>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClassFromModule(ContentClassLoader.java:51) 
>>>
>>>    at 
>>> org.apache.felix.framework.searchpolicy.ContentLoaderImpl.getClass(ContentLoaderImpl.java:121) 
>>>
>>>    at 
>>> org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:86)
>>>    at 
>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchImports(R4SearchPolicyCore.java:392) 
>>>
>>>    at 
>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:353) 
>>>
>>>    at 
>>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:136) 
>>>
>>>    at 
>>> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45) 
>>>
>>>    at 
>>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:70) 
>>>
>>>    at java.lang.ClassLoader.loadClass(Unknown Source)
>>>    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>>>    at 
>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.parseMetaData(BaseAVTransportListener.java:87) 
>>>
>>>    at 
>>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.change(BaseAVTransportListener.java:78) 
>>>
>>>    at 
>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseStates(LastChangeListener.java:98) 
>>>
>>>    at 
>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseEvent(LastChangeListener.java:74) 
>>>
>>>    at 
>>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.LastChangeChanged(LastChangeListener.java:45) 
>>>
>>>    at 
>>> org.simplecenter.upnp.av.renderer.RendererAVTransport.LastChangeChanged(RendererAVTransport.java:48) 
>>>
>>>    at 
>>> org.simplecenter.upnp.av.renderer.RendererDeviceInstance$1.sendEvent(RendererDeviceInstance.java:101) 
>>>
>>>    at 
>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.flushEvents(LastChangeEventSender.java:122) 
>>>
>>>    at 
>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.access$300(LastChangeEventSender.java:38) 
>>>
>>>    at 
>>> org.simplecenter.upnp.av.renderer.LastChangeEventSender$EventTimer.run(LastChangeEventSender.java:101) 
>>>
>>>    at java.lang.Thread.run(Unknown Source)
>>>
>>> I cannot find any duplicate classes in my code and also this problem 
>>> doesn't show itself all the times, and yet I haven't been able to 
>>> find accurate reproduction steps. Anyhow, if any one has any 
>>> suggestion as to what this may mean and how I can debug that, it 
>>> would be greatly appreciated.
>>>
>>> Many thanks
>>> Ali
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>>> For additional commands, e-mail: users-help@felix.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>

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


Re: java.lang.LinkageError exception

Posted by Ali Naddaf <al...@naddaf.org>.
Hi Richard.

In the manifest of felix.jar I see "Bundle-Version: 0.8.0.incubator", so 
is that the version you are asking for? As for what I was doing, this is 
a multimedia application and I was trying to open a media file for 
playback. I am trying to see how I can deterministically reproduce this 
but otherwise, do yo have any suggestion as to how I can debug the issue?

Thanks,
Ali.


Richard S. Hall wrote:
> Which version of Felix are you using?
>
> What are you doing when this error occurs?
>
> It certainly would be great to find some way to reproduce it. I am 
> sure it is explainable.
>
> -> richard
>
> Ali Naddaf wrote:
>> Hello all.
>>
>> I have an OSGi based application (using Felix) that is under heavy 
>> development and a few days ago, I started seeing the following 
>> exception showing up in my logs:
>>
>> java.lang.LinkageError: loader (instance of  
>> org/apache/felix/framework/searchpolicy/ContentClassLoader): 
>> attempted  duplicate class definition for name: 
>> "org/simplecenter/upnp/av/DIDLParser"
>>    at java.lang.ClassLoader.defineClass1(Native Method)
>>    at java.lang.ClassLoader.defineClass(Unknown Source)
>>    at java.lang.ClassLoader.defineClass(Unknown Source)
>>    at 
>> org.apache.felix.framework.searchpolicy.ContentClassLoader.findClass(ContentClassLoader.java:149) 
>>
>>    at 
>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClassFromModule(ContentClassLoader.java:51) 
>>
>>    at 
>> org.apache.felix.framework.searchpolicy.ContentLoaderImpl.getClass(ContentLoaderImpl.java:121) 
>>
>>    at 
>> org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:86)
>>    at 
>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchImports(R4SearchPolicyCore.java:392) 
>>
>>    at 
>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:353) 
>>
>>    at 
>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:136) 
>>
>>    at 
>> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45) 
>>
>>    at 
>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:70) 
>>
>>    at java.lang.ClassLoader.loadClass(Unknown Source)
>>    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>>    at 
>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.parseMetaData(BaseAVTransportListener.java:87) 
>>
>>    at 
>> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.change(BaseAVTransportListener.java:78) 
>>
>>    at 
>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseStates(LastChangeListener.java:98) 
>>
>>    at 
>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseEvent(LastChangeListener.java:74) 
>>
>>    at 
>> org.simplecenter.upnp.av.controlpoint.LastChangeListener.LastChangeChanged(LastChangeListener.java:45) 
>>
>>    at 
>> org.simplecenter.upnp.av.renderer.RendererAVTransport.LastChangeChanged(RendererAVTransport.java:48) 
>>
>>    at 
>> org.simplecenter.upnp.av.renderer.RendererDeviceInstance$1.sendEvent(RendererDeviceInstance.java:101) 
>>
>>    at 
>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.flushEvents(LastChangeEventSender.java:122) 
>>
>>    at 
>> org.simplecenter.upnp.av.renderer.LastChangeEventSender.access$300(LastChangeEventSender.java:38) 
>>
>>    at 
>> org.simplecenter.upnp.av.renderer.LastChangeEventSender$EventTimer.run(LastChangeEventSender.java:101) 
>>
>>    at java.lang.Thread.run(Unknown Source)
>>
>> I cannot find any duplicate classes in my code and also this problem 
>> doesn't show itself all the times, and yet I haven't been able to 
>> find accurate reproduction steps. Anyhow, if any one has any 
>> suggestion as to what this may mean and how I can debug that, it 
>> would be greatly appreciated.
>>
>> Many thanks
>> Ali
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
>> For additional commands, e-mail: users-help@felix.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>


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


Re: java.lang.LinkageError exception

Posted by "Richard S. Hall" <he...@ungoverned.org>.
Which version of Felix are you using?

What are you doing when this error occurs?

It certainly would be great to find some way to reproduce it. I am sure 
it is explainable.

-> richard

Ali Naddaf wrote:
> Hello all.
>
> I have an OSGi based application (using Felix) that is under heavy 
> development and a few days ago, I started seeing the following 
> exception showing up in my logs:
>
> java.lang.LinkageError: loader (instance of  
> org/apache/felix/framework/searchpolicy/ContentClassLoader): 
> attempted  duplicate class definition for name: 
> "org/simplecenter/upnp/av/DIDLParser"
>    at java.lang.ClassLoader.defineClass1(Native Method)
>    at java.lang.ClassLoader.defineClass(Unknown Source)
>    at java.lang.ClassLoader.defineClass(Unknown Source)
>    at 
> org.apache.felix.framework.searchpolicy.ContentClassLoader.findClass(ContentClassLoader.java:149) 
>
>    at 
> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClassFromModule(ContentClassLoader.java:51) 
>
>    at 
> org.apache.felix.framework.searchpolicy.ContentLoaderImpl.getClass(ContentLoaderImpl.java:121) 
>
>    at 
> org.apache.felix.framework.searchpolicy.R4Wire.getClass(R4Wire.java:86)
>    at 
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchImports(R4SearchPolicyCore.java:392) 
>
>    at 
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:353) 
>
>    at 
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:136) 
>
>    at 
> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45) 
>
>    at 
> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:70) 
>
>    at java.lang.ClassLoader.loadClass(Unknown Source)
>    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
>    at 
> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.parseMetaData(BaseAVTransportListener.java:87) 
>
>    at 
> org.simplecenter.upnp.av.controlpoint.BaseAVTransportListener.change(BaseAVTransportListener.java:78) 
>
>    at 
> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseStates(LastChangeListener.java:98) 
>
>    at 
> org.simplecenter.upnp.av.controlpoint.LastChangeListener.parseEvent(LastChangeListener.java:74) 
>
>    at 
> org.simplecenter.upnp.av.controlpoint.LastChangeListener.LastChangeChanged(LastChangeListener.java:45) 
>
>    at 
> org.simplecenter.upnp.av.renderer.RendererAVTransport.LastChangeChanged(RendererAVTransport.java:48) 
>
>    at 
> org.simplecenter.upnp.av.renderer.RendererDeviceInstance$1.sendEvent(RendererDeviceInstance.java:101) 
>
>    at 
> org.simplecenter.upnp.av.renderer.LastChangeEventSender.flushEvents(LastChangeEventSender.java:122) 
>
>    at 
> org.simplecenter.upnp.av.renderer.LastChangeEventSender.access$300(LastChangeEventSender.java:38) 
>
>    at 
> org.simplecenter.upnp.av.renderer.LastChangeEventSender$EventTimer.run(LastChangeEventSender.java:101) 
>
>    at java.lang.Thread.run(Unknown Source)
>
> I cannot find any duplicate classes in my code and also this problem 
> doesn't show itself all the times, and yet I haven't been able to find 
> accurate reproduction steps. Anyhow, if any one has any suggestion as 
> to what this may mean and how I can debug that, it would be greatly 
> appreciated.
>
> Many thanks
> Ali
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>

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