Le 12 mai 2014 à 01:34, Antoine Levy Lambert <anto...@gmx.de> a écrit :
> 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. It is only called is attemptAgentUse is true. In our case it is false. > Does this explain why an attempt to load AgentProxyException happens at that > time ? I have plugged a debugger, and the class loading exception is raised on the call of SshCache.getInstance(). As far as I can tell, it is the class SshCache which fails to load, but I don't understand why. Nicolas > > 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 > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org For additional commands, e-mail: dev-h...@ant.apache.org