You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mahout.apache.org by "Lance Norskog (JIRA)" <ji...@apache.org> on 2011/08/17 05:20:27 UTC

[jira] [Commented] (MAHOUT-788) ClusterDumper is never flushing output stream

    [ https://issues.apache.org/jira/browse/MAHOUT-788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13086099#comment-13086099 ] 

Lance Norskog commented on MAHOUT-788:
--------------------------------------

A finally clause can throw exceptions in the middle.

{code}
finally {
    try { writer.flush(); } catch (Throwable e) {;}
    if (shouldClose) {
        Closeables.closeQuietly(writer);
    }
}
{code}

> ClusterDumper is never flushing output stream
> ---------------------------------------------
>
>                 Key: MAHOUT-788
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-788
>             Project: Mahout
>          Issue Type: Bug
>          Components: Clustering, Integration
>    Affects Versions: 0.6
>            Reporter: Jeff Hansen
>            Priority: Trivial
>             Fix For: 0.6
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> ClusterDumper utility never calls flush on the OutputStreamWriter.  As of issue https://issues.apache.org/jira/browse/MAHOUT-679, the output stream is never being closed when it defaults to System.out -- while that's a good thing, it would be nice to flush the stream before exiting the program.  As is, when I run cluster dumper with the -b (substring) option set to something like 50, the stream never gets big enough to overflow the default buffer on my machine, so I see no output.  Even when it does get big enough to overflow the buffer, I still miss the last cluster's summary.  When the output is written to a file, the close() method usually flushes the buffer by default, but it shouldn't hurt to call the flush method either way -- therefore I'd suggest adding in an unconditional call to writer.flush(); in the finally block just before conditionally closing the writer. (line 199 in the org.apache.mahout.utils.clustering.ClusterDumper.run(String[] args) method)
>     } finally {
>       writer.flush();
>       if (shouldClose) {
>         Closeables.closeQuietly(writer);
>       }
>     }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira