From d3bddbad921347bfd4d9e8811ff20e4548ad3acc Mon Sep 17 00:00:00 2001 From: Achim Kraus Date: Mon, 1 Oct 2018 09:56:01 +0200 Subject: [PATCH] Add mid to observation store setContext. Signed-off-by: Achim Kraus --- .../org/eclipse/californium/core/network/BaseMatcher.java | 2 +- .../californium/core/observe/InMemoryObservationStore.java | 4 +++- .../eclipse/californium/core/observe/ObservationStore.java | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/californium-core/src/main/java/org/eclipse/californium/core/network/BaseMatcher.java b/californium-core/src/main/java/org/eclipse/californium/core/network/BaseMatcher.java index da0a342b1c..cc3cc8d592 100644 --- a/californium-core/src/main/java/org/eclipse/californium/core/network/BaseMatcher.java +++ b/californium-core/src/main/java/org/eclipse/californium/core/network/BaseMatcher.java @@ -203,7 +203,7 @@ protected void failed() { @Override public void onContextEstablished(EndpointContext endpointContext) { - observationStore.setContext(token, endpointContext); + observationStore.setContext(token, request.getMID(), endpointContext); } }); } diff --git a/californium-core/src/main/java/org/eclipse/californium/core/observe/InMemoryObservationStore.java b/californium-core/src/main/java/org/eclipse/californium/core/observe/InMemoryObservationStore.java index 140c11a0b5..1188a6eda6 100644 --- a/californium-core/src/main/java/org/eclipse/californium/core/observe/InMemoryObservationStore.java +++ b/californium-core/src/main/java/org/eclipse/californium/core/observe/InMemoryObservationStore.java @@ -141,11 +141,13 @@ public void clear() { } @Override - public void setContext(Token token, final EndpointContext ctx) { + public void setContext(Token token, int mid, EndpointContext ctx) { if (token != null && ctx != null) { Observation obs = map.get(token); if (obs != null) { + // though this implementation doesn't clone the request when put, + // the mid doesn't need to be updated! map.replace(token, obs, new Observation(obs.getRequest(), ctx)); } } diff --git a/californium-core/src/main/java/org/eclipse/californium/core/observe/ObservationStore.java b/californium-core/src/main/java/org/eclipse/californium/core/observe/ObservationStore.java index 20fa2fead8..dca7af3a34 100644 --- a/californium-core/src/main/java/org/eclipse/californium/core/observe/ObservationStore.java +++ b/californium-core/src/main/java/org/eclipse/californium/core/observe/ObservationStore.java @@ -85,9 +85,10 @@ public interface ObservationStore { *

* * @param token The token of the observation to set the context on. + * @param mid assigned mid. The mid is usually not available, when the put is called. * @param endpointContext The context to set. */ - void setContext(Token token, EndpointContext endpointContext); + void setContext(Token token, int mid, EndpointContext endpointContext); void start();