1 Reply Latest reply on Sep 20, 2008 11:59 AM by Eric Smith

    Transacation error during configure dashboard delete portlet

    Eric Smith Newbie

      I have a problem deleting our portlets, but I am unable so far to reproduce it following a fresh install. The environment is JBoss AS 4.2.2GA, Portal 2.6.4, using the Microsoft SQL Server 2005 jdbc driver 1.2.2828.100. The symptom is that the delete just hangs, then after a few minutes an Exception 500 is returned to the browser. I've broken the posting a bit to show the different parts of the exceptions.

      2008-04-23 17:07:57,312 DEBUG [org.hibernate.jdbc.ConnectionManager] opening JDBC connection
      2008-04-23 17:07:57,312 DEBUG [org.hibernate.SQL] select displaynam0_.INSTANCE_PK as INSTANCE1_0_, displaynam0_.TEXT as TEXT0_, displaynam0_.LOCALE as LOCALE0_ from JBP_INSTANCE_DISPLAY_NAMES displaynam0_ where displaynam0_.INSTANCE_PK=?
      2008-04-23 17:07:57,312 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to open ResultSet (open ResultSets: 0, globally: 0)
      2008-04-23 17:07:57,312 DEBUG [org.hibernate.loader.Loader] result set contains (possibly empty) collection: [org.jboss.portal.core.impl.model.instance.persistent.PersistentInstanceDefinition.displayNames#21]
      2008-04-23 17:07:57,312 DEBUG [org.hibernate.loader.Loader] result row:
      2008-04-23 17:07:57,312 DEBUG [org.hibernate.loader.Loader] found row of collection: [org.jboss.portal.core.impl.model.instance.persistent.PersistentInstanceDefinition.displayNames#21]
      2008-04-23 17:07:57,390 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to close ResultSet (open ResultSets: 1, globally: 1)
      2008-04-23 17:07:57,390 DEBUG [org.hibernate.jdbc.AbstractBatcher] about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
      2008-04-23 17:07:57,390 WARN [com.arjuna.ats.arjuna.logging.arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_58] - Abort of action id -6aea1b7d:417:480bb00c:3ba5a invoked while multiple threads active within it.
      2008-04-23 17:07:57,390 WARN [com.arjuna.ats.arjuna.logging.arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.CheckedAction_2] - CheckedAction::check - atomic action -6aea1b7d:417:480bb00c:3ba5a aborting with 1 threads active!
      2008-04-23 17:07:57,406 DEBUG [org.hibernate.jdbc.ConnectionManager] aggressively releasing JDBC connection
      2008-04-23 17:07:57,406 DEBUG [org.hibernate.jdbc.ConnectionManager] releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
      2008-04-23 17:07:57,406 DEBUG [org.hibernate.jdbc.ConnectionManager] releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
      2008-04-23 17:07:57,406 INFO [org.jboss.resource.connectionmanager.TxConnectionManager] Unregistered handle that was not registered! org.jboss.resource.adapter.jdbc.WrappedConnection@e3c86e for managedConnection: org.jboss.resource.adapter.jdbc.local.LocalManagedConnection@1de6e03
      2008-04-23 17:07:57,406 DEBUG [org.hibernate.engine.loading.CollectionLoadContext] 1 collections were found in result set for role: org.jboss.portal.core.impl.model.instance.persistent.PersistentInstanceDefinition.displayNames
      2008-04-23 17:07:57,406 DEBUG [org.hibernate.engine.loading.CollectionLoadContext] collection fully initialized: [org.jboss.portal.core.impl.model.instance.persistent.PersistentInstanceDefinition.displayNames#21]
      2008-04-23 17:07:57,406 DEBUG [org.hibernate.engine.loading.CollectionLoadContext] 1 collections initialized for role: org.jboss.portal.core.impl.model.instance.persistent.PersistentInstanceDefinition.displayNames
      2008-04-23 17:07:57,406 DEBUG [org.hibernate.engine.StatefulPersistenceContext] initializing non-lazy collections
      2008-04-23 17:07:57,406 DEBUG [org.hibernate.loader.Loader] done loading collection
      2008-04-23 17:07:57,421 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/portal-core].[jsp]] Servlet.service() for servlet jsp threw exception
      org.hibernate.HibernateException: Current transaction is not in progress
       at org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:67)
       at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:544)
       at org.jboss.portal.core.impl.portlet.state.PersistentPortletStatePersistenceManager.getCurrentSession(PersistentPortletStatePersistenceManager.java:254)
       at org.jboss.portal.core.impl.portlet.state.PersistentPortletStatePersistenceManager.loadState(PersistentPortletStatePersistenceManager.java:80)
       at org.jboss.portal.portlet.state.producer.ProducerPortletInvoker.getPortlet(ProducerPortletInvoker.java:170)
       at org.jboss.portal.portlet.federation.impl.FederatedPortletInvokerService.getPortlet(FederatedPortletInvokerService.java:105)
       at org.jboss.portal.portlet.federation.impl.FederatingPortletInvokerService.getPortlet(FederatingPortletInvokerService.java:143)
       at org.jboss.portal.core.impl.model.instance.AbstractInstance.getPortlet(AbstractInstance.java:140)
       at org.apache.jsp.WEB_002dINF.jsp.content.portlet_005feditor_jsp._jspService(portlet_005feditor_jsp.java:227)
       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
       at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
       at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336)
       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
      

      2008-04-23 17:07:57,453 ERROR [org.jboss.portal.portlet.container.org_jboss_portal_core_ui_content_portlet_PortletContentEditorPortlet] The portlet threw an exception
      javax.portlet.PortletException: org.apache.jasper.JasperException: org.hibernate.HibernateException: Current transaction is not in progress
       at org.jboss.portal.portlet.impl.jsr168.api.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:91)
       at org.jboss.portal.core.ui.content.portlet.PortletContentEditorPortlet.getContent(PortletContentEditorPortlet.java:176)
       at org.jboss.portal.core.ui.content.portlet.PortletContentEditorPortlet.doEditContent(PortletContentEditorPortlet.java:100)
       at org.jboss.portal.core.ui.content.portlet.PortletContentEditorPortlet.doDispatch(PortletContentEditorPortlet.java:90)
       at javax.portlet.GenericPortlet.render(GenericPortlet.java:306)
       at org.jboss.portal.portlet.impl.jsr168.PortletContainerImpl.invokeRender(PortletContainerImpl.java:483)
       at org.jboss.portal.portlet.impl.jsr168.PortletContainerImpl.dispatch(PortletContainerImpl.java:405)
       at org.jboss.portal.portlet.container.PortletContainerInvoker$1.invoke(PortletContainerInvoker.java:86)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:131)
       at org.jboss.portal.core.aspects.portlet.TransactionInterceptor.org$jboss$portal$core$aspects$portlet$TransactionInterceptor$invokeRequiresNew$aop(TransactionInterceptor.java:111)
       at org.jboss.portal.core.aspects.portlet.TransactionInterceptor$invokeRequiresNew_1464645299204216429.invokeNext(TransactionInterceptor$invokeRequiresNew_1464645299204216429.java)
       at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
       at org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:253)
       at org.jboss.portal.core.aspects.portlet.TransactionInterceptor$invokeRequiresNew_1464645299204216429.invokeNext(TransactionInterceptor$invokeRequiresNew_1464645299204216429.java)
       at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
       at org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:253)
       at org.jboss.portal.core.aspects.portlet.TransactionInterceptor$invokeRequiresNew_1464645299204216429.invokeNext(TransactionInterceptor$invokeRequiresNew_1464645299204216429.java)
      

      Caused by: org.apache.jasper.JasperException: org.hibernate.HibernateException: Current transaction is not in progress
       at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521)
       at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:415)
       at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336)
       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
       at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:557)
       at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:481)
       at org.jboss.portal.portlet.impl.jsr168.api.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:86)
       ... 330 more
      Caused by: org.hibernate.HibernateException: Current transaction is not in progress
       at org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:67)
       at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:544)
       at org.jboss.portal.core.impl.portlet.state.PersistentPortletStatePersistenceManager.getCurrentSession(PersistentPortletStatePersistenceManager.java:254)
       at org.jboss.portal.core.impl.portlet.state.PersistentPortletStatePersistenceManager.loadState(PersistentPortletStatePersistenceManager.java:80)
       at org.jboss.portal.portlet.state.producer.ProducerPortletInvoker.getPortlet(ProducerPortletInvoker.java:170)
       at org.jboss.portal.portlet.federation.impl.FederatedPortletInvokerService.getPortlet(FederatedPortletInvokerService.java:105)
       at org.jboss.portal.portlet.federation.impl.FederatingPortletInvokerService.getPortlet(FederatingPortletInvokerService.java:143)
       at org.jboss.portal.core.impl.model.instance.AbstractInstance.getPortlet(AbstractInstance.java:140)
       at org.apache.jsp.WEB_002dINF.jsp.content.portlet_005feditor_jsp._jspService(portlet_005feditor_jsp.java:227)
       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
       at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
       ... 339 more
      2008-04-23 17:07:57,500 WARN [com.arjuna.ats.arjuna.logging.arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_40] - Abort called on already aborted atomic action -6aea1b7d:417:480bb00c:3ba5a
       2008-04-23 17:07:57,500 ERROR [org.jboss.resource.connectionmanager.TxConnectionManager] There is something wrong with the pooling?
      
      java.lang.IllegalStateException: afterCompletion called with wrong tx! Expected: TxSync20108884{tx=TransactionImple < ac, BasicAction: -6aea1b7d:417:480bb00c:3ba5a status: ActionStatus.ABORTED > wasTrackByTx=true enlisted=true}, actual: null
       at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.afterCompletion(TxConnectionManager.java:819)
       at org.jboss.resource.connectionmanager.TransactionSynchronizer.invokeAfter(TransactionSynchronizer.java:301)
       at org.jboss.resource.connectionmanager.TransactionSynchronizer.afterCompletion(TransactionSynchronizer.java:265)
       at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.afterCompletion(SynchronizationImple.java:136)
       at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.afterCompletion(TwoPhaseCoordinator.java:340)
       at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.cancel(TwoPhaseCoordinator.java:107)
       at com.arjuna.ats.arjuna.AtomicAction.abort(AtomicAction.java:201)
       at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1378)
       at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
       at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
       at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:175)
       at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87)
       at org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:253)
       at org.jboss.portal.core.aspects.portlet.TransactionInterceptor$invokeRequiresNew_1464645299204216429.invokeNext(TransactionInterceptor$invokeRequiresNew_1464645299204216429.java)
       at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
       at org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:253)
      

      2008-04-23 17:07:57,515 WARN [com.arjuna.ats.arjuna.logging.arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_40] - Abort called on already aborted atomic action -6aea1b7d:417:480bb00c:3ba59
      2008-04-23 17:07:57,515 DEBUG [org.jboss.portal.faces.loader.FacesClassLoader] Want to load org.jboss.portal.portlet.InvalidPortletIdException will delegate
      2008-04-23 17:07:57,515 DEBUG [org.jboss.portal.faces.loader.FacesClassLoader] Want to load org.jboss.portal.portlet.InvalidPortletIdException will delegate
      2008-04-23 17:07:57,515 DEBUG [org.jboss.portal.faces.loader.FacesClassLoader] Want to load org.jboss.portal.portlet.InvalidPortletIdException will delegate
      2008-04-23 17:07:57,515 DEBUG [org.jboss.portal.faces.loader.FacesClassLoader] Want to load org.jboss.portal.portlet.InvalidPortletIdException will delegate
      2008-04-23 17:07:57,546 ERROR [STDERR] Apr 23, 2008 5:07:57 PM com.sun.facelets.FaceletViewHandler handleRenderException
      SEVERE: Error Rendering View[/WEB-INF/jsf/dashboard/dashboard.xhtml]
      java.lang.IllegalStateException: [com.arjuna.ats.internal.jta.transaction.arjunacore.inactive] [com.arjuna.ats.internal.jta.transaction.arjunacore.inactive] The transaction is not active!
       at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1379)
       at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
       at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
       at org.jboss.aspects.tx.TxPolicy.endTransaction(TxPolicy.java:175)
       at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:87)
       at org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:253)
      

      2008-04-23 17:07:57,546 ERROR [STDERR] ptorImpl.java:58)
       at org.jboss.portal.portlet.invocation.PortletInterceptor.invoke(PortletInterceptor.java:38)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.portlet.aspects.portlet.PortalSessionSynchronizationInterceptor.invoke(PortalSessionSynchronizationInterceptor.java:91)
       at org.jboss.portal.portlet.invocation.PortletInterceptor.invoke(PortletInterceptor.java:38)
       at org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
       at org.jboss.portal.core.model.instance.InstanceSecurityInterceptor.invoke(InstanceSecurityInterceptor.java:91)
       at org.jboss.portal.portlet.invocation.PortletInterceptor.invoke(PortletInterceptor.java:38)
      

      Lots more dump after that, then finally returns to normal JBPM_MESSAGE queries.

      I'm not sure what to try next, except perhaps the other MSSQL driver that the portal installation setup directory is using.


        • 1. Re: Transacation error during configure dashboard delete por
          Eric Smith Newbie

          This problem has continued all summer, it still occurs even though we now use the jTDS MSSQL driver and Portal 2.6.6.GA. It still does not occur after a fresh portal db install, but after (days?) of activity we eventually hit it and from then on it is reproducible and that user can no longer delete portlet windows from Configure Dashboard. I now have an MSSQL db which reproduces it consistently.

          What I see happening from a db perspective is a Blocking Process. After I press the DELETE button in Configure Dashboard one DB connection (process) is used to perform the many DELETE queries to delete a single portlet window object and a second connection (process) is used to then perform SELECT queries after that (perhaps to refresh the window). The sixth SELECT query (using the second connection) gets BLOCKED because the tables it is querying from had records deleted in the first connection (the DELETEs). The first connection is listed by MSSQL as having an Open Transaction and no command is is being processed: "AWAITING COMMAND". The second connection is listed as blocked by the first and is processing a "SELECT". This stalemate lasts a couple minutes, hanging the portal response, until a separate portal thread comes along and cleans up (rolls back) the transactions, causing the exceptions seen.

          I was hoping to find a missing '.commit()' in the destroyChild() and removeChild() activity but its difficult to follow. I dont know enough about container transaction management and cache syncs.

          I have found a workaround that seems to work, but would like to fix the real problem if it could be located -- any suggestions on how to pin down the underlying transaction problem with the Deletes?

          The workaround is to change the <trans-attribute> from Required to RequiresNew for the DashboardConfigPortlet in the jboss-portlet.xml found here jboss-portal.sar\portal-admin.sar\portal-admin.war\WEB-INF
          Can you foresee any problems with using this workaround?

          Here is url describing these values:
          http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/transactions/transactions7.html

          My server log is over 5000 lines when I turn on all the hibernate and arjuna activity, so too long to post. Here are the queries from the console, noting the last one is the one that hangs:

          16:37:52,329 INFO [STDOUT] Hibernate: delete from JBP_INSTANCE_PER_USER where PK=?
          16:37:52,329 INFO [STDOUT] Hibernate: update JBP_PORTLET_STATE set PARENT_PK=null where PARENT_PK=?
          16:37:52,376 INFO [STDOUT] Hibernate: update JBP_PORTLET_STATE_ENTRY set ENTRY_KEY=null, NAME=null where ENTRY_KEY=?
          16:37:52,376 INFO [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY_VALUE where PK=?
          16:37:52,376 INFO [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY_VALUE where PK=?
          16:37:52,376 INFO [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY_VALUE where PK=?
          16:37:52,376 INFO [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY_VALUE where PK=?
          16:37:52,392 INFO [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY_VALUE where PK=?
          16:37:52,392 INFO [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY where PK=?
          16:37:52,392 INFO [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY where PK=?
          16:37:52,392 INFO [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY where PK=?
          16:37:52,392 INFO [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY where PK=?
          16:37:52,392 INFO [STDOUT] Hibernate: delete from JBP_PORTLET_STATE_ENTRY where PK=?
          16:37:52,392 INFO [STDOUT] Hibernate: delete from JBP_PORTLET_STATE where PK=?
          16:37:52,408 INFO [STDOUT] Hibernate: delete from JBP_PORTAL_OBJECT_DNAMES where INSTANCE_PK=?
          16:37:52,408 INFO [STDOUT] Hibernate: delete from JBP_PORTAL_OBJECT_PROPS where OBJECT_KEY=?
          16:37:52,423 INFO [STDOUT] Hibernate: delete from JBP_WINDOW where PK=?
          16:37:52,423 INFO [STDOUT] Hibernate: delete from JBP_PORTAL_OBJECT where PK=?
          16:37:52,423 INFO [STDOUT] Hibernate: delete from JBP_OBJECT_NODE where PK=?
          16:37:52,439 INFO [STDOUT] Hibernate: select persistent0_.PK as PK4_, persistent0_.ID as ID4_, persistent0_.PORTLET_REF as PORTLET3_4_, persistent0_.MODIFIABLE as MODIFIABLE4_, persistent0_.SER_STATE as SER5_4_ from JBP_INSTANCE persistent0_
          16:37:52,470 INFO [STDOUT] Hibernate: select persistent0_.PK as PK4_, persistent0_.ID as ID4_, persistent0_.PORTLET_REF as PORTLET3_4_, persistent0_.MODIFIABLE as MODIFIABLE4_, persistent0_.SER_STATE as SER5_4_ from JBP_INSTANCE persistent0_
          16:37:52,501 INFO [STDOUT] Hibernate: select persistent0_.PK as PK4_, persistent0_.ID as ID4_, persistent0_.PORTLET_REF as PORTLET3_4_, persistent0_.MODIFIABLE as MODIFIABLE4_, persistent0_.SER_STATE as SER5_4_ from JBP_INSTANCE persistent0_
          16:37:52,533 INFO [STDOUT] Hibernate: select persistent0_.PK as PK4_, persistent0_.ID as ID4_, persistent0_.PORTLET_REF as PORTLET3_4_, persistent0_.MODIFIABLE as MODIFIABLE4_, persistent0_.SER_STATE as SER5_4_ from JBP_INSTANCE persistent0_
          16:37:52,611 INFO [STDOUT] Hibernate: select persistent0_.PK as PK4_, persistent0_.ID as ID4_, persistent0_.PORTLET_REF as PORTLET3_4_, persistent0_.MODIFIABLE as MODIFIABLE4_, persistent0_.SER_STATE as SER5_4_ from JBP_INSTANCE persistent0_
          16:37:52,673 INFO [STDOUT] Hibernate: select persistent0_.PK as PK21_1_, persistent0_.PORTLET_ID as PORTLET2_21_1_, persistent0_.REGISTRATION_ID as REGISTRA3_21_1_, persistent0_.REGISTRATION_TIME as REGISTRA4_21_1_, persistent0_.TERMINATION_TIME as TERMINAT5_21_1_, persistent0_.PARENT_PK as PARENT6_21_1_, entries1_.ENTRY_KEY as ENTRY5_3_, entries1_.PK as PK3_, entries1_.NAME as NAME3_, entries1_.PK as PK22_0_, entries1_.NAME as NAME22_0_, entries1_.TYPE as TYPE22_0_, entries1_.READ_ONLY as READ4_22_0_, strings2_.PK as PK4_, strings2_.jbp_value as jbp2_4_, strings2_.IDX as IDX4_ from JBP_PORTLET_STATE persistent0_ left outer join JBP_PORTLET_STATE_ENTRY entries1_ on persistent0_.PK=entries1_.ENTRY_KEY left outer join JBP_PORTLET_STATE_ENTRY_VALUE strings2_ on entries1_.PK=strings2_.PK where persistent0_.PK=?