- From: Anselm Baird_Smith <abaird@www43.inria.fr>
- Date: Tue, 28 Jan 1997 09:25:27 +0100 (MET)
- To: karenkay@sholink.com (Karen Cheng)
- Cc: www-jigsaw@www10.w3.org
Karen Cheng writes:
> Using getParent() within getSomeResource() means that this method
> can't be made static, and so we'd have to create an instance of
> MyResource before we can get the shared context resource, right?
Correct,
> I have a GlobalResource class which registers a number of global
> attributes, and then I have the following ResourceManager class (which
> is your MyResource class):
>
> public class ResourceManager extends HTTPResource {
> static GlobalResource gr;
>
> public ResourceManager() {}
>
> public synchronized GlobalResource getGlobalResource() {
> if (gr == null) {
> // Get the container resource.
> Resource parent = getParent();
> // Lookup the global resource within that container.
> gr = (GlobalResource) ((DirectoryResource) parent).lookup("globalResource\
> ");
> }
> return gr;
> }
> }
>
> However, when I tried to use it in the constructor of one of my other
> classes, I get a null pointer exception from getGlobalResource():
>
> public MyNewResource() {
> ResourceManager rm = new ResourceManager();
> GlobalResource gr = rm.getGlobalResource();
>
> String attr = gr.getAttr();
> : : :
> }
>
> Note that I've used Admin/Editor to create "globalResource" under the User
> directory, which is where all my other resources were created.
>
> Could you please tell me what's wrong? Why didn't lookup() load the
> global resource when it couldn't find it in the resource store?
It should have, can you provide the stack trace for the
NullPointerException ? I think either the globalResource doesn't
exist, or it hasn't been initialized properly; the stack trace will
help deteriming the precise cause of the problem.
Anselm.
Received on Tuesday, 28 January 1997 03:25:34 UTC