Support Article
Engine startup failed, evaluateWhen-Exception NPE
SA-10450
Summary
After upgrading to Pega 7.1.7 from PRPC 6.3 SP1 engine initilization failed.
Error Messages
2015-05-19 18:50:36,329 [ ] [ STANDARD] [ ] [ ] ( etier.impl.EngineStartup) ERROR - PegaRULES initialization failed. Server: test.com
com.pega.pegarules.pub.context.InitializationFailedError: PRNodeImpl init failed
at com.pega.pegarules.session.internal.mgmt.PREnvironment.getThreadAndInitialize(PREnvironment.java:394)
at com.pega.pegarules.session.internal.PRSessionProviderImpl.getThreadAndInitialize(PRSessionProviderImpl.java:1905)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineStartup.initEngine(EngineStartup.java:657)
...
Caused by: com.pega.pegarules.pub.runtime.IndeterminateConditionalException: Executable.evaluateWhen-Exception Encountered a :java.lang.NullPointerException
at com.pega.pegarules.session.internal.mgmt.Executable.evaluateWhen(Executable.java:4101)
at com.pega.pegarules.exec.internal.basic.dictionary.AccessInfoConclusion.evaluateConditions(AccessInfoConclusion.java:936)
at com.pega.pegarules.exec.internal.basic.dictionary.AccessInfoConclusion.evaluate(AccessInfoConclusion.java:808)
at com.pega.pegarules.session.internal.authorization.access.AccessEvaluator.haveAccess(AccessEvaluator.java:179)
at com.pega.pegarules.session.internal.authorization.access.AccessEvaluator.haveAccessWithFrame(AccessEvaluator.java:607)
at com.pega.pegarules.session.internal.authorization.Authorization.haveAccessWithFrame(Authorization.java:1913)
at com.pega.pegarules.data.internal.access.Saver.checkSecurity(Saver.java:713)
at com.pega.pegarules.data.internal.access.Saver.save(Saver.java:602)
at com.pega.pegarules.data.internal.access.DatabaseImpl.save(DatabaseImpl.java:4945)
at com.pega.pegarules.data.internal.access.DatabaseImpl.save(DatabaseImpl.java:4931)
at com.pega.pegarules.data.internal.access.DatabaseImpl.save(DatabaseImpl.java:4923)
at com.pega.pegarules.exec.internal.basic.SystemSettingsImpl.setDynamic(SystemSettingsImpl.java:355)
at com.pega.pegarules.cluster.internal.PRClusterImpl.getClusterName(PRClusterImpl.java:311)
at com.pega.pegarules.cluster.internal.PRClusterHazelcastImpl.configureHazelcast(PRClusterHazelcastImpl.java:443)
at com.pega.pegarules.cluster.internal.PRClusterHazelcastImpl.initialize(PRClusterHazelcastImpl.java:354)
at com.pega.pegarules.cluster.internal.PRClusterImpl.getInstance(PRClusterImpl.java:133)
at com.pega.pegarules.cluster.internal.PRClusterProviderImpl.getInstance(PRClusterProviderImpl.java:87)
at com.pega.pegarules.session.internal.mgmt.PRNodeImpl.joinCluster(PRNodeImpl.java:2336)
at com.pega.pegarules.session.internal.mgmt.PRNodeImpl.initializeSystem(PRNodeImpl.java:989)
at com.pega.pegarules.session.internal.mgmt.PREnvironment.getThreadAndInitialize(PREnvironment.java:373)
... 36 more
Caused by: java.lang.NullPointerException
at com.pega.pegarules.generation.internal.PRGenProviderImpl.get(PRGenProviderImpl.java:474)
at com.pega.pegarules.session.internal.mgmt.Executable.evaluateWhen(Executable.java:4051)
... 55 more
Steps to Reproduce
1. Upgrade from Pega 6.3 to Pega 7.1.7.
2. Start the Application server.
Root Cause
The root cause of this problem is a defect in application code/rules. The BATCH Requestor Type Is using COB:Administrators access group. Using access group "COB:Administrators" causes to fire the ‘pzsharedTenant’ when-rule, that in turns fails with the NPE since VTable has not been initialized at this point. As a best practice the startup process should not use the following roles: “PegaRULES:SysAdm4, COB:User1, COB:LEGUser1, COB:CreditUser1, PegaRULES:AutoTest, MS:Restricted, COB:Administrators”.
Below screen capture shows one of the BATCH requestor is using COB:Administratrators access group that uses one of the Roles mentioned above, which causes failure during engine startup.
Resolution
This issue is resolved through the following local-change:
Change the access group for the requestor to Out of The Box PRPC:Agent to resolve the issue.
Published February 29, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.