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

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…

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…

vm networking problem fixed

Over the weekend I upgraded to Windows 8.1, then discovered that networking for the virtual machines wouldn't work. Then I tried something incredibly simple and fixed the problem.

Checking the system I noticed that three VMware Windows services weren't running; VMnetDHCP, VMUSBArbService, and VMwareNatService. VMware Player allows you to install, remove, or fix an existing installation. I chose to try fixing the installation, and that fixed the problem. The services were re-installed/restarted, and the virtual machines had networking again.

Once network connectivity was established there was exactly one updated file for Ubuntu 13.10, a data file. This underscores how solid and finished the release was this time. Every other version of every other Linux installation I've ever dealt with has always been succeeded by boatloads of updates after the initial installation. But not this time.

Everything is working properly on my notebook. All's right with the world.