cancel
Showing results for 
Search instead for 
Did you mean: 

unknown reasons for iView timeout in EP 6.0

Former Member
0 Kudos

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)

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

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.

detlev_beutner
Active Contributor
0 Kudos

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>"

Former Member
0 Kudos

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

Former Member
0 Kudos

Hi,

I have changed the scope of beans from "application" to "session". It helped. Only now I am getting a null pointer exception on beans in doInitialization, but only, when new window is opened. Any ideas?

detlev_beutner
Active Contributor
0 Kudos

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!

Former Member
0 Kudos

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%>&param=note", '', 'dialogHeight: 285px; dialogWidth: 230px; edge: Raised; center: Yes; help: No; resizable: No; status: Yes');

var wind = window.open(url+"?JSESSIONID=<%=sessionid%>&param=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%>&param=note", '', 'dialogHeight: 295px; dialogWidth: 230px; edge: Raised; center: Yes; help: Yes; resizable: No; status: Yes; menubar: Yes');

var wind = window.open(url+"?JSESSIONID=<%=sessionid%>&param=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