Java News from Wednesday, August 16, 2006

I've been having troubles with Eclipse lately so I decided to give NetBeans yet another try. (Longtime readers will recall that I have been trying various versions of NetBeans and its predecessors for years and have yet to find a release that I considered good enough to use.) With the latest 5.5 beta NetBeans is clearly improving, but it's not there yet. As soon as I tried to create a new project, this is what I saw:

ArrayIndexOutOfBoundsException
java.lang.ArrayIndexOutOfBoundsException: 1
	at java.awt.Container.createHierarchyEvents(Container.java:1335)
	at java.awt.Container.createHierarchyEvents(Container.java:1335)
	at java.awt.Container.createHierarchyEvents(Container.java:1335)
	at java.awt.Container.createHierarchyEvents(Container.java:1335)
	at java.awt.Container.createHierarchyEvents(Container.java:1335)
	at java.awt.Container.createHierarchyEvents(Container.java:1335)
	at java.awt.Container.createHierarchyEvents(Container.java:1335)
	at java.awt.Dialog.conditionalShow(Dialog.java:450)
	at java.awt.Dialog.show(Dialog.java:506)
	at org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:816)
	at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:859)
	at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:847)
	at org.openide.util.Mutex$1.run(Mutex.java:1194)
[catch] at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Obviously this is a bug. In fact, they're at least three bugs here, one major, one serious, and one cosmetic. (If you only see two, it's because the cosmetic bug is hiding the serious bug.) Hopefully Sun will fix all of them before release. I'm not sure if they know about these yet. They've got quite a few ArrayIndexOutOfBoundsExceptions in thier bug database. It's not clear if any of them are the same as mine. I also found a fourth and fifth issue, unrelated to these three when moving on. If I file all of these, that will be seven bug reports today. (Two in Eclipse and five in NetBeans.) Do I really have the time for this? Especially when my first attempt to enter the issue is met with "Permission denied"?

I guess I'm a glutton for punishment, because I did file the bugs; but when I hit the sixth, seventh, and eighth issues, I gave up. It's not like I'm trying to break NetBeans, or look for edge conditions. I'm going right down the center path, doing exactly what any normal user would do; and I just keep spotting problem after problem without half trying. If Sun wants to hire me to test NetBeans, they can; but otherwise I don't have time for this right now.

Update: Bob Treacy tells me one of my bugs has been reported at least twice already, and is fixed in the nightly builds. I had done a cursory search for the bugs before reporting them, but nothing showed up. Google proved once and for all that smart, full text search beats the pants off of fielded boolean searches. Sadly most bug tracking systems haven't learned this lesson yet.

NetBeans vs. Eclipse feels a little like Achilles chasing the tortoise. NetBeans is always getting closer, but they never quite catch up.


Jeff Pace has released DiffJ 1.1.0, commandline application "like the Unix program diff, but specifically for Java code. It compares Java source files so that only the code is compared, not whitespace nor comments. Output is also specific to Java code, showing, for example, methods that have been moved, parameters that have renamed, and exceptions added. For code within methods, the method name is displayed."


IDRsolutions has released JPedal 2.8, a pure Java library for extracting content from PDF files and rasterizing them. Text fragments are extracted as XML elements with font and location information. Images are extracted in both their raw formats and their clipped and scaled formats as TIFF, PNG, or JPEG files. Version 2.8 adds a full-screen mode and page layout options. JPedal is published under the GPL.


The Big Faceless Organization has released the Big Faceless Graph Library 2.2.4, an $800 payware (more if you want support or to distribute your applications that use the library) Java class library for plotting 2D or shaded 3D pie charts, line graphs, area graphs, bar graphs and exporting them to PNG, GIF and PDF. Vesrion 2.2.4 adds digital signature timestamps and remote signatures via a web service. Java 1.2 or later is required.