Bug 901300 (JBPAPP6-1762) - [GSS](6.4.z) @Resource injection of Datasource on clustered SFSB fails with serialization error
Summary: [GSS](6.4.z) @Resource injection of Datasource on clustered SFSB fails with s...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: JBPAPP6-1762
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: JCA
Version: 6.0.1
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: CR1
: EAP 6.4.9
Assignee: Tomas Hofman
QA Contact:
URL: http://jira.jboss.org/jira/browse/JBP...
Whiteboard:
Depends On:
Blocks: eap649-payload
TreeView+ depends on / blocked
 
Reported: 2013-01-07 16:49 UTC by csams
Modified: 2019-08-15 03:36 UTC (History)
19 users (show)

Fixed In Version:
Doc Type: Known Issue
Doc Text:
This release of JBoss EAP 6 carries a bug that causes @Resource injection of a Datasource field on clustered SFSB to fail with a serialization error. A workaround for this issue is to mark the field transient and then repopulate it manually in @PostActivate. This issue will be addressed in a future release of the product.
Clone Of:
Environment:
Last Closed: 2017-01-17 12:55:51 UTC
Type: Bug


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
JBoss Issue Tracker JBPAPP6-1762 Major Closed @Resource injection of Datasource on clustered SFSB fails with serialization error 2019-05-02 06:56:51 UTC
JBoss Issue Tracker WFLY-30 Critical Closed SFSB containing injected DataSource fails to passivate/serialize 2019-05-02 06:56:51 UTC

Description csams 2013-01-07 16:49:51 UTC
Help Desk Ticket Reference: https://na7.salesforce.com/500A000000CQFSR
Steps to Reproduce: Create a clustered SFSB with an @Resource Datasource field.  Try to lookup and use the bean from some other component.
Workaround: Workaround Exists
Workaround Description: The field can be marked transient and then repopulated manually in @PostActivate
project_key: JBPAPP6

A clustered SFSB with a Datasource @Resource injected presents the following exception on lookup:
{noformat}
Caused by: org.infinispan.marshall.NotSerializableException: Object of type class org.jboss.as.clustering.SimpleMarshalledValue expected to be marshallable
Caused by: java.io.NotSerializableException: org.jboss.jca.core.connectionmanager.ccm.CachedConnectionManagerImpl
	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:891)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1063)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:998)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:885)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1063)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:885)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1063)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:998)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:885)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1063)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:885)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1063)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:885)
	at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:69)
	at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:60)
	at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:54)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) [rt.jar:1.6.0_29]
	at org.jboss.as.ejb3.cache.impl.backing.SerializationGroupMemberImpl.writeObject(SerializationGroupMemberImpl.java:383) [jboss-as-ejb3-7.1.2.Final-redhat-1.jar:7.1.2.Final-redhat-1]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_29]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_29]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_29]
	at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_29]
	at org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:188)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1007)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:885)
	at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:62)
	at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:119)
	at org.jboss.as.clustering.SimpleMarshalledValue.getBytes(SimpleMarshalledValue.java:85)
	at org.jboss.as.clustering.SimpleMarshalledValue.writeExternal(SimpleMarshalledValue.java:175)
	at org.jboss.as.clustering.infinispan.io.ExternalizableExternalizer.writeObject(ExternalizableExternalizer.java:46)
	at org.jboss.as.clustering.infinispan.io.ExternalizableExternalizer.writeObject(ExternalizableExternalizer.java:36)
	at org.infinispan.marshall.jboss.ExternalizerTable$ForeignExternalizerAdapter.writeObject(ExternalizerTable.java:446)
	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:145)
	at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:62)
	at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:119)
	at org.infinispan.marshall.jboss.AbstractJBossMarshaller.objectToObjectStream(AbstractJBossMarshaller.java:87)
	at org.infinispan.marshall.jboss.AbstractJBossMarshaller.objectToBuffer(AbstractJBossMarshaller.java:95)
	at org.infinispan.marshall.AbstractMarshaller.objectToBuffer(AbstractMarshaller.java:57)
	at org.infinispan.marshall.jboss.AbstractJBossMarshaller.isMarshallable(AbstractJBossMarshaller.java:178)
	at org.infinispan.marshall.VersionAwareMarshaller.isMarshallable(VersionAwareMarshaller.java:207)
	at org.infinispan.marshall.AbstractDelegatingMarshaller.isMarshallable(AbstractDelegatingMarshaller.java:95)
	at org.infinispan.interceptors.IsMarshallableInterceptor.checkMarshallable(IsMarshallableInterceptor.java:165)
	at org.infinispan.interceptors.IsMarshallableInterceptor.visitPutKeyValueCommand(IsMarshallableInterceptor.java:107)
	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
	at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:80)
	at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:62)
	at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:77)
	at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:345)
	at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1006)
	at org.infinispan.CacheImpl.put(CacheImpl.java:702)
	at org.infinispan.DecoratedCache.put(DecoratedCache.java:319)
	at org.infinispan.AbstractDelegatingCache.put(AbstractDelegatingCache.java:308)
	at org.jboss.as.clustering.ejb3.cache.backing.infinispan.InfinispanBackingCacheEntryStore$1.invoke(InfinispanBackingCacheEntryStore.java:173)
	at org.jboss.as.clustering.ejb3.cache.backing.infinispan.InfinispanBackingCacheEntryStore$1.invoke(InfinispanBackingCacheEntryStore.java:170)
	at org.jboss.as.clustering.infinispan.invoker.BatchOperation.invoke(BatchOperation.java:19)
	at org.jboss.as.clustering.infinispan.invoker.RetryingCacheInvoker.invoke(RetryingCacheInvoker.java:60)
	at org.jboss.as.clustering.ejb3.cache.backing.infinispan.InfinispanBackingCacheEntryStore.invoke(InfinispanBackingCacheEntryStore.java:239)
	at org.jboss.as.clustering.ejb3.cache.backing.infinispan.InfinispanBackingCacheEntryStore.insert(InfinispanBackingCacheEntryStore.java:177)
	at org.jboss.as.ejb3.cache.impl.backing.SerializationGroupMemberContainer.insert(SerializationGroupMemberContainer.java:304) [jboss-as-ejb3-7.1.2.Final-redhat-1.jar:7.1.2.Final-redhat-1]
	at org.jboss.as.ejb3.cache.impl.backing.SerializationGroupMemberContainer.insert(SerializationGroupMemberContainer.java:51) [jboss-as-ejb3-7.1.2.Final-redhat-1.jar:7.1.2.Final-redhat-1]
	at org.jboss.as.ejb3.cache.impl.backing.PassivatingBackingCacheImpl.create(PassivatingBackingCacheImpl.java:122) [jboss-as-ejb3-7.1.2.Final-redhat-1.jar:7.1.2.Final-redhat-1]
	at org.jboss.as.ejb3.cache.impl.GroupAwareCache.create(GroupAwareCache.java:67) [jboss-as-ejb3-7.1.2.Final-redhat-1.jar:7.1.2.Final-redhat-1]
	at org.jboss.as.ejb3.cache.impl.GroupAwareCache.create(GroupAwareCache.java:41) [jboss-as-ejb3-7.1.2.Final-redhat-1.jar:7.1.2.Final-redhat-1]
	at org.jboss.as.ejb3.component.stateful.StatefulComponentSessionIdGeneratingInterceptorFactory$StatefulComponentSessionIdGeneratingInterceptor.processInvocation(StatefulComponentSessionIdGeneratingInterceptorFactory.java:75) [jboss-as-ejb3-7.1.2.Final-redhat-1.jar:7.1.2.Final-redhat-1]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) [jboss-invocation-1.1.1.Final-redhat-1.jar:1.1.1.Final-redhat-1]
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) [jboss-invocation-1.1.1.Final-redhat-1.jar:1.1.1.Final-redhat-1]
	at org.jboss.as.ee.component.ViewService$DefaultViewInstanceFactory.createViewInstance(ViewService.java:280) [jboss-as-ee-7.1.2.Final-redhat-1.jar:7.1.2.Final-redhat-1]
	at org.jboss.as.ee.component.ViewService$View.createInstance(ViewService.java:157) [jboss-as-ee-7.1.2.Final-redhat-1.jar:7.1.2.Final-redhat-1]
	at org.jboss.as.ee.component.ViewService$View.createInstance(ViewService.java:153) [jboss-as-ee-7.1.2.Final-redhat-1.jar:7.1.2.Final-redhat-1]
	at org.jboss.as.ee.component.ViewManagedReferenceFactory.getReference(ViewManagedReferenceFactory.java:50) [jboss-as-ee-7.1.2.Final-redhat-1.jar:7.1.2.Final-redhat-1]
	at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:133)
	at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:74)
	at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:178)
	at org.jboss.as.naming.InitialContext.lookup(InitialContext.java:129)
	at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:214)
	at javax.naming.InitialContext.lookup(InitialContext.java:392) [rt.jar:1.6.0_29]
{noformat}

Comment 1 Emmanuel Hugonnet (ehsavoie) 2013-09-06 11:40:58 UTC
Hi,
I can't reproduce your failure on EAP 6.1.1. Do you have a reproducer ?
I've created a war calling the ejb module remotely, all deployed on the same server group in domain mode and it all works fine.

Comment 2 Paul Ferraro 2013-11-04 22:39:14 UTC
This is not a clustering specific issue, but rather an issue with serialization of an injected DataSource.  Reassigning to the JCA team.

Comment 15 Mike McCune 2016-03-28 23:39:55 UTC
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune@redhat.com with any questions

Comment 17 Jiří Bílek 2016-06-28 14:15:38 UTC
Verified with EAP 6.4.9.CP.CR2

Comment 18 Petr Penicka 2017-01-17 12:55:51 UTC
Retroactively bulk-closing issues from released EAP 6.4 cummulative patches.


Note You need to log in before you can comment on or make changes to this bug.