> Subject: Re: Classloading issue > From: nicolas.lale...@hibnet.org > Date: Mon, 12 May 2014 01:51:12 +0200 > To: dev@ant.apache.org > > > 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
MG>Hi Nicholas MG>local classloader cannot resolve jdsch-agentproxy.core-0.0.7.jar? MG>what happens when you place MG>http://www.grepcode.com/snapshot/repo1.maven.org/maven2/com.jcraft/jsch.agentproxy.core/0.0.7/jsch.agentproxy.core-0.0.7.jar MG>on SYSTEM classpath? > > 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 >