Hello Nicolas,

I have tried your test case and it is failing as you except :

BUILD FAILED
/Users/antoine/dev/asf/ivyde-trunk/test/ssh-resolver/build.xml:27: 
java.lang.NoClassDefFoundError: com/jcraft/jsch/agentproxy/AgentProxyException
        at 
org.apache.ivy.plugins.repository.ssh.AbstractSshBasedRepository.getSession(AbstractSshBasedRepository.java:108)
        at 
org.apache.ivy.plugins.repository.ssh.SshRepository.resolveResource(SshRepository.java:82)
        at 
org.apache.ivy.plugins.repository.ssh.SshResource.resolve(SshResource.java:101)

The line 108 in AbstractSsshBasedRepository contains this :

       return SshCache.getInstance().getSession(host, port, user, userPassword, 
getKeyFile(),
           getKeyFilePassword(), getPassFile(), isAllowedAgentUse());

getSession is a method which calls attemptAgentUse.

Does this explain why an attempt to load AgentProxyException happens at that 
time ?

Regards,

Antoine

On May 11, 2014, at 5:41 PM, Nicolas Lalevée <nicolas.lale...@hibnet.org> wrote:

> 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
> 


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

Reply via email to