I'll look into the mode for wsdl.

Sent from my iPod

On Apr 27, 2009, at 5:00 AM, Simon Laws <[email protected]> wrote:

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