0 Replies Latest reply on May 9, 2008 9:20 AM by Eric Smith

    Error renaming dashboard on case-insensitive database

    Eric Smith Newbie

      We are using an MSSQL 2005 db. Portal 2.6.4/AS 4.2.2. When I first setup the db as case sensistive, the portal blew up after restart during some queries that could not find a table because the query was using the wrong case. I switched the db to case insensitive (sql_latin1_general_cp1_ci_as) and have been fine for a month. Today a user tried to rename an existing Dashboard Tab/Page to the same name but with a slight case change. As you can see from this WARN message:

      The configured database is probably case-insensitive. could not insert: [org.jboss.portal.core.impl.model.portal.ObjectNode]

      the portal tried to handle the situation, however the user then received a 500 Servlet Exception for org.hibernate.SessionException: Session is closed!

      The only JIRA that was close to this was
      http://jira.jboss.com/jira/browse/JBPORTAL-1840.

      Should I make a new JIRA entry for this?


      2008-05-09 08:48:52,996 TRACE [org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManager] hasPermission:result=true
      2008-05-09 08:48:53,012 DEBUG [org.jboss.portal.core.impl.model.portal.ObjectNode] Creating child of path='dashboard:/wtadmin' with path='dashboard:/wtadmin/HIGHLIGHT Text Only'
      2008-05-09 08:48:53,043 WARN [org.hibernate.util.JDBCExceptionReporter] SQL Error: 2627, SQLState: 23000
      2008-05-09 08:48:53,043 ERROR [org.hibernate.util.JDBCExceptionReporter] Violation of UNIQUE KEY constraint 'UQ__JBP_OBJECT_NODE__662B2B3B'. Cannot insert duplicate key in object 'dbo.JBP_OBJECT_NODE'.
      2008-05-09 08:48:53,043 WARN [org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer] The configured database is probably case-insensitive. could not insert: [org.jboss.portal.core.impl.model.portal.ObjectNode]
      2008-05-09 08:48:53,043 WARN [org.hibernate.engine.loading.LoadContexts] fail-safe cleanup (collections) : org.hibernate.engine.loading.CollectionLoadContext@4120ae<rs=net.sourceforge.jtds.jdbc.JtdsResultSet@91834>
      2008-05-09 08:48:53,043 TRACE [org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManager] Principal name: wtadmin
      2008-05-09 08:48:53,043 TRACE [org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManager] Principal name: Roles
      2008-05-09 08:48:53,043 TRACE [org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManager] Principal name: CallerPrincipal
      2008-05-09 08:48:53,043 TRACE [org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManager] hasPermission:name=instancepermissionuri=DashboardConfigPortletInstance::actions=create,destroy,customize::type=instance
      2008-05-09 08:48:53,043 TRACE [org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManager] Internal check. Contains role: HBIRole
      2008-05-09 08:48:53,043 TRACE [org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManager] Internal check. Contains role: User
      2008-05-09 08:48:53,043 TRACE [org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManager] Internal check. Contains role: Admin
      2008-05-09 08:48:53,043 TRACE [org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManager] Internal check. Contains role: SimpleRole
      2008-05-09 08:48:53,043 TRACE [org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManager] Internal check. Contains role: Authenticated
      2008-05-09 08:48:53,043 TRACE [org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManager] hasPermission:result=true
      2008-05-09 08:48:53,043 DEBUG [org.jboss.portal.portlet.aspects.portlet.PortalSessionSynchronizationInterceptor] Was not able to access the client request from request context
      2008-05-09 08:48:53,059 ERROR [org.apache.myfaces.lifecycle.PhaseListenerManager] Exception in PhaseListener RENDER_RESPONSE(6) beforePhase.
      org.hibernate.SessionException: Session is closed!
       at org.hibernate.impl.AbstractSessionImpl.errorIfClosed(AbstractSessionImpl.java:49)
       at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:874)
       at org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
       at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
       at org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer.getObjectNode(PersistentPortalObjectContainer.java:296)
       at org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer.getObjectNode(PersistentPortalObjectContainer.java:252)
       at org.jboss.portal.core.impl.model.portal.AbstractPortalObjectContainer.getObject(AbstractPortalObjectContainer.java:89)
       at sun.reflect.GeneratedMethodAccessor373.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
       at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
       at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
       at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
       at $Proxy226.getObject(Unknown Source)
       at org.jboss.portal.core.admin.ui.PortalObjectManagerBean.refresh(PortalObjectManagerBean.java:641)
       at org.jboss.portal.core.admin.ui.Refresher.refreshFrom(Refresher.java:74)
       at org.jboss.portal.core.admin.ui.Refresher.beforePhase(Refresher.java:62)
       at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:73)
       at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:126)
       at org.apache.myfaces.portlet.MyFacesGenericPortlet.facesRender(MyFacesGenericPortlet.java:498)
       at org.apache.myfaces.portlet.MyFacesGenericPortlet.doView(MyFacesGenericPortlet.java:323)
       at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:133)
       at javax.portlet.GenericPortlet.render(GenericPortlet.java:306)