cancel
Showing results for 
Search instead for 
Did you mean: 

nullpointer on com.sap.tc.webdynpro.progmodel.controller.MessageManager

Former Member
0 Kudos

Dear all,

i have two web dynpro components, say A and B.

A is using component B.

When i push a close button in B, i do the following things:

1. wdComponentAPI.getMessageManager().reportWarning("Some warning!!!");

2. wdThis.wdGetICLRequestDetailsController().leaveRequestDetails();

This leaveRequestDetails() fires a plug (standard) to leave back to my component A and component A deletets the componentUsage when needed... ( if(hasActiveComponent()) )

Component B has a view with an inputfield for an amount (bigdecimal). When this has valid input and i push the button and execute 1. and 2. everything works fine and i see the warning on the view of my comp. A.

When i put invalid input in the amount field ( for example some characters) and i push the button, i see an error message on my view in comp. B. (automatic validation)

When i correct the input and push the submit button again while the previous error message is still visible on the screen (so there's no event trigerred since the automatic validation), i get the following nullpointer exception on calling the deleteComponent method in component A:

java.lang.NullPointerException

+ at com.sap.tc.webdynpro.progmodel.controller.MessageManager.setAttributeValidbyContext(MessageManager.java:656)+

+ at com.sap.tc.webdynpro.progmodel.context.NodeElement.clearPendingInput(NodeElement.java:297)+

+ at com.sap.tc.webdynpro.progmodel.context.NodeElement.exit(NodeElement.java:132)+

+ at com.sap.tc.webdynpro.progmodel.context.Node$ElementList.exit(Node.java:1859)+

+ at com.sap.tc.webdynpro.progmodel.context.Node.clearElements(Node.java:1560)+

+ at com.sap.tc.webdynpro.progmodel.context.Node.forgetDataNode(Node.java:1733)+

+ at com.sap.tc.webdynpro.progmodel.context.Node.exit(Node.java:295)+

+ at com.sap.tc.webdynpro.progmodel.context.Node.exit(Node.java:306)+

+ at com.sap.tc.webdynpro.progmodel.context.Context.exit(Context.java:53)+

+ at com.sap.tc.webdynpro.progmodel.controller.Controller.exit(Controller.java:161)+

+ at com.sap.tc.webdynpro.progmodel.view.View.exitController(View.java:403)+

+ at com.sap.tc.webdynpro.progmodel.view.View.exitController(View.java:435)+

+ at com.sap.tc.webdynpro.progmodel.controller.Controller.exit(Controller.java:154)+

+ at com.sap.tc.webdynpro.progmodel.view.ViewManager.exit(ViewManager.java:125)+

+ at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.exit(ClientComponent.java:211)+

+ at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.deleteComponent(ClientComponent.java:195)+

+ at com.sap.tc.webdynpro.progmodel.components.ComponentUsage.deleteComponent(ComponentUsage.java:199)+

When i do the same again, but without reporting the warning before leaving comp B, i don't get the nullpointer exception and can continue interacting on my view in component A.

Can anyone tell me what's the cause for this nullpointer? is it a bug?

Kind regards.

J.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

The following is a working solution for me:

MessageManager mManager = (MessageManager)wdComponentAPI.getMessageManager();

mManager.reset();

I have put these lines right before i call the deleteComponent() method in my web dynpro component A.