[
https://issues.apache.org/jira/browse/ABDERA-279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12981671#action_12981671
]
ant elder commented on ABDERA-279:
----------------------------------
Patch applied, thanks for the fix Antoine.
Tests would be good but as the class has no other testing already it seems ok
to not require them for others.
I needed to get the 1.1.2 release out for a fix for another user and as it was
already being voted on it would have delayed it to long to include this. I can
do a 1.1.3 release to include this fix now if you need it ASAP.
> Faulty classloading - unreachable code
> --------------------------------------
>
> Key: ABDERA-279
> URL: https://issues.apache.org/jira/browse/ABDERA-279
> Project: Abdera
> Issue Type: Bug
> Affects Versions: 1.1.1
> Reporter: Antoine Toulme
> Attachments: fix_classloader.patch
>
>
> The Discover class uses this method to get a class:
> {code}
> private static <T> Class<T> getClass(ClassLoader loader, String spec) {
> Class<T> c = null;
> try {
> c = (Class<T>)loader.loadClass(spec);
> c = (Class<T>)(c != null ? c :
> getClass(Discover.class.getClassLoader(), spec));
> } catch (ClassNotFoundException e) {
> throw new RuntimeException(e);
> }
> return c;
> }
> {code}
> However the first line inside the try statement will throw a CNF exception if
> the class cannot be found. As a result, the second line is never executed.
> {code}
> c = (Class<T>)(c != null ? c : getClass(Discover.class.getClassLoader(),
> spec));
> {code}
> The code executes recursively, which makes things harder. I would recommend
> changing the way the code is currently written to avoid recursion.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.