You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hivemind.apache.org by "James Carman (JIRA)" <hi...@jakarta.apache.org> on 2005/05/04 15:24:11 UTC
[jira] Closed: (HIVEMIND-78) Certain classloaders (AntClassLoader for example) cause NullPointerException in impl.MessageFormatter
[ http://issues.apache.org/jira/browse/HIVEMIND-78?page=all ]
James Carman closed HIVEMIND-78:
--------------------------------
> Certain classloaders (AntClassLoader for example) cause NullPointerException in impl.MessageFormatter
> -----------------------------------------------------------------------------------------------------
>
> Key: HIVEMIND-78
> URL: http://issues.apache.org/jira/browse/HIVEMIND-78
> Project: HiveMind
> Type: Bug
> Components: framework
> Versions: 1.0, 1.1
> Environment: MacOSX. Running unit tests of code running within hivemind using JUnit inside Ant inside Maven.
> Reporter: Paul Russell
> Assignee: James Carman
> Fix For: 1.1
> Attachments: hivemind-package-defect.diff
>
> MessageFormat uses java.lang.Class.getPackage() to obtain the name of the package for the 'reference class' in order to choose an appropriate resource bundle. Unfortunately, java.lang.Class.getPackage() does not guarantee to return a Package object.
> It may return 'null' if (a) the reference class is loaded by the primordial classloader, or (b) if the classloader didn't create a package object and associated it with the class.
> I am seeing this problem while running unit tests of my application within Maven. Example stacktrace follows:
> java.lang.ExceptionInInitializerError
> at org.apache.hivemind.impl.RegistryImpl.getServicePoint(RegistryImpl.java:142)
> at org.apache.hivemind.impl.RegistryImpl.getService(RegistryImpl.java:149)
> at org.apache.hivemind.impl.RegistryImpl.startup(RegistryImpl.java:321)
> at org.apache.hivemind.impl.RegistryBuilder.constructRegistry(RegistryBuilder.java:417)
> ... lots more
> Caused by: java.lang.NullPointerException
> at org.apache.hivemind.impl.MessageFormatter.<init>(MessageFormatter.java:49)
> at org.apache.hivemind.impl.MessageFormatter.<init>(MessageFormatter.java:44)
> at org.apache.hivemind.impl.ImplMessages.<clinit>(ImplMessages.java:45)
> ... 59 more
> The only safe way that I can see to achieve the same effect as Class.getPackage().getName() is to do something like:
> String lReferenceClassName = referenceClass.getName();
> String lPackageName = lReferenceClassName.substring(0,lReferenceClassName.lastIndexOf('.'));
> ... probably as a private function within MessageFormat itself.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: hivemind-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: hivemind-dev-help@jakarta.apache.org