Skip to main content

NetBeans Dev 4.2 - Going from bad to worse?

For as long as Matisse has been advertised (starting June 26th) I've never had the success of building GUIs that others seem to have. Enough with the hype. Starting with this post, I've started to document the brokeness of NetBeans Matisse by trying to build Roman's DemoForm. I pulled down the latest developer releases for NetBeans 4.2, dated the 24th and the 25th of July. Both of them are broken now in some fundamental areas besides Matisse. In particular you can't run the update center. For the last two releases invoking the update center has produced the lovely exception dialog you can see to the right.

The Matisse module is still very broken, and it is still impossible to create the DemoForm that is a part of Roman's flash demo. I would strongly suggest to the developers and boosters of NetBeans that they quietly hide Roman's demo until such time as Matisse is robust enough that the entire demo can be successfully built. Otherwise Matisse is now little more than vaporware. And go back and fix the update center.

What follows is the text of the update center exception.

java.lang.NullPointerException
at org.netbeans.modules.autoupdate.XMLAutoupdateType.getDefaultURL(XMLAutoupdateType.java:325)
at org.netbeans.modules.autoupdate.XMLAutoupdateType.readObject(XMLAutoupdateType.java:373)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:919)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1813)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
at org.netbeans.modules.settings.convertors.XMLSettingsSupport$SettingsRecognizer.readSerial(XMLSettingsSupport.java:514)
at org.netbeans.modules.settings.convertors.XMLSettingsSupport$SettingsRecognizer.instanceCreate(XMLSettingsSupport.java:542)
at org.netbeans.modules.settings.convertors.SerialDataConvertor$SettingsInstance.instanceCreate(SerialDataConvertor.java:357)
at org.openide.loaders.FolderLookup$ICItem.getInstance(FolderLookup.java:485)
at org.openide.util.lookup.AbstractLookup$R.allInstances(AbstractLookup.java:875)
at org.openide.util.lookup.ProxyLookup$R.computeResult(ProxyLookup.java:435)
at org.openide.util.lookup.ProxyLookup$R.allInstances(ProxyLookup.java:388)
at org.openide.util.lookup.ProxyLookup$R.computeResult(ProxyLookup.java:435)
at org.openide.util.lookup.ProxyLookup$R.allInstances(ProxyLookup.java:388)
at org.netbeans.modules.autoupdate.AutoupdateType.autoupdateTypes(AutoupdateType.java:68)
at org.netbeans.modules.autoupdate.ServerPanel$ServerTableModel.refreshContent(ServerPanel.java:181)
at org.netbeans.modules.autoupdate.ServerPanel.(ServerPanel.java:49)
at org.netbeans.modules.autoupdate.FirstPanel.(FirstPanel.java:49)
at org.netbeans.modules.autoupdate.Wizard$3.(Wizard.java:497)
at org.netbeans.modules.autoupdate.Wizard$StartPanel.getComponent(Wizard.java:496)
at org.openide.WizardDescriptor.updateState(WizardDescriptor.java:641)
at org.openide.WizardDescriptor.initialize(WizardDescriptor.java:369)
at org.openide.NotifyDescriptor.getterCalled(NotifyDescriptor.java:237)
at org.openide.NotifyDescriptor.addPropertyChangeListener(NotifyDescriptor.java:599)
at org.netbeans.modules.autoupdate.Wizard.(Wizard.java:202)
at org.netbeans.modules.autoupdate.Wizard.(Wizard.java:106)
at org.netbeans.modules.autoupdate.Wizard.(Wizard.java:101)
at org.netbeans.modules.autoupdate.Wizard.go(Wizard.java:254)
at org.netbeans.modules.autoupdate.UpdateAction.performAction(UpdateAction.java:68)
at org.openide.util.actions.CallableSystemAction$1.run(CallableSystemAction.java:94)
at org.netbeans.modules.openide.util.ActionsBridge.doPerformAction(ActionsBridge.java:47)
at org.openide.util.actions.CallableSystemAction.actionPerformed(CallableSystemAction.java:90)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
[catch] at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Comments

  1. charlie huntJuly 26, 2005

    Hi Bill,

    Thanks for trying Matisse and providing feedback.

    As you have seen in Roman's flash demo, Matisse makes gui building very simple. That does come at a cost of very complex software that's prone to be buggy at this stage of development. That being a development release.

    FWIW, the nature of NetBeans IDE nightly development builds are that bugs are expected. In addition, it's also one of the reasons we have not chosen to enable Matisse right out of the box in the NetBeans IDE 4.2 Development Release.

    At the same time we wanted to put Matisse out there to the NetBeans community via the enabling of a switch so that the community could provide feedback. (Like what you've done)

    Could I ask if you could file bug(s) or check if there are bugs currently filed against Matisse in the NetBeans issuezilla bug database that cover what you've seen? You can use this link to file bugs(s) / search issuezilla, http://www.netbeans.org/community/issues.html

    You may have noticed when you downloaded a nightly build of the 4.2 development release, there's also a "QBuild" type of download. These 4.2 development releases tend to be more stable. But, they are not made available as often as a nightly basis. The "QBuild" has some sanity testing / qualification done on them. It would just be too time consuming and costly to do the same level of testing / qualification on a nightly build.

    Stay tuned ... we should have some demo scripts in the near future you can execute which should help get you up to speed with using Matisse.

    thanks,

    charlie...

    ReplyDelete
  2. >> FWIW, the nature of NetBeans IDE
    >> nightly development builds are that
    >> bugs are expected. In addition,
    >> it's also one of the reasons we
    >> have not chosen to enable Matisse
    >> right out of the box in the
    >> NetBeans IDE 4.2 Development
    >> Release.

    I understand that. But the problem I have is the "advertisement" of Matisse on the front page along with a link to Roman's flash demo. All that would be great if Matisse were more solid than it appears to be. But right now the flash demo in particular reminds me of old school software salesmanship where the system was sold on slideware and mockups. I would think that in an open source project such as NetBeans there would be a little more openness with regards to "your mileage may vary" if you use the developer builds to try and reproduce what Roman did.

    You're right, the Q builds are a lot more stable than the bleeding edge developer builds. And now with the July 26th developer build it appears that Matisse has hit a level of stability capable of allowing something as complex as Roman's form to be created. Look at my next blog entry.

    ReplyDelete
  3. Hi Bill,

    I'm sorry about that you have had some problems with recent NetBeans builds.

    I'm a responsible engineer for AutoUpdate module and this module seems as working for me.

    I speculate about what gone wrong to you cannot connect Update Center: Are you able reproduce it with a fresh userdir? What Update Center do you try to connect?

    Could you please file a defect in http://www.netbeans.org/community/issues.html?

    Thanks for your feedback in advance,
    -jiri

    ReplyDelete
  4. >> I speculate about what gone wrong to you cannot connect Update Center:
    >> Are you able reproduce it with a fresh userdir?

    That rang a bell. Read this post (http://blogbeebe.blogspot.com/2005/07/netbeans-dev-42-one-mystery-solved.html) where I started over with a fresh userdir, or .netbeans/dev under Windows. That corrected the problem. Thanks.

    ReplyDelete

Post a Comment

All comments are checked. Comment SPAM will be blocked and deleted.

Popular posts from this blog

A Decade Long Religious Con Job

I rarely write inflammatory (what some might call trolling) titles to a post, but this building you see before you deserves it. I've been seeing this building next to I-4 just east of Altamonte/436 and Crane's Roost for nearly 12 years, and never knew who owned it. Today on a trip up to Lake Mary with my wife I saw it yet again. That's when I told her I wanted to stop by on the way back and poke around the property, and photograph any parts of it if I could.

What I discovered was this still unfinished eighteen story (I counted) white elephant, overgrown with weeds and yet still under slow-motion construction. It looks impressive with its exterior glass curtain walls, but that impression is quickly lost when you see the unfinished lower stories and look inside to the unfinished interior spaces.

A quick check via Google leads to an article written in 2010 by the Orlando Sentinel about the Majesty Tower. Based on what I read in the article it's owned by SuperChannel 55 WA…

first night for the gingersnaps

The first night has passed and the two have managed to survive, in spite of what their tiny hearts might have thought when first arriving. Greebo, the larger of the two, has been in hiding the entire time so far. Ponder has spent the time zipping in and out of hiding spots, checking things out, and learning just how comfortable pillows are for resting your head.

During the night I felt the tiny body of Ponder hitting the bed as he leaped up on the side, and then climbed to the top to run around on top of me. At least once he play-attacked my fingers. He might be small but his claws are still quite sharp.

When I got up in the morning the bowl of cat kitten food was fairly well depleted. It's been refilled and fresh water put in the big dish on the floor. I'm assuming that both Greebo and Ponder are feeding and drinking. I have seen Greebo under the furniture peeking out at me when I went looking for him. I'm leaving him alone while he continues to adjust.

So far the guys h…

cat-in-a-box channels greta garbo

So I'm sitting at my computer, when I start to notice a racket in back. I ignore it for a while until I hear a load "thump!", as if something had been dropped on the floor, followed by a lot of loud rattling. I turn around and see Lucy in the box just having a grand old time, rolling around and rattling that box a good one. I grab the GX1 and snap a few shots before she notices me and the camera, then leaps out and back into her chair (which used to be my chair before she decided it was her chair).

Just like caring for Katie my black Lab taught me about dogs, caring for Lucy is teaching me about cats. She finds me fascinating, as I do her. And she expresses great affection and love toward me without coaxing. I try to return the affection and love, but she is a cat, and she takes a bat at me on occasion, although I think that's just her being playful. She always has her claws in when she does that.

She sits next to me during the evening in her chair while I sit in mi…