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