Commit 235a5228 authored by Zhuohao Li's avatar Zhuohao Li Committed by Jared Tan

fix #2092. (#2648)

* fix #2092.

* Revert "fix #2092."

This reverts commit d8076ef2

* fix #2092. change deferredResults key toLowerCase.

* change HashMap to TreeMap.

* add DeferredResultWrapper compareTo;
parent ff392573
......@@ -21,7 +21,9 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import com.google.common.collect.Multimaps;
import com.google.common.collect.Ordering;
import com.google.common.collect.Sets;
import com.google.common.collect.TreeMultimap;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.slf4j.Logger;
......@@ -54,7 +56,7 @@ import java.util.function.Function;
public class NotificationControllerV2 implements ReleaseMessageListener {
private static final Logger logger = LoggerFactory.getLogger(NotificationControllerV2.class);
private final Multimap<String, DeferredResultWrapper> deferredResults =
Multimaps.synchronizedSetMultimap(HashMultimap.create());
Multimaps.synchronizedSetMultimap(TreeMultimap.create(String.CASE_INSENSITIVE_ORDER, Ordering.natural()));
private static final Splitter STRING_SPLITTER =
Splitter.on(ConfigConsts.CLUSTER_NAMESPACE_SEPARATOR).omitEmptyStrings();
private static final Type notificationsTypeReference =
......
......@@ -7,6 +7,7 @@ import com.ctrip.framework.apollo.core.dto.ApolloConfigNotification;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.lang.NonNull;
import org.springframework.web.context.request.async.DeferredResult;
import java.util.List;
......@@ -15,7 +16,7 @@ import java.util.Map;
/**
* @author Jason Song(song_s@ctrip.com)
*/
public class DeferredResultWrapper {
public class DeferredResultWrapper implements Comparable<DeferredResultWrapper> {
private static final ResponseEntity<List<ApolloConfigNotification>>
NOT_MODIFIED_RESPONSE_LIST = new ResponseEntity<>(HttpStatus.NOT_MODIFIED);
......@@ -64,4 +65,9 @@ public class DeferredResultWrapper {
public DeferredResult<ResponseEntity<List<ApolloConfigNotification>>> getResult() {
return result;
}
@Override
public int compareTo(@NonNull DeferredResultWrapper deferredResultWrapper) {
return this == deferredResultWrapper ? 0 : 1;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment