Committed by
Gerrit Code Review
Ensure exceptions in map event handling do not prevent event acknowledgement
Set default consistency for ConsistentMap operations to SEQUENTIAL Change-Id: I8896ae953932bf323c4512842000e78bf395f9b1
Showing
2 changed files
with
12 additions
and
3 deletions
| ... | @@ -15,6 +15,7 @@ | ... | @@ -15,6 +15,7 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.store.primitives.resources.impl; | 16 | package org.onosproject.store.primitives.resources.impl; |
| 17 | 17 | ||
| 18 | +import static org.slf4j.LoggerFactory.getLogger; | ||
| 18 | import io.atomix.copycat.client.CopycatClient; | 19 | import io.atomix.copycat.client.CopycatClient; |
| 19 | import io.atomix.resource.AbstractResource; | 20 | import io.atomix.resource.AbstractResource; |
| 20 | import io.atomix.resource.ResourceTypeInfo; | 21 | import io.atomix.resource.ResourceTypeInfo; |
| ... | @@ -52,6 +53,7 @@ import org.onosproject.store.service.MapEvent; | ... | @@ -52,6 +53,7 @@ import org.onosproject.store.service.MapEvent; |
| 52 | import org.onosproject.store.service.MapEventListener; | 53 | import org.onosproject.store.service.MapEventListener; |
| 53 | import org.onosproject.store.service.MapTransaction; | 54 | import org.onosproject.store.service.MapTransaction; |
| 54 | import org.onosproject.store.service.Versioned; | 55 | import org.onosproject.store.service.Versioned; |
| 56 | +import org.slf4j.Logger; | ||
| 55 | 57 | ||
| 56 | import com.google.common.collect.Sets; | 58 | import com.google.common.collect.Sets; |
| 57 | 59 | ||
| ... | @@ -62,6 +64,7 @@ import com.google.common.collect.Sets; | ... | @@ -62,6 +64,7 @@ import com.google.common.collect.Sets; |
| 62 | public class AtomixConsistentMap extends AbstractResource<AtomixConsistentMap> | 64 | public class AtomixConsistentMap extends AbstractResource<AtomixConsistentMap> |
| 63 | implements AsyncConsistentMap<String, byte[]> { | 65 | implements AsyncConsistentMap<String, byte[]> { |
| 64 | 66 | ||
| 67 | + private final Logger log = getLogger(getClass()); | ||
| 65 | private final Set<MapEventListener<String, byte[]>> mapEventListeners = Sets.newCopyOnWriteArraySet(); | 68 | private final Set<MapEventListener<String, byte[]>> mapEventListeners = Sets.newCopyOnWriteArraySet(); |
| 66 | 69 | ||
| 67 | public static final String CHANGE_SUBJECT = "changeEvents"; | 70 | public static final String CHANGE_SUBJECT = "changeEvents"; |
| ... | @@ -84,7 +87,13 @@ public class AtomixConsistentMap extends AbstractResource<AtomixConsistentMap> | ... | @@ -84,7 +87,13 @@ public class AtomixConsistentMap extends AbstractResource<AtomixConsistentMap> |
| 84 | } | 87 | } |
| 85 | 88 | ||
| 86 | private void handleEvent(List<MapEvent<String, byte[]>> events) { | 89 | private void handleEvent(List<MapEvent<String, byte[]>> events) { |
| 87 | - events.forEach(event -> mapEventListeners.forEach(listener -> listener.event(event))); | 90 | + events.forEach(event -> mapEventListeners.forEach(listener -> { |
| 91 | + try { | ||
| 92 | + listener.event(event); | ||
| 93 | + } catch (Exception e) { | ||
| 94 | + log.warn("Error processing map event", e); | ||
| 95 | + } | ||
| 96 | + })); | ||
| 88 | } | 97 | } |
| 89 | 98 | ||
| 90 | @Override | 99 | @Override | ... | ... |
| ... | @@ -52,7 +52,7 @@ public final class AtomixConsistentMapCommands { | ... | @@ -52,7 +52,7 @@ public final class AtomixConsistentMapCommands { |
| 52 | 52 | ||
| 53 | @Override | 53 | @Override |
| 54 | public ConsistencyLevel consistency() { | 54 | public ConsistencyLevel consistency() { |
| 55 | - return ConsistencyLevel.LINEARIZABLE; | 55 | + return ConsistencyLevel.SEQUENTIAL; |
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | @Override | 58 | @Override |
| ... | @@ -78,7 +78,7 @@ public final class AtomixConsistentMapCommands { | ... | @@ -78,7 +78,7 @@ public final class AtomixConsistentMapCommands { |
| 78 | 78 | ||
| 79 | @Override | 79 | @Override |
| 80 | public ConsistencyLevel consistency() { | 80 | public ConsistencyLevel consistency() { |
| 81 | - return ConsistencyLevel.BOUNDED_LINEARIZABLE; | 81 | + return ConsistencyLevel.SEQUENTIAL; |
| 82 | } | 82 | } |
| 83 | 83 | ||
| 84 | @Override | 84 | @Override | ... | ... |
-
Please register or login to post a comment