Xavier Hanin wrote:
On 1/22/07, Loehr, Ruel <[EMAIL PROTECTED]> 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