You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@archiva.apache.org by Brett Porter <br...@apache.org> on 2007/10/09 17:11:08 UTC
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
Joakim?
On 22/09/2007, at 1:32 AM, Brett Porter wrote:
> 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/
--
Brett Porter - brett@apache.org
Blog: http://www.devzuz.org/blogs/bporter/
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
Posted by Joakim Erdfelt <jo...@erdfelt.com>.
The writer method doesn't close the stream anymore.
It was fixed about 10 minutes after that commit in revision 578279
- Joakim
Brett Porter wrote:
> Joakim?
>
> On 22/09/2007, at 1:32 AM, Brett Porter wrote:
>
>> 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/
>
> --
> Brett Porter - brett@apache.org
> Blog: http://www.devzuz.org/blogs/bporter/
>
--
- Joakim Erdfelt
joakim@erdfelt.com
Open Source Software (OSS) Developer