Search code examples
xpagesdomino-designer-eclipse

StackoverflowError when developing XPages in XPiNC V10


Hi I have a major problem which occured in IBM Notes 9.0.1 FP10 and now in V10. I believe it may be related to the latest versions of Openntf Domino API. With only the Notes Client open everything is fine. As soon as I open Designer and then revert back to XPages in the client (XPiNC) I start to experience Error 500s, and Notes crashes soon after with Shared Memory or XPiNC become unresponsive. I don't have any issues when accessing the same pages via a browser.

I have the exact same problem on more than one PC. I have been able to solve the problem by downgrading to 9.0.1 FP9 in the past. This solution is 100% reproducable. Obviously I no longer wish to do remain at Notes 9.0.1 FP9.

No other users,- they don't use Domino Designer and are on Notes Client 9.0.1 FP8 or below,- are affected by the issues.

The log trace provides the following. the first (up to the ...17 more) is stated once. The log after that is repeated dozens of times until I assume everthing false over.

Any help would be really appreciated, this has been driving me mad for months.

    CLFAD0256E: Dispatcher Servlet Problem - java.util.concurrent.ExecutionException: java.lang.StackOverflowError
javax.servlet.ServletException: java.util.concurrent.ExecutionException: java.lang.StackOverflowError
    at com.ibm.domino.xsp.module.nsf.NSFService.doService(Unknown Source)
    at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(Unknown Source)
    at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(Unknown Source)
    at com.ibm.domino.xsp.bridge.websrv.servlets.DispatcherServlet.service(Unknown Source)
    at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(Unknown Source)
    at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(Unknown Source)
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(Unknown Source)
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(Unknown Source)
    at javax.servlet.http.HttpServlet.service(Unknown Source)
    at com.ibm.pvc.webhttpservice.BridgeServlet.service(Unknown Source)
    at com.ibm.pvc.internal.webcontainer.VirtualHost.handleRequest(Unknown Source)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(Unknown Source)
    at com.ibm.wsspi.webcontainer.WebContainer.handleRequest(Unknown Source)
    at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(Unknown Source)
    at com.ibm.ws.http.HttpConnection.readAndHandleRequest(Unknown Source)
    at com.ibm.ws.http.HttpConnection.run(Unknown Source)
    at com.ibm.ws.util.ThreadPool$Worker.run(Unknown Source)
Caused by: java.util.concurrent.ExecutionException: java.lang.StackOverflowError
    at java.util.concurrent.FutureTask.report(Unknown Source)
    at java.util.concurrent.FutureTask.get(Unknown Source)
    ... 17 more
Caused by: java.lang.StackOverflowError
    at sun.nio.cs.UTF8_Decoder.decodeArrayLoop(Unknown Source)
    at sun.nio.cs.UTF8_Decoder.decodeLoop(Unknown Source)
    at java.nio.charset.CharsetDecoder.decode(Unknown Source)
    at sun.net.www.ParseUtil.decode(Unknown Source)
    at sun.security.provider.PolicyFile.canonicalizeCodebase(Unknown Source)
    at sun.security.provider.PolicyFile.access$700(Unknown Source)
    at sun.security.provider.PolicyFile$5.run(Unknown Source)
    at sun.security.provider.PolicyFile$5.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Unknown Source)
    at sun.security.provider.PolicyFile.getPermissions(Unknown Source)
    at sun.security.provider.PolicyFile.getPermissions(Unknown Source)
    at sun.security.provider.PolicyFile.implies(Unknown Source)
    at java.security.ProtectionDomain.implies(Unknown Source)
    at java.security.AccessController.checkPermissionHelper(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at COM.ibm.JEmpower.applet.XPagesSecurityManager.checkPermission(Unknown Source)
    at COM.ibm.JEmpower.applet.XPagesSecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkRead(Unknown Source)
    at java.io.File.isDirectory(Unknown Source)

Solution

  • I don't think it's ODA. What I suspect you're encountering is DDE set with "Build Automatically" enabled. XPiNC shares source code with DDE. Opening the app in Notes caches the built Java files. Building in DDE rebuilds the Java files, so they're no longer available to XPiNC. doService() is the initial call to the XPages runtime (the servlet). No one else hits the problem because they're not rebuilding the Java source code.

    My recommendation on XPiNC development is get it working how you want by testing in a browser. Then do a final test in XPiNC to identify any unanticipated quirks.