WebLogic database migration UI output displays a java.lang.NullPointerException in RSA Identity Governance and Lifecycle
2 years ago
Originally Published: 2017-01-11
Article Number
000040244
Applies To
RSA Product Set: RSA Identity Governance and Lifecycle 
RSA Product/Service Type: Enterprise Software
Platform: WebLogic

 
Issue
When migrating an RSA Identity Governance and Lifecycle database from one version to another on a WebLogic platform, the migration output that is displayed in the User Interface (UI) may result in a java.lang.NullPointerException. The migration continues but no more output is logged to the UI.

The aveksaServer.log contains the following:
01/11/2017 16:53:28.558 ERROR ([STUCK] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)') [MainManager]
java.lang.NullPointerException
at com.aveksa.migration.jdbctool.CheckDatabase.followOutput(CheckDatabase.java:2589)
at com.aveksa.migration.jdbctool.CheckDatabase.handleRequest(CheckDatabase.java:2342)
at com.aveksa.gui.core.ACMManager.checkHandleRequest(ACMManager.java:62)
at com.aveksa.gui.core.MainManager.handleRequest(MainManager.java:142)
at com.aveksa.gui.core.MainManager.doGet(MainManager.java:128)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)

The stdout.log contains the following messaging:
<Jan 11, 2017 5:24:53 PM CET> <Error> <WebLogicServer> <XXX-000337> <[STUCK] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)' 
has been busy for "661" seconds working on the request "Http Request Information: weblogic.servlet.internal.ServletRequestImpl@4f1ceb6c[GET /aveksa/main]
", which is more than the configured time (StuckThreadMaxTime) of "600" seconds in "server-failure-trigger". Stack trace:
java.lang.Thread.sleep(Native Method)
com.aveksa.migration.jdbctool.CheckDatabase.followOutput(CheckDatabase.java:2597)
com.aveksa.migration.jdbctool.CheckDatabase.handleRequest(CheckDatabase.java:2342)
com.aveksa.gui.core.ACMManager.checkHandleRequest(ACMManager.java:62)
com.aveksa.gui.core.MainManager.handleRequest(MainManager.java:142)
com.aveksa.gui.core.MainManager.doGet(MainManager.java:128)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
javax.servlet.http.HttpServlet.service(HttpServlet.java:844)


 
Cause
The process thread for the migration has exceeded the WebLogic Server Stuck Thread Max Time for inactivity.

In this case the WebLogic Server Stuck Thread Max Time was set to 600 seconds, which is the default, and the process thread was inactive for longer than 600 seconds. Note the error occurred after 661 seconds of inactivity.

 
Resolution
 The  WebLogic Server Stuck Thread Max Time value can be modified.  Use the WebLogic Console to change this value (base_domain > Environment > Servers > Admin Server > Configuration/Tuning).

Please note you may want to set this value temporarily for a database migration and set it back to the normal value once the migration has completed. Normal is based on current site requirements. The WebLogic default value is 600.
Workaround
Rather than reset the Stuck Thread Max Time value, you have two other options:
  1. Refresh the browser window when the null pointer exception occurs. This causes the thread to activate and continue logging information.
  2. Alternatively, tail the migrate.log to monitor migration progress.