bval-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matt Benson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (BVAL-108) PrivilegedActions.getClassLoader(Class clazz) prefers thread context classloader over passed in type's classloader
Date Thu, 20 Oct 2016 21:22:58 GMT

    [ https://issues.apache.org/jira/browse/BVAL-108?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15593055#comment-15593055
] 

Matt Benson commented on BVAL-108:
----------------------------------

The surrounding code has changed quite a bit since this was filed, but the issue likely still
exists. What would be most helpful is a runnable example of a failure in an OSGI environment,
if by chance the reporter is still tuned in.

> PrivilegedActions.getClassLoader(Class clazz) prefers thread context classloader over
passed in type's classloader
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: BVAL-108
>                 URL: https://issues.apache.org/jira/browse/BVAL-108
>             Project: BVal
>          Issue Type: Bug
>            Reporter: Ryan Heinen
>         Attachments: BVAL-108.patch
>
>
> The getClassLoader(Class clazz) method in PrivilegedActions.java will prefer the thread
context class loader over the class loader available from the passed in type.
> This is unexpected when looking at the method, and appears to be a bug. Similar to BVAL-89
this fails in an OSGi environment. AnnotationProxyBuilder.createAnnotation uses this method
to load annotations from types to be validated, and should be using the classloader of the
requested type, or it will be unable to find them.
> This means that BVAL-89 is still an issue. Although that fix changed the createAnnotation
method so it calls PrivilegedActions.getClassLoader, the getClassLoader is still returning
the wrong class loader.
> The attached patch reverses the order of class loader retrieval in that method. If it
is unable to get the class loader from the provided type, it will fall back to the thread
context class loader rather than the other way around.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message