cancel
Showing results for 
Search instead for 
Did you mean: 

Page Title Bar - portal runtime error after removing History link

Former Member
0 Kudos

Hi,

We have EP6 SP15. If I remove the History or Back/Forward links (as per http://help.sap.com/saphelp_nw04/helpdata/en/8b/c2ca3e76d34e64b3ee0f612755da61/frameset.htm), I get a portal runtime error, with the following error in default.trc:

#1.5#0014C262E1EB006D0000010400000AD800040B2B3676A41F#1138180132135#com.sap.portal.prt.request#sap.com/irj#com.sap.portal.prt.request#carpenterd#51634##sapepd01.jcb.com_EPD_6679450#carpenterd#3423d7808d8211daa0290014c262e1eb#Thread[PRT-Async 1,5,PRT-Async]##0#0#Error#1#/System/Server#Java###Exception in PortalRequestManager.dispatchRequest without timeout

[EXCEPTION]

#1#java.lang.NullPointerException at com.sapportals.portal.navigation.PageToolbar.doContent(PageToolbar.java:225) 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:328) at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136) at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable$1$DoDispatchRequest.run(AsyncIncludeRunnable.java:377) at java.security.AccessController.doPrivileged(Native Method) at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable.run(AsyncIncludeRunnable.java:390) at com.sapportals.portal.prt.core.async.ThreadContextRunnable.run(ThreadContextRunnable.java:164) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:729) at java.lang.Thread.run(Thread.java:534) # #1.5#0014C262E1EB006D0000010600000AD800040B2B3676A8B1#1138180132135#com.sap.portal.portal#sap.com/irj#com.sap.portal.portal#carpenterd#51634##sapepd01.jcb.com_EPD_6679450#carpenterd#3423d7808d8211daa0290014c262e1eb#Thread[PRT-Async 1,5,PRT-Async]##0#0#Error#1#/System/Server#Java###Exception ID:09:08_25/01/06_0003_6679450 [EXCEPTION] #1#com.sapportals.portal.prt.component.PortalComponentException: Error in service call of Portal Component

Component : pcd:portal_content/every_user/general/defaultDesktop/frameworkPages/frameworkpage/com.sap.portal.pageToolbar

Component class : com.sapportals.portal.navigation.PageToolbar

User : carpenterd

at com.sapportals.portal.prt.core.PortalRequestManager.handlePortalComponentException(PortalRequestManager.java:969)

at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:343)

at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)

at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable$1$DoDispatchRequest.run(AsyncIncludeRunnable.java:377)

at java.security.AccessController.doPrivileged(Native Method)

at com.sapportals.portal.prt.core.async.AsyncIncludeRunnable.run(AsyncIncludeRunnable.java:390)

at com.sapportals.portal.prt.core.async.ThreadContextRunnable.run(ThreadContextRunnable.java:164)

at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:729)

at java.lang.Thread.run(Thread.java:534)

Caused by: java.lang.NullPointerException

at com.sapportals.portal.navigation.PageToolbar.doContent(PageToolbar.java:225)

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:328)

... 7 more

#

Has anyone else experienced this?

Many thanks

Jane

Message was edited by: Jane Tooke

Message was edited by: Jane Tooke

Accepted Solutions (0)

Answers (1)

Answers (1)

detlev_beutner
Active Contributor
0 Kudos

Hi Jane,

this is a bug. And this is the reason:

In PageToolbar.class, you will find the following fragment in lines 167-170:

if (showHistory) {
  if (userAgent == null)
    userAgent = getUserAgent(request);
...

This code does not get executed if <i>showHistory</i> is <i>false</i>. Later, within the same method, this fragment is executed (lines 225/226):

if (!userAgent.getType().equals("MSIE"))
  optionsMenu.addMenuItem(new HoverMenuItem("", ""));

And here you are, <i>userAgent</i> is <i>null</i> and has not been set in the fragment before.

Please open an OSS message about this bug and deliver the analysis provided here, so it can be fixed at SAP's site as fast as possible.

Hope it helps

Detlev

Former Member
0 Kudos

Thanks Detlev!

I have raised an OSS note & included your message. I will post the result when they answer.

Thanks

Jane

Former Member
0 Kudos

I have raised an OSS note and SAP are still looking at it. They have reproduced the problem on one of their SP15 systems, but not on another so I'm having to sort out access to our server which is slowing the process down a little.

Has anyone else had this problem with SP15? The error only occurs when the History link is turned off - I was wrong about the Back/Forward links.

Many thanks

Jane

detlev_beutner
Active Contributor
0 Kudos

Hi Jane,

I don't understand the problem. I have given full analysis of it. Also from the code it was obvious that the reason would be the history setting solely. The problem is only reproducable if userAgent hasn't been set before - I don't know and don't have the time (and it is superflous) to check under what circumstances this might be the case even without the first fragment being run.

One solution is to make sure that userAgent is different from null, independent from other iView settings.

Best regards

Detlev

Former Member
0 Kudos

Hi Detlev,

I included your analysis in the OSS message. The reply I got regarding it was:

"

userAgent is to do with the supported browsers(MSIE, Netscape & Mozilla)The above "if statement" would be executed if showHistory is True (set to yes as in the scenario which doesn't reproduce the PRT error).

Therefore,as expected,this code isn't executed when showHistory is false

if (!userAgent.getType().equals("MSIE"))

optionsMenu.addMenuItem(new HoverMenuItem("", ""));

The compliment(!) of MSIE would be Mozilla & Netscape in the if statement, so a browser other than MSIE is assigned to the userAgent as a result & the following code line is then executed(line 226).

We will have to look into the code of this class file in more detail when the scenarios producing the error are selected. There may be a restriction that I am not aware of, but Dev colleagues will be able to inform us if so.

"

Regards

Jane

detlev_beutner
Active Contributor
0 Kudos

Hi Jane,

> Dev colleagues will be able to inform us

I hope that this explains some things... (that the anaysis so far hasn't been done by development).

To give help for the support: The error is a NullPointerException which is thrown in the case when the userAgent points to null (means: is not set) and "userAgent.getType()" is requested (that leads to null.getType(), throwing the NPE). Line 226 doesn't matter at all.

It's really as clear as it can be.

> Therefore,as expected,this code isn't

> executed when showHistory is false

... and therefore, if userAgent isn't filled somewhere else, line 225 throws a NPE.

Hope it helps

Detlev

Former Member
0 Kudos

Their DEV colleagues insisted on an hour long WebEx session so I could show them the steps to recreate the error, the error itself and the error log - all of which I had already documented in the OSS note. I also showed them this SDN thread but they didn't say much about it.

Hopefully now at least they will provide a fix...!

Thanks for your help - at least you have helped <b>me</b> understand what the problem is!!

Jane

Former Member
0 Kudos

Update:

SAP provided a fix, the problem is also fixed in SP17 - see SAP note 920756.

Regards

Jane