[
https://issues.jboss.org/browse/ISPN-10886?page=com.atlassian.jira.plugin...
]
Gustavo Fernandes updated ISPN-10886:
-------------------------------------
Description:
When storing objects unmarshalled (cache configired with key/value encoding as
application/x-java-object) or using custom objects in the server (filters, converters,
partition handlers, etc) that implements Serializable, the following exception is thrown:
{noformat}
2019-11-05 10:54:11,389 WARN [org.infinispan.PERSISTENCE] (SINGLE_PORT-ServerIO-5-3)
ISPN000559: Cannot marshall 'class org.infinispan.spark.domain.Runner':
java.lang.IllegalArgumentException: No marshaller registered for Java type
org.infinispan.spark.domain.Runner
at
org.infinispan.protostream.impl.SerializationContextImpl.getMarshallerDelegate(SerializationContextImpl.java:279)
at org.infinispan.protostream.WrappedMessage.writeMessage(WrappedMessage.java:240)
at org.infinispan.protostream.ProtobufUtil.toWrappedStream(ProtobufUtil.java:196)
at
org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectToBuffer(PersistenceMarshallerImpl.java:157)
at
org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectToByteBuffer(PersistenceMarshallerImpl.java:137)
at
org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectToByteBuffer(PersistenceMarshallerImpl.java:145)
at
org.infinispan.marshall.core.GlobalMarshaller.writeRawUnknown(GlobalMarshaller.java:638)
at org.infinispan.marshall.core.GlobalMarshaller.writeUnknown(GlobalMarshaller.java:627)
at org.infinispan.marshall.core.GlobalMarshaller.writeUnknown(GlobalMarshaller.java:618)
at
org.infinispan.marshall.core.GlobalMarshaller.writeNonNullableObject(GlobalMarshaller.java:384)
at
org.infinispan.marshall.core.GlobalMarshaller.writeNullableObject(GlobalMarshaller.java:352)
at org.infinispan.marshall.core.BytesObjectOutput.writeObject(BytesObjectOutput.java:26)
at org.infinispan.commands.write.PutKeyValueCommand.writeTo(PutKeyValueCommand.java:81)
at
org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeCommandParameters(ReplicableCommandExternalizer.java:70)
at
org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeObject(ReplicableCommandExternalizer.java:66)
at
org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeObject(ReplicableCommandExternalizer.java:54)
at
org.infinispan.marshall.core.GlobalMarshaller.writeInternal(GlobalMarshaller.java:656)
at
org.infinispan.marshall.core.GlobalMarshaller.writeNonNullableObject(GlobalMarshaller.java:371)
at
org.infinispan.marshall.core.GlobalMarshaller.writeNullableObject(GlobalMarshaller.java:352)
at org.infinispan.marshall.core.BytesObjectOutput.writeObject(BytesObjectOutput.java:26)
at org.infinispan.commands.remote.SingleRpcCommand.writeTo(SingleRpcCommand.java:52)
at
org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeCommandParameters(ReplicableCommandExternalizer.java:70)
at
org.infinispan.marshall.exts.CacheRpcCommandExternalizer.marshallParameters(CacheRpcCommandExternalizer.java:120)
{noformat}
This changed between 10.0.0.CR3 and 10.0.1.Final: although JBoss Marshaller is in the
classpath and the Hot Rod client users Jboss marshaller, it tries to use protostream to
replicate commands involving those objects
The workaround it to annotate all of them with @SerializeWith and write Externalizers
was:
When storing objects unmarshalled (application/x-java-object) or using custom objects in
the server (filters, converters, partition handlers, etc) that implements Serializable,
the following exception is thrown:
{noformat}
2019-11-05 10:54:11,389 WARN [org.infinispan.PERSISTENCE] (SINGLE_PORT-ServerIO-5-3)
ISPN000559: Cannot marshall 'class org.infinispan.spark.domain.Runner':
java.lang.IllegalArgumentException: No marshaller registered for Java type
org.infinispan.spark.domain.Runner
at
org.infinispan.protostream.impl.SerializationContextImpl.getMarshallerDelegate(SerializationContextImpl.java:279)
at org.infinispan.protostream.WrappedMessage.writeMessage(WrappedMessage.java:240)
at org.infinispan.protostream.ProtobufUtil.toWrappedStream(ProtobufUtil.java:196)
at
org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectToBuffer(PersistenceMarshallerImpl.java:157)
at
org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectToByteBuffer(PersistenceMarshallerImpl.java:137)
at
org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectToByteBuffer(PersistenceMarshallerImpl.java:145)
at
org.infinispan.marshall.core.GlobalMarshaller.writeRawUnknown(GlobalMarshaller.java:638)
at org.infinispan.marshall.core.GlobalMarshaller.writeUnknown(GlobalMarshaller.java:627)
at org.infinispan.marshall.core.GlobalMarshaller.writeUnknown(GlobalMarshaller.java:618)
at
org.infinispan.marshall.core.GlobalMarshaller.writeNonNullableObject(GlobalMarshaller.java:384)
at
org.infinispan.marshall.core.GlobalMarshaller.writeNullableObject(GlobalMarshaller.java:352)
at org.infinispan.marshall.core.BytesObjectOutput.writeObject(BytesObjectOutput.java:26)
at org.infinispan.commands.write.PutKeyValueCommand.writeTo(PutKeyValueCommand.java:81)
at
org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeCommandParameters(ReplicableCommandExternalizer.java:70)
at
org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeObject(ReplicableCommandExternalizer.java:66)
at
org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeObject(ReplicableCommandExternalizer.java:54)
at
org.infinispan.marshall.core.GlobalMarshaller.writeInternal(GlobalMarshaller.java:656)
at
org.infinispan.marshall.core.GlobalMarshaller.writeNonNullableObject(GlobalMarshaller.java:371)
at
org.infinispan.marshall.core.GlobalMarshaller.writeNullableObject(GlobalMarshaller.java:352)
at org.infinispan.marshall.core.BytesObjectOutput.writeObject(BytesObjectOutput.java:26)
at org.infinispan.commands.remote.SingleRpcCommand.writeTo(SingleRpcCommand.java:52)
at
org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeCommandParameters(ReplicableCommandExternalizer.java:70)
at
org.infinispan.marshall.exts.CacheRpcCommandExternalizer.marshallParameters(CacheRpcCommandExternalizer.java:120)
{noformat}
This changed between 10.0.0.CR3 and 10.0.1.Final: although JBoss Marshaller is in the
classpath and the Hot Rod client users Jboss marshaller, it tries to use protostream to
replicate commands involving those objects
The workaround it to annotate all of them with @SerializeWith and write Externalizers
Server side objects implementing Serializable causes serialization
errors
-------------------------------------------------------------------------
Key: ISPN-10886
URL:
https://issues.jboss.org/browse/ISPN-10886
Project: Infinispan
Issue Type: Bug
Components: Server
Affects Versions: 10.0.0.Final, 10.0.1.Final
Reporter: Gustavo Fernandes
Priority: Major
When storing objects unmarshalled (cache configired with key/value encoding as
application/x-java-object) or using custom objects in the server (filters, converters,
partition handlers, etc) that implements Serializable, the following exception is thrown:
{noformat}
2019-11-05 10:54:11,389 WARN [org.infinispan.PERSISTENCE] (SINGLE_PORT-ServerIO-5-3)
ISPN000559: Cannot marshall 'class org.infinispan.spark.domain.Runner':
java.lang.IllegalArgumentException: No marshaller registered for Java type
org.infinispan.spark.domain.Runner
at
org.infinispan.protostream.impl.SerializationContextImpl.getMarshallerDelegate(SerializationContextImpl.java:279)
at org.infinispan.protostream.WrappedMessage.writeMessage(WrappedMessage.java:240)
at org.infinispan.protostream.ProtobufUtil.toWrappedStream(ProtobufUtil.java:196)
at
org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectToBuffer(PersistenceMarshallerImpl.java:157)
at
org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectToByteBuffer(PersistenceMarshallerImpl.java:137)
at
org.infinispan.marshall.persistence.impl.PersistenceMarshallerImpl.objectToByteBuffer(PersistenceMarshallerImpl.java:145)
at
org.infinispan.marshall.core.GlobalMarshaller.writeRawUnknown(GlobalMarshaller.java:638)
at
org.infinispan.marshall.core.GlobalMarshaller.writeUnknown(GlobalMarshaller.java:627)
at
org.infinispan.marshall.core.GlobalMarshaller.writeUnknown(GlobalMarshaller.java:618)
at
org.infinispan.marshall.core.GlobalMarshaller.writeNonNullableObject(GlobalMarshaller.java:384)
at
org.infinispan.marshall.core.GlobalMarshaller.writeNullableObject(GlobalMarshaller.java:352)
at
org.infinispan.marshall.core.BytesObjectOutput.writeObject(BytesObjectOutput.java:26)
at org.infinispan.commands.write.PutKeyValueCommand.writeTo(PutKeyValueCommand.java:81)
at
org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeCommandParameters(ReplicableCommandExternalizer.java:70)
at
org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeObject(ReplicableCommandExternalizer.java:66)
at
org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeObject(ReplicableCommandExternalizer.java:54)
at
org.infinispan.marshall.core.GlobalMarshaller.writeInternal(GlobalMarshaller.java:656)
at
org.infinispan.marshall.core.GlobalMarshaller.writeNonNullableObject(GlobalMarshaller.java:371)
at
org.infinispan.marshall.core.GlobalMarshaller.writeNullableObject(GlobalMarshaller.java:352)
at
org.infinispan.marshall.core.BytesObjectOutput.writeObject(BytesObjectOutput.java:26)
at org.infinispan.commands.remote.SingleRpcCommand.writeTo(SingleRpcCommand.java:52)
at
org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeCommandParameters(ReplicableCommandExternalizer.java:70)
at
org.infinispan.marshall.exts.CacheRpcCommandExternalizer.marshallParameters(CacheRpcCommandExternalizer.java:120)
{noformat}
This changed between 10.0.0.CR3 and 10.0.1.Final: although JBoss Marshaller is in the
classpath and the Hot Rod client users Jboss marshaller, it tries to use protostream to
replicate commands involving those objects
The workaround it to annotate all of them with @SerializeWith and write Externalizers
--
This message was sent by Atlassian Jira
(v7.13.8#713008)