I was thinking of doing a runtime type check on the exception returned
(grabbing an instance of the class via introspection, to avoid a
classload-time dependency) and reraising anything unexpected wrapped in a
RuntimeException; otherwise, that's pretty much exactly the way I would
have fixed the issue.


On Tue, May 13, 2014 at 11:55 AM, Nicolas Lalevée <
nicolas.lale...@hibnet.org> wrote:

> r1594279 seems to fix the issue, but I still don't understand why.
> Any suggestion of a better fix is welcomed.
>
> Nicolas
>
> Le 11 mai 2014 à 23:41, Nicolas Lalevée <nicolas.lale...@hibnet.org> a
> écrit :
>
> > 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