You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Andrei Pozolotin (JIRA)" <ji...@apache.org> on 2011/05/14 14:13:47 UTC
[jira] [Commented] (FELIX-2951) guidelines: felix osgi bundle
class load vs
Thread.currentThread().getContextClassLoader().getResource("")
[ https://issues.apache.org/jira/browse/FELIX-2951?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13033515#comment-13033515 ]
Andrei Pozolotin commented on FELIX-2951:
-----------------------------------------
the dreaded workaround which we are trying to avoid in osgi bundle code:
http://stackoverflow.com/questions/2198928/better-handling-of-thread-context-classloader-in-osgi
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
/*
* Start threads, or establish connections, here, now
*/
} finally {
Thread.currentThread().setContextClassLoader(tccl);
}
> guidelines: felix osgi bundle class load vs Thread.currentThread().getContextClassLoader().getResource("")
> ------------------------------------------------------------------------------------------------------------------
>
> Key: FELIX-2951
> URL: https://issues.apache.org/jira/browse/FELIX-2951
> Project: Felix
> Issue Type: Improvement
> Components: Framework
> Affects Versions: framework-3.2.1
> Reporter: Andrei Pozolotin
>
> Richard, hello;
> 1) here you say
> http://old.nabble.com/Can-the-thread-context-classloader-issue-be-solved-at-all--td28260809.html
> that "There is no reliable way to do this since..."
> 2) this project
> http://pivot.apache.org/index.html
> is using this kind of pattern quite often:
> ImageView ::
> /**
> * Sets the image view's image by {@linkplain ClassLoader#getResource(String)
> * resource name}.
> *
> * @param imageName
> * The resource name of the image to set.
> *
> * @see #setImage(URL)
> */
> public final void setImage(String imageName) {
> if (imageName == null) {
> throw new IllegalArgumentException("imageName is null.");
> }
> ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
> setImage(classLoader.getResource(imageName.substring(1)));
> }
> 3) instead of trying to work around this inside of felix, can you please provide
> a set of guidelines for developers of projects such as apache pivot,
> so the issue is gone?
> thank you;
> Andrei
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira