diff --git a/README.md b/README.md
index dff52327..e65b4c06 100644
--- a/README.md
+++ b/README.md
@@ -78,14 +78,14 @@ Add the following Maven dependency in your project's pom.xml file:
io.harness
ff-java-server-sdk
- 1.6.0
+ 1.6.1
```
#### Gradle
```
-implementation 'io.harness:ff-java-server-sdk:1.6.0'
+implementation 'io.harness:ff-java-server-sdk:1.6.1'
```
### Code Sample
diff --git a/examples/src/main/java/io/harness/ff/examples/GettingStarted.java b/examples/src/main/java/io/harness/ff/examples/GettingStarted.java
index 513d2e2b..0a8ba0ca 100644
--- a/examples/src/main/java/io/harness/ff/examples/GettingStarted.java
+++ b/examples/src/main/java/io/harness/ff/examples/GettingStarted.java
@@ -67,4 +67,4 @@ private static String getEnvOrDefault(String key, String defaultValue) {
}
return value;
}
-}
\ No newline at end of file
+}
diff --git a/settings.gradle b/settings.gradle
index 404a7b1a..091df4c0 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -4,7 +4,7 @@ dependencyResolutionManagement {
versionCatalogs {
libs {
// main sdk version
- version('sdk', '1.6.0');
+ version('sdk', '1.6.1');
// sdk deps
version('okhttp3', '4.12.0')
diff --git a/src/main/java/io/harness/cf/client/api/Evaluator.java b/src/main/java/io/harness/cf/client/api/Evaluator.java
index 7f9cfb49..6731960a 100644
--- a/src/main/java/io/harness/cf/client/api/Evaluator.java
+++ b/src/main/java/io/harness/cf/client/api/Evaluator.java
@@ -226,7 +226,6 @@ private boolean isTargetIncludedOrExcludedInSegment(List segmentList, Ta
// New style rules, if sent by BE prefer those first
List newServingRules = segment.getServingRules();
if (newServingRules != null && !newServingRules.isEmpty()) {
- newServingRules.sort(Comparator.comparing(GroupServingRule::getPriority));
for (GroupServingRule servingRule : newServingRules) {
if (evaluateClausesV2(servingRule.getClauses(), target)) {
diff --git a/src/main/java/io/harness/cf/client/api/StorageRepository.java b/src/main/java/io/harness/cf/client/api/StorageRepository.java
index eec02b82..840c3e45 100644
--- a/src/main/java/io/harness/cf/client/api/StorageRepository.java
+++ b/src/main/java/io/harness/cf/client/api/StorageRepository.java
@@ -3,11 +3,9 @@
import io.harness.cf.client.common.Cache;
import io.harness.cf.client.common.Storage;
import io.harness.cf.client.common.Utils;
-import io.harness.cf.model.Clause;
-import io.harness.cf.model.FeatureConfig;
-import io.harness.cf.model.Segment;
-import io.harness.cf.model.ServingRule;
+import io.harness.cf.model.*;
import java.util.ArrayList;
+import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import lombok.NonNull;
@@ -131,6 +129,10 @@ public void setSegment(@NonNull String identifier, @NonNull Segment segment) {
log.debug("Segment {} already exists", identifier);
return;
}
+
+ // Sort the serving rules before storing the segment
+ sortSegmentServingRules(segment);
+
final String segmentKey = formatSegmentKey(identifier);
if (store != null) {
store.set(segmentKey, segment);
@@ -196,6 +198,12 @@ protected boolean isSegmentOutdated(@NonNull String identifier, @NonNull Segment
return false;
}
+ private void sortSegmentServingRules(Segment segment) {
+ if (segment.getServingRules() != null && segment.getServingRules().size() > 1) {
+ segment.getServingRules().sort(Comparator.comparing(GroupServingRule::getPriority));
+ }
+ }
+
@NonNull
protected String formatFlagKey(@NonNull String identifier) {
return String.format("flags/%s", identifier);