XML Parser not being closed with void return types causing memory leaks -------------------------------------------------------------------------
Key: TUSCANY-1677 URL: https://issues.apache.org/jira/browse/TUSCANY-1677 Project: Tuscany Issue Type: Bug Reporter: Lou Amodeo I am seeing a memory leak due to the XML Stream reader not being closed when void return types are used. I modified the Output2OutputTransformer to close() the stream when a void return is encountered. Here is snippit. I attached the source code.. if ((!sourceWrapped) && targetWrapped) { // Unwrapped --> Wrapped WrapperInfo wrapper = targetOp.getWrapper(); Object targetWrapper = targetWrapperHandler.create(wrapper.getOutputWrapperElement(), context); List<ElementInfo> childElements = wrapper.getOutputChildElements(); if (childElements.isEmpty()) { // void output if (targetWrapper instanceof OMElement) ((OMElement)targetWrapper).getXMLStreamReader().close(); return targetWrapper; } ElementInfo argElement = childElements.get(0); DataType<XMLType> argType = wrapper.getUnwrappedOutputType(); Object child = response; child = mediator.mediate(response, sourceType.getLogical(), argType, context.getMetadata()); targetWrapperHandler.setChild(targetWrapper, 0, argElement, child); return targetWrapper; } else if (sourceWrapped && (!targetWrapped)) { // Wrapped to Unwrapped Object sourceWrapper = response; List<ElementInfo> childElements = sourceOp.getWrapper().getOutputChildElements(); if (childElements.isEmpty()) { // The void output if (sourceWrapper instanceof OMElement) ((OMElement)sourceWrapper).getXMLStreamReader().close(); return null; } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]