• Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: High High
    • 1.0 Release Candidate 2
    • 1.0 Alpha3
    • None
    • None
    • standalone, JDK 1.4.2_02

      I noticed this bug then did a fresh install in order to reproduce it.

      1) fresh install, wizard creates admin account
      (db attached as confluencedb.script.after-install)
      2) logout and sign up
      3) create a second user
      (db attached as confluencedb.script.after-user2)
      4) click "Profile" then "Edit Profile"
      5) Receive the Exception below
      (db attached as confluencedb.script.after-user2editprofile)
      6) Going back to dashboard produces same Exception

      java.lang.NullPointerException
      at com.opensymphony.user.provider.hibernate.HibernateAccessProvider.listGroupsContainingUser(HibernateAccessProvider.java:137)
      at com.opensymphony.user.User.getGroups(User.java:94)
      at com.atlassian.confluence.security.DefaultSpacePermissionManager.hasPermission(DefaultSpacePermissionManager.java:133)
      at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at org.springframework.aop.interceptor.AbstractReflectionInvokerInterceptor.invoke(AbstractReflectionInvokerInterceptor.java:54)
      at org.springframework.aop.framework.MethodInvocationImpl.proceed(MethodInvocationImpl.java:216)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:152)
      at org.springframework.aop.framework.MethodInvocationImpl.proceed(MethodInvocationImpl.java:216)
      at org.springframework.aop.framework.AopProxy.invoke(AopProxy.java:102)
      at $Proxy8.hasPermission(Unknown Source)
      at com.atlassian.confluence.ConfluenceActionSupport.isPermitted(ConfluenceActionSupport.java:100)
      at com.atlassian.confluence.security.actions.PermissionCheckInterceptor.intercept(PermissionCheckInterceptor.java:37)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
      at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37)
      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
      at com.opensymphony.xwork.interceptor.TimerInterceptor.intercept(TimerInterceptor.java:66)

      at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
      at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
      at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:181)
      at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:161)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:129)
      at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:61)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:161)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      at com.atlassian.seraph.filter.LoginFilter.doFilter(LoginFilter.java:181)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      at com.atlassian.confluence.setup.ConfluenceConfigurationFilter.doFilter(ConfluenceConfigurationFilter.java:73)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      at com.atlassian.confluence.setup.SessionInViewFilter.doFilter(SessionInViewFilter.java:37)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:148)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      ....

            [CONFSERVER-360] Edit Profile corrupts user record

            Resolving CONF-493 will fix this too - it's a symptom of a bigger problem.

            Mike

            Mike Cannon-Brookes added a comment - Resolving CONF-493 will fix this too - it's a symptom of a bigger problem. Mike

            Ross Mason added a comment -

            This problem now causes the following stack trace -

            org.springframework.orm.hibernate.HibernateSystemException: SQL update or deletion failed (row not found); nested exception is:
            net.sf.hibernate.HibernateException: SQL update or deletion failed (row not found)
            net.sf.hibernate.HibernateException: SQL update or deletion failed (row not found)
            at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:25)
            at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:708)
            at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:662)
            at net.sf.hibernate.impl.ScheduledUpdate.execute(ScheduledUpdate.java:53)
            at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2268)
            at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2222)
            at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2159)
            at org.springframework.orm.hibernate.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:183)
            at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:148)
            at org.springframework.orm.hibernate.HibernateTemplate.update(HibernateTemplate.java:292)
            at com.atlassian.confluence.user.persistence.dao.hibernate.ConfluencePropertySetDAO.setImpl(ConfluencePropertySetDAO.java:33)
            at com.opensymphony.module.propertyset.hibernate.HibernatePropertySet.setImpl(HibernatePropertySet.java:166)
            at com.opensymphony.module.propertyset.AbstractPropertySet.set(AbstractPropertySet.java:570)
            at com.opensymphony.module.propertyset.AbstractPropertySet.setString(AbstractPropertySet.java:368)
            at com.opensymphony.user.User.setFullName(User.java:75)
            at com.atlassian.confluence.user.actions.EditMyProfileAction.updateUser(EditMyProfileAction.java:41)
            at com.atlassian.confluence.user.actions.EditMyProfileAction.doEdit(EditMyProfileAction.java:30)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:324)
            at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:304)
            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:174)
            at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37)
            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
            at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.intercept(DefaultWorkflowInterceptor.java:58)
            at com.atlassian.confluence.core.ConfluenceWorkflowInterceptor.intercept(ConfluenceWorkflowInterceptor.java:32)
            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
            at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37)
            at com.atlassian.confluence.core.ConfluenceValidationInterceptor.intercept(ConfluenceValidationInterceptor.java:18)
            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
            at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37)
            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
            at com.atlassian.confluence.security.actions.PermissionCheckInterceptor.intercept(PermissionCheckInterceptor.java:42)
            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
            at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37)
            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
            at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37)
            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
            at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37)
            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
            at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37)
            at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169)
            at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)
            at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:181)
            at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:161)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
            at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)
            at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:129)
            at com.atlassian.confluence.util.profiling.ProfilingPageFilter.parsePage(ProfilingPageFilter.java:36)
            at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:61)
            at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88)
            at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:161)
            at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88)
            at com.atlassian.seraph.filter.LoginFilter.doFilter(LoginFilter.java:181)
            at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88)
            at com.atlassian.johnson.filters.JohnsonFilter.doFilter(JohnsonFilter.java:96)
            at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88)
            at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:83)
            at com.atlassian.confluence.setup.SpringSessionInViewFilter.doFilterInternal(SpringSessionInViewFilter.java:32)
            at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:39)
            at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88)
            at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:132)
            at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88)
            at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:38)
            at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88)
            at com.caucho.server.http.Invocation.service(Invocation.java:315)
            at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
            at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)
            at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
            at java.lang.Thread.run(Thread.java:534)

            This issue happens every time following the steps defined above.
            If you log out and sign-up as a new user again. The problem sometimes occurs and sometimes doesn't, so there is also a time-related issue to this.

            Ross Mason added a comment - This problem now causes the following stack trace - org.springframework.orm.hibernate.HibernateSystemException: SQL update or deletion failed (row not found); nested exception is: net.sf.hibernate.HibernateException: SQL update or deletion failed (row not found) net.sf.hibernate.HibernateException: SQL update or deletion failed (row not found) at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:25) at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:708) at net.sf.hibernate.persister.EntityPersister.update(EntityPersister.java:662) at net.sf.hibernate.impl.ScheduledUpdate.execute(ScheduledUpdate.java:53) at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2268) at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2222) at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2159) at org.springframework.orm.hibernate.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:183) at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:148) at org.springframework.orm.hibernate.HibernateTemplate.update(HibernateTemplate.java:292) at com.atlassian.confluence.user.persistence.dao.hibernate.ConfluencePropertySetDAO.setImpl(ConfluencePropertySetDAO.java:33) at com.opensymphony.module.propertyset.hibernate.HibernatePropertySet.setImpl(HibernatePropertySet.java:166) at com.opensymphony.module.propertyset.AbstractPropertySet.set(AbstractPropertySet.java:570) at com.opensymphony.module.propertyset.AbstractPropertySet.setString(AbstractPropertySet.java:368) at com.opensymphony.user.User.setFullName(User.java:75) at com.atlassian.confluence.user.actions.EditMyProfileAction.updateUser(EditMyProfileAction.java:41) at com.atlassian.confluence.user.actions.EditMyProfileAction.doEdit(EditMyProfileAction.java:30) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:304) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:174) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169) at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.intercept(DefaultWorkflowInterceptor.java:58) at com.atlassian.confluence.core.ConfluenceWorkflowInterceptor.intercept(ConfluenceWorkflowInterceptor.java:32) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.atlassian.confluence.core.ConfluenceValidationInterceptor.intercept(ConfluenceValidationInterceptor.java:18) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169) at com.atlassian.confluence.security.actions.PermissionCheckInterceptor.intercept(PermissionCheckInterceptor.java:42) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:37) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:169) at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116) at com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction(ServletDispatcher.java:181) at com.opensymphony.webwork.dispatcher.ServletDispatcher.service(ServletDispatcher.java:161) at javax.servlet.http.HttpServlet.service(HttpServlet.java:103) at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:129) at com.atlassian.confluence.util.profiling.ProfilingPageFilter.parsePage(ProfilingPageFilter.java:36) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:61) at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88) at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:161) at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88) at com.atlassian.seraph.filter.LoginFilter.doFilter(LoginFilter.java:181) at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88) at com.atlassian.johnson.filters.JohnsonFilter.doFilter(JohnsonFilter.java:96) at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88) at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:83) at com.atlassian.confluence.setup.SpringSessionInViewFilter.doFilterInternal(SpringSessionInViewFilter.java:32) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:39) at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88) at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(ProfilingFilter.java:132) at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88) at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:38) at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88) at com.caucho.server.http.Invocation.service(Invocation.java:315) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246) at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163) at com.caucho.server.TcpConnection.run(TcpConnection.java:139) at java.lang.Thread.run(Thread.java:534) This issue happens every time following the steps defined above. If you log out and sign-up as a new user again. The problem sometimes occurs and sometimes doesn't, so there is also a time-related issue to this.

            Ross Mason added a comment -

            We believe moving to Spring M4 and using their OpenSessionInView implementation will fix this problem. The problem only occurs following the above steps, not in other scenarios. Upgrading to Spring M4 will be done when they make their release

            Ross Mason added a comment - We believe moving to Spring M4 and using their OpenSessionInView implementation will fix this problem. The problem only occurs following the above steps, not in other scenarios. Upgrading to Spring M4 will be done when they make their release

            Yep. Just as I wrote, steps 1-6. I doubt it can make a difference, but I only used Firebird.

            Can you try starting up Confluence using one of the DB scripts I provided? You should at least get a corrupted instance.

            Can you suggest anything else for me to do to document the bug?

            Turadg Aleahmad added a comment - Yep. Just as I wrote, steps 1-6. I doubt it can make a difference, but I only used Firebird. Can you try starting up Confluence using one of the DB scripts I provided? You should at least get a corrupted instance. Can you suggest anything else for me to do to document the bug?

            Turadg,

            Hrm - I can't seem to recreate the error here following your steps. Basically viewing the profile of a newly created user dies? (signup, edit profile, die?)

            Cheers,
            Mike

            Mike Cannon-Brookes added a comment - Turadg, Hrm - I can't seem to recreate the error here following your steps. Basically viewing the profile of a newly created user dies? (signup, edit profile, die?) Cheers, Mike

              a4df095b0162 Ross Mason
              1f642757949b Turadg Aleahmad
              Affected customers:
              0 This affects my team
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: