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
