Anilkumar Gingade created GEODE-4872:
----------------------------------------
Summary: JdbcReader throws serialization exception for byte[] when
the field type is Object
Key: GEODE-4872
URL: https://issues.apache.org/jira/browse/GEODE-4872
Project: Geode
Issue Type: Bug
Components: extensions, regions
Reporter: Anilkumar Gingade
JdbcReader when creating PdxInstance throws serialization exception for byte[]
when its field type is treated as Object. This field is mapped in the table as
blob column.
{noformat}
Caused by: org.apache.geode.cache.client.ServerOperationException: remote
server on 10.118.33.196(66546:loner):64576:da7cbe2f:
org.apache.geode.pdx.PdxSerializationException: Exception while serializing a
PDX field
at
org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:680)
at
org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:739)
at
org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:622)
at
org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:179)
at
org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:127)
at
org.apache.geode.cache.client.internal.PoolImpl.execute(PoolImpl.java:782)
at org.apache.geode.cache.client.internal.GetOp.execute(GetOp.java:91)
at
org.apache.geode.cache.client.internal.ServerRegionProxy.get(ServerRegionProxy.java:113)
at
org.apache.geode.internal.cache.LocalRegion.findObjectInSystem(LocalRegion.java:2768)
at
org.apache.geode.internal.cache.LocalRegion.nonTxnFindObject(LocalRegion.java:1490)
at
org.apache.geode.internal.cache.LocalRegionDataView.findObject(LocalRegionDataView.java:176)
at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1379)
at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1313)
at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1298)
at
org.apache.geode.internal.cache.AbstractRegion.get(AbstractRegion.java:313)
at
org.apache.geode.connectors.jdbc.JdbcDUnitTest.lambda$clientGetReadsFromDBWithPdxClassName$bb17a952$1(JdbcDUnitTest.java:348)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at hydra.MethExecutor.executeObject(MethExecutor.java:244)
at
org.apache.geode.test.dunit.standalone.RemoteDUnitVM.executeMethodOnObject(RemoteDUnitVM.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
at java.security.AccessController.doPrivileged(Native Method)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.geode.pdx.PdxSerializationException: Exception while
serializing a PDX field
at
org.apache.geode.pdx.internal.PdxOutputStream.writeObject(PdxOutputStream.java:84)
at
org.apache.geode.pdx.internal.PdxWriterImpl.writeObject(PdxWriterImpl.java:329)
at
org.apache.geode.pdx.internal.PdxInstanceFactoryImpl.writeObject(PdxInstanceFactoryImpl.java:210)
at
org.apache.geode.pdx.internal.PdxInstanceFactoryImpl.writeObject(PdxInstanceFactoryImpl.java:123)
at
org.apache.geode.connectors.jdbc.internal.SqlToPdxInstanceCreator.writeField(SqlToPdxInstanceCreator.java:172)
at
org.apache.geode.connectors.jdbc.internal.SqlToPdxInstanceCreator.create(SqlToPdxInstanceCreator.java:54)
at
org.apache.geode.connectors.jdbc.internal.SqlHandler.read(SqlHandler.java:74)
at org.apache.geode.connectors.jdbc.JdbcLoader.load(JdbcLoader.java:55)
at
org.apache.geode.internal.cache.SearchLoadAndWriteProcessor.doLocalLoad(SearchLoadAndWriteProcessor.java:792)
at
org.apache.geode.internal.cache.SearchLoadAndWriteProcessor.load(SearchLoadAndWriteProcessor.java:603)
at
org.apache.geode.internal.cache.SearchLoadAndWriteProcessor.searchAndLoad(SearchLoadAndWriteProcessor.java:462)
at
org.apache.geode.internal.cache.SearchLoadAndWriteProcessor.doSearchAndLoad(SearchLoadAndWriteProcessor.java:177)
at
org.apache.geode.internal.cache.DistributedRegion.findUsingSearchLoad(DistributedRegion.java:2333)
at
org.apache.geode.internal.cache.DistributedRegion.findObjectInSystem(DistributedRegion.java:2203)
at
org.apache.geode.internal.cache.LocalRegion.nonTxnFindObject(LocalRegion.java:1490)
at
org.apache.geode.internal.cache.LocalRegionDataView.findObject(LocalRegionDataView.java:176)
at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1379)
at
org.apache.geode.internal.cache.LocalRegion.getRetained(LocalRegion.java:1340)
at
org.apache.geode.internal.cache.LocalRegion.getRetained(LocalRegion.java:1325)
at
org.apache.geode.internal.cache.tier.sockets.command.Get70.getEntryRetained(Get70.java:342)
at
org.apache.geode.internal.cache.tier.sockets.command.Get70.getEntry(Get70.java:236)
at
org.apache.geode.internal.cache.tier.sockets.command.Get70.cmdExecute(Get70.java:154)
at
org.apache.geode.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:163)
at
org.apache.geode.internal.cache.tier.sockets.ServerConnection.doNormalMsg(ServerConnection.java:868)
at
org.apache.geode.internal.cache.tier.sockets.OriginalServerConnection.doOneMessage(OriginalServerConnection.java:85)
at
org.apache.geode.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1248)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at
org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$4$1.run(AcceptorImpl.java:644)
... 1 more
Caused by: java.io.NotSerializableException:
org.apache.derby.impl.jdbc.EmbedBlob
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at
org.apache.geode.internal.InternalDataSerializer.writeSerializableObject(InternalDataSerializer.java:2372)
at
org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2247)
at
org.apache.geode.pdx.internal.PdxOutputStream.writeObject(PdxOutputStream.java:82)
... 29 more
{noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)