User Change password thorws stacktrace when PWD_FORBID_LOGIN is used
search cancel

User Change password thorws stacktrace when PWD_FORBID_LOGIN is used

book

Article ID: 201260

calendar_today

Updated On:

Products

CA Automic Workload Automation - Automation Engine CA Automic One Automation

Issue/Introduction

When a user tries to change their password, a nullPointException in a stacktrace occurs.  The following error is seen:

An unexpected error occurred. Further details are available in the logfiles.

java.lang.NullPointerException
 at com.uc4.ecc.framework.commons.validation.password.PasswordCriteriaValidator.checkLowercase(PasswordCriteriaValidator.java:121)
 at com.uc4.ecc.framework.commons.validation.password.PasswordCriteriaValidator.validateToString(PasswordCriteriaValidator.java:45)
 at com.uc4.ecc.framework.commons.validation.BaseFieldValidator.validateValue(BaseFieldValidator.java:87)
 at com.uc4.ecc.framework.commons.validation.BaseFieldValidator.validate(BaseFieldValidator.java:64)
 at com.uc4.ecc.framework.commons.validation.BaseFieldValidator.validate(BaseFieldValidator.java:13)
 at com.uc4.ecc.framework.commons.validation.ValidationUtils.validate(ValidationUtils.java:61)
 at com.uc4.ecc.framework.entrypoint.core.dialogs.changepassword.ChangePasswordView.validate(ChangePasswordView.java:150)
 at com.uc4.ecc.framework.entrypoint.core.dialogs.changepassword.ChangePasswordView.changePassword(ChangePasswordView.java:90)
 at com.uc4.ecc.framework.entrypoint.core.dialogs.changepassword.ChangePasswordView.lambda$buildDialog$110(ChangePasswordView.java:77)
 at com.uc4.ecc.framework.commons.dialogs.modal.ModalDialog.lambda$addButton$141(ModalDialog.java:380)
 at com.uc4.ecc.framework.commons.utils.componentfactories.ExtendedButton.lambda$bind$d56b6432$1(ExtendedButton.java:296)
 at sun.reflect.GeneratedMethodAccessor316.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
 at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
 at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
 at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1015)
 at com.vaadin.ui.Button.fireClick(Button.java:364)
 at com.vaadin.ui.Button.click(Button.java:353)
 at com.vaadin.ui.Button$ClickShortcut.handleAction(Button.java:471)
 at com.vaadin.event.ActionManager.handleAction(ActionManager.java:238)
 at com.vaadin.event.ConnectorActionManager.handleAction(ConnectorActionManager.java:77)
 at com.vaadin.event.ActionManager.handleAction(ActionManager.java:233)
 at com.vaadin.event.ActionManager.handleActions(ActionManager.java:216)
 at com.vaadin.ui.Panel.changeVariables(Panel.java:164)
 at com.vaadin.ui.Window.changeVariables(Window.java:202)
 at com.vaadin.server.communication.ServerRpcHandler.changeVariables(ServerRpcHandler.java:616)
 at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:463)
 at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:406)
 at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:273)
 at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:148)
 at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:240)
 at com.vaadin.server.communication.PushHandler.onMessage(PushHandler.java:513)
 at com.vaadin.server.communication.PushAtmosphereHandler.onMessage(PushAtmosphereHandler.java:87)
 at com.vaadin.server.communication.PushAtmosphereHandler.onRequest(PushAtmosphereHandler.java:77)
 at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:199)
 at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:107)
 at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:66)
 at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2075)
 at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:571)
 at org.atmosphere.websocket.DefaultWebSocketProcessor$3.run(DefaultWebSocketProcessor.java:333)
 at org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101)
 at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:328)
 at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSocketProcessor.java:425)
 at org.atmosphere.container.JSR356Endpoint$1.onMessage(JSR356Endpoint.java:214)
 at org.atmosphere.container.JSR356Endpoint$1.onMessage(JSR356Endpoint.java:211)
 at org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:401)
 at org.apache.tomcat.websocket.server.WsFrameServer.sendMessageText(WsFrameServer.java:119)
 at org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:502)
 at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:301)
 at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:133)
 at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:82)
 at org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:171)
 at org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:151)
 at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148)
 at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54)
 at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:59)
 at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1626)
 at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 at java.lang.Thread.run(Unknown Source)

AWI log shows the following:

2021-12-31 06:02:41,970 pool-37-thread-214     [ERROR] AUTOMIC:100/32964128/32964128 8770 0000000001029055 +785 [m.uc4.ecc.framework.core.context.Context] - Could not inject into com.uc4.ecc.framework.entrypoint.core.dialogs.changepassword.ChangePasswordPresenter@766a529e with injector Injector[bindings=[ProviderInstanceBinding[key=Key[type=com.google.inject.Injector, annotation=[none]], source=[unknown source], scope=Scopes.NO_SCOPE, provider=Provider<Injector>], ProviderInstanceBinding[key=Key[type=java.util.logging.Logger, annotation=[none]], source=[unknown source], scope=Scopes.NO_SCOPE, provider=Provider<Logger>]]]: 
2021-12-31 06:02:41,970 pool-37-thread-214     [ERROR] AUTOMIC:100/32964128/32964128 8770 0000000001029055 +785 [com.uc4.webui.common.errorhandling.Safe] - Error injecting method, java.lang.NullPointerException
2021-12-31 06:02:47,986 http-nio-8080-exec-3   [ERROR] AUTOMIC:100/32964128/32964128 8770 0000000001029055  [com.uc4.webui.common.errorhandling.Safe] -  null
java.lang.NullPointerException: null
 at com.uc4.ecc.framework.commons.validation.password.PasswordCriteriaValidator.checkLowercase(PasswordCriteriaValidator.java:121)
 at com.uc4.ecc.framework.commons.validation.password.PasswordCriteriaValidator.validateToString(PasswordCriteriaValidator.java:45)
 at com.uc4.ecc.framework.commons.validation.BaseFieldValidator.validateValue(BaseFieldValidator.java:87)
 at com.uc4.ecc.framework.commons.validation.BaseFieldValidator.validate(BaseFieldValidator.java:64)
 at com.uc4.ecc.framework.commons.validation.BaseFieldValidator.validate(BaseFieldValidator.java:13)
 at com.uc4.ecc.framework.commons.validation.ValidationUtils.validate(ValidationUtils.java:61)
 at com.uc4.ecc.framework.entrypoint.core.dialogs.changepassword.ChangePasswordView.validate(ChangePasswordView.java:150)
 at com.uc4.ecc.framework.entrypoint.core.dialogs.changepassword.ChangePasswordView.changePassword(ChangePasswordView.java:90)
 at com.uc4.ecc.framework.entrypoint.core.dialogs.changepassword.ChangePasswordView.lambda$buildDialog$110(ChangePasswordView.java:77)
 at com.uc4.ecc.framework.commons.dialogs.modal.ModalDialog.lambda$addButton$141(ModalDialog.java:380)
 at com.uc4.ecc.framework.commons.utils.componentfactories.ExtendedButton.lambda$bind$d56b6432$1(ExtendedButton.java:296)
 at sun.reflect.GeneratedMethodAccessor316.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
 at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
 at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
 at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1015)
 at com.vaadin.ui.Button.fireClick(Button.java:364)
 at com.vaadin.ui.Button.click(Button.java:353)
 at com.vaadin.ui.Button$ClickShortcut.handleAction(Button.java:471)
 at com.vaadin.event.ActionManager.handleAction(ActionManager.java:238)
 at com.vaadin.event.ConnectorActionManager.handleAction(ConnectorActionManager.java:77)
 at com.vaadin.event.ActionManager.handleAction(ActionManager.java:233)
 at com.vaadin.event.ActionManager.handleActions(ActionManager.java:216)
 at com.vaadin.ui.Panel.changeVariables(Panel.java:164)
 at com.vaadin.ui.Window.changeVariables(Window.java:202)
 at com.vaadin.server.communication.ServerRpcHandler.changeVariables(ServerRpcHandler.java:616)
 at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:463)
 at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:406)
 at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:273)
 at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:148)
 at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:240)
 at com.vaadin.server.communication.PushHandler.onMessage(PushHandler.java:513)
 at com.vaadin.server.communication.PushAtmosphereHandler.onMessage(PushAtmosphereHandler.java:87)
 at com.vaadin.server.communication.PushAtmosphereHandler.onRequest(PushAtmosphereHandler.java:77)
 at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:199)
 at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:107)
 at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:66)
 at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2075)
 at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:571)
 at org.atmosphere.websocket.DefaultWebSocketProcessor$3.run(DefaultWebSocketProcessor.java:333)
 at org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101)
 at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:328)
 at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSocketProcessor.java:425)
 at org.atmosphere.container.JSR356Endpoint$1.onMessage(JSR356Endpoint.java:214)
 at org.atmosphere.container.JSR356Endpoint$1.onMessage(JSR356Endpoint.java:211)
 at org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:401)
 at org.apache.tomcat.websocket.server.WsFrameServer.sendMessageText(WsFrameServer.java:119)
 at org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:502)
 at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:301)
 at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:133)
 at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:82)
 at org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:171)
 at org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:151)
 at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148)
 at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54)
 at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:59)
 at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1626)
 at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 at java.lang.Thread.run(Unknown Source)
2021-12-31 06:02:47,986 http-nio-8080-exec-3   [ERROR] AUTOMIC:100/32964128/32964128 8770 0000000001029055  [com.uc4.webui.common.errorhandling.Safe] -  null
java.lang.NullPointerException: null
 at com.uc4.ecc.framework.commons.validation.password.PasswordCriteriaValidator.checkLowercase(PasswordCriteriaValidator.java:121)
 at com.uc4.ecc.framework.commons.validation.password.PasswordCriteriaValidator.validateToString(PasswordCriteriaValidator.java:45)
 at com.uc4.ecc.framework.commons.validation.BaseFieldValidator.validateValue(BaseFieldValidator.java:87)
 at com.uc4.ecc.framework.commons.validation.BaseFieldValidator.validate(BaseFieldValidator.java:64)
 at com.uc4.ecc.framework.commons.validation.BaseFieldValidator.validate(BaseFieldValidator.java:13)
 at com.uc4.ecc.framework.commons.validation.ValidationUtils.validate(ValidationUtils.java:61)
 at com.uc4.ecc.framework.entrypoint.core.dialogs.changepassword.ChangePasswordView.validate(ChangePasswordView.java:150)
 at com.uc4.ecc.framework.entrypoint.core.dialogs.changepassword.ChangePasswordView.changePassword(ChangePasswordView.java:90)
 at com.uc4.ecc.framework.entrypoint.core.dialogs.changepassword.ChangePasswordView.lambda$buildDialog$110(ChangePasswordView.java:77)
 at com.uc4.ecc.framework.commons.dialogs.modal.ModalDialog.lambda$addButton$141(ModalDialog.java:380)
 at com.uc4.ecc.framework.commons.utils.componentfactories.ExtendedButton.lambda$bind$d56b6432$1(ExtendedButton.java:296)
 at sun.reflect.GeneratedMethodAccessor316.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
 at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:200)
 at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:163)
 at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1015)
 at com.vaadin.ui.Button.fireClick(Button.java:364)
 at com.vaadin.ui.Button.click(Button.java:353)
 at com.vaadin.ui.Button$ClickShortcut.handleAction(Button.java:471)
 at com.vaadin.event.ActionManager.handleAction(ActionManager.java:238)
 at com.vaadin.event.ConnectorActionManager.handleAction(ConnectorActionManager.java:77)
 at com.vaadin.event.ActionManager.handleAction(ActionManager.java:233)
 at com.vaadin.event.ActionManager.handleActions(ActionManager.java:216)
 at com.vaadin.ui.Panel.changeVariables(Panel.java:164)
 at com.vaadin.ui.Window.changeVariables(Window.java:202)
 at com.vaadin.server.communication.ServerRpcHandler.changeVariables(ServerRpcHandler.java:616)
 at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:463)
 at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:406)
 at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:273)
 at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:148)
 at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:240)
 at com.vaadin.server.communication.PushHandler.onMessage(PushHandler.java:513)
 at com.vaadin.server.communication.PushAtmosphereHandler.onMessage(PushAtmosphereHandler.java:87)
 at com.vaadin.server.communication.PushAtmosphereHandler.onRequest(PushAtmosphereHandler.java:77)
 at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:199)
 at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:107)
 at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:66)
 at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:2075)
 at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:571)
 at org.atmosphere.websocket.DefaultWebSocketProcessor$3.run(DefaultWebSocketProcessor.java:333)
 at org.atmosphere.util.VoidExecutorService.execute(VoidExecutorService.java:101)
 at org.atmosphere.websocket.DefaultWebSocketProcessor.dispatch(DefaultWebSocketProcessor.java:328)
 at org.atmosphere.websocket.DefaultWebSocketProcessor.invokeWebSocketProtocol(DefaultWebSocketProcessor.java:425)
 at org.atmosphere.container.JSR356Endpoint$1.onMessage(JSR356Endpoint.java:214)
 at org.atmosphere.container.JSR356Endpoint$1.onMessage(JSR356Endpoint.java:211)
 at org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:401)
 at org.apache.tomcat.websocket.server.WsFrameServer.sendMessageText(WsFrameServer.java:119)
 at org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:502)
 at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:301)
 at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:133)
 at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:82)
 at org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:171)
 at org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:151)
 at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148)
 at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54)
 at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:59)
 at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1626)
 at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 at java.lang.Thread.run(Unknown Source)

Note: This issue was originally also seen when a new local user was assigned to a user group and tries to change its password while PWD_FORBID_LOGIN was set to Y.  It was later found that all that was needed was PWD_FORBID_LOGIN set to Y

Environment

Release : 12.3.3 HF4

Component : AUTOMATION ENGINE

Cause

This issue is caused by a product defect

Resolution

Update to a fixed release:

AWI: 12.3.5
AWI: 21.0.0

Please note an update to the AWI will also require an update to Utilities, initialdata, and Automation Engine

Workaround available as below:
Remove PWD_FORBID_LOGIN from UC_CLIENT_SETTINGS variable on the client where the user is located.