[prev in list] [next in list] [prev in thread] [next in thread] 

List:       tapestry-user
Subject:    Re: T5: Linkage error .... violates loader constraints
From:       Britske <gbrits () gmail ! com>
Date:       2007-12-21 22:05:05
Message-ID: 14463292.post () talk ! nabble ! com
[Download RAW message or body]


what do you mean exactly by "trying to define a class in classloader" ? 
I didn't do anything special in creating these instances and just follow the
normal route. 
The one thing that may have some, I dont'know :  "dependency cycle thing"
going on is: 

SuperPage referencing component quickNavigation
and quickNavigation referencing Superpage by using componentResources to
travere the component-tree upwards. 
No sign of double recreating a base-class twice (in one pass)

please keep the options coming, 
I will investigate further, 
Geert-Jan



joshcanfield wrote:
> 
> That error can be caused by trying to define a class in classloader which
> already contains a class with the same name. I believe that Tapestry does
> some magic with the component base classes when it is extending them...
> maybe there is something causing Tapestry to try and recreate the base
> class
> twice?
> 
> On Dec 21, 2007 10:37 AM, Britske <gbrits@gmail.com> wrote:
> 
> > 
> > As an addition:
> > 
> > also pointing out what type of errors are likely to cause these errors
> > would
> > help.
> > I know that mixing injection with components can give loader constraints,
> > which is why i created an interface for SuperPage. Moreover, I can
> > mimagine
> > that cyclic references would cause errors as well. Are there any others
> > that
> > I should track in my code?
> > 
> > Thanks again,
> > Geert-Jan
> > 
> > 
> > Britske wrote:
> > > 
> > > I'm going slightly insane on this one..
> > > that's because everything worked fine, and after some slight
> > modifications
> > > (none that could cause such errors  I believe) I can't backtrack
> > anymore
> > > where things went wrong.
> > > 
> > > The error I'm getting is this:
> > > 
> > > Could not convert 'page.quickNavigation' into a component parameter
> > > binding: java.lang.LinkageError: Class
> > > com/wrappt/aroer/base/AbstractNavigationContainer violates loader
> > > constraints.
> > > for full stack-trace see entirely below.
> > > 
> > > location
> > > classpath:com/wrappt/aroer/components/BaseLayout.tml, line 122,
> > column
> > > 77
> > > 117       <div class="h plain">
> > > 118       <h2>Verfijn de resultaten</h2>
> > > 119       </div>
> > > 120       <div class="c">
> > > 121       <!-- <t:quickForm t:id="quickForm"/>-->
> > > 122       <t:delegate t:id="quickFormDelegate" t:to="
> > page.quickNavigation"/>
> > > <-- here it happens
> > > 123       </div>
> > > 124       <div class="f"> &nbsp; </div>
> > > 125       </div>
> > > 126       </div>
> > > 127       </div>
> > > 
> > > the setup is not that simple, but here it goes anyway:
> > > 
> > > - baselayout is a basic layout that wraps all pages as implemented in
> > an
> > > abstract class called superPage.
> > > - all pages extend SuperPage.
> > > - SuperPage implements ISuperPage (for mixing services with components)
> > > - all pages have a quicknavigation component , although their
> > > implementation can be different.
> > > - each quickNavigation-component inherits from
> > AbstractNavigationContainer
> > > (which is where the loader constraint happens)
> > > 
> > > the relevant parts:
> > > 
> > > BaseLayout
> > > ----------------------
> > > @Parameter(required = true)
> > > private ISuperPage page;
> > > public ISuperPage getPage()
> > > {
> > > return (ISuperPage)page;
> > > }
> > > 
> > > 
> > > SuperPage (implements ISuperPage)
> > > --------------
> > > @Component(parameters={"page=this"})
> > > private BaseLayout bl;
> > > 
> > > public abstract AbstractNavigationContainer getQuickNavigation();
> > > 
> > > Aanbiedingen extends SuperPage
> > > ----------------------------------
> > > @Component private QuickFormAllResults        quickNavigation;
> > > public QuickFormAllResults getQuickNavigation()       {
> > > return this.quickNavigation;
> > > }
> > > 
> > > Aanbiedingen.tml
> > > ----------------------
> > > <t:baselayout t:id="bl"
> > > xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
> > > <t:block>
> > > <t:quickformallresults t:id="quickNavigation"/>
> > > </t:block>
> > > ...
> > > </t:baselayout>
> > > 
> > > and finally:
> > > QuickFormAllResults extends AbstractNavigationContainer
> > > ---------------------
> > > // nothing intersteing here
> > > 
> > > 
> > > AbstractNavigationContainer
> > > -------------------------------
> > > public SuperPage getPage()
> > > {
> > > ..... //uses componentresources to recursively traverse the tree
> > upwards
> > > until it finds a componet
> > > of type SuperPage and returns that..
> > > }
> > > 
> > > 
> > > I'm really out of options, as I can't seem to comment enough lines to
> > make
> > > it work: when i comment quicknavigation  in baselayout.tml the error
> > > simply shifts to another component that implements
> > > AbstractNavigationContainer
> > > 
> > > Thanks a lot for any help!
> > > Geert-Jan
> > > 
> > > p.s: i was on 5.0.7 SNAPSHOT and now back  on 5.0.6
> > > 
> > > stacktrace:
> > > Caused by: java.lang.LinkageError: Class
> > > com/wrappt/aroer/base/AbstractNavigationContainer violates loader
> > > constraints
> > > at java.lang.ClassLoader.defineClass1(Native Method)
> > > at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> > > at
> > > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> > > at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> > > at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
> > > at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> > > at java.security.AccessController.doPrivileged(Native Method)
> > > at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> > > at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> > > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
> > > at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> > > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> > > at java.lang.Class.getDeclaredMethods0(Native Method)
> > > at java.lang.Class.privateGetDeclaredMethods(Class.java:2395)
> > > at java.lang.Class.getDeclaredMethods(Class.java:1763)
> > > at java.beans.Introspector$1.run(Introspector.java:1265)
> > > at java.security.AccessController.doPrivileged(Native Method)
> > > at
> > > 
> > java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1263)
> > > at java.beans.Introspector.getTargetMethodInfo(Introspector.java
> > > 1129)
> > > at java.beans.Introspector.getBeanInfo(Introspector.java:387)
> > > at java.beans.Introspector.getBeanInfo(Introspector.java:159)
> > > at
> > > 
> > org.apache.tapestry.ioc.internal.services.PropertyAccessImpl.buildAdapter(
> > PropertyAccessImpl.java:85)
> > > ... 72 more
> > > 
> > 
> > --
> > View this message in context:
> > http://www.nabble.com/T5%3A-Linkage-error-....-violates-loader-constraints-tp14460169p14460173.html
> >  Sent from the Tapestry - User mailing list archive at
> > Nabble.com<http://nabble.com/>
> > .
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> > For additional commands, e-mail: users-help@tapestry.apache.org
> > 
> > 
> 
> 
> -- 
> --
> TheDailyTube.com. Sign up and get the best new videos on the internet
> delivered fresh to your inbox.
> 
> 

-- 
View this message in context: \
http://www.nabble.com/T5%3A-Linkage-error-....-violates-loader-constraints-tp14460169p14463292.html
 Sent from the Tapestry - User mailing list archive at Nabble.com.


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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic