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