I fixed the issue and the test case is passing now.

Thanks,
Raymond
--------------------------------------------------
From: "Simon Laws" <[email protected]>
Sent: Monday, April 27, 2009 5:00 AM
To: <[email protected]>; <[email protected]>
Subject: Re: [1.x] hang in BPEL itest with latest code

The underlying cause of the error is some holder code in
JavaImplementationInvoker.invoke()...

           // Holder pattern. Any payload parameters <T> which are
should be in holders are placed in Holder<T>.
           // Only check Holder for remotable interfaces
           if (imethod != null && op.getInterface().isRemotable()) {
               List<DataType> inputTypes = op.getInputType().getLogical();
               for (int i = 0, size = inputTypes.size(); i < size; i++) {
if (ParameterMode.IN != op.getParameterModes().get(i)) {
                       // Promote array params from [<T>] to [Holder<T>]
                       Object[] payloadArray = (Object[])payload;
                       for (int j = 0; payloadArray != null && j <
payloadArray.length; j++) {
                           Object item = payloadArray[j];
                           payloadArray[j] = new Holder(item);
                       }
                       argumentHolderCount++;
                   }
               }
           }

I don't think this code is actually wrong though. In the case of the
WSDL interfaces generated during the BPEL processing, and passed to a
local Java component with the message operation, the array of
parameter modes in the operation is empty. I assume WSDL operations
should accurately describe their parameter modes.

The secondary problem is that having found this error the BPEL
processing locks up.

Simon

Reply via email to