Index: autoupdate/src/org/netbeans/modules/autoupdate/catalog/ModuleBean.java =================================================================== RCS file: /shared/data/ccvs/repository/autoupdate/src/org/netbeans/modules/autoupdate/catalog/ModuleBean.java,v retrieving revision 1.5 diff -u -r1.5 ModuleBean.java --- autoupdate/src/org/netbeans/modules/autoupdate/catalog/ModuleBean.java 14 Nov 2005 14:13:12 -0000 1.5 +++ autoupdate/src/org/netbeans/modules/autoupdate/catalog/ModuleBean.java 7 Dec 2005 16:39:24 -0000 @@ -78,6 +78,11 @@ err.log("invalid, forget it..."); return; } + // avoid the ZipException: No such file or directory when read from non-existing jar file + if (! module.isFixed () && ( module.getJarFile () == null || ! module.getJarFile ().exists ())) { + err.log("standard module w/o jar file is invalid, forget it..."); + return; + } // Set fields. Called inside read mutex. codeName = module.getCodeName(); codeNameBase = module.getCodeNameBase(); @@ -271,7 +276,6 @@ // Inside event thread after a change. err.log("firing changes: module=" + module); supp.firePropertyChange(null, null, null); - ModuleSelectionPanel.getGUI (false).setWaitingState (false, false); } // ModuleNode uses these as keys, so make sure even if recreated after change @@ -395,13 +399,14 @@ // Something changed and now we are in the event thread. // (Either list of modules or pending changes or both.) supp.firePropertyChange(null, null, null); + ModuleSelectionPanel.getGUI (false).setWaitingState (false, true); } public void propertyChange(PropertyChangeEvent evt) { if (SwingUtilities.isEventDispatchThread()) throw new IllegalStateException(); err.log("got changes: evt=" + evt); - ModuleSelectionPanel.getGUI (false).setWaitingState (true, true); if (ModuleManager.PROP_MODULES.equals(evt.getPropertyName())) { + ModuleSelectionPanel.getGUI (false).setWaitingState (true, true); // Later on. Something changed. Again in read mutex. Map modules2Beans = new HashMap(modules.length * 4 / 3 + 1); for (int i = 0; i < modules.length; i++) {