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

Reply via email to