Files added via JSON API ReviewService.addFiles cause exception in browser when viewing review
Hello,
we are developing an integration with Subversion to automatically create code reviews for a checkin. For the most part this works very well. All of the participants and custom fields are set correctly. We use the ReviewService.addFiles call to add files to the review, all from the Subversion repository. The call succeeds.
However, when going to the review in a web browser, the files section simply shows the word "Loading..." and the progress indicator.
Looking at the console output in Chrome Developer Tools we see the stack trace included at the end of this post.
To calculate the MD5 we use Microsoft's fciv.exe tool (v2.05). Manual verification of the values past in the JSON API calls match what this tool calculates. Using an alternate MD5 utility also results in the same value being calculated.
Here is an example of the JSON we send to the server to add the files, slightly anonymized:
[ { "args": { "ticket": "xxxxxxxxx", "login": "bloej" }, "command": "SessionService.authenticate" }, { "args": { "changelists": [ { "scmConnectionParameters": [ "http:\/\/svnserver\/repos" ], "versions": [ { "baseVersion": { "commitInfo": { "scmId": "62855", "author": "bloej", "comment": "DS2015425191234\n Code Collaborator automatic review creation - WIP", "date": "2015-04-26T08:42:25-05:00", "local": false }, "scmVersionName": "62855", "scmPath": "\/trunk\/build\/bc\/src\/bc\/BuildScript.java", "md5": "e27a2ce2b4ea86d1ac59d81cc13e7d38", "action": "MODIFIED", "source": "CHECKEDIN" }, "scmVersionName": "62899", "scmPath": "\/trunk\/build\/bc\/src\/bc\/BuildScript.java", "md5": "4940e0a6b5b446f144c58589ef95ffed", "action": "MODIFIED", "source": "CHECKEDIN" } ], "commitInfo": { "scmId": "62899", "author": "bloej", "comment": "DS2015425191234\n Code Collaborator automatic review creation - add to build", "date": "2015-04-28T08:53:45-05:00", "local": false }, "scmToken": "SUBVERSION" } ], "reviewId": 45109 }, "command": "ReviewService.addFiles" } ]
What further things should we be looking for to try and fix the problem?
We are using Collaborator 9.1.9101 running on JDK 1.8u45 on Windows Server 2008 R2
Thanks in advance,
David Sykes
Stack trace from Chrome:
Uncaught com.google.gwt.user.client.rpc.StatusCodeException: 500 Unexpected error on the server
Service method 'public abstract com.smartbear.ccollab.datamodel.client.unversioned.impl.UnversionedReviewSummaryFiles com.smartbear.ccollab.datamodel.client.unversioned.IUnversionedClientApi.getReviewSummaryFiles(int,float) throws com.smartbear.ccollab.datamodel.client.unversioned.ReviewDoesNotExistException,com.smartbear.ccollab.datamodel.client.ReviewAccessException,com.smartbear.ccollab.service.api.v7001.ServiceRuntimeException' threw an unexpected exception: java.lang.IllegalArgumentException: Does not look like an MD5:
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract com.smartbear.ccollab.datamodel.client.unversioned.impl.UnversionedReviewSummaryFiles com.smartbear.ccollab.datamodel.client.unversioned.IUnversionedClientApi.getReviewSummaryFiles(int,float) throws com.smartbear.ccollab.datamodel.client.unversioned.ReviewDoesNotExistException,com.smartbear.ccollab.datamodel.client.ReviewAccessException,com.smartbear.ccollab.service.api.v7001.ServiceRuntimeException' threw an unexpected exception: java.lang.IllegalArgumentException: Does not look like an MD5:
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:389)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:579)
at com.smartbear.ccollab.rpc.RpcGwtServlet.processCall(RpcGwtServlet.java:265)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.smartbear.ccollab.AuthTicketFilter.doFilter(AuthTicketFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.smartbear.ccollab.CollabCleanupFilter.doFilter(CollabCleanupFilter.java:30)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
at com.smartbear.ccollab.auth.CollabFormAuthenticator.invoke(CollabFormAuthenticator.java:67)
at com.smartbear.ccollab.auth.AuthTicketValve.invoke(AuthTicketValve.java:32)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Does not look like an MD5:
at com.smartbear.ccollab.contentstore.DeepBucketsLargeContentStore.relativeContentFileName(DeepBucketsLargeContentStore.java:54)
at com.smartbear.ccollab.contentstore.DeepBucketsLargeContentStore.locationFor(DeepBucketsLargeContentStore.java:150)
at com.smartbear.ccollab.contentstore.DeepBucketsLargeContentStore.exists(DeepBucketsLargeContentStore.java:158)
at com.smartbear.ccollab.contentstore.OnDemandUpgradeLargeContentStore.exists(OnDemandUpgradeLargeContentStore.java:78)
at com.smartbear.ccollab.datamodel.Version.isContentAvailable(Version.java:545)
at com.smartbear.ccollab.datamodel.displaymodel.LogicalVersion.isContentAvailable(LogicalVersion.java:77)
at com.smartbear.ccollab.datamodel.displaymodel.LogicalFileHistory.getMetrics(LogicalFileHistory.java:331)
at com.smartbear.ccollab.datamodel.client.impl.ReviewSummaryServerDMFactory.newReviewSummaryFile(ReviewSummaryServerDMFactory.java:757)
at com.smartbear.ccollab.datamodel.client.impl.ReviewSummaryServerDMFactory.newReviewSummaryChangelistFiles(ReviewSummaryServerDMFactory.java:711)
at com.smartbear.ccollab.datamodel.client.unversioned.impl.UnversionedReviewSummaryServerDMFactory.newFullReviewSummaryChangelist(UnversionedReviewSummaryServerDMFactory.java:198)
at com.smartbear.ccollab.datamodel.client.unversioned.impl.UnversionedReviewSummaryServerDMFactory.newReviewSummaryChangelist(UnversionedReviewSummaryServerDMFactory.java:167)
at com.smartbear.ccollab.datamodel.client.unversioned.impl.UnversionedReviewSummaryServerDMFactory.newReviewSummaryChangelist(UnversionedReviewSummaryServerDMFactory.java:62)
at com.smartbear.ccollab.datamodel.client.impl.ReviewSummaryServerDMFactory.newScmMaterials(ReviewSummaryServerDMFactory.java:553)
at com.smartbear.ccollab.datamodel.client.impl.ReviewSummaryServerDMFactory.newMaterials(ReviewSummaryServerDMFactory.java:421)
at com.smartbear.ccollab.datamodel.client.unversioned.impl.UnversionedReviewSummaryServerDMFactory.buildFiles(UnversionedReviewSummaryServerDMFactory.java:716)
at com.smartbear.ccollab.service.impl.unversioned.UnversionedClientApiImpl.getReviewSummaryFiles(UnversionedClientApiImpl.java:519)
at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.smartbear.ccollab.rpc.RpcGwtServlet$GwtInvocationHandler.invoke(RpcGwtServlet.java:414)
at com.smartbear.util.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:28)
at com.sun.proxy.$Proxy7.getReviewSummaryFiles(Unknown Source)
at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.smartbear.ccollab.service.impl.ServerNotInitializedExceptionProxy.invoke(ServerNotInitializedExceptionProxy.java:41)
at com.smartbear.util.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:28)
at com.smartbear.ccollab.rpc.RpcGwtServlet$LoggingInvocationHandler.invoke(RpcGwtServlet.java:1190)
at com.smartbear.util.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:28)
at com.smartbear.ccollab.rpc.RpcGwtServlet$TimingInvocationHandler.invoke(RpcGwtServlet.java:1249)
at com.smartbear.util.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:28)
at com.sun.proxy.$Proxy7.getReviewSummaryFiles(Unknown Source)
at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.smartbear.ccollab.service.impl.ExposeExceptionsProxy.invoke(ExposeExceptionsProxy.java:29)
at com.sun.proxy.$Proxy7.getReviewSummaryFiles(Unknown Source)
at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561)
... 26 more