felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karl Pauls" <karlpa...@gmail.com>
Subject Re: java.lang.LinkageError exception
Date Mon, 03 Nov 2008 13:30:54 GMT
Thanks. I will track work on the JIRA issue.

regards,

Karl

On Mon, Nov 3, 2008 at 2:19 PM, Ali Naddaf <ali@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 <ali@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


Mime
View raw message