-----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

Reply via email to