Uploaded image for project: 'Crucible'
  1. Crucible
  2. CRUC-1929

StoredPathManager creates duplicate database records, causing 500s

    XMLWordPrintable

Details

    Description

      In the Crucible database cru_stored_path.cru_path does not have unique constraint, but our code does assert that every path string exists only once, cause StoredPathManager.findStoredPath() to throw a org.hibernate.NonUniqueResultException when it runs query.uniqueResult():

      2009-07-30 23:51:07,686 ERROR [btpool0-1157] org.mortbay.log org.mortbay.log.Slf4jLog-warn - /atlaseye/cru/CR-CLOV-77/edit-search/clover
      org.hibernate.NonUniqueResultException: query did not return a unique result: 3
      	at org.hibernate.impl.AbstractQueryImpl.uniqueElement(AbstractQueryImpl.java:820)
      	at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:811)
      	at com.cenqua.crucible.model.managers.StoredPathManager.findStoredPath(StoredPathManager.java:29)
      	at com.cenqua.crucible.model.managers.FileRevisionManager.findRevision(FileRevisionManager.java:115)
      	at com.cenqua.crucible.revision.managers.DefaultContentManager.getLazyCrucibleRevision(DefaultContentManager.java:367)
      	at com.cenqua.crucible.view.CruRevInfoDO.<init>(CruRevInfoDO.java:19)
      	at com.cenqua.crucible.tags.CruRevInfoTag.doStartTag(CruRevInfoTag.java:49)
      	at org.apache.jsp.WEB_002dINF.jsp.crucible.create.edit_005fselectRevisions_jsp._jspService(edit_005fselectRevisions_jsp.java:928)
      	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
      	at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1208)
      	at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
      	at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:55)
      	at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:41)
      	at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      	at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
      	at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:55)
      	at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:41)
      	at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
      	at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      	at com.cenqua.crucible.filters.CrucibleFilter.doFilter(CrucibleFilter.java:118)
      	at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      	at com.cenqua.fisheye.web.filters.TotalityFilter.doFilter(TotalityFilter.java:159)
      	at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      	at com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:98)
      	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
      	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
      	at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      	at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
      	at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:55)
      	at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:41)
      	at org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1200)
      	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
      	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
      	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
      	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
      	at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:334)
      	at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
      

      Attachments

        Issue Links

          Activity

            People

              mquail Matt Quail (Inactive)
              evzijst Erik van Zijst (Inactive)
              Votes:
              2 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 32h
                  32h
                  Remaining:
                  Remaining Estimate - 32h
                  32h
                  Logged:
                  Time Spent - Not Specified
                  Not Specified