cancel
Showing results for 
Search instead for 
Did you mean: 

"java.lang.VerifyError: Expecting a stack map frame" when opening custom iView

0 Kudos

Hello experts,

I have developed an iView using the JSP DynPage concept (i.e. portal component extending PageProcessorComponent plus Java bean for exchanging data with my JSP). This has been working perfectly on NW 7.3 and NW 7.4 for many years.

On NW 7.5 we are encountering the following error when the iview is opened:

500 Internal Server Error
Message:
Cannot process an HTTP request to servlet [prt] in [irj] web application. 
[EXCEPTION] 
java.lang.VerifyError: Expecting a stack map frame
Exception Details:
  Location:
    PRT_jsp_WEB_2d_INF_pagelet_FsIntegrationAdmin_1498722360657._doContent(Lcom/sapportals/portal/prt/component/IPortalComponentRequest;Lcom/sapportals/portal/prt/component/IPortalComponentResponse;)V @31559: nop
  Reason:
    Expected stackmap frame at this location.
Bytecode:
    0x0000000: 1307 15b8 0712 3aae 2b03 b900 0b02 0012
....

This error seems to indicate a problem with the bytecode.

Theses are my findings so far:

  • the portal component was compiled with Oracle JDK 1.8 using source and target 1.8
  • the class file compiled by the Portal upon first access is also 1.8.
  • the doContent() method is not implemented in my portal component, it is present in the superclass which is SAP's PageProcessorComponent
  • the error only occurs on some installations, other systems are not affected. This seems to indicate that some configuration may be responsible.

I have no idea how to analyse this further - is there something wrong with my code or the way it is compiled? Or is there a setting in NetWeaver that cannot deal with the compiled code?

Any ideas would be greatly appreciated.

Best regards,

Tanja

Accepted Solutions (1)

Accepted Solutions (1)

0 Kudos

Just noticed that I never posted the solution we found back then with the help of SAP support so there we go:

this error is caused by the bytecode instrumentation of Wily's "Introscope JAVA Agent (ISAgent)". If the ISAgent is switched off, the iView can be opened successfully.
To solve this problem you have to add the following property to the JVM initialization properties using the Config tool:

-Dcom.wily.introscope.probebuilder.widenJumpOffsetThreshold=32767
The Netweaver server needs to be restarted afterwards.

Regards,

Tanja

Answers (2)

Answers (2)

0 Kudos

Hi Matt,

thanks for your input. The compatibility you mention relates to NetWeaver's runtime environment (i.e. NW only runs on SAP JVM). As far as compilation is concerned, it should not matter whether Oracle or SAP is used (that's the theory :-))

And indeed, we seem to have identified the cause of the issue: looks like Wily's Introscope JAVA Agent is to blame. Once it is switched off, the iView can be opened.

Now that we have found the cause we have to see how to solve that.

Regards,

Tanja

Matt_Fraser
Active Contributor
0 Kudos

Hi Tanja,

I added a few more secondary tags to your question to help bring about some relevant visibility.

I'm not a Java developer myself, so no expert on this, but I'm pretty sure NetWeaver Java 7.5 is only compatible with the SAPJVM (8.1) -- per the PAM -- and you mention that you compiled your code with Oracle JDK 1.8. Can you recompile with the SAPJVM?

Cheers,
Matt