on 04-13-2006 10:32 AM
Hello,
we have recently developed a HR portal application for appraising employees. It is an application using JSP DynPage,connecting to R3 with JCo. The strangest thing about it, is that it works perfectly well on our DEV EP, however on production portal it doesn't. When user tries to save an appraisal form, we get an error. This happens if time of edition of the form exceeds about one minute. If user saves his appraisal quicker,everything is just ok. We don't have this time restriction on DEV EP. User can save his appraisal even after 20 minutes of edition. We were looking for differences in DEV and PRD portals, and found none, except the number of users. We can't figure out, what may be causing this problem. Any ideas? Please help.
Apr 7, 2006 2:40:39 PM Fatal PRT-Async 5 [async] Exception in PortalRequestManager.dispatchRequest without timeout
java.lang.NullPointerException
at com.img.polkomtel.hr.AppraisalCard$UsingJSPDynPagePage.doProcessAfterInput(AppraisalCard.java:181)
at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:91)
at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:135)
at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:301)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:191)
at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:384)
at com.sapportals.portal.prt.core.async.AsyncPortalComponentResponse.include(AsyncPortalComponentResponse.java:338)
at com.sapportals.portal.navigation.workAreaiView.doContent(workAreaiView.java:252)
at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:301)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable$1$DoDispatchRequest.run(AsyncIncludeRunnable.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable.run(AsyncIncludeRunnable.java:376)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:729)
at java.lang.Thread.run(Unknown Source)
Hi Piotr,
I am facing the same problem. My portal app works well on DEV and QAS but not in PRD, and have the same error message as yours.
Exception in PortalRequestManager.dispatchRequest without timeout
[EXCEPTION]
#1#java.lang.NullPointerException
...
Could you please give me the solution that you found to solve it?
Thanks in advance.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Piotr,
the stack trace gives detailed information of the root cause, check <i>com.img.polkomtel.hr.AppraisalCard$UsingJSPDynPagePage.doProcessAfterInput(AppraisalCard.java:181)</i>.
There something is null which shouldn't... Check where this null value comes from. One possibility would be that you have stored something within the ComponentContext, which is dangerous in general, see SAP note 802015.
Hope it helps
Detlev
PS: How do get the idea that there is a timeout?! "Exception in PortalRequestManager.dispatchRequest <i>without timeout</i>"
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Detlev,
Thaks for the clue. Indeed, I am using ComponentContext to store and access data.
public void doProcessAfterInput() throws PageException {
IPortalComponentRequest request = (IPortalComponentRequest) this.getRequest();
IPortalComponentContext myContext = request.getComponentContext();
SelectionBean selectionBean = (SelectionBean) myContext.getValue("selectionBean");
I thought of timeout, because null pointer occurs if time of editing form exeeds 90 seconds. Now I am tring to replace ComponentContext with ComponentSession but the data is still not stored properly. No null pointer, but also no changes in selectionBean object.
public void doProcessAfterInput() throws PageException {
IPortalComponentRequest request = (IPortalComponentRequest) this.getRequest();
IPortalComponentSession myContext = request.getComponentSession();
SelectionBean selectionBean = (SelectionBean) myContext.getValue("selectionBean");
I guess I have to change something in my .jsp pages, but I don,t know what. Do you have any ideas?
Best regards,
Rafal
Hi Piotr,
for I cannot see your code in doInitialization, neither I know the exact statement which throws this exception, I cannot say what's the reason behind it. But it sounds like there is just no bean to be found where you are looking for one?!
Best regards
Detlev
PS: Please consider rewarding points for helpful answers on SDN. Thanks in advance!
Hi Detlev,
I guess the problem boils down to opening a new window in javascript and keeping the session. As I moved all Beans to SessionComponent and thier scope is "session", I can not access them from a new window. This is quite reasonable, but how to walk around ? I tried including the session id in url:
function setTarget(newTarget, newParam, parentRow, who) {
<% String sessionid = request.getSession().getId(); %>
var url="<%=selectionBean.componentUrl%>";
var pageUrl = "<%=selectionBean.pageUrl%>";
var connected = "<%=selectionBean.connected%>";
if (connected == 'true') {
// var val = window.showModalDialog(url+"?JSESSIONID=<%=sessionid%>¶m=note", '', 'dialogHeight: 285px; dialogWidth: 230px; edge: Raised; center: Yes; help: No; resizable: No; status: Yes');
var wind = window.open(url+"?JSESSIONID=<%=sessionid%>¶m=note&parent=" + parentRow + "&who=" + who,"","menubar=0,resizable=0,width=205,height=235,center=1,status=0,scrollbars=0");
} else {
// var val = window.showModalDialog(url+"?JSESSIONID=<%=sessionid%>¶m=note", '', 'dialogHeight: 295px; dialogWidth: 230px; edge: Raised; center: Yes; help: Yes; resizable: No; status: Yes; menubar: Yes');
var wind = window.open(url+"?JSESSIONID=<%=sessionid%>¶m=note&parent=" + parentRow + "&who=" + who,"","menubar=0,resizable=0,width=205,height=235,center=1,status=0,scrollbars=0");
But it didn't help. I still get a null pointer exception when I open a new window. Any ideas ?
Best Regards,
Piotr
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.