Bug 793397 (JBEPP-479)

Summary: NotSerializableException from organization management portlet when clustered using LDAP
Product: [JBoss] JBoss Enterprise Portal Platform 5 Reporter: Martin Weiler <mweiler>
Component: PortalAssignee: Thomas Heute <theute>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 5.0.0.GACC: boleslaw.dawidowicz, epp-bugs
Target Milestone: ---   
Target Release: 5.0.2.GA, 5.1.0.ER04   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/JBEPP-479
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
- EPP 5.0.0 - all configuration - LDAP - start with -Dexo.profiles=cluster
Last Closed: 2010-11-11 11:35:04 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 793542, 793543    
Bug Blocks:    

Description Martin Weiler 2010-09-22 05:58:29 UTC
Help Desk Ticket Reference: https://na7.salesforce.com/500A0000003jVBw
project_key: JBEPP

With the setup described in the environment section, log in as root 

Go to Group -> Organization -> User and Group Management -> User Managment results in java.io.NotSerializableException for each entry pulled from LDAP:

ERROR [CacheMarshaller300] Error while marshalling object: ReplicateCommand{cmds=PutKeyValueCommand{fqn=/NODE_MAIN_ROOT/PortalLDAPStore/NODE_OBJECTS/-130368520, dataVersion=null, globalTransaction=null, key=object, value=[cn=foo: com.sun.jndi.ldap.LdapCtx:com.sun.jndi.ldap.LdapCtx@4f4a8c:{cn=cn: foo}, cn=bar: com.sun.jndi.ldap.LdapCtx:com.sun.jndi.ldap.LdapCtx@ac353d:{cn=cn: bar}]}}
java.io.NotSerializableException: com.sun.jndi.ldap.LdapCtx
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at org.jboss.cache.marshall.CacheMarshaller200.marshallObject(CacheMarshaller200.java:460)
        at org.jboss.cache.marshall.CacheMarshaller300.marshallObject(CacheMarshaller300.java:47)
        at org.jboss.cache.marshall.CacheMarshaller200.marshallCollection(CacheMarshaller200.java:555)
        at org.jboss.cache.marshall.CacheMarshaller200.marshallObject(CacheMarshaller200.java:360)
        at org.jboss.cache.marshall.CacheMarshaller300.marshallObject(CacheMarshaller300.java:47)
        at org.jboss.cache.marshall.CacheMarshaller200.marshallCommand(CacheMarshaller200.java:519)
        at org.jboss.cache.marshall.CacheMarshaller200.marshallObject(CacheMarshaller200.java:314)
        at org.jboss.cache.marshall.CacheMarshaller300.marshallObject(CacheMarshaller300.java:47)
        at org.jboss.cache.marshall.CacheMarshaller200.marshallCommand(CacheMarshaller200.java:519)
        at org.jboss.cache.marshall.CacheMarshaller200.marshallObject(CacheMarshaller200.java:314)
        at org.jboss.cache.marshall.CacheMarshaller300.marshallObject(CacheMarshaller300.java:47)
        at org.jboss.cache.marshall.CacheMarshaller200.objectToObjectStream(CacheMarshaller200.java:191)
        at org.jboss.cache.marshall.CacheMarshaller200.objectToObjectStream(CacheMarshaller200.java:136)
        at org.jboss.cache.marshall.VersionAwareMarshaller.objectToBuffer(VersionAwareMarshaller.java:183)
        at org.jboss.cache.marshall.VersionAwareMarshaller.objectToBuffer(VersionAwareMarshaller.java:52)
        at org.jboss.cache.marshall.CommandAwareRpcDispatcher$ReplicationTask.call(CommandAwareRpcDispatcher.java:383)
        at org.jboss.cache.marshall.CommandAwareRpcDispatcher$ReplicationTask.call(CommandAwareRpcDispatcher.java:355)
        at org.jboss.cache.util.concurrent.WithinThreadExecutor.submit(WithinThreadExecutor.java:82)
        at org.jboss.cache.marshall.CommandAwareRpcDispatcher.invokeRemoteCommands(CommandAwareRpcDispatcher.java:210)
        at org.jboss.cache.RPCManagerImpl.callRemoteMethods(RPCManagerImpl.java:744)
        at org.jboss.cache.RPCManagerImpl.callRemoteMethods(RPCManagerImpl.java:712)
        at org.jboss.cache.RPCManagerImpl.callRemoteMethods(RPCManagerImpl.java:717)
        at org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:161)
        at org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:135)
        at org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:107)
        at org.jboss.cache.interceptors.ReplicationInterceptor.handleCrudMethod(ReplicationInterceptor.java:160)
        at org.jboss.cache.interceptors.ReplicationInterceptor.visitPutKeyValueCommand(ReplicationInterceptor.java:107)
        at org.jboss.cache.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:100)
        at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
        at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:131)
        at org.jboss.cache.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:65)
        at org.jboss.cache.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:100)
        at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
        at org.jboss.cache.interceptors.TxInterceptor.attachGtxAndPassUpChain(TxInterceptor.java:301)
        at org.jboss.cache.interceptors.TxInterceptor.handleDefault(TxInterceptor.java:283)
        at org.jboss.cache.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:65)
        at org.jboss.cache.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:100)
        at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
        at org.jboss.cache.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:119)
        at org.jboss.cache.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:100)
        at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:116)
        at org.jboss.cache.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:178)
        at org.jboss.cache.interceptors.InvocationContextInterceptor.visitPutKeyValueCommand(InvocationContextInterceptor.java:82)
        at org.jboss.cache.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:100)
        at org.jboss.cache.interceptors.InterceptorChain.invoke(InterceptorChain.java:287)
        at org.jboss.cache.invocation.CacheInvocationDelegate.put(CacheInvocationDelegate.java:555)
        at org.jboss.cache.invocation.NodeInvocationDelegate.put(NodeInvocationDelegate.java:377)
        at org.picketlink.idm.impl.cache.JBossCacheIdentityStoreCacheProviderImpl.putObject(JBossCacheIdentityStoreCacheProviderImpl.java:617)
        at org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl.searchIdentityObjects(LDAPIdentityStoreImpl.java:3371)
        at org.picketlink.idm.impl.store.ldap.LDAPIdentityStoreImpl.findIdentityObject(LDAPIdentityStoreImpl.java:858)
        at org.picketlink.idm.impl.repository.FallbackIdentityStoreRepository.findIdentityObject(FallbackIdentityStoreRepository.java:634)
        at org.picketlink.idm.impl.api.session.managers.PersistenceManagerImpl.findGroup(PersistenceManagerImpl.java:568)
        at org.picketlink.idm.impl.api.session.managers.PersistenceManagerImpl.findGroup(PersistenceManagerImpl.java:603)
        at org.exoplatform.services.organization.idm.GroupDAOImpl.getAllGroups(GroupDAOImpl.java:450)
        at org.exoplatform.portal.config.UserPortalConfigService.getUserPortalConfig(UserPortalConfigService.java:128)
        at org.exoplatform.portal.application.PortalStateManager.getUserPortalConfig(PortalStateManager.java:150)
        at org.exoplatform.portal.application.PortalStateManager.restoreUIRootComponent(PortalStateManager.java:92)
        at org.exoplatform.portal.application.PortalRequestHandler.execute(PortalRequestHandler.java:96)
        at org.exoplatform.web.WebAppController.service(WebAppController.java:143)
        at org.exoplatform.portal.application.PortalController.onService(PortalController.java:127)
        at org.exoplatform.container.web.AbstractHttpServlet.service(AbstractHttpServlet.java:116)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Note: Removing -Dexo.profiles=cluster from the startup removes the java.io.NotSerializableException on com.sun.jndi.ldap.LdapCtx but replaces it with java.io.NotSerializableException: Type TypeModel[name=org.exoplatform.commons.utils.LazyPageList] is not serializable, which is already addressed in JBEPP-448

Comment 1 boleslaw.dawidowicz 2010-11-11 11:07:00 UTC
This is fixed in PLIDM 1.1.7.CR01 and the case can be closed once picketlink idm version is upgraded.

Comment 2 boleslaw.dawidowicz 2010-11-11 11:22:57 UTC
Link: Added: This issue Cloned to JBEPP-621


Comment 3 boleslaw.dawidowicz 2010-11-11 11:24:42 UTC
Link: Added: This issue depends JBEPP-621


Comment 4 boleslaw.dawidowicz 2010-11-11 11:30:32 UTC
Link: Removed: This issue Cloned to JBEPP-621 


Comment 5 Thomas Heute 2010-11-11 11:35:04 UTC
Release Notes Docs Status: Added: Documented as Resolved Issue


Comment 6 Thomas Heute 2010-11-11 11:38:55 UTC
Link: Added: This issue depends JBEPP-622