Details
-
Bug
-
Resolution: Duplicate
-
High
-
None
-
None
-
None
-
None
Description
Say we have a Fisheye repository tracking commits from the root of a Subversion tree:
SVN URL: file:///var/lib/svn
SVN Path: /
Later we realise that we only want Fisheye tracking stuff in /projects. So we change the SVN Path:
SVN URL: file:///var/lib/svn
SVN Path: projects
and reindex.
Then someone notices that all the old fisheye reviews are broken. The HTML is cut off halfway through the page:
and the logs are full of stacktraces:
ERROR - Nested in javax.servlet.ServletException: javax.el.ELException: java.lang.NullPointerException: javax.el.ELException: java.lang.NullPointerException at javax.el.BeanELResolver.getValue(BeanELResolver.java:266) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143) at com.sun.el.parser.AstValue.getValue(AstValue.java:138) at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206) at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:984) at org.apache.jsp.tag.web.review.frxDisplay_tag._jspx_meth_c_if_6(org.apache.jsp.tag.web.review.frxDisplay_tag:856) at org.apache.jsp.tag.web.review.frxDisplay_tag._jspx_meth_c_when_1(org.apache.jsp.tag.web.review.frxDisplay_tag:691) at org.apache.jsp.tag.web.review.frxDisplay_tag._jspx_meth_c_choose_1(org.apache.jsp.tag.web.review.frxDisplay_tag:637) at org.apache.jsp.tag.web.review.frxDisplay_tag.doTag(org.apache.jsp.tag.web.review.frxDisplay_tag:279) at org.apache.jsp.WEB_002dINF.jsp.crucible.review.monolithic.review_jsp._jspx_meth_rev_frxDisplay_0(org.apache.jsp.WEB_002dINF.jsp.crucible.review.monolithic.review_jsp:5724) at org.apache.jsp.WEB_002dINF.jsp.crucible.review.monolithic.review_jsp._jspx_meth_c_forEach_28(org.apache.jsp.WEB_002dINF.jsp.crucible.review.monolithic.review_jsp:5680) at org.apache.jsp.WEB_002dINF.jsp.crucible.review.monolithic.review_jsp._jspx_meth_c_when_17(org.apache.jsp.WEB_002dINF.jsp.crucible.review.monolithic.review_jsp:5643) at org.apache.jsp.WEB_002dINF.jsp.crucible.review.monolithic.review_jsp._jspx_meth_c_choose_11(org.apache.jsp.WEB_002dINF.jsp.crucible.review.monolithic.review_jsp:5609) at org.apache.jsp.WEB_002dINF.jsp.crucible.review.monolithic.review_jsp._jspService(org.apache.jsp.WEB_002dINF.jsp.crucible.review.monolithic.review_jsp:672) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93) .... Caused by: java.lang.NullPointerException at com.cenqua.crucible.revision.source.RepositorySource.getLatestRevIdent(RepositorySource.java:434) at com.cenqua.crucible.revision.source.RepositorySource.isAnySuccessorRevisions(RepositorySource.java:424) at com.cenqua.crucible.view.FRXDO.isAnySuccessorRevisions(FRXDO.java:219) 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:585) at javax.el.BeanELResolver.getValue(BeanELResolver.java:261) ... 116 more
What has happened is that Crucible reviews contain file paths relative to the Fisheye 'SVN Path'. Changing 'SVN Path' effectively breaks every review in Crucible.
If you're lucky enough to catch the problem early and realise the cause, you can change back to the old path, and reviews will again be accessible. If you're unlucky, people start creating new reviews with the new path, and now you've got a choice of 'losing' old reviews or new reviews, as both paths cannot be correct.