archiva-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brett Porter <br...@apache.org>
Subject Re: svn commit: r578266 - in /maven/archiva/trunk/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml: XMLReader.java XMLWriter.java
Date Fri, 21 Sep 2007 23:32:13 GMT
Joakim,

Are you sure about the second one? If the writer is passed in to the  
method, I would expect the caller to close the writer, not the method  
itself (I'm not sure whether the xmlwriter closes it's underlying  
writer or not, though, but think it's worth checking).

- Brett

On 22/09/2007, at 6:46 AM, joakime@apache.org wrote:

> Author: joakime
> Date: Fri Sep 21 13:46:15 2007
> New Revision: 578266
>
> URL: http://svn.apache.org/viewvc?rev=578266&view=rev
> Log:
> [MRM-243] 507 Insufficient Storage when deploying artifact with webdav
> Adding proper IO closures to opened XML files.
>
> Modified:
>     maven/archiva/trunk/archiva-base/archiva-xml-tools/src/main/ 
> java/org/apache/maven/archiva/xml/XMLReader.java
>     maven/archiva/trunk/archiva-base/archiva-xml-tools/src/main/ 
> java/org/apache/maven/archiva/xml/XMLWriter.java
>
> Modified: maven/archiva/trunk/archiva-base/archiva-xml-tools/src/ 
> main/java/org/apache/maven/archiva/xml/XMLReader.java
> URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/ 
> archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/ 
> XMLReader.java?rev=578266&r1=578265&r2=578266&view=diff
> ====================================================================== 
> ========
> --- maven/archiva/trunk/archiva-base/archiva-xml-tools/src/main/ 
> java/org/apache/maven/archiva/xml/XMLReader.java (original)
> +++ maven/archiva/trunk/archiva-base/archiva-xml-tools/src/main/ 
> java/org/apache/maven/archiva/xml/XMLReader.java Fri Sep 21  
> 13:46:15 2007
> @@ -19,6 +19,7 @@
>   * under the License.
>   */
>
> +import org.apache.commons.io.IOUtils;
>  import org.apache.commons.lang.StringUtils;
>  import org.dom4j.Attribute;
>  import org.dom4j.Document;
> @@ -56,7 +57,7 @@
>
>      private Document document;
>
> -    private Map namespaceMap = new HashMap();
> +    private Map<String, String> namespaceMap = new HashMap<String,  
> String>();
>
>      public XMLReader( String type, File file )
>          throws XMLException
> @@ -98,10 +99,12 @@
>          this.documentType = type;
>          this.xmlUrl = url;
>
> +        InputStream in = null;
>          SAXReader reader = new SAXReader();
> +
>          try
>          {
> -            InputStream in = url.openStream();
> +            in = url.openStream();
>              InputStreamReader inReader = new InputStreamReader 
> ( in, "UTF-8" );
>              LatinEntityResolutionReader latinReader = new  
> LatinEntityResolutionReader( inReader );
>              this.document = reader.read( latinReader );
> @@ -114,6 +117,10 @@
>          {
>              throw new XMLException( "Unable to open stream to " +  
> url + ": " + e.getMessage(), e );
>          }
> +        finally
> +        {
> +            IOUtils.closeQuietly( in );
> +        }
>
>          Element root = this.document.getRootElement();
>          if ( root == null )
> @@ -204,10 +211,10 @@
>
>          Node n;
>
> -        Iterator it = elem.elementIterator();
> +        Iterator<Node> it = elem.elementIterator();
>          while ( it.hasNext() )
>          {
> -            n = (Node) it.next();
> +            n = it.next();
>
>              switch ( n.getNodeType() )
>              {
> @@ -269,7 +276,7 @@
>          }
>      }
>
> -    public List getElementList( String xpathExpr )
> +    public List<Element> getElementList( String xpathExpr )
>          throws XMLException
>      {
>          XPath xpath = createXPath( xpathExpr );
> @@ -287,12 +294,12 @@
>
>          if ( evaluated instanceof List )
>          {
> -            return (List) evaluated;
> +            return (List<Element>) evaluated;
>          }
>          else if ( evaluated instanceof Node )
>          {
> -            List ret = new ArrayList();
> -            ret.add( evaluated );
> +            List<Element> ret = new ArrayList<Element>();
> +            ret.add( (Element) evaluated );
>              return ret;
>          }
>          else
> @@ -303,19 +310,19 @@
>          }
>      }
>
> -    public List getElementListText( String xpathExpr )
> +    public List<String> getElementListText( String xpathExpr )
>          throws XMLException
>      {
> -        List elemList = getElementList( xpathExpr );
> +        List<Element> elemList = getElementList( xpathExpr );
>          if ( elemList == null )
>          {
>              return null;
>          }
>
> -        List ret = new ArrayList();
> -        for ( Iterator iter = elemList.iterator(); iter.hasNext(); )
> +        List<String> ret = new ArrayList<String>();
> +        for ( Iterator<Element> iter = elemList.iterator();  
> iter.hasNext(); )
>          {
> -            Element listelem = (Element) iter.next();
> +            Element listelem = iter.next();
>              ret.add( listelem.getTextTrim() );
>          }
>          return ret;
>
> Modified: maven/archiva/trunk/archiva-base/archiva-xml-tools/src/ 
> main/java/org/apache/maven/archiva/xml/XMLWriter.java
> URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/ 
> archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/ 
> XMLWriter.java?rev=578266&r1=578265&r2=578266&view=diff
> ====================================================================== 
> ========
> --- maven/archiva/trunk/archiva-base/archiva-xml-tools/src/main/ 
> java/org/apache/maven/archiva/xml/XMLWriter.java (original)
> +++ maven/archiva/trunk/archiva-base/archiva-xml-tools/src/main/ 
> java/org/apache/maven/archiva/xml/XMLWriter.java Fri Sep 21  
> 13:46:15 2007
> @@ -36,16 +36,32 @@
>      public static void write( Document doc, Writer writer )
>          throws XMLException
>      {
> +        org.dom4j.io.XMLWriter xmlwriter = null;
> +
>          try
>          {
>              OutputFormat outputFormat =  
> OutputFormat.createPrettyPrint();
> -            org.dom4j.io.XMLWriter xmlwriter = new  
> org.dom4j.io.XMLWriter( writer, outputFormat );
> +            xmlwriter = new org.dom4j.io.XMLWriter( writer,  
> outputFormat );
>              xmlwriter.write( doc );
>              xmlwriter.flush();
>          }
>          catch ( IOException e )
>          {
>              throw new XMLException( "Unable to write xml contents  
> to writer: " + e.getMessage(), e );
> +        }
> +        finally
> +        {
> +            if( xmlwriter != null )
> +            {
> +                try
> +                {
> +                    xmlwriter.close();
> +                }
> +                catch ( IOException e )
> +                {
> +                    /* quietly ignore */
> +                }
> +            }
>          }
>      }
>  }
>

--
Brett Porter - brett@apache.org
Blog: http://www.devzuz.org/blogs/bporter/

Mime
View raw message