Create new team area in RTC that generates error 400 when I try to access the team area dashboard.
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
/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
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" >