You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/10/12 20:01:58 UTC

svn commit: r1397658 - in /cxf/branches/2.6.x-fixes: api/src/main/java/org/apache/cxf/configuration/jsse/ api/src/main/java/org/apache/cxf/configuration/spring/ api/src/main/java/org/apache/cxf/staxutils/ api/src/main/java/org/apache/cxf/wsdl/ rt/bindi...

Author: dkulp
Date: Fri Oct 12 18:01:57 2012
New Revision: 1397658

URL: http://svn.apache.org/viewvc?rev=1397658&view=rev
Log:
Merged revisions 1397657 via  git cherry-pick from
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1397657 | dkulp | 2012-10-12 13:59:30 -0400 (Fri, 12 Oct 2012) | 3 lines

  [CXF-4557] More updates to make sure the XMLStreamReader/Writers are closed
  Patch from Peng Zhang applied with very slight mods

........

Modified:
    cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/jsse/TLSClientParametersConfig.java
    cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
    cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/spring/JAXBBeanFactory.java
    cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
    cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/wsdl/EndpointReferenceUtils.java
    cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/wsdl/JAXBExtensionHelper.java
    cxf/branches/2.6.x-fixes/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocUtil.java
    cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java
    cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/ChannelIdParser.java
    cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/ChannelService.java
    cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/SoapTcpUtils.java
    cxf/branches/2.6.x-fixes/rt/databinding/aegis/src/main/generated/org/apache/cxf/aegis/util/jdom/StaxBuilder.java
    cxf/branches/2.6.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
    cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java
    cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/DataBindingProvider.java
    cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java
    cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/SourceProvider.java
    cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java
    cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java
    cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java
    cxf/branches/2.6.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/WSDLGetInterceptor.java
    cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/aegis/AegisElementProvider.java
    cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/json/JSONProvider.java
    cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/xmlbeans/XMLBeanStreamSerializer.java
    cxf/branches/2.6.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyAnnotationListener.java
    cxf/branches/2.6.x-fixes/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/Stax2DOM.java
    cxf/branches/2.6.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java

Modified: cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/jsse/TLSClientParametersConfig.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/jsse/TLSClientParametersConfig.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/jsse/TLSClientParametersConfig.java (original)
+++ cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/jsse/TLSClientParametersConfig.java Fri Oct 12 18:01:57 2012
@@ -155,6 +155,8 @@ public final class TLSClientParametersCo
             throw e;
         } catch (Exception e) {
             throw new RuntimeException(e);
+        } finally {
+            StaxUtils.close(data);
         }
     }
     

Modified: cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java (original)
+++ cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/spring/AbstractBeanDefinitionParser.java Fri Oct 12 18:01:57 2012
@@ -335,9 +335,10 @@ public abstract class AbstractBeanDefini
                                             String propertyName, 
                                             Class<?> c) {
         try {
+            XMLStreamWriter xmlWriter = null;
             try {
                 StringWriter writer = new StringWriter();
-                XMLStreamWriter xmlWriter = StaxUtils.createXMLStreamWriter(writer);
+                xmlWriter = StaxUtils.createXMLStreamWriter(writer);
                 StaxUtils.copy(data, xmlWriter);
                 xmlWriter.flush();
     
@@ -363,6 +364,8 @@ public abstract class AbstractBeanDefini
                 if (obj != null) {
                     bean.addPropertyValue(propertyName, obj);
                 }
+            } finally {
+                StaxUtils.close(xmlWriter);
             }
         } catch (JAXBException e) {
             throw new RuntimeException("Could not parse configuration.", e);
@@ -402,6 +405,8 @@ public abstract class AbstractBeanDefini
             xmlWriter.flush();
         } catch (XMLStreamException e) {
             throw new RuntimeException(e);
+        } finally {
+            StaxUtils.close(xmlWriter);
         }
 
         BeanDefinitionBuilder jaxbbean 
@@ -431,6 +436,8 @@ public abstract class AbstractBeanDefini
             throw e;
         } catch (Exception e) {
             throw new RuntimeException(e);
+        } finally {
+            StaxUtils.close(data);
         }
     }
     

Modified: cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/spring/JAXBBeanFactory.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/spring/JAXBBeanFactory.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/spring/JAXBBeanFactory.java (original)
+++ cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/configuration/spring/JAXBBeanFactory.java Fri Oct 12 18:01:57 2012
@@ -60,6 +60,8 @@ public final class JAXBBeanFactory {
             return obj;
         } catch (JAXBException e) {
             throw new RuntimeException(e);
+        } finally {
+            StaxUtils.close(data);
         }
     }
 

Modified: cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/staxutils/StaxUtils.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/staxutils/StaxUtils.java (original)
+++ cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/staxutils/StaxUtils.java Fri Oct 12 18:01:57 2012
@@ -458,6 +458,7 @@ public final class StaxUtils {
             } catch (XMLStreamException ex) {
                 //ignore
             }
+            StaxUtils.close(writer);
         }
     }
     public static void copy(Source source, XMLStreamWriter writer) throws XMLStreamException {
@@ -1576,19 +1577,29 @@ public final class StaxUtils {
 
     public static String toString(Document doc) throws XMLStreamException {
         StringWriter sw = new StringWriter(1024);
-        XMLStreamWriter writer = createXMLStreamWriter(sw);
-        copy(doc, writer);
-        writer.flush();
+        XMLStreamWriter writer = null;
+        try {
+            writer = createXMLStreamWriter(sw);
+            copy(doc, writer);
+            writer.flush();
+        } finally {
+            StaxUtils.close(writer);
+        }
         return sw.toString();
     }
     public static String toString(Element el) throws XMLStreamException {
         StringWriter sw = new StringWriter(1024);
-        XMLStreamWriter writer = createXMLStreamWriter(sw);
-        copy(el, writer);
-        writer.flush();
+        XMLStreamWriter writer = null;
+        try {
+            writer = createXMLStreamWriter(sw);
+            copy(el, writer);
+            writer.flush();
+        } finally {
+            StaxUtils.close(writer);
+        }        
         return sw.toString();
     }
-    
+
     public static void close(XMLStreamReader reader) {
         if (reader != null) {
             try {

Modified: cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/wsdl/EndpointReferenceUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/wsdl/EndpointReferenceUtils.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/wsdl/EndpointReferenceUtils.java (original)
+++ cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/wsdl/EndpointReferenceUtils.java Fri Oct 12 18:01:57 2012
@@ -639,6 +639,7 @@ public final class EndpointReferenceUtil
             Map<String, byte[]> schemaSourcesMap = new LinkedHashMap<String, byte[]>();
             Map<String, Source> schemaSourcesMap2 = new LinkedHashMap<String, Source>();
 
+            XMLStreamWriter writer = null;
             try {
                 for (SchemaInfo si : serviceInfo.getSchemas()) {
                     Element el = si.getElement();
@@ -655,7 +656,7 @@ public final class EndpointReferenceUtil
                     DOMSource ds = new DOMSource(el, baseURI);   
                     schemaSourcesMap2.put(si.getSystemId() + ":" + si.getNamespaceURI(), ds);
                     LoadingByteArrayOutputStream out = new LoadingByteArrayOutputStream();
-                    XMLStreamWriter writer = StaxUtils.createXMLStreamWriter(out);
+                    writer = StaxUtils.createXMLStreamWriter(out);
                     StaxUtils.copy(el, writer);
                     writer.flush();
                     schemaSourcesMap.put(si.getSystemId() + ":" + si.getNamespaceURI(), out.toByteArray());
@@ -712,6 +713,7 @@ public final class EndpointReferenceUtil
                         unsetReadonly(nd);
                     }
                 }
+                StaxUtils.close(writer);
             }
             serviceInfo.setProperty(Schema.class.getName(), schema);
         }

Modified: cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/wsdl/JAXBExtensionHelper.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/wsdl/JAXBExtensionHelper.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/wsdl/JAXBExtensionHelper.java (original)
+++ cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/wsdl/JAXBExtensionHelper.java Fri Oct 12 18:01:57 2012
@@ -277,6 +277,7 @@ public class JAXBExtensionHelper impleme
     public ExtensibilityElement unmarshall(@SuppressWarnings("rawtypes") Class parent, 
                                            QName qname, Element element, Definition wsdl,
                                            ExtensionRegistry registry) throws WSDLException {
+        XMLStreamReader reader = null;
         try {
             Unmarshaller u = getContext().createUnmarshaller();
         
@@ -284,7 +285,7 @@ public class JAXBExtensionHelper impleme
             if (namespace == null) {
                 o = u.unmarshal(element);
             } else {
-                XMLStreamReader reader = StaxUtils.createXMLStreamReader(element);
+                reader = StaxUtils.createXMLStreamReader(element);
                 reader = new MappingReaderDelegate(reader);
                 o = u.unmarshal(reader);
             }
@@ -302,6 +303,8 @@ public class JAXBExtensionHelper impleme
             throw new WSDLException(WSDLException.PARSER_ERROR,
                                     "Error reading element " + qname,
                                     ex);
+        } finally {
+            StaxUtils.close(reader);
         }
     }
     

Modified: cxf/branches/2.6.x-fixes/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocUtil.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocUtil.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocUtil.java (original)
+++ cxf/branches/2.6.x-fixes/rt/bindings/coloc/src/main/java/org/apache/cxf/binding/coloc/ColocUtil.java Fri Oct 12 18:01:57 2012
@@ -259,7 +259,14 @@ public final class ColocUtil {
         DataReader<XMLStreamReader> reader =
             message.getExchange().getService().getDataBinding().createReader(XMLStreamReader.class);
         MessagePartInfo mpi = getMessageInfo(message).getMessagePart(0);
-        Object wrappedObject = reader.read(mpi, StaxUtils.createXMLStreamReader(source));
+        XMLStreamReader streamReader = null;
+        Object wrappedObject = null;
+        try {
+            streamReader = StaxUtils.createXMLStreamReader(source);
+            wrappedObject = reader.read(mpi, streamReader);
+        } finally {
+            StaxUtils.close(streamReader);
+        }
         MessageContentsList parameters = new MessageContentsList();
         parameters.put(mpi, wrappedObject);
 

Modified: cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java (original)
+++ cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ReadHeadersInterceptor.java Fri Oct 12 18:01:57 2012
@@ -127,13 +127,14 @@ public class ReadHeadersInterceptor exte
             return;
         }
         XMLStreamReader xmlReader = message.getContent(XMLStreamReader.class);
-
+        boolean closeNeeded = false;
         if (xmlReader == null) {
             InputStream in = message.getContent(InputStream.class);
             if (in == null) {
                 throw new RuntimeException("Can't find input stream in message");
             }
             xmlReader = StaxUtils.createXMLStreamReader(in);
+            closeNeeded = true;
         }
 
         try {
@@ -240,6 +241,10 @@ public class ReadHeadersInterceptor exte
             }
         } catch (XMLStreamException e) {
             throw new SoapFault(new Message("XML_STREAM_EXC", LOG), e, message.getVersion().getSender());
+        } finally {
+            if (closeNeeded) {
+                StaxUtils.close(xmlReader);
+            }
         }
     }
 }

Modified: cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/ChannelIdParser.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/ChannelIdParser.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/ChannelIdParser.java (original)
+++ cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/ChannelIdParser.java Fri Oct 12 18:01:57 2012
@@ -58,6 +58,8 @@ public final class ChannelIdParser {
             }
         } catch (XMLStreamException e) {
             e.printStackTrace();
+        } finally {
+            StaxUtils.close(streamReader);
         }
         
         return 0;

Modified: cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/ChannelService.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/ChannelService.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/ChannelService.java (original)
+++ cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/ChannelService.java Fri Oct 12 18:01:57 2012
@@ -37,8 +37,9 @@ public final class ChannelService {
     }
     
     public static void service(IoSession session, SoapTcpMessage message) {
+        XMLStreamReader xmlReader = null;
         try {
-            XMLStreamReader xmlReader
+            xmlReader
                 = StaxUtils.createXMLStreamReader(message.getContentAsStream(), "UTF-8");
             while (xmlReader.hasNext()) {
                 xmlReader.next();
@@ -77,6 +78,8 @@ public final class ChannelService {
             }
         } catch (XMLStreamException e) {
             e.printStackTrace();
+        } finally {
+            StaxUtils.close(xmlReader);
         }
     }
     

Modified: cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/SoapTcpUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/SoapTcpUtils.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/SoapTcpUtils.java (original)
+++ cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/tcp/SoapTcpUtils.java Fri Oct 12 18:01:57 2012
@@ -168,6 +168,8 @@ public final class SoapTcpUtils {
                 }
             } catch (XMLStreamException e) {
                 e.printStackTrace();
+            } finally {
+                StaxUtils.close(xmlReader);
             }
         }
         return false;

Modified: cxf/branches/2.6.x-fixes/rt/databinding/aegis/src/main/generated/org/apache/cxf/aegis/util/jdom/StaxBuilder.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/databinding/aegis/src/main/generated/org/apache/cxf/aegis/util/jdom/StaxBuilder.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/databinding/aegis/src/main/generated/org/apache/cxf/aegis/util/jdom/StaxBuilder.java (original)
+++ cxf/branches/2.6.x-fixes/rt/databinding/aegis/src/main/generated/org/apache/cxf/aegis/util/jdom/StaxBuilder.java Fri Oct 12 18:01:57 2012
@@ -184,12 +184,24 @@ public class StaxBuilder {
 
     public Document build(InputStream is) throws XMLStreamException {
         isReadingMidStream = false;
-        return buildInternal(StaxUtils.createXMLStreamReader(is));
+        XMLStreamReader reader = null;
+        try {
+            reader = StaxUtils.createXMLStreamReader(is);
+            return buildInternal(reader);
+        } finally {
+            StaxUtils.close(reader);
+        }        
     }
 
     public Document build(Reader reader) throws XMLStreamException {
         isReadingMidStream = false;
-        return buildInternal(StaxUtils.createXMLStreamReader(reader));
+        XMLStreamReader streamReader = null;
+        try {
+            streamReader = StaxUtils.createXMLStreamReader(reader);
+            return buildInternal(streamReader);
+        } finally {
+            StaxUtils.close(streamReader);
+        }        
     }
     
     private Document buildInternal(XMLStreamReader r) throws XMLStreamException {

Modified: cxf/branches/2.6.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java (original)
+++ cxf/branches/2.6.x-fixes/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBEncoderDecoder.java Fri Oct 12 18:01:57 2012
@@ -400,6 +400,8 @@ public final class JAXBEncoderDecoder {
             writer.flush();
         } catch (Exception e) {
             throw new Fault(new Message("MARSHAL_ERROR", LOG, e.getMessage()), e);
+        } finally {
+            StaxUtils.close(writer);
         }
     }
 

Modified: cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java (original)
+++ cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSOutInterceptor.java Fri Oct 12 18:01:57 2012
@@ -349,9 +349,14 @@ public class JAXRSOutInterceptor extends
         if (writer instanceof CachingXmlEventWriter) {
             CachingXmlEventWriter cache = (CachingXmlEventWriter)writer;
             if (cache.getEvents().size() != 0) {
-                XMLStreamWriter origWriter = StaxUtils.createXMLStreamWriter(osOriginal);
-                for (XMLEvent event : cache.getEvents()) {
-                    StaxUtils.writeEvent(event, origWriter);
+                XMLStreamWriter origWriter = null;
+                try {
+                    origWriter = StaxUtils.createXMLStreamWriter(osOriginal);
+                    for (XMLEvent event : cache.getEvents()) {
+                        StaxUtils.writeEvent(event, origWriter);
+                    }
+                } finally {
+                    StaxUtils.close(origWriter);
                 }
             }
             m.setContent(XMLStreamWriter.class, null);

Modified: cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/DataBindingProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/DataBindingProvider.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/DataBindingProvider.java (original)
+++ cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/DataBindingProvider.java Fri Oct 12 18:01:57 2012
@@ -65,13 +65,16 @@ public class DataBindingProvider<T> impl
     public T readFrom(Class<T> clazz, Type genericType, Annotation[] annotations, MediaType type, 
                       MultivaluedMap<String, String> headers, InputStream is)
         throws IOException {
+        XMLStreamReader reader = null;
         try {
-            XMLStreamReader reader = createReader(clazz, genericType, is);
+            reader = createReader(clazz, genericType, is);
             DataReader<XMLStreamReader> dataReader = binding.createReader(XMLStreamReader.class);
             Object o = dataReader.read(null, reader, clazz);
             return o == null ? null : clazz.cast(o);
         } catch (Exception ex) {
             throw new WebApplicationException(ex);
+        } finally {
+            StaxUtils.close(reader);
         }
     }
 
@@ -94,11 +97,14 @@ public class DataBindingProvider<T> impl
     public void writeTo(T o, Class<?> clazz, Type genericType, Annotation[] annotations, 
                         MediaType type, MultivaluedMap<String, Object> headers, OutputStream os)
         throws IOException {
+        XMLStreamWriter writer = null;
         try {
-            XMLStreamWriter writer = createWriter(clazz, genericType, os);
+            writer = createWriter(clazz, genericType, os);
             writeToWriter(writer, o);
         } catch (Exception ex) {
             throw new WebApplicationException(ex);
+        } finally {
+            StaxUtils.close(writer);
         }
     }
     

Modified: cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java (original)
+++ cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java Fri Oct 12 18:01:57 2012
@@ -149,6 +149,7 @@ public class JAXBElementProvider<T> exte
             }
         }
         
+        XMLStreamReader reader = null;
         try {
             
             boolean isCollection = InjectionUtils.isSupportedCollectionOrArray(type);
@@ -161,7 +162,7 @@ public class JAXBElementProvider<T> exte
             if (JAXBElement.class.isAssignableFrom(type) 
                 || !isCollection && (unmarshalAsJaxbElement  
                 || jaxbElementClassMap != null && jaxbElementClassMap.containsKey(theType.getName()))) {
-                XMLStreamReader reader = getStreamReader(is, type, mt);
+                reader = getStreamReader(is, type, mt);
                 reader = TransformUtils.createNewReaderIfNeeded(reader, is);
                 if (JAXBElement.class.isAssignableFrom(type) && type == theType) {
                     response = unmarshaller.unmarshal(reader);
@@ -191,6 +192,8 @@ public class JAXBElementProvider<T> exte
         } catch (Exception e) {
             LOG.warning(getStackTrace(e));
             throw new WebApplicationException(e, Response.status(400).build());        
+        } finally {
+            StaxUtils.close(reader);
         }
         // unreachable
         return null;
@@ -200,7 +203,13 @@ public class JAXBElementProvider<T> exte
         throws JAXBException {
         XMLStreamReader reader = getStreamReader(is, type, mt);
         if (reader != null) {
-            return unmarshalFromReader(unmarshaller, reader, mt);
+            try {
+                return unmarshalFromReader(unmarshaller, reader, mt);
+            } catch (JAXBException e) {
+                throw e;
+            } finally {
+                StaxUtils.close(reader);
+            }
         }
         return unmarshalFromInputStream(unmarshaller, is, mt);
     }
@@ -237,15 +246,21 @@ public class JAXBElementProvider<T> exte
     protected Object unmarshalFromInputStream(Unmarshaller unmarshaller, InputStream is, MediaType mt) 
         throws JAXBException {
         // Try to create the read before unmarshalling the stream
-        if (is == null) {
-            Reader reader = getStreamHandlerFromCurrentMessage(Reader.class);
-            if (reader == null) {
-                LOG.severe("No InputStream, Reader, or XMStreamReader is available");
-                throw new WebApplicationException(500);
+        XMLStreamReader xmlReader = null;
+        try {
+            if (is == null) {
+                Reader reader = getStreamHandlerFromCurrentMessage(Reader.class);
+                if (reader == null) {
+                    LOG.severe("No InputStream, Reader, or XMStreamReader is available");
+                    throw new WebApplicationException(500);
+                }
+                xmlReader = StaxUtils.createXMLStreamReader(reader);
+            } else {
+                xmlReader = StaxUtils.createXMLStreamReader(is);
             }
-            return unmarshaller.unmarshal(StaxUtils.createXMLStreamReader(reader));
-        } else {
-            return unmarshaller.unmarshal(StaxUtils.createXMLStreamReader(is));
+            return unmarshaller.unmarshal(xmlReader);
+        } finally {
+            StaxUtils.close(xmlReader);
         }
     }
 

Modified: cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/SourceProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/SourceProvider.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/SourceProvider.java (original)
+++ cxf/branches/2.6.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/SourceProvider.java Fri Oct 12 18:01:57 2012
@@ -174,6 +174,7 @@ public class SourceProvider<T> extends A
             }
             try {
                 writer.flush();
+                writer.close();
             } catch (XMLStreamException e) {
                 //ignore
             }

Modified: cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java (original)
+++ cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/DispatchImpl.java Fri Oct 12 18:01:57 2012
@@ -345,14 +345,16 @@ public class DispatchImpl<T> implements 
             if (findDispatchOp && !payloadOPMap.isEmpty()) {
                 String payloadElementName = null;              
                 if (obj instanceof javax.xml.transform.Source) {
+                    XMLStreamReader reader = null;
                     try {
-                        XMLStreamReader reader = StaxUtils
-                            .createXMLStreamReader((javax.xml.transform.Source)obj);
+                        reader = StaxUtils.createXMLStreamReader((javax.xml.transform.Source)obj);
                         Document document = StaxUtils.read(reader);
                         createdSource = new StaxSource(StaxUtils.createXMLStreamReader(document));
                         payloadElementName = getPayloadElementName(document.getDocumentElement());
                     } catch (Exception e) {                        
                         // ignore, we are trying to get the operation name
+                    } finally {
+                        StaxUtils.close(reader);
                     }
                 }
                 if (obj instanceof SOAPMessage) {
@@ -478,6 +480,7 @@ public class DispatchImpl<T> implements 
         DataWriter<XMLStreamWriter> dbwriter = dataBinding.createWriter(XMLStreamWriter.class);
         StringWriter stringWriter = new StringWriter();
         XMLStreamWriter resultWriter = StaxUtils.createXMLStreamWriter(stringWriter);
+        DepthXMLStreamReader reader = null;
         try {
             dbwriter.write(object, resultWriter);
             resultWriter.flush();
@@ -485,7 +488,7 @@ public class DispatchImpl<T> implements 
                 ByteArrayInputStream binput = new ByteArrayInputStream(stringWriter.getBuffer().toString()
                     .getBytes());
                 XMLStreamReader xmlreader = StaxUtils.createXMLStreamReader(binput);
-                DepthXMLStreamReader reader = new DepthXMLStreamReader(xmlreader);
+                reader = new DepthXMLStreamReader(xmlreader);
 
                 StaxUtils.skipToStartOfElement(reader);
 
@@ -494,6 +497,9 @@ public class DispatchImpl<T> implements 
             }
         } catch (XMLStreamException e) {
             // ignore
+        } finally {
+            StaxUtils.close(reader);
+            StaxUtils.close(resultWriter);
         }
         return null;
     }

Modified: cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java (original)
+++ cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java Fri Oct 12 18:01:57 2012
@@ -243,13 +243,16 @@ public class SwAOutInterceptor extends A
             }
         } else {
             ByteArrayOutputStream bwriter = new ByteArrayOutputStream();
-            XMLStreamWriter writer = StaxUtils.createXMLStreamWriter(bwriter);
+            XMLStreamWriter writer = null;
             try {
+                writer = StaxUtils.createXMLStreamWriter(bwriter);
                 StaxUtils.copy(o, writer);
                 writer.flush();
                 ds = new ByteDataSource(bwriter.toByteArray(), ct);
             } catch (XMLStreamException e1) {
                 throw new Fault(e1);
+            } finally {
+                StaxUtils.close(writer);
             }
         }
         return ds;

Modified: cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java (original)
+++ cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/spi/ProviderImpl.java Fri Oct 12 18:01:57 2012
@@ -31,6 +31,7 @@ import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
 import javax.xml.namespace.QName;
 import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.stream.XMLStreamReader;
 import javax.xml.transform.Source;
 import javax.xml.transform.dom.DOMResult;
 import javax.xml.ws.Endpoint;
@@ -374,12 +375,16 @@ public class ProviderImpl extends javax.
     }
 
     public EndpointReference readEndpointReference(Source eprInfoset) {
+        XMLStreamReader reader = null;
         try {
             Unmarshaller unmarshaller = getJAXBContext().createUnmarshaller();
-            return (EndpointReference)unmarshaller.unmarshal(StaxUtils.createXMLStreamReader(eprInfoset));
+            reader = StaxUtils.createXMLStreamReader(eprInfoset);
+            return (EndpointReference)unmarshaller.unmarshal(reader);
         } catch (JAXBException e) {
             throw new WebServiceException(new Message("ERROR_UNMARSHAL_ENDPOINTREFERENCE", LOG).toString(),
                                           e);
+        } finally {
+            StaxUtils.close(reader);
         }
     }
 

Modified: cxf/branches/2.6.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/WSDLGetInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/WSDLGetInterceptor.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/WSDLGetInterceptor.java (original)
+++ cxf/branches/2.6.x-fixes/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/WSDLGetInterceptor.java Fri Oct 12 18:01:57 2012
@@ -78,6 +78,8 @@ public class WSDLGetInterceptor extends 
             throw new WSDLQueryException(new org.apache.cxf.common.i18n.Message("COULD_NOT_PROVIDE_WSDL",
                                                                                 LOG,
                                                                                 base), e);
+        } finally {
+            StaxUtils.close(writer);
         }
     }
 

Modified: cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/aegis/AegisElementProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/aegis/AegisElementProvider.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/aegis/AegisElementProvider.java (original)
+++ cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/aegis/AegisElementProvider.java Fri Oct 12 18:01:57 2012
@@ -64,11 +64,14 @@ public class AegisElementProvider<T> ext
         AegisType typeToRead = context.getTypeMapping().getType(genericType);
         
         AegisReader<XMLStreamReader> aegisReader = context.createXMLStreamReader();
+        XMLStreamReader xmlStreamReader = null;
         try {
-            XMLStreamReader xmlStreamReader = createStreamReader(typeToRead, is);
+            xmlStreamReader = createStreamReader(typeToRead, is);
             return type.cast(aegisReader.read(xmlStreamReader, typeToRead));
         } catch (Exception e) {
             throw new WebApplicationException(e);
+        } finally {
+            StaxUtils.close(xmlStreamReader);
         }
     }
 

Modified: cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/json/JSONProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/json/JSONProvider.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/json/JSONProvider.java (original)
+++ cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/json/JSONProvider.java Fri Oct 12 18:01:57 2012
@@ -202,11 +202,13 @@ public class JSONProvider<T> extends Abs
             }
         }
         
+        XMLStreamReader reader = null;
         try {
             InputStream realStream = getInputStream(type, genericType, is);
             if (Document.class.isAssignableFrom(type)) {
                 W3CDOMStreamWriter writer = new W3CDOMStreamWriter();
-                copyReaderToWriter(createReader(type, realStream, false), writer);
+                reader = createReader(type, realStream, false);
+                copyReaderToWriter(reader, writer);
                 return type.cast(writer.getDocument());
             }
             boolean isCollection = InjectionUtils.isSupportedCollectionOrArray(type);
@@ -248,6 +250,8 @@ public class JSONProvider<T> extends Abs
             throw e;
         } catch (Exception e) {
             throw new WebApplicationException(e, Response.status(400).build());
+        } finally {
+            StaxUtils.close(reader);
         }
         // unreachable
         return null;
@@ -341,11 +345,12 @@ public class JSONProvider<T> extends Abs
             }
             throw new IOException(sb.toString());
         }
+        XMLStreamWriter writer = null;
         try {
             
             String enc = HttpUtils.getSetEncoding(m, headers, "UTF-8");
             if (Document.class.isAssignableFrom(cls)) {
-                XMLStreamWriter writer = createWriter(obj, cls, genericType, enc, os, false);
+                writer = createWriter(obj, cls, genericType, enc, os, false);
                 copyReaderToWriter(StaxUtils.createXMLStreamReader((Document)obj), writer);
                 return;
             }
@@ -368,6 +373,8 @@ public class JSONProvider<T> extends Abs
             handleXMLStreamException(e, false);
         } catch (Exception e) {
             throw new WebApplicationException(e);
+        } finally {
+            StaxUtils.close(writer);
         }
     }
 

Modified: cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/xmlbeans/XMLBeanStreamSerializer.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/xmlbeans/XMLBeanStreamSerializer.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/xmlbeans/XMLBeanStreamSerializer.java (original)
+++ cxf/branches/2.6.x-fixes/rt/rs/extensions/providers/src/main/java/org/apache/cxf/jaxrs/provider/xmlbeans/XMLBeanStreamSerializer.java Fri Oct 12 18:01:57 2012
@@ -51,7 +51,7 @@ public class XMLBeanStreamSerializer {
     public void serialize(XmlObject xObj, XMLStreamWriter writer) throws IOException, XMLStreamException {
 
         File tmpFile = null;
-
+        XMLStreamReader rdr = null;
         try {
 
             // create tmp file
@@ -61,7 +61,7 @@ public class XMLBeanStreamSerializer {
             xObj.save(tmpFile);
 
             InputStream tmpIn = new FileInputStream(tmpFile);
-            XMLStreamReader rdr = StaxUtils.createXMLStreamReader(tmpIn);
+            rdr = StaxUtils.createXMLStreamReader(tmpIn);
 
             while (rdr.hasNext()) {
 
@@ -124,6 +124,7 @@ public class XMLBeanStreamSerializer {
 
                 tmpFile.delete();
             }
+            StaxUtils.close(rdr);
         }
     }
 }

Modified: cxf/branches/2.6.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyAnnotationListener.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyAnnotationListener.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyAnnotationListener.java (original)
+++ cxf/branches/2.6.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyAnnotationListener.java Fri Oct 12 18:01:57 2012
@@ -28,6 +28,7 @@ import java.util.ListIterator;
 
 import javax.wsdl.extensions.UnknownExtensibilityElement;
 import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
 
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
@@ -421,9 +422,10 @@ public class PolicyAnnotationListener im
         if (null == src) {
             return null;
         }
-        
+        XMLStreamReader reader = null;
         try {
-            Document doc = StaxUtils.read(StaxUtils.createXMLStreamReader(src));
+            reader = StaxUtils.createXMLStreamReader(src);
+            Document doc = StaxUtils.read(reader);
             uri = getPolicyId(doc.getDocumentElement());
             if (StringUtils.isEmpty(uri)) {
                 uri = defName; 
@@ -436,6 +438,8 @@ public class PolicyAnnotationListener im
             return doc.getDocumentElement();
         } catch (XMLStreamException e) {
             return null;
+        } finally {
+            StaxUtils.close(reader);
         }
     }
     

Modified: cxf/branches/2.6.x-fixes/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/Stax2DOM.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/Stax2DOM.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/Stax2DOM.java (original)
+++ cxf/branches/2.6.x-fixes/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/Stax2DOM.java Fri Oct 12 18:01:57 2012
@@ -56,13 +56,16 @@ public class Stax2DOM {
 
     public Document getDocument(URL url) throws ToolException {
         InputStream input = null;
+        XMLStreamReader reader = null;
         try {
             input = url.openStream();
             StreamSource src = new StreamSource(input, url.toExternalForm());
-            return StaxUtils.read(StaxUtils.createXMLStreamReader(src), true);
+            reader = StaxUtils.createXMLStreamReader(src);
+            return StaxUtils.read(reader, true);
         } catch (Exception e) {
             throw new ToolException(e);
         } finally {
+            StaxUtils.close(reader);
             if (input != null) {
                 try {
                     input.close();

Modified: cxf/branches/2.6.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java?rev=1397658&r1=1397657&r2=1397658&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java (original)
+++ cxf/branches/2.6.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/customization/CustomizationParser.java Fri Oct 12 18:01:57 2012
@@ -154,13 +154,15 @@ public final class CustomizationParser {
             return null;
         }
         
+        XMLStreamReader reader = null;
         try {
-            XMLStreamReader reader = StaxUtils.createXMLStreamReader(uri, ins);
+            reader = StaxUtils.createXMLStreamReader(uri, ins);
             doc = StaxUtils.read(reader, true);
         } catch (Exception e) {
             Message msg = new Message("CAN_NOT_READ_AS_ELEMENT", LOG, new Object[] {uri});
             throw new ToolException(msg, e);
         } finally {
+            StaxUtils.close(reader);
             try {
                 ins.close();
             } catch (IOException ex) {
@@ -478,14 +480,17 @@ public final class CustomizationParser {
     private void addBinding(String bindingFile) throws XMLStreamException {
 
         Element root = null;
+        XMLStreamReader xmlReader = null;
         try {
             URIResolver resolver = new URIResolver(bindingFile);
-            XMLStreamReader reader = StaxUtils.createXMLStreamReader(resolver.getURI().toString(), 
+            xmlReader = StaxUtils.createXMLStreamReader(resolver.getURI().toString(), 
                                                                      resolver.getInputStream());
-            root = StaxUtils.read(reader, true).getDocumentElement();
+            root = StaxUtils.read(xmlReader, true).getDocumentElement();
         } catch (Exception e1) {
             Message msg = new Message("CAN_NOT_READ_AS_ELEMENT", LOG, new Object[] {bindingFile});
             throw new ToolException(msg, e1);
+        } finally {
+            StaxUtils.close(xmlReader);
         }
         XMLStreamReader reader = StaxUtils.createXMLStreamReader(root);
         StaxUtils.toNextTag(reader);