Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Tapestry Wiki" for 
change notification.

The following page has been changed by DanielJue:
http://wiki.apache.org/tapestry/Tapestry5ComponentClassResolverError

New page:
This has happened to me twice, because I was not thinking clearly.  


Hopefully you will find this page through a search on the lines of your stack 
trace, which might look like this:

{{{

[ERROR] RequestExceptionHandler - Processing of request failed with uncaught 
exception: java.lang.AssertionError 
<java.lang.AssertionError>java.lang.AssertionError
        at 
org.apache.tapestry.internal.services.ComponentClassResolverImpl.toLogicalName(ComponentClassResolverImpl.java:241)
        at 
org.apache.tapestry.internal.services.ComponentClassResolverImpl.fillNameToClassNameMap(ComponentClassResolverImpl.java:193)
        at 
org.apache.tapestry.internal.services.ComponentClassResolverImpl.rebuild(ComponentClassResolverImpl.java:173)
        at 
org.apache.tapestry.internal.services.ComponentClassResolverImpl.access$700(ComponentClassResolverImpl.java:34)
        at 
org.apache.tapestry.internal.services.ComponentClassResolverImpl$2.run(ComponentClassResolverImpl.java:153)
        at 
org.apache.tapestry.ioc.internal.util.ConcurrentBarrier$2.invoke(ConcurrentBarrier.java:178)
        at 
org.apache.tapestry.ioc.internal.util.ConcurrentBarrier$2.invoke(ConcurrentBarrier.java:176)
        at 
org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withWrite(ConcurrentBarrier.java:132)
        at 
org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withWrite(ConcurrentBarrier.java:184)
        at 
org.apache.tapestry.internal.services.ComponentClassResolverImpl.rebuild(ComponentClassResolverImpl.java:149)
        at 
org.apache.tapestry.internal.services.ComponentClassResolverImpl.locate(ComponentClassResolverImpl.java:353)
        at 
org.apache.tapestry.internal.services.ComponentClassResolverImpl.access$900(ComponentClassResolverImpl.java:34)
        at 
org.apache.tapestry.internal.services.ComponentClassResolverImpl$4.invoke(ComponentClassResolverImpl.java:300)
        at 
org.apache.tapestry.internal.services.ComponentClassResolverImpl$4.invoke(ComponentClassResolverImpl.java:298)
        

}}}

The interesting thing here is that you are getting a Status 500 error, which 
does not usually happen in Tapestry, at least once you are used to the nice 
error pages T5 provides.

The problem arises when you create a component, say "foo", and then stick that 
under a directory named "foo".  The case sensitivity between the two does not 
matter.

Because tapestry does some friendly name changes to your components, it is 
unable to resolve the class name in this case.

If you had a component FooBar under a directory components/foo/, (so it is 
actually components/foo/FooBar) , Tapestry will want to resolve this as 
components/foo/Bar.

This happened to me because I have so many components, and I put them in lots 
of subdirectories.  

Summary: Make sure your component name doesn't match the directory name it's in.

*Same applies for pages.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to