OpenNTF/SocialSDK

NPE due to code developed using SBT

Opened this issue · 4 comments

Hello Developers,
I'm Prashant from Portal team.
There's some issue with the SBT code, as it's resulting in NPE.

[3/6/18 13:07:45:483 IST] 0000019d SRTServletReq 1 com.ibm.ws.webcontainer.srt.SRTServletRequest getAttribute
this->com.ibm.ws.webcontainer.srt.SRTServletRequest@63f24de4: name --> connectionsSSO
[3/6/18 13:07:45:484 IST] 0000019d SystemErr R java.lang.NullPointerException
[3/6/18 13:07:45:485 IST] 0000019d SystemErr R at com.ibm.ws.webcontainer.srt.SRTServletRequest$SRTServletRequestHelper.access$200(SRTServletRequest.java:3326)
[3/6/18 13:07:45:485 IST] 0000019d SystemErr R at com.ibm.ws.webcontainer.srt.SRTServletRequest.getAttribute(SRTServletRequest.java:417)
[3/6/18 13:07:45:485 IST] 0000019d SystemErr R at com.ibm.commons.runtime.impl.servlet.ContextServlet$RequestMap.get(ContextServlet.java:175)

When I analyzed more and enabled deeper tracing found >>

java.lang.IllegalStateException: Wrong request object in use on Thread
at com.ibm.ws.webcontainer.srt.SRTServletRequest.checkRequestObjectInUse(SRTServletRequest.java:296)
at com.ibm.ws.webcontainer.srt.SRTServletRequest.getAttribute(SRTServletRequest.java:414)
at javax.servlet.ServletRequestWrapper.getAttribute(ServletRequestWrapper.java:120)
at javax.servlet.ServletRequestWrapper.getAttribute(ServletRequestWrapper.java:120)
at javax.servlet.ServletRequestWrapper.getAttribute(ServletRequestWrapper.java:120)
at javax.servlet.ServletRequestWrapper.getAttribute(ServletRequestWrapper.java:120)
at com.ibm.wps.engine.PortalRequestWrapper.getAttribute(PortalRequestWrapper.java:531)
at com.ibm.commons.runtime.impl.servlet.ContextServlet$RequestMap.get(ContextServlet.java:175)
at com.ibm.commons.runtime.impl.AbstractContext.getBean(AbstractContext.java:113)
at com.ibm.sbt.services.endpoints.EndpointFactory.getEndpointUnchecked(EndpointFactory.java:88)
at com.ibm.sbt.services.endpoints.EndpointFactory.getEndpoint(EndpointFactory.java:55)
at com.ibm.sbt.services.endpoints.EndpointFactory.getEndpoint(EndpointFactory.java:52)
at com.ibm.sbt.services.endpoints.EndpointFactory.getEndpointFromEnvironment(EndpointFactory.java:139)
at com.ibm.sbt.services.client.base.BaseService.(BaseService.java:85)
at com.ibm.sbt.services.client.base.ConnectionsService.(ConnectionsService.java:63)
at com.ibm.sbt.services.client.connections.activitystreams.ActivityStreamService.(ActivityStreamService.java:70)
at com.cbec.recentupdates.CBECRecentFilesPortlet.getRecentFiles(CBECRecentFilesPortlet.java:190)
at com.cbec.recentupdates.CBECRecentFilesPortlet.doView(CBECRecentFilesPortlet.java:80)
at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:359)
...
com.ibm.sbt -> Social Business Toolkit.

Please help to get this resolved.

Is anybody at least watching this forum?

I think you're out of luck. SBT has been "cold" code for a long time and I don't know of anybody working on its maintenance.

Look at https://github.com/OpenNTF/SocialSDK/graphs/contributors to see the sad truth. IBM launched SBT for easier developer access to IBM Connections v4/v5. Meanwhile there seems to be v6 available. The github activity graph for SBT however shows that since Jan 2016 there was no commit or other activity any more on this project. Looks like IBM has lost its picknick spirit about this stuff.

btw: Finally its Open Source -- go download the project, fix the issue, create a patch, open a MR/PR... but chances are you end up having a better but unofficial snapshot. However if there are any other people running into the same issue they might appreciate your solution!