ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Loughran <ste...@apache.org>
Subject Re: classcast exception when attempting to use cachepath task
Date Tue, 23 Jan 2007 11:46:45 GMT
Xavier Hanin wrote:
> On 1/22/07, Loehr, Ruel <rloehr@pointserve.com> wrote:
>>
>> Hi.
> 
> 
> Hi
> 
> I'm having a problem using the cachepath task.  I receive a class cast
>> exception when I define it.  I've researched the problem but cannot have
>> not found a solution yet.
> 
> 
> You're problem is pretty strange, but I would bet it's a classloader
> problem. Indeed here is line 130:
>        ModuleDescriptor reference = (ModuleDescriptor)
> getResolvedDescriptor(org, module, strict);
> 
> And the CCE indicate that the class of the object is
> DefaultModuleDescriptor, which implements ModuleDescriptor. So it's
> presumably because the ModuleDescriptor interface has not been loaded with
> the same classloader as the class DefaultModuleDescriptor. How do you load
> Ivy in ant? Do you use a taskdef with a special classpath, or do you put 
> Ivy
> in your ant lib directory? And do you call ant with some kind of recursive
> feature, like subant or ant tasks? If it is the case try to do something
> very simple (like a single build file with ivy.jar in ant lib directory
> only) to see if the problem comes from here or not. And if you manage to
> identify the problem, please add an bug in JIRA.
> 

If you declare types and tasks in separatate <taskdef> and <typedef> 
calls, you should force both into the same classloader instance by 
setting loaderRef="some-shared-string" in both declarations. otherwise 
ant loads them into differenct classloaders, even if the classpath is 
identical

Mime
View raw message