[ https://issues.apache.org/jira/browse/GEODE-4872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Anthony Baker closed GEODE-4872. -------------------------------- > 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 > Affects Versions: 1.4.0 > Reporter: Anilkumar Gingade > Assignee: Darrel Schneider > Priority: Major > Labels: pull-request-available > Fix For: 1.6.0 > > Time Spent: 40m > Remaining Estimate: 0h > > 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)