Thanks David. There is definitely something fishy going on. I'm adding
some log4j statements to my code so I can see what type of object is
being passed as a ContentID and causing the NullPointerExcpetion to be
thrown.

I'll report back to the list with my findings.

SS

On 5/22/07, David Zwiers <[EMAIL PROTECTED]> wrote:
> Without looking at the Src / stack trace, I'm going to assume that you
> are looking for a non-renderable layer ... so you may want to check that
> contentId is also not null incase the internal code is missing some
> defensive programming.
>
> if(contentID == null || getRenderer(contented) == null){
>        ...
> }
>
> David
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of
> Sunburned Surveyor
> Sent: May 21, 2007 2:08 PM
> To: List for discussion of JPP development and use.
> Subject: Re: [JPP-Devel] I could really use some help with this question
> onthe RenderingManager...
>
> Larry,
>
> Thanks for clarifying that. I'm going to compare the render() methods
> in JUMP, OpenJUMP, and in my modified code.
>
> When I changed the statement
>
> if (getRenderer(contentID).equals(null))
>
> back to the statement
>
> if (getRenderer(contentID == null)
>
> the NullPointerException is generated in a later statement in the
> render() method. This tells me that at some point the render() method
> in OpenJUMP is passed a null value.
>
> If this wasn't the case the statement
>
> if (getRenderer(contentID).equals(null))
>
> would never generate a NullPointerException.
>
> I'll get back to the list if I ever figure out what is going on.
>
> The Sunburned Surveyor
>
> On 5/21/07, Larry Becker <[EMAIL PROTECTED]> wrote:
> > Wishful thinking.  There are no layers in an empty project, so there
> are no
> > renders.
> >
> >
> > Larry
> >
> > On 5/21/07, Sunburned Surveyor < [EMAIL PROTECTED]> wrote:
> > > I just realized OpenJUMP isn't passing the LayerViewPanel or any
> other
> > > "phantom" object to the render() method.
> > >
> > > The only way the
> > >
> > > if (getRenderer(contentID).equals(null))
> > >
> > > statement could be causing a NullPointerException is if OpenJUMP was
> > > passing the render() method a null value.
> > >
> > > I think it does this when opening an "empty" project or right before
> a
> > > pan and zoom.
> > >
> > > I'll see if I can modify the render() method to handle this. Maybe
> Jon
> > > would remember how this code works...
> > >
> > > SS
> > >
> > > On 5/21/07, Sunburned Surveyor <[EMAIL PROTECTED]> wrote:
> > > > Larry,
> > > >
> > > > This makes sense. I didn't think about the fact that I was calling
> the
> > > > Object.equals method in this line.
> > > >
> > > > I find your comments interesting because a Layer object is not
> passed
> > > > to OpenJUMP when a project is first opened. Maybe this is why I
> can
> > > > rendering works with no error when I load a Shapefile. In this
> case I
> > > > know OpenJUMP is being passed a valid Layer object.
> > > >
> > > > I think something besides a layer is being passed to the render()
> > > > fmethod when OpenJUMP first opens up an empty project. I think
> this
> > > > same "phantom" object is being passed before any Layerables the
> Layer
> > > > View is panned or zoomed.
> > > >
> > > > Perhaps the render() method is passed a reference to the
> > > > LayerViewPanel itself? I'll have to take a look at the code in
> JUMP to
> > > > see if I can figure this out.
> > > >
> > > > Very interesting. At least I am beginning to think the problem
> isn't
> > > > in any of the classes that I introduced.
> > > >
> > > > The Sunburned Surveyor
> > > > > Hi SS,
> > > > >
> > > > > You said:
> > > > > The line that is generating the error mesage is this:
> > > > >
> > > > > if (getRenderer(contentID).equals(null))
> > > > > The only way that could be true is if contentID is null.  If I
> > remember
> > > > > correctly, contentID is basically the layer object.
> > > > >
> > > > > Larry
> > > > >
> > > > >
> > > > >
> > > > > On 5/21/07, Sunburned Surveyor < [EMAIL PROTECTED]>
> wrote:
> > > > > >
> > > > > > Sascha,
> > > > > >
> > > > > > This is how the method was coded first, and I still got the
> error
> > > > > > message. I changed it today thinking that might fix the
> problem.
> > > > > >
> > > > > > Do you have any other ideas?
> > > > > >
> > > > > > The Sunburned Surveyor
> > > > > >
> > > > > > On 5/21/07, Sascha L. Teichmann < [EMAIL PROTECTED]>
> wrote:
> > > > > > > -----BEGIN PGP SIGNED MESSAGE-----
> > > > > > > Hash: SHA1
> > > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > What about rewriting
> > > > > > >
> > > > > > > getRenderer(contentID).equals(null)
> > > > > > >
> > > > > > > as
> > > > > > >
> > > > > > > getRenderer(contentID) == null
> > > > > > >
> > > > > > > ?
> > > > > > >
> > > > > > > - - Sascha
> > > > > > >
> > > > > > > Sunburned Surveyor schrieb:
> > > > > > > > I'm about ready to give up on this pluggable rendering
> system
> > for
> > > > > > > > OpenJUMP. :]
> > > > > > > >
> > > > > > > > I created JUnit tests for the two main classes involved,
> namely
> > > > > > > > RendererFactory and RegularRendererFactoryTool. All the
> JUnit
> > tests
> > > > > > > > for the public methods in both the classes pass with no
> problems
> > now
> > > > > > > > that I have made some corrections to my code.
> > > > > > > >
> > > > > > > > I built OpenJUMP today so that I could test the modified
> code.
> > > > > > > > OpenJUMP opens but gives me an error message after
> displaying
> > the
> > > > > > > > layer view. The error message is again a
> NullPointerException
> > but this
> > > > > > > > time it is coming from the render() method of the
> > RenderingManager
> > > > > > > > class which seems odd.
> > > > > > > >
> > > > > > > > The line that is generating the error mesage is this:
> > > > > > > >
> > > > > > > > if (getRenderer(contentID).equals(null))
> > > > > > > >
> > > > > > > > This really confuses me, since it seems that we are
> calling the
> > > > > > > > getRendererMethod which is defined in the same class,
> > > > > > > > RenderingManager, that also defines the render() method
> that is
> > > > > > > > throwing an exception.
> > > > > > > >
> > > > > > > > How can I be generating a NullPointerException from this
> method?
> > If
> > > > > > > > the NullPointerException was coming from inside the
> > getRenderer()
> > > > > > > > method itself, wouldn't that be indicated in the stack
> trace of
> > the
> > > > > > > > exception?
> > > > > > > >
> > > > > > > > I should also mention that OpenJUMP correctly renders a
> layer
> > when I
> > > > > > > > am adding a new layer to the project, but that any
> attempts to
> > pan or
> > > > > > > > zoom the Layer View result in the same
> NullPointerException that
> > is
> > > > > > > > produced when OpenJUMP first opens.
> > > > > > > >
> > > > > > > > I'm really lost with this one. Any help or suggestions of
> where
> > to
> > > > > > > > look for the source of this NullPointerException would be
> > greatly
> > > > > > > > appreciated.
> > > > > > > >
> > > > > > > > Thanks in advance for the help.
> > > > > > > >
> > > > > > > > The Sunburned Surveyor
> > > > > > > >
> > > > > > > > P.S. - I have attached the text will all of the statements
> of
> > the
> > > > > > > > RenderingManager.render() method if you want to take a
> look.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > >
> >
> ------------------------------------------------------------------------
> > > > > > > >
> > > > > > > >       public void render(Object contentID, boolean
> > clearImageCache) {
> > > > > > > >
> > > > > > > >               if
> > > > > (getRenderer(contentID).equals(null))
> > > > > > > >               {
> > > > > > > >                       /*
> > > > > > > >                        * Modified this method to wrap the
> call
> > to
> > > > > createRenderer() in a try/catch block.
> > > > > > > >                        * [The Sunburned Surveyor
> 2007-05-02]
> > > > > > > >                        *
> > > > > > > >                        */
> > > > > > > >                       try
> > > > > > > >                       {
> > > > > > > >                               setRenderer(contentID,
> > > > > createRenderer(contentID));
> > > > > > > >                       }
> > > > > > > >
> > > > > > > >
> > > > > catch(ExcPluggableRendererNotFound thisException)
> > > > > > > >                       {
> > > > > > > >
> > > > > System.err.println(thisException.getMessage());
> > > > > > > >                       }
> > > > > > > >               }
> > > > > > > >
> > > > > > > >               if
> > > > > (getRenderer(contentID).isRendering()) {
> > > > > > > >
> > > > > getRenderer(contentID).cancel();
> > > > > > > >
> > > > > > > >                       //It might not cancel immediately,
> so
> > create a
> > > > > new Renderer [Jon
> > > > > > > >                       // Aquino]
> > > > > > > >
> > > > > > > >                       /*
> > > > > > > >                        * Modified this method to wrap the
> call
> > to
> > > > > createRenderer() in a try/catch block.
> > > > > > > >                        * [The Sunburned Surveyor
> 2007-05-02]
> > > > > > > >                        *
> > > > > > > >                        */
> > > > > > > >                       try
> > > > > > > >                       {
> > > > > > > >                               setRenderer(contentID,
> > > > > createRenderer(contentID));
> > > > > > > >                       }
> > > > > > > >
> > > > > > > >
> > > > > catch(ExcPluggableRendererNotFound thisException)
> > > > > > > >                       {
> > > > > > > >                               System.err.println
> > > > > (thisException.getMessage());
> > > > > > > >                       }
> > > > > > > >               }
> > > > > > > >
> > > > > > > >               if (clearImageCache) {
> > > > > > > >
> > > > > getRenderer(contentID).clearImageCache();
> > > > > > > >               }
> > > > > > > >               Runnable runnable =
> > > > > getRenderer(contentID).createRunnable();
> > > > > > > >               if (runnable != null) {
> > > > > > > >                       // Before I would create threads
> that did
> > > > > nothing. Now I never do
> > > > > > > >                       // that -- I just return null. A
> dozen
> > threads
> > > > > that do nothing make
> > > > > > > >                       // the system sluggish. [Jon Aquino]
> > > > > > > >                       ((contentID instanceof Layerable &&
> > ((Layerable)
> > > > > contentID)
> > > > > > > >
> > > > >
> > .getBlackboard().get(USE_MULTI_RENDERING_THREAD_QUEUE_KEY,
> > > > > > > >
> > > > > false)) ? multiRendererThreadQueue
> > > > > > > >                                       :
> > > > > defaultRendererThreadQueue).add(runnable);
> > > > > > > >               }
> > > > > > > >
> > > > > > > >               if (!repaintTimer.isRunning()) {
> > > > > > > >                       repaintPanel();
> > > > > > > >                       repaintTimer.start ();
> > > > > > > >               }
> > > > > > > >       }
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > >
> >
> ------------------------------------------------------------------------
> > > > > > > >
> > > > > > > >
> > > > >
> >
> ------------------------------------------------------------------------
> -
> > > > > > > > This SF.net email is sponsored by DB2 Express
> > > > > > > > Download DB2 Express C - the FREE version of DB2 express
> and
> > take
> > > > > > > > control of your XML. No limits. Just data. Click to get it
> now.
> > > > > > > > http://sourceforge.net/powerbar/db2/
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > >
> >
> ------------------------------------------------------------------------
> > > > > > > >
> > > > > > > > _______________________________________________
> > > > > > > > Jump-pilot-devel mailing list
> > > > > > > > Jump-pilot-devel@lists.sourceforge.net
> > > > > > > >
> > > > >
> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> > > > > > > -----BEGIN PGP SIGNATURE-----
> > > > > > > Version: GnuPG v1.4.2.2 (GNU/Linux)
> > > > > > > Comment: Using GnuPG with Mozilla -
> http://enigmail.mozdev.org
> > > > > > >
> > > > > > >
> > > > >
> > iD8DBQFGUe9zsrvOlFf8EzcRAp76AJ9c67RdzncWmgt8O6U+Xy/tmti3KQCg0VOj
> > > > > > > SWcwqwDJ9htfc9SJe1t+Ozo=
> > > > > > > =qsZ3
> > > > > > > -----END PGP SIGNATURE-----
> > > > > > >
> > > > > > >
> > > > >
> >
> ------------------------------------------------------------------------
> -
> > > > > > > This SF.net email is sponsored by DB2 Express
> > > > > > > Download DB2 Express C - the FREE version of DB2 express and
> take
> > > > > > > control of your XML. No limits. Just data. Click to get it
> now.
> > > > > > > http://sourceforge.net/powerbar/db2/
> > > > > > > _______________________________________________
> > > > > > > Jump-pilot-devel mailing list
> > > > > > > Jump-pilot-devel@lists.sourceforge.net
> > > > > > >
> > > > >
> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> >
> ------------------------------------------------------------------------
> -
> > > > > > This SF.net email is sponsored by DB2 Express
> > > > > > Download DB2 Express C - the FREE version of DB2 express and
> take
> > > > > > control of your XML. No limits. Just data. Click to get it
> now.
> > > > > > http://sourceforge.net/powerbar/db2/
> > > > > > _______________________________________________
> > > > > > Jump-pilot-devel mailing list
> > > > > > Jump-pilot-devel@lists.sourceforge.net
> > > > > >
> > > > >
> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > http://amusingprogrammer.blogspot.com/
> > > > >
> >
> ------------------------------------------------------------------------
> -
> > > > > This SF.net email is sponsored by DB2 Express
> > > > > Download DB2 Express C - the FREE version of DB2 express and
> take
> > > > > control of your XML. No limits. Just data. Click to get it now.
> > > > > http://sourceforge.net/powerbar/db2/
> > > > > _______________________________________________
> > > > > Jump-pilot-devel mailing list
> > > > > Jump-pilot-devel@lists.sourceforge.net
> > > > >
> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> > > > >
> > > > >
> > > >
> > >
> > >
> >
> ------------------------------------------------------------------------
> -
> > > This SF.net email is sponsored by DB2 Express
> > > Download DB2 Express C - the FREE version of DB2 express and take
> > > control of your XML. No limits. Just data. Click to get it now.
> > > http://sourceforge.net/powerbar/db2/
> > > _______________________________________________
> > > Jump-pilot-devel mailing list
> > > Jump-pilot-devel@lists.sourceforge.net
> > >
> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> > >
> >
> >
> >
> > --
> > http://amusingprogrammer.blogspot.com/
> >
> ------------------------------------------------------------------------
> -
> > This SF.net email is sponsored by DB2 Express
> > Download DB2 Express C - the FREE version of DB2 express and take
> > control of your XML. No limits. Just data. Click to get it now.
> > http://sourceforge.net/powerbar/db2/
> > _______________________________________________
> > Jump-pilot-devel mailing list
> > Jump-pilot-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
> >
> >
>
> ------------------------------------------------------------------------
> -
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to