diff -r b7aaba9e0fa4 core.startup/src/org/netbeans/core/startup/ModuleList.java --- a/core.startup/src/org/netbeans/core/startup/ModuleList.java Tue Apr 07 18:23:15 2009 +0400 +++ b/core.startup/src/org/netbeans/core/startup/ModuleList.java Wed Apr 08 16:12:05 2009 +0200 @@ -873,7 +873,10 @@ // be version-controlled we want to avoid gratuitous format changes. for (Map.Entry entry: new TreeMap(m).entrySet()) { String name = entry.getKey(); - if (name.equals("installerState") || name.equals("name")) { // NOI18N + if ( + name.equals("installerState") || name.equals("name") || // NOI18N + name.equals("deps") // NOI18N + ) { // Skip this one, it is a pseudo-param. continue; } @@ -1036,7 +1039,7 @@ for (Module m : mgr.getModules()) { DiskStatus status = statuses.get(m.getCodeNameBase()); if (status != null) { - moduleChanged(m, status); + moduleChanged(m, status); m.addPropertyChangeListener(listener); } } @@ -1117,7 +1120,19 @@ synchronized (status) { LOG.log(Level.FINE, "moduleChanged: {0}", m); Map newProps = computeProperties(m); - if (! Utilities.compareObjects(status.diskProps, newProps)) { + int cnt = 0; + for (Map.Entry entry : status.diskProps.entrySet()) { + if (entry.getKey().equals("deps")) { // NOI18N + continue; + } + Object snd = newProps.get(entry.getKey()); + if (!entry.getValue().equals(snd)) { + cnt = -1; + break; + } + cnt++; + } + if (cnt != newProps.size()) { if (LOG.isLoggable(Level.FINE)) { Set> changes = new HashSet>(newProps.entrySet()); changes.removeAll(status.diskProps.entrySet());