[
https://issues.apache.org/jira/browse/FELIX-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Richard S. Hall resolved FELIX-1045.
------------------------------------
Resolution: Fixed
I have committed a patch for this issue. Please close if you are satisfied.
Thanks.
> Felix 1.6.0 fails with ClassCircularityError
> --------------------------------------------
>
> Key: FELIX-1045
> URL: https://issues.apache.org/jira/browse/FELIX-1045
> Project: Felix
> Issue Type: Bug
> Components: Framework
> Affects Versions: felix-1.6.0
> Reporter: Vivek Pandey
> Assignee: Richard S. Hall
> Fix For: felix-1.8.0
>
>
> In Glassfish v3, JRuby runtime classes are loaded by a URLClassLoader form
> inside an OSGi bundle. This all worked fine till upgrade to Felix 1.6.0. With
> felix 1.6.0 it fails with ClassCircularityError. See [1] below. This issue
> seems to be related to FELIX-962.
> This is
> discussed on d...@glassfish at
> http://www.nabble.com/Re:-ClassCircularityError-reported-with-the-
> latest-v3-trunk-td23118716.html.
> Here is the evaluation of this issue by Richard Hall, a patched version of
> felix.jar is tested and it works
> fine.
> ----------
> This code in Felix should only ever be executed when there is a CNFE that is
> going to be thrown. Do
> you know if you should correctly be getting a CNFE?
> To be clear, the explicit issue we are talking about is this change in Felix:
> http://issues.apache.org/jira/browse/FELIX-962
> We actually try to determine if a class is an inner class of a class loader
> when we are trying to guess
> whether or not we should delegate to the parent class loader. This is part of
> a hack which is a last ditch
> effort to avoid CNFE for bad JRE code that assumes it should be able to see
> everything on the class path
> from any class loader.
> The change from FELIX-962 is actually implemented in two different ways, one
> for JDK < 1.5 and one
> for JDK >= 1.5. In the >= 1.5 version we use the method
> Class.getEnclosingClass(), which seems to
> cause the error for perhaps the reasons in the JDK bug you referenced. We
> implemented the two
> different approaches since we assumed performance would be better by just
> using getEnclosingClass()
> than trying to figure it out the enclosing class manually, which involves
> doing a class load.
> We could potentially try always using the < 1.5 approach, which does not use
> that method. If I created
> a felix.jar that did that, could you test it to see if it resolved the issue?
> ----------
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.