Skip to content

Commit 68daf93

Browse files
daschlMichael Nitschinger
authored andcommitted
SPY-164: Clone gets correctly.
Motivation ---------- When a gets operation is cloned, it currently gets incorrectly cloned into a regular get operation. This can cause issues later on. Modifications ------------- Make sure that a gets() gets correctly cloned into a new gets(). Result ------ The cloning is now properly done, based on the operation type. Thanks to Brad Svee (@sveesible) for the fix suggestion. Change-Id: I7b8820bea20d0a0d9555f1bb9b2a46e5327a5f78 Reviewed-on: http://review.couchbase.org/36221 Reviewed-by: Matt Ingenthron <matt@couchbase.com> Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
1 parent 04285ea commit 68daf93

File tree

1 file changed

+37
-8
lines changed

1 file changed

+37
-8
lines changed

src/main/java/net/spy/memcached/protocol/binary/BinaryOperationFactory.java

Lines changed: 37 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,46 @@
2323

2424
package net.spy.memcached.protocol.binary;
2525

26-
import java.util.ArrayList;
27-
import java.util.Collection;
28-
import java.util.Map;
29-
30-
import javax.security.auth.callback.CallbackHandler;
31-
32-
import net.spy.memcached.ops.*;
26+
import net.spy.memcached.ops.BaseOperationFactory;
27+
import net.spy.memcached.ops.CASOperation;
28+
import net.spy.memcached.ops.ConcatenationOperation;
29+
import net.spy.memcached.ops.ConcatenationType;
30+
import net.spy.memcached.ops.DeleteOperation;
31+
import net.spy.memcached.ops.FlushOperation;
32+
import net.spy.memcached.ops.GetAndTouchOperation;
33+
import net.spy.memcached.ops.GetOperation;
3334
import net.spy.memcached.ops.GetOperation.Callback;
35+
import net.spy.memcached.ops.GetlOperation;
36+
import net.spy.memcached.ops.GetsOperation;
37+
import net.spy.memcached.ops.KeyedOperation;
38+
import net.spy.memcached.ops.MultiGetOperationCallback;
39+
import net.spy.memcached.ops.MultiGetsOperationCallback;
40+
import net.spy.memcached.ops.MultiReplicaGetOperationCallback;
41+
import net.spy.memcached.ops.Mutator;
42+
import net.spy.memcached.ops.MutatorOperation;
43+
import net.spy.memcached.ops.NoopOperation;
44+
import net.spy.memcached.ops.ObserveOperation;
45+
import net.spy.memcached.ops.Operation;
46+
import net.spy.memcached.ops.OperationCallback;
47+
import net.spy.memcached.ops.ReplicaGetOperation;
48+
import net.spy.memcached.ops.ReplicaGetsOperation;
49+
import net.spy.memcached.ops.SASLAuthOperation;
50+
import net.spy.memcached.ops.SASLMechsOperation;
51+
import net.spy.memcached.ops.SASLStepOperation;
52+
import net.spy.memcached.ops.StatsOperation;
53+
import net.spy.memcached.ops.StoreOperation;
54+
import net.spy.memcached.ops.StoreType;
55+
import net.spy.memcached.ops.TapOperation;
56+
import net.spy.memcached.ops.UnlockOperation;
57+
import net.spy.memcached.ops.VersionOperation;
3458
import net.spy.memcached.tapmessage.RequestMessage;
3559
import net.spy.memcached.tapmessage.TapOpcode;
3660

61+
import javax.security.auth.callback.CallbackHandler;
62+
import java.util.ArrayList;
63+
import java.util.Collection;
64+
import java.util.Map;
65+
3766
/**
3867
* Factory for binary operations.
3968
*/
@@ -154,7 +183,7 @@ protected Collection<? extends Operation> cloneGet(KeyedOperation op) {
154183
if(getCb != null) {
155184
rv.add(get(k, getCb));
156185
} else if(getsCb != null) {
157-
rv.add(get(k, getCb));
186+
rv.add(gets(k, getsCb));
158187
} else {
159188
rv.add(replicaGet(k, ((ReplicaGetOperationImpl)op).getReplicaIndex() ,replicaGetCb));
160189
}

0 commit comments

Comments
 (0)