From 10da57d65bfc4d080294cc35c759a80b37a9f09d Mon Sep 17 00:00:00 2001 From: oliviarla Date: Mon, 15 Dec 2025 17:55:49 +0900 Subject: [PATCH] INTERNAL: Move checkDupKey method into KeyValidator --- .../java/net/spy/memcached/ArcusClient.java | 30 ++++++------------- .../java/net/spy/memcached/KeyValidator.java | 13 ++++++++ 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/main/java/net/spy/memcached/ArcusClient.java b/src/main/java/net/spy/memcached/ArcusClient.java index a366abe81..627a8f92a 100644 --- a/src/main/java/net/spy/memcached/ArcusClient.java +++ b/src/main/java/net/spy/memcached/ArcusClient.java @@ -2625,7 +2625,7 @@ public SMGetFuture>> asyncBopSortMergeGet( int count, boolean unique) { KeyValidator.validateBKey(from, to); keyValidator.validateKey(keyList); - checkDupKey(keyList); + keyValidator.checkDupKey(keyList); if (count < 1) { throw new IllegalArgumentException("Count must be larger than 0."); } @@ -2652,7 +2652,7 @@ public SMGetFuture>> asyncBopSortMergeGet( List keyList, long from, long to, ElementFlagFilter eFlagFilter, int count, boolean unique) { keyValidator.validateKey(keyList); - checkDupKey(keyList); + keyValidator.checkDupKey(keyList); if (count < 1) { throw new IllegalArgumentException("Count must be larger than 0."); } @@ -2687,7 +2687,7 @@ public Future> asyncBopInsertBulk( KeyValidator.validateBKey(bkey); keyValidator.validateKey(keyList); - checkDupKey(keyList); + keyValidator.checkDupKey(keyList); Collection>> arrangedKey = groupingKeys(keyList, NON_PIPED_BULK_INSERT_CHUNK_SIZE, APIType.BOP_INSERT); @@ -2721,7 +2721,7 @@ public Future> asyncBopInsertBulk( KeyValidator.validateBKey(bkey); keyValidator.validateKey(keyList); - checkDupKey(keyList); + keyValidator.checkDupKey(keyList); Collection>> arrangedKey = groupingKeys(keyList, NON_PIPED_BULK_INSERT_CHUNK_SIZE, APIType.BOP_INSERT); List> insertList = new ArrayList<>( @@ -2753,7 +2753,7 @@ public Future> asyncMopInsertBulk( keyValidator.validateMKey(mkey); keyValidator.validateKey(keyList); - checkDupKey(keyList); + keyValidator.checkDupKey(keyList); Collection>> arrangedKey = groupingKeys(keyList, NON_PIPED_BULK_INSERT_CHUNK_SIZE, APIType.MOP_INSERT); @@ -2783,7 +2783,7 @@ public Future> asyncSopInsertBulk( List keyList, T value, CollectionAttributes attributesForCreate, Transcoder tc) { keyValidator.validateKey(keyList); - checkDupKey(keyList); + keyValidator.checkDupKey(keyList); Collection>> arrangedKey = groupingKeys(keyList, NON_PIPED_BULK_INSERT_CHUNK_SIZE, APIType.SOP_INSERT); @@ -2813,7 +2813,7 @@ public Future> asyncLopInsertBulk( List keyList, int index, T value, CollectionAttributes attributesForCreate, Transcoder tc) { keyValidator.validateKey(keyList); - checkDupKey(keyList); + keyValidator.checkDupKey(keyList); Collection>> arrangedKey = groupingKeys(keyList, NON_PIPED_BULK_INSERT_CHUNK_SIZE, APIType.LOP_INSERT); @@ -2881,7 +2881,7 @@ public CollectionGetBulkFuture>> asyncBo ElementFlagFilter eFlagFilter, int offset, int count, Transcoder tc) { KeyValidator.validateBKey(from, to); keyValidator.validateKey(keyList); - checkDupKey(keyList); + keyValidator.checkDupKey(keyList); if (offset < 0) { throw new IllegalArgumentException("Offset must be 0 or positive integer."); } @@ -2920,7 +2920,7 @@ public CollectionGetBulkFuture> Transcoder tc) { KeyValidator.validateBKey(from, to); keyValidator.validateKey(keyList); - checkDupKey(keyList); + keyValidator.checkDupKey(keyList); if (offset < 0) { throw new IllegalArgumentException("Offset must be 0 or positive integer."); @@ -3178,18 +3178,6 @@ public void complete() { return rv; } - private void checkDupKey(Collection keyList) { - /* - * Dup Check -> insure elements sequentially added to keyList - * */ - HashSet keySet = new HashSet<>(); - for (String key : keyList) { - if (!keySet.add(key)) { - throw new IllegalArgumentException("Duplicate keys exist in key list."); - } - } - } - private CollectionOperationStatus toCollectionOperationStatus(OperationStatus status) { if (status instanceof CollectionOperationStatus) { return (CollectionOperationStatus) status; diff --git a/src/main/java/net/spy/memcached/KeyValidator.java b/src/main/java/net/spy/memcached/KeyValidator.java index 21289a735..0bf46ff7d 100644 --- a/src/main/java/net/spy/memcached/KeyValidator.java +++ b/src/main/java/net/spy/memcached/KeyValidator.java @@ -18,6 +18,7 @@ package net.spy.memcached; import java.util.Collection; +import java.util.HashSet; /** * Validator for memcached keys. @@ -177,4 +178,16 @@ public static void validateBKey(long... bkeys) { } } } + + /** + * Check duplicate keys in keyList. + */ + public void checkDupKey(Collection keyList) { + HashSet keySet = new HashSet<>(); + for (String key : keyList) { + if (!keySet.add(key)) { + throw new IllegalArgumentException("Duplicate keys exist in key list."); + } + } + } }