ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Siwiec, Tomasz" <>
Subject RE: Problem with dual classloader.
Date Mon, 30 May 2005 11:38:40 GMT
Hi Rainer,
Thanks for your help but I still have that problem.
The second solution with <property name="ant.reuse.loader"
value="true"/> seems not to work. I still have different classloader.
However, I don't understand the first suggestion. In case I will remove
classpathref attribute I will get ClassNotFoundException as
"std.classpath" defines location of my jar file and all required
libraries. Of course I can copy my jar and all libs into ANT_HOME\lib
directory but it is not a way I'd like to solve my problem.
Any other ideas how to force just one classloader?
-----Original Message-----
From: Rainer Noack [] 
Sent: Wednesday, May 25, 2005 12:07 PM
To: 'Ant Users List'
Subject: RE: Problem with dual classloader.

Hi Tomasz,
could you try the following:
remove classpathref attribute from the typedefs (maybe in this case, the
classloader-ref will be replaced)
remove ALL loaderref attributes and set
<property name="ant.reuse.loader" value="true"/>
prior to your taskdefs and typedefs.

> -----Original Message-----
> From: Siwiec, Tomasz [] 
> Sent: Wednesday, May 25, 2005 10:10 AM
> To:
> Subject: Problem with dual classloader.
> Guys,
> I have my own task and collection implemented and I use it like that:
>     <taskdef name="myTask" classname="com...MyTask" 
> classpathref="std.classpath" loaderref="myTask"/>
>     <typedef name="download_files" classname="com.....AntFileInfoSet"
> classpathref="std.classpath" loaderref="myTask"/>
>     <typedef name="file" classname="com.....AntFileInfo" 
> classpathref="std.classpath" loaderref="myTask"/>
>     ...
>     <myTask .......>        
> 		<download_files id="fl.flieInfos">
>             	<file name="xxx" .../>
>             	<file name="xxx" .../>
>             </download_files> 
>     </myTask>
>     ...
> My task and collection jar file is located at std.classpath. 
> The problem is the AntFileInfoSet class is loaded by 
> different classloader then AnFileInfoSet class defined by 
> section <download_files/>. In that case I always get 
> ClassCastException doing casting in AntFileInfoSet: 
>     public List getAntFileInfos() {
>         if (refid != null) {
>             return ((AntFileInfoSet)
> getProject().getReference(refid)).getAntFileInfos(); !!!!!!
>         } else {
>             return antFileInfos;
>         }
>     }
> In case I copy my jar file to ANT_HOME\lib directory and then 
> run ant, everything is ok as only one classloader is used. As 
> you can see I use loaderref="myTask" property but it doesn't 
> help. Can you help me? Thx, Tomek

To unsubscribe, e-mail:
For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message