Fixed bug in integrate (compile-server).

This commit is contained in:
Dmitry Boulytchev
2012-02-21 17:14:09 +04:00
parent bf9311097c
commit 1bde0a1fe1
4 changed files with 21 additions and 6 deletions
@@ -1605,7 +1605,7 @@ public class Mappings {
}
}
if (delta.isDifferentiated()) {
if (delta.isDifferentiated() && false) {
for (DependencyContext.S c : delta.getChangedClasses()) {
myClassToSubclasses.remove(c);
@@ -1651,9 +1651,9 @@ public class Mappings {
}
}
else {
mySourceFileToClasses.putAll(delta.mySourceFileToClasses);
mySourceFileToUsages.putAll(delta.mySourceFileToUsages);
mySourceFileToAnnotationUsages.putAll(delta.mySourceFileToAnnotationUsages);
mySourceFileToClasses.replaceAll(delta.mySourceFileToClasses);
mySourceFileToUsages.replaceAll(delta.mySourceFileToUsages);
mySourceFileToAnnotationUsages.replaceAll(delta.mySourceFileToAnnotationUsages);
}
final Collection<DependencyContext.S> compiledSet = new HashSet<DependencyContext.S>(compiled.size());
@@ -30,7 +30,8 @@ interface MultiMaplet<K, V> {
Collection<V> get(final K key);
void put(final K key, final V value);
void put(final K key, final Collection<V> value);
void putAll(MultiMaplet<K, V> m);
void putAll(MultiMaplet<K,V> m);
void replaceAll(MultiMaplet<K, V> m);
void remove(final K key);
void removeFrom(final K key, final V value);
void removeAll(final K key, final Collection<V> value);
@@ -141,6 +141,13 @@ class PersistentMultiMaplet<K, V> implements MultiMaplet<K, V> {
@Override
public void putAll(MultiMaplet<K, V> m) {
for (Map.Entry<K, Collection<V>> entry : m.entrySet()) {
put(entry.getKey(), entry.getValue());
}
}
@Override
public void replaceAll(MultiMaplet<K, V> m) {
for (Map.Entry<K, Collection<V>> entry : m.entrySet()) {
final K key = entry.getKey();
remove(key);
@@ -54,6 +54,13 @@ class TransientMultiMaplet<K, V> implements MultiMaplet<K, V> {
return myMap.get(key);
}
@Override
public void putAll(final MultiMaplet<K, V> m) {
for (Map.Entry<K, Collection<V>> e : m.entrySet()) {
put(e.getKey(), e.getValue());
}
}
@Override
public void put(final K key, final Collection<V> value) {
final Collection<V> x = myMap.get(key);
@@ -102,7 +109,7 @@ class TransientMultiMaplet<K, V> implements MultiMaplet<K, V> {
}
@Override
public void putAll(MultiMaplet<K, V> m) {
public void replaceAll(MultiMaplet<K, V> m) {
for (Map.Entry<K, Collection<V>> e : m.entrySet()) {
remove(e.getKey());
put(e.getKey(), e.getValue());