I’m doing a fairly “by the book” clobber update (store and fetch below work 
fine) on an entity using the Java client. I’m seeing an error that happens at 
type-inference time within the Riak Java client. I’m pasting below the exact 
test that I’m using to generate this, as well as the stacktrace. Please let me 
know if I’m missing something or if it’s a known bug.

Thank you
Cosmin

@Test
public void testRiakUpdate() throws Exception {
RiakNode node = new 
RiakNode.Builder().withRemoteAddress("192.168.168.2").withRemotePort(8087).build();
RiakCluster cluster = new RiakCluster.Builder(node).build();
cluster.start();
RiakClient client = new RiakClient(cluster);

SomeEntity entity = new SomeEntity();
entity.setName("John Doe");
entity.setDescription("Some Description");
Location location = new Location(new Namespace("bucket"), "entity-key");

// Store
StoreValue storeOp = new 
StoreValue.Builder(entity).withLocation(location).build();
client.execute(storeOp);

// Fetch
FetchValue fetchOp = new FetchValue.Builder(location).build();
entity = client.execute(fetchOp).getValue(SomeEntity.class);

// Update
entity.setName("New name");
UpdateValue updateOp = new UpdateValue.Builder(location)
.withFetchOption(FetchValue.Option.DELETED_VCLOCK, true)
.withUpdate(UpdateValue.Update.clobberUpdate(entity))
.build();
client.execute(updateOp).getValue(SomeEntity.class);
}

private static class SomeEntity {
private String name;
private String description;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}
}



java.lang.ClassCastException: 
sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to 
java.lang.Class at 
com.basho.riak.client.api.commands.kv.UpdateValue$1.handle(UpdateValue.java:149)
 ~[riak-client-2.0.0.jar:na] at 
com.basho.riak.client.api.commands.ListenableFuture.notifyListeners(ListenableFuture.java:78)
 ~[riak-client-2.0.0.jar:na] at 
com.basho.riak.client.api.commands.CoreFutureAdapter.handle(CoreFutureAdapter.java:120)
 ~[riak-client-2.0.0.jar:na] at 
com.basho.riak.client.core.FutureOperation.fireListeners(FutureOperation.java:131)
 ~[riak-client-2.0.0.jar:na] at 
com.basho.riak.client.core.FutureOperation.setResponse(FutureOperation.java:170)
 ~[riak-client-2.0.0.jar:na] at 
com.basho.riak.client.core.RiakNode.onSuccess(RiakNode.java:823) 
~[riak-client-2.0.0.jar:na] at 
com.basho.riak.client.core.netty.RiakResponseHandler.channelRead(RiakResponseHandler.java:58)
 ~[riak-client-2.0.0.jar:na] at 
io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:340)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:326)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:155)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:108)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:340)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:326)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:116)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:494) 
[netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:461)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:378) 
[netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:350) 
[netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
java.lang.Thread.run(Thread.java:745) [na:1.8.0_05] 20:34:13.390 
[nioEventLoopGroup-2-1] DEBUG c.b.riak.client.core.FutureOperation - 
IllegalStateException; required: [CREATED, WRITTEN, RETRY] current: COMPLETE 
20:34:13.391 [nioEventLoopGroup-2-1] WARN i.n.channel.DefaultChannelPipeline - 
An exception was thrown by a user handler's exceptionCaught() method while 
handling the following exception: java.lang.ClassCastException: 
sun.reflect.generics.reflectiveObjects.TypeVariableImpl cannot be cast to 
java.lang.Class at 
com.basho.riak.client.api.commands.kv.UpdateValue$1.handle(UpdateValue.java:149)
 ~[riak-client-2.0.0.jar:na] at 
com.basho.riak.client.api.commands.ListenableFuture.notifyListeners(ListenableFuture.java:78)
 ~[riak-client-2.0.0.jar:na] at 
com.basho.riak.client.api.commands.CoreFutureAdapter.handle(CoreFutureAdapter.java:120)
 ~[riak-client-2.0.0.jar:na] at 
com.basho.riak.client.core.FutureOperation.fireListeners(FutureOperation.java:131)
 ~[riak-client-2.0.0.jar:na] at 
com.basho.riak.client.core.FutureOperation.setResponse(FutureOperation.java:170)
 ~[riak-client-2.0.0.jar:na] at 
com.basho.riak.client.core.RiakNode.onSuccess(RiakNode.java:823) 
~[riak-client-2.0.0.jar:na] at 
com.basho.riak.client.core.netty.RiakResponseHandler.channelRead(RiakResponseHandler.java:58)
 ~[riak-client-2.0.0.jar:na] at 
io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:340)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:326)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:155)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:108)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:340)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:326)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:116)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:494) 
[netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:461)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:378) 
[netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:350) 
[netty-all-4.0.17.Final.jar:4.0.17.Final] at 
io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101)
 [netty-all-4.0.17.Final.jar:4.0.17.Final] at 
java.lang.Thread.run(Thread.java:745) [na:1.8.0_05]  

_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to