Repository Settings Page Fails With "500 The call failed on the server"
症状
When accessing the repositories page under Administration, the following message is displayed on screen:
An error has occurred
Error
Error calling server:com.google.gwt.user.client.rpc.StatusCodeException: 500 The call failed on the server; see server log for details Unknown.p6b(Unknown Source) Unknown.$8b(Unknown Source) Unknown.Xyb(Unknown Source) Unknown.zzb(Unknown Source) Unknown.<anonymous>(Unknown Source) Unknown.etb(Unknown Source) Unknown.htb(Unknown Source)
A similar error is seen on UI:
診断
Diagnosis #1
The logs report:
2012-08-15 17:27:17,491 ERROR - Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract com.atlassian.fecru.gwt.admin.shared.repositories.FullRepositoryInfo com.atlassian.fecru.gwt.admin.client.RepositoryAdminRpcService.getFullRepositoryInfo(java.lang.String) throws com.atlassian.fecru.gwt.admin.shared.AuthorizationException,com.atlassian.fecru.gwt.admin.shared.OperationFailureException,com.atlassian.fecru.gwt.admin.shared.NoSuchRepositoryException' threw an unexpected exception: java.lang.IllegalArgumentException: 'https://jira.test.tes/test/${0} ' is invalid.
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
at com.atlassian.fecru.gwt.servlet.GwtRPCRoutingServlet.invokeRequest(GwtRPCRoutingServlet.java:73)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:451)
...
Caused by: java.lang.IllegalArgumentException: 'https://jira.test.tes/test//${0} ' is invalid.
at com.atlassian.fisheye.spi.admin.data.SimpleLinker.setHref(SimpleLinker.java:59)
at com.atlassian.fisheye.spi.admin.data.SimpleLinker.<init>(SimpleLinker.java:24)
... 77 more
2012-08-15 17:27:17,552 ERROR - Error calling server:com.google.gwt.user.client.rpc.StatusCodeException: 500 The call failed on the server; see server log for details
Unknown.p6b(Unknown Source)
...
Diagnosis #2
The logs report:
2022-01-14 02:32:47,17 WARN [qtp2073640036-70529 ] org.eclipse.jetty.server.handler.ContextHandler.ROOT ContextHandler$Context-log - Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract com.atlassian.fecru.gwt.admin.shared.repositories.RepositoriesSummary com.atlassian.fecru.gwt.admin.client.RepositoryAdminRpcService.getRepositoriesSummary() throws com.atlassian.fecru.gwt.admin.shared.AuthorizationException' threw an unexpected exception: com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.RuntimeException: Error reading configuration: [C@6b730b28
...
Caused by: com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.RuntimeException: Error reading configuration: [C@6b730b28
...
Caused by: com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.thoughtworks.xstream.security.ForbiddenClassException
cause-message : com.atlassian.crucible.plugins.scm.git.GitConfiguration
class : java.util.ArrayList
required-type : java.util.ArrayList
converter-type : com.thoughtworks.xstream.converters.collections.CollectionConverter
path : /list/com.atlassian.crucible.plugins.scm.git.GitConfiguration
line number : 7
version : not available
原因
The problem can be caused by a few reasons:
Cause #1
The config.xml
file has been corrupted by either a manual edit or another operation. Eg: Deleting a repository.
Most commonly it is caused by a wrong linker definition under the repository defaults resulting in the following error:
Caused by: java.lang.IllegalArgumentException: 'https://jira.test.tes/test/${0} ' is invalid.
In this case, there is an extra space before the quote:
'https://jira.test.tes/test/${0} '
Cause #2
The issue is with the Git LightSCM configuration:
In Fisheye 4.8.9 the repos added under the Git Light SCM are not being loaded and are throwing the error in the UI. When loading the Administration page the default page that loads up is the Repository settings > Repositories and that's where the configuration for the Git Light SCM is found and hence the error.
ソリューション
Cause #1
- Stop Fisheye/Crucible.
Edit
FISHEYE_INST/config.xml
and identify the "corrupted" section. If it's related to the linker section, locate:<linker> <simple regex="[a-zA-Z]{2,}-\d+" href="https://jira.test.test/test/${0} " description="Jira"/> </linker>
And remove the extra space before the double quote.
- Save the changes and restart Fisheye/Crucible
Due to the complexity of the config.xml
file structure, when not able to identify the "corrupted" part, please raise a support ticket at http://support.atlassian.com .
Cause #2
- Delete the file com.atlassian.crucible.plugins.crucible-git-scm-plugin_scmprovider.config under $FISHEYE_INST/var/plugins/config directory
- Then restart the Fisheye.
The error would no longer show up and you would be able to access the <$Fisheye_URL/admin/admin.do> URL without any issues. You may attempt to perform this procedure in a test environment first.