Direct link to fix
APAR status
Closed as program error.
Error description
Shoppers are trying to review an order in the storefront reach a generic error page. The logs indicate that there was a CommandException while additional traces show that the root cause is a ClassCastException. The problem occurs since the GetOrder service, while composing the response BOD will try to include payment data, if such data exists. While adding the protocol data into the response BOD, it assumes that all protocol data (PPCEXTDATA) is stored as type String, while it is possible to store this data in other java data types. The following is an example set of logs that show the error: [1/16/12 12:14:48:601 CST] 000000fb commands 1 com.ibm.commerce.order.facade.server.commands.AbstractComposeOrd erCmdImpl composeProcotocolData java.lang.ClassCastException: java.lang.Integer incompatible with java.lang.String [1/16/12 12:14:48:601 CST] 000000fb CommerceSrvr A com.ibm.commerce.order.facade.server.commands.ComposeOrderSummar yCmdImpl composeProcotocolData CMN0409E: The following error occurred during processing: "java.lang.Integer incompatible with java.lang.String". [1/16/12 12:14:48:601 CST] 000000fb commands < com.ibm.commerce.order.facade.server.commands.GetOrderCmdImpl performExpression() RETURN null [1/16/12 12:14:48:601 CST] 000000fb bod 1 com.ibm.commerce.foundation.server.command.bod.BusinessObjectDoc umentProcessor processBusinessObjectDocument(BusinessObjectDocumentType, String) catch throwable Current exception: Message: null Stack trace: com.ibm.websphere.command.CommandException at com.ibm.commerce.foundation.server.command.bod.BusinessObjectCom mandTargetImpl.executeCommand(BusinessObjectCommandTargetImpl.ja va:137) at com.ibm.ws.cache.command.CommandCache.executeCommand(CommandCach e.java:332) ... Caused by: com.ibm.commerce.exception.ECApplicationException: The following error occurred during processing: "java.lang.Integer incompatible with java.lang.String". at com.ibm.commerce.order.facade.server.commands.AbstractComposeOrd erCmdImpl.composePaymentInstruction(AbstractComposeOrderCmdImpl. java:2961) at com.ibm.commerce.order.facade.server.commands.AbstractComposeOrd erCmdImpl.composeOrderPaymentInfo(AbstractComposeOrderCmdImpl.ja va:2975) at com.ibm.commerce.order.facade.server.commands.AbstractComposeOrd erCmdImpl.composeOrder(AbstractComposeOrderCmdImpl.java:433) at com.ibm.commerce.order.facade.server.commands.ComposeOrderSummar yCmdImpl.composeOrderSummary(ComposeOrderSummaryCmdImpl.java:123 ) at com.ibm.commerce.order.facade.server.commands.ComposeOrderSummar yCmdImpl.execute(ComposeOrderSummaryCmdImpl.java:143) at com.ibm.commerce.order.facade.server.commands.GetOrderCmdImpl.pe rformExpression(GetOrderCmdImpl.java:124) at com.ibm.commerce.foundation.server.command.bod.AbstractGetBusine ssObjectDocumentCmdImpl.performExecute(AbstractGetBusinessObject DocumentCmdImpl.java:144) at com.ibm.commerce.foundation.server.command.bod.BusinessObjectCom mandTargetImpl.executeCommand(BusinessObjectCommandTargetImpl.ja va:112) ... 92 more
Local fix
This problem only occurs if the data type of the payment protocol data is a non-String type. Adjusting your payment plugin to only use the String type can prevent this problem.
Problem summary
USERS AFFECTED: Users who use a customized payment plugin which stores protocol data in a non-string type and who use the GetOrder service on orders which have such data stored against it. PROBLEM ABSTRACT: ClassCastException is thrown while executing a GetOrder service request where the payment protocol data is stored in a non-String type. BUSINESS IMPACT: The GetOrder service returns in error for any order that has this type of data associated to it. RECOMMENDATION:
Problem conclusion
The code was updated to be type sensitive and correctly handle the data based on the type it was defined to be as per the PPCEXTDATA.ATTRIBUTETYPE column. ------------------------------------------------------------- The latest available maintenance information can be obtained from the Recommended Fixes for WebSphere Commerce technote: http://www.ibm.com/support/docview.wss?rs=3046&uid=swg21261296
Temporary fix
Comments
APAR Information
APAR number
JR41685
Reported component name
3C COM PROF ED
Reported component ID
5724I4000
Reported release
700
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2012-01-17
Closed date
2012-02-10
Last modified date
2012-02-10
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
3C COM PROF ED
Fixed component ID
5724I4000
Applicable component levels
R700 PSY
UP
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSPK6A","label":"WebSphere Commerce Professional"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0","Line of Business":{"code":"LOB31","label":"WCE Watson Marketing and Commerce"}}]
Document Information
Modified date:
07 December 2021