Details
-
Bug
-
Resolution: Fixed
-
High
-
2.0
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)