cancel
Showing results for 
Search instead for 
Did you mean: 

Changing the file name dynamicallly in file Adapter - NullPointerException

Former Member
0 Kudos

Hi, I want to change the file name directly from Java Mapping in the file adapter for this i have written this code:

[code]

DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);

DynamicConfigurationKey key = DynamicConfigurationKey.create("http:""/""/"+"sap.com/xi/XI/System/File","FileName");

String newFileName = CCC'_'NNN'_'NOMCIA'_'DATE;

conf.put(key, newFileName);

return newFileName;[/code]

Where CCC, NNN, NOMCIA and DATE are input of the user-defined function.

but it gives a null pointer exception:

[code]16:44:53 Start of test

Runtime exception during processing target field mapping /ns0:MT_HSBCAltasTrabajadores_TEST/row/separador7. The message is: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._MM_JDBC_2_HSBCAltasTrabajadores_TEST_ method FileName$[123, James, Gates, Spectory, com.sap.aii.mappingtool.tf3.rt.Context@247d247d]

com.sap.aii.mappingtool.tf3.MessageMappingException: Runtime exception during processing target field mapping /ns0:MT_HSBCAltasTrabajadores_TEST/row/separador7. The message is: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._MM_JDBC_2_HSBCAltasTrabajadores_TEST_ method FileName$[123, James, Gates, Spectory, com.sap.aii.mappingtool.tf3.rt.Context@247d247d]

at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:347)

at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309)

at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309)

at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398)

at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141)

at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102)

at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431)

at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169)

at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52)

at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:301)

at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146)

at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)

at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)

at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(AccessController.java:215)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

Root Cause:

com.sap.aii.utilxi.misc.api.BaseRuntimeException: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._MM_JDBC_2_HSBCAltasTrabajadores_TEST_ method FileName$[123, James, Gates, Spectory, com.sap.aii.mappingtool.tf3.rt.Context@247d247d]

at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:56)

at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:291)

at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309)

at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309)

at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398)

at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141)

at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102)

at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431)

at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169)

at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52)

at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:301)

at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146)

at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)

at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)

at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(AccessController.java:215)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

Root Cause:

java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)

at java.lang.reflect.Method.invoke(Method.java:391)

at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:47)

at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:291)

at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309)

at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309)

at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398)

at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141)

at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102)

at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431)

at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169)

at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52)

at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:301)

at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146)

at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)

at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)

at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(AccessController.java:215)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

Caused by: java.lang.NullPointerException

at com.sap.xi.tf._MM_JDBC_2_HSBCAltasTrabajadores_TEST_.FileName$(_MM_JDBC_2_HSBCAltasTrabajadores_TEST_.java:564)

... 26 more

RuntimeException in Message-Mapping transformation: Runtime exception during processing target field mapping /ns0:MT_HSBCAltasTrabajadores_TEST/row/separador7. The message is: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._MM_JDBC_2_HSBCAltasTrabajadores_TEST_ method FileName$[123, James, Gates, Spectory, com.sap.aii.mappingtool.tf3.rt.Context@247d247d]

16:44:53 End of test[/code]

Regards,

Luis Diego

Accepted Solutions (0)

Answers (1)

Answers (1)

henrique_pinto
Active Contributor
0 Kudos

Hey Luis,

the container object only exists in message mapping runtime.

Thus you're getting a null pointer exception there.

For java mappings, remember that you have a .setParameter() method (which is necessary from definition of StreamTransformation interface),

which sets the private variable param with the transformation parameters. In your .execute() method, just use it like this:

...
DynamicConfiguration conf = param.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
...

Regards,

Henrique.