It's all about the answers!

Ask a question

Create new team area in RTC that generates error 400 when I try to access the team area dashboard.


George Clark (611) | asked Nov 10 '14, 8:56 p.m.
I am a part of a larger Project Area and I am trying to create a small team area to use for internal tooling. I create a new team area in the Rich Client but no matter (it seems) what I do to the settings in the Rich Client, when I try to access the newly created team area from the Web Client I get a 400 error. In the main project area I can see the team area I created from #action=com.ibm.team.dashboard.viewAllDashboards and I click the name of the newly created team, but end up with the error listed below. I did some fishing around on the internet and in the forums and it seems that the main project area has the right settings to instantiate a team's new dashboard. In the Rich Client , under the Process Configuration tab I go to  Project Configuration -> Configuration Data -> Dashboards -> Dashboard Templates. And there is a template for ${scope}(team), ${scope}'s Dashboard (contributor), and ${scope}(project). It seems that this would be the data the server would draw on to populate the link I click when it gives the 400 error. Any help would be appreciated.

We're Sorry...

An error occurred while retrieving the dashboard:
HTTP/1.1 400 Bad Request
/jazz/web/dojo/../../service/com.ibm.team.dashboard.common.internal.service.IDashboardRestService/dashboard?projectName=IBM%20Eclipse%20SDK%20Project&teamName=IES%20Tools%20Team

java.lang.IllegalArgumentException: key must not be null
	at com.ibm.team.repository.common.json.JSONObject.put(JSONObject.java:142)
	at com.ibm.team.dashboard.service.internal.registry.TemplateFactory.putJSONProperties(TemplateFactory.java:713)
	at com.ibm.team.dashboard.service.internal.registry.TemplateFactory.writeWidget(TemplateFactory.java:387)
	at com.ibm.team.dashboard.service.internal.registry.TemplateFactory.writePage(TemplateFactory.java:290)
	at com.ibm.team.dashboard.service.internal.registry.TemplateFactory.writeDashboard(TemplateFactory.java:253)
	at com.ibm.team.dashboard.service.internal.registry.TemplateFactory.newTemplate(TemplateFactory.java:157)
	at com.ibm.team.dashboard.service.internal.registry.TemplateRegistry.findTemplate(TemplateRegistry.java:145)
	at com.ibm.team.dashboard.service.internal.registry.TemplateRegistry.getTemplate(TemplateRegistry.java:52)
	at com.ibm.team.dashboard.service.internal.legacy.LegacyDashboardRestService.getDashboard(LegacyDashboardRestService.java:247)
	at sun.reflect.GeneratedMethodAccessor695.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:611)
	at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:361)
	at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:347)
	at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
	at com.sun.proxy.$Proxy750.getDashboard(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor694.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
	at java.lang.reflect.Method.invoke(Method.java:611)
	at com.ibm.team.repository.servlet.AbstractTeamServerServlet.doModelledRestService(AbstractTeamServerServlet.java:527)
	at com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleRequest2(AbstractTeamServerServlet.java:2198)
	at com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleRequest(AbstractTeamServerServlet.java:1990)
	at com.ibm.team.repository.servlet.AbstractTeamServerServlet.service(AbstractTeamServerServlet.java:1800)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
	at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:76)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
	at org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:120)
	at com.ibm.team.repository.server.servletbridge.JazzServlet.service(JazzServlet.java:74)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
	at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
	at com.ibm.team.repository.server.servletbridge.BridgeFilter.processDelegate(BridgeFilter.java:165)
	at com.ibm.team.repository.server.servletbridge.BridgeFilter.doFilter(BridgeFilter.java:198)
	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:960)
	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1064)
	at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
	at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:914)
	at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
	at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:453)
	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515)
	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:306)
	at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:84)
	at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1819)
	at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
	at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
	at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
	at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
	at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
	at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
	at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1702)
	

One answer



permanent link
Donald Nong (14.4k314) | answered Nov 11 '14, 12:00 a.m.
Does this only happen to the newly-created team area? You may need to check the properties of the dashboard template one by one and see if they are all properly set. Alternatively, go to Process Configuration Source and get the XML source of the dashboard template. It should starts with the below line
<dashboard-template title="${scope}" type="team" >


Comments
George Clark commented Nov 11 '14, 5:14 p.m. | edited Nov 12 '14, 2:47 a.m.

Hey Donald, thanks for the quick response! That line of XML in the Process Configuration Source was good. Previously, I had not investigated this particular XML file because it was for the whole project. There were two errors RTC let me know about.

1. One line seemed to be a hanging viewlet-entry tag as there was no corresponding <viewlet-entry ... >, but RTC was complaining about the lack of a viewlet-id attribute:
<!--<viewlet-entry category="category1" viewlet-id="BOGUS_id"/>-->
If I comment it out or give it a an a viewlet-id attribute the error went away and the team area dashboard loads in both cases.

2. The second was the end tag of a property:
<property type="xsd:string" name="html"/> <!-- name="html" manually entered error disappeared-->

I can provide more context for each XML line, but would these errors have been introduced by people? Should I even worry about it if the team area loads anyway?
Thanks again.

Your answer


Register or to post your answer.