2008-10-22 7 views
5

Est-ce que Thread.getContextClassLoader() peut être nul? Le javadoc n'est pas vraiment clair.
Une bibliothèque devrait-elle prendre en compte ce cas?Thread.getContextClassLoader() == null?

Mise à jour: la raison pour laquelle j'ai demandé que beansbinding.dev.java.net ne fait pas travail dans ce cas (et mon code ne setContextClassLoader(null)

Répondre

9

threads Java créés à partir du code JNI dans un thread non-java ont ContextClassloader null à moins que le créateur définit explicitement.

également dans un tel contexte retourne Thread.currentThread() null.

+0

Cela peut être corrigé en définissant 'ClassLoader cl = ClassLoader.getSystemClassLoader(); Thread.currentThread(). SetContextClassLoader (cl); ' –

4

Oui, vous devriez, quelqu'un aurait pu appelé Thread.setContextClassLoader(null) et votre bibliothèque devrait être en mesure de l'OMI à traiter que.

+0

C'est vraiment une mauvaise chose à faire. Même les classes des extensions installées ne seront pas trouvées avec ce chargeur de classe de contexte de thread. –

+0

Je ne vois pas pourquoi ce serait méchant. –