cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Torsten Curdt <tcu...@apache.org>
Subject Re: Problem with ReloadingClassLoader
Date Fri, 11 Nov 2005 09:16:53 GMT

On 11.11.2005, at 09:45, Reinhard Poetz wrote:

> Torsten Curdt wrote:
>>> I have a nasty error that I can't track down. I'm using the   
>>> ReloadingClassloader of trunk and include it with following code:
>>>
>>> <map:classloader>
>>>   <class-dir src="../blah"/>
>>> </map:classloader>
>>>
>>> I declare a couple of components like generators and actions.  
>>> Using  an action works as it has been doing for months but since  
>>> an  upgrade to the latest SVN I get following error when  
>>> declaring a  custom generator:
>> You can reproduce it all the time only with generators??
>
> yep, I'm using Eclipse 3.1 and the class-dir points to the  
> porject's output directory.

And reloading actions still works?

>>> The HTTP response is:
>>>
>>> HTTP ERROR: 500 my.CustomGenerator (Bad index in constant pool.)
>>>
>>>
>>> At the console following stacktrace appears:
>>>
>>> java.lang.ClassFormatError: my.CustomGenerator (Bad ind
>>> ex in constant pool.)
>>>         at java.lang.ClassLoader.defineClass0(Native Method)
>>>         at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
>>>         at java.lang.ClassLoader.defineClass(ClassLoader.java:448)
>>>         at   
>>> org.apache.cocoon.components.classloader.ReloadingClassLoaderFactory 
>>> $
>>> DefaultClassLoader.fastFindClass(ReloadingClassLoaderFactory.java: 
>>> 182)
>> Now that's interesting :-/ ...with a basic "class-dir" there should
>> be no rewriting that could possibly cause this.
>>> BTW, currently ReloadingClassLoaderFactory doesn't work out of the
>>> box as it isn't declared in any xconf
>> ...but it's declared in the cocoon.roles - that should work fine
>
> you mean http://svn.apache.org/repos/asf/cocoon/trunk/src/java/org/ 
> apache/cocoon/cocoon.roles? Can't find it there. Only the  
> DefaultClassLoaderFactory is declared.

Doh! ...no - I did not want to change the default behavior.
So I did override it in the xconf

   <component
       
class="org.apache.cocoon.components.classloader.ReloadingClassLoaderFact 
ory"
       
role="org.apache.cocoon.components.classloader.ClassLoaderFactory/ 
ReloadingClassLoaderFactory"/>

In order to debug this I'd suggest to print out the size of the  
"clazzBytes"
byte[] and then compare what's on the disk.

cheers
--
Torsten

Mime
View raw message