Skip to content

Commit

Permalink
Moved validateKey function to StringUtils class
Browse files Browse the repository at this point in the history
Change-Id: I194dc2f7feb59d49579ec5123e21d17bbf3b6ef9
Reviewed-on: http://review.couchbase.org/12139
Reviewed-by: Raghavan N. Srinivas <raghavan.srinivas@gmail.com>
Tested-by: Michael Wiederhold <mike@couchbase.com>
  • Loading branch information
Mike Wiederhold authored and Michael Wiederhold committed Jan 8, 2012
1 parent 7441615 commit 055f40c
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 21 deletions.
24 changes: 3 additions & 21 deletions src/main/java/net/spy/memcached/MemcachedClient.java
Expand Up @@ -70,6 +70,7 @@
import net.spy.memcached.ops.TimedOutOperationStatus; import net.spy.memcached.ops.TimedOutOperationStatus;
import net.spy.memcached.transcoders.TranscodeService; import net.spy.memcached.transcoders.TranscodeService;
import net.spy.memcached.transcoders.Transcoder; import net.spy.memcached.transcoders.Transcoder;
import net.spy.memcached.util.StringUtils;


/** /**
* Client to a memcached server. * Client to a memcached server.
Expand Down Expand Up @@ -258,25 +259,6 @@ public Transcoder<Object> getTranscoder() {
return transcoder; return transcoder;
} }


private void validateKey(String key) {
byte[] keyBytes = KeyUtil.getKeyBytes(key);
if (keyBytes.length > MAX_KEY_LENGTH) {
throw new IllegalArgumentException("Key is too long (maxlen = "
+ MAX_KEY_LENGTH + ")");
}
if (keyBytes.length == 0) {
throw new IllegalArgumentException(
"Key must contain at least one character.");
}
// Validate the key
for (byte b : keyBytes) {
if (b == ' ' || b == '\n' || b == '\r' || b == 0) {
throw new IllegalArgumentException(
"Key contains invalid characters: ``" + key + "''");
}
}
}

/** /**
* (internal use) Add a raw operation to a numbered connection. This method is * (internal use) Add a raw operation to a numbered connection. This method is
* exposed for testing. * exposed for testing.
Expand All @@ -286,7 +268,7 @@ private void validateKey(String key) {
* @return the Operation * @return the Operation
*/ */
Operation addOp(final String key, final Operation op) { Operation addOp(final String key, final Operation op) {
validateKey(key); StringUtils.validateKey(key);
mconn.checkState(); mconn.checkState();
mconn.addOperation(key, op); mconn.addOperation(key, op);
return op; return op;
Expand Down Expand Up @@ -1083,7 +1065,7 @@ public <T> BulkFuture<Map<String, T>> asyncGetBulk(Collection<String> keys,
while (keyIter.hasNext() && tcIter.hasNext()) { while (keyIter.hasNext() && tcIter.hasNext()) {
String key = keyIter.next(); String key = keyIter.next();
tcMap.put(key, tcIter.next()); tcMap.put(key, tcIter.next());
validateKey(key); StringUtils.validateKey(key);
final MemcachedNode primaryNode = locator.getPrimary(key); final MemcachedNode primaryNode = locator.getPrimary(key);
MemcachedNode node = null; MemcachedNode node = null;
if (primaryNode.isActive()) { if (primaryNode.isActive()) {
Expand Down
22 changes: 22 additions & 0 deletions src/main/java/net/spy/memcached/util/StringUtils.java
Expand Up @@ -24,6 +24,9 @@


import java.util.Collection; import java.util.Collection;


import net.spy.memcached.KeyUtil;
import net.spy.memcached.MemcachedClientIF;

/** /**
* Some String utilities. * Some String utilities.
*/ */
Expand Down Expand Up @@ -54,4 +57,23 @@ public static boolean isJsonObject(String s) {
return false; return false;
} }
} }

public static void validateKey(String key) {
byte[] keyBytes = KeyUtil.getKeyBytes(key);
if (keyBytes.length > MemcachedClientIF.MAX_KEY_LENGTH) {
throw new IllegalArgumentException("Key is too long (maxlen = "
+ MemcachedClientIF.MAX_KEY_LENGTH + ")");
}
if (keyBytes.length == 0) {
throw new IllegalArgumentException(
"Key must contain at least one character.");
}
// Validate the key
for (byte b : keyBytes) {
if (b == ' ' || b == '\n' || b == '\r' || b == 0) {
throw new IllegalArgumentException(
"Key contains invalid characters: ``" + key + "''");
}
}
}
} }

0 comments on commit 055f40c

Please sign in to comment.