[ 
https://issues.apache.org/jira/browse/COLLECTIONS-712?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philip Hodges updated COLLECTIONS-712:
--------------------------------------
    Description: 
commons-collections-3.2.2-src/src/java/org/apache/commons/collections/ExtendedProperties.java

/**
  * Save the properties to the given output stream.
  * ...
  * @throws IOException if an IO error occurs - no it does not.
  */
public synchronized void save(OutputStream output, String header) throws 
IOException {
...
PrintWriter theWrtr = new PrintWriter(output);
 ...
 // theWrter.flush();
 // missing: if (theWrtr.checkError()) throw new IOException();

Impact: caller cannot tell if the properties were completely saved, perhaps the 
disk filled up instead. Missing checkError is an antipattern for PrintWriter 
and PrintStream.

  was:
commons-collections-3.2.2-src/src/java/org/apache/commons/collections/ExtendedProperties.java

{{/**}}
{{ * Save the properties to the given output stream.}}
{{ * }}{{...}}
{{ * }}{{@throws IOException if an IO error occurs - no it does not.}}
{{ */}}
{{ public synchronized void save(OutputStream output, String header) throws 
IOException {}}
{{ ...}}
{{ PrintWriter theWrtr = new PrintWriter(output);}}
{{...}}
{{// theWrter.flush();}}
{{// missing: if (theWrtr.checkError()) throw new IOException();}}

Impact: caller cannot tell if the properties were completely saved, perhaps the 
disk filled up instead. Missing checkError is an antipattern for PrintWriter 
and PrintStream.


> ExtendedProperties.save swallows instead of throws IOException
> --------------------------------------------------------------
>
>                 Key: COLLECTIONS-712
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-712
>             Project: Commons Collections
>          Issue Type: Bug
>          Components: Properties
>    Affects Versions: 3.2.2
>            Reporter: Philip Hodges
>            Priority: Trivial
>
> commons-collections-3.2.2-src/src/java/org/apache/commons/collections/ExtendedProperties.java
> /**
>   * Save the properties to the given output stream.
>   * ...
>   * @throws IOException if an IO error occurs - no it does not.
>   */
> public synchronized void save(OutputStream output, String header) throws 
> IOException {
> ...
> PrintWriter theWrtr = new PrintWriter(output);
>  ...
>  // theWrter.flush();
>  // missing: if (theWrtr.checkError()) throw new IOException();
> Impact: caller cannot tell if the properties were completely saved, perhaps 
> the disk filled up instead. Missing checkError is an antipattern for 
> PrintWriter and PrintStream.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to