Hi,

I need some help to understand a bug around classloading (nothing that 
particular to Ivy).

I was looking into IVY-1471 [1] and I don't understand why it is failing that 
way. In the classpath there are both Ivy and Jsch, but not the optional jar 
related to managing the ssh agent via jsch. And it is failing because a class 
in that optional jar is not found. But I don't understand why the classloader 
is looking for it in the first place.

The error is raised is AbstractSshBasedRepository, on the call of 
SshCache.getInstance() [2]. But as far as I can tell, nothing in the loading of 
the SshCache [3] class requires AgentProxyException. The class is only needed 
by the function SshCache#attemptAgentUse() [4], which will be called at 
runtime, if the end user actually want ssh agent support, in which case it 
would naturally fail. But here it fails very earlier.

I have made a test case you can test with its build.xml, no IvyDE required 
there [5].

Am I missing something ? Is there a special treatment for the loading of 
Exception classes ?

Nicolas

[1] https://issues.apache.org/jira/browse/IVY-1471
[2] 
https://fisheye6.atlassian.com/browse/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/repository/ssh/AbstractSshBasedRepository.java?hb=true#to108
[3] 
https://fisheye6.atlassian.com/browse/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/repository/ssh/SshCache.java?hb=true
[4] 
https://fisheye6.atlassian.com/browse/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/repository/ssh/SshCache.java?hb=true#to300
[5] http://svn.apache.org/repos/asf/ant/ivy/ivyde/trunk/test/ssh-resolver/


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org

Reply via email to