IBM Support

Changing the deployment environment administrator for IBM Business Process Manager (BPM) leads to a NullPointerException in the getOrCreateUserInfoObject within the log files

Troubleshooting


Problem

If you change the deployment environment administrator in IBM Business Process Manager V8.5 to be a user from a federated LDAP repository, you might see a NullPointerException exception.

Symptom

Administrative users cannot execute any actions in the Process Admin Console as those actions fail and result in a NullPointerException exception.

Cause

A NullPointerException exception is thrown because the J2C Authentication aliases have been changed in the WebSphere Administrative Console. These changes have been made to make use of the new deployment environment administrator. However, this user has not been synchronized yet with the IBM Business Process Manager repository.

Diagnosing The Problem

In the log files, you see exceptions like the following text:

[11/8/13 12:26:33:488 CET] 00000117 wle           E   CWLLG2229E: An exception occurred in an EJB call.  Error: null
                                 java.lang.NullPointerException
 at com.lombardisoftware.server.core.UserCore.getOrCreateUserInfoObject(UserCore.java:153)
 at com.lombardisoftware.server.core.UserCore.getOrCreateUserInfoObject(UserCore.java:121)
 at com.lombardisoftware.server.core.UserCore.getOrCreateUserId(UserCore.java:116)
 at com.lombardisoftware.userorg.WSUserRegistryModule.getIdFromPrincipalName(WSUserRegistryModule.java:26)
 at com.lombardisoftware.server.AppServerSecurityContext.getCurrentUserId(AppServerSecurityContext.java:66)
 at com.lombardisoftware.server.ejb.security.SecurityCore.getCurrentUserId(SecurityCore.java:125)
 at com.lombardisoftware.server.ejb.security.SecurityCore.getCurrentUserId(SecurityCore.java:112)
 at sun.reflect.GeneratedMethodAccessor194.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
 at java.lang.reflect.Method.invoke(Method.java:611)
 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
 at com.lombardisoftware.utility.spring.TransactionInterceptor$1.call(TransactionInterceptor.java:46)
 at com.lombardisoftware.utility.spring.ProgrammaticTransactionSupport$1.doInTransaction(ProgrammaticTransactionSupport.java:427)
 at org.springframework.transaction.jta.WebSphereUowTransactionManager$UOWActionAdapter.run(WebSphereUowTransactionManager.java:306)
 at com.ibm.ws.uow.embeddable.EmbeddableUOWManagerImpl.runUnderNewUOW(EmbeddableUOWManagerImpl.java:790)
 at com.ibm.ws.uow.embeddable.EmbeddableUOWManagerImpl.runUnderUOW(EmbeddableUOWManagerImpl.java:369)
 at org.springframework.transaction.jta.WebSphereUowTransactionManager.execute(WebSphereUowTransactionManager.java:252)
 at com.lombardisoftware.utility.spring.ProgrammaticTransactionSupport.executeInNewTransaction(ProgrammaticTransactionSupport.java:422)
 at com.lombardisoftware.utility.spring.ProgrammaticTransactionSupport.execute(ProgrammaticTransactionSupport.java:291)
 at com.lombardisoftware.utility.spring.TransactionInterceptor.invoke(TransactionInterceptor.java:44)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
 at com.lombardisoftware.utility.spring.CoreEntryInterceptor.invoke(CoreEntryInterceptor.java:44)
 at com.lombardisoftware.utility.spring.PSCoreEntryInterceptor.invoke(PSCoreEntryInterceptor.java:14)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
 at com.sun.proxy.$Proxy59.getCurrentUserId(Unknown Source)
 at com.lombardisoftware.server.ejb.security.SecurityBean$1.execute(SecurityBean.java:58)
 at com.lombardisoftware.server.ejb.security.SecurityBean$1.execute(SecurityBean.java:56)
 at com.lombardisoftware.server.ejb.EjbServerUtils.handleEjbCall(EjbServerUtils.java:86)
 at com.lombardisoftware.server.ejb.security.SecurityBean.handleEjbCall(SecurityBean.java:50)
 at com.lombardisoftware.server.ejb.security.SecurityBean.getCurrentUserId(SecurityBean.java:56)
 at com.lombardisoftware.server.ejb.security.EJSRemoteStatelessSecurity_287acf5b.getCurrentUserId(Unknown Source)
 at com.lombardisoftware.server.ejb.security._SecurityInterface_Stub.getCurrentUserId(_SecurityInterface_Stub.java:285)
 at com.lombardisoftware.client.delegate.SecurityDelegateDefault$1.run(SecurityDelegateDefault.java:123)
 at java.security.AccessController.doPrivileged(AccessController.java:280)
 at com.lombardisoftware.client.delegate.common.WebsphereDelegateHelper.doAsCurrentSubjectContextSensitive(WebsphereDelegateHelper.java:197)
 at com.lombardisoftware.client.delegate.SecurityDelegateDefault.getCurrentUserId(SecurityDelegateDefault.java:120)
 at com.lombardisoftware.processadmin.server.ProcessAdminServicesUtils.getCurrentUserLocalePreferences(ProcessAdminServicesUtils.java:27)
 at com.ibm._jsp._ProcessAdmin._jspService(_ProcessAdmin.java:115)
 at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
 at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227)
 at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:776)
 at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458)
 at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
 at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122)
 at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:216)
 at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
 at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
 at com.lombardisoftware.servlet.SetUserTimeZoneFilter.doFilter(SetUserTimeZoneFilter.java:44)
 at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
 at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
 at com.lombardisoftware.servlet.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:33)
 at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
 at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
 at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
 at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
 at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
 at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:909)
 at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
 at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
 at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459)
 at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526)
 at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312)
 at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)
 at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
 at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
 at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
 at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
 at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
 at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
 at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
 at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1862)

Resolving The Problem

To resolve the problem, complete the following steps:

  1. Log in with an administrative user to WebSphere Administrative Console.

  2. Click Server > Deployment Environments.

  3. Click Deployment Environment Name.

  4. Click Authentication Aliases.

  5. Remember the alias for "DeAdmin".

  6. Click Security > Global Security.

  7. Click Java Authentication and Authorization Service > J2C authentication data.

  8. Search for the remembered alias in the list from step 5. The user ID must be your new deployment environment administrator.

  9. Select the alias, change the user ID, and change the password to the user that was defined during installation.

  10. Click Save and restart the servers.

  11. Use the new deployment environment administrator to log into the Process Admin Console or Process Portal. This step adds this user to the IBM Business Process Manager repository.

  12. Log back into the WebSphere Admin console and redo steps 5 - 9 to switch back to the intended admin user ID in the aliases. In step 8, insert the original user.

[{"Product":{"code":"SSFTN5","label":"IBM Business Process Manager Advanced"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Security","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"},{"code":"PF035","label":"z\/OS"}],"Version":"8.5","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}},{"Product":{"code":"SSFTDH","label":"IBM Business Process Manager Standard"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Security","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"","label":"Linux zSeries"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"8.5","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}},{"Product":{"code":"SSFTBX","label":"IBM Business Process Manager Express"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Security","Platform":[{"code":"PF016","label":"Linux"},{"code":"","label":"Linux zSeries"},{"code":"PF033","label":"Windows"}],"Version":"8.5","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Product Synonym

BPM

Document Information

Modified date:
15 June 2018

UID

swg21656384