You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benedict (JIRA)" <ji...@apache.org> on 2019/08/01 09:37:00 UTC
[jira] [Comment Edited] (CASSANDRA-15225) FileUtils.close() does
not handle non-IOException
[ https://issues.apache.org/jira/browse/CASSANDRA-15225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16897920#comment-16897920 ]
Benedict edited comment on CASSANDRA-15225 at 8/1/19 9:36 AM:
--------------------------------------------------------------
{quote}2) Log statement has only one '{}'. I don't think it will print exception. I prefer caller to handle the logging part.
{quote}
This (the way [~Override] has it) is the correct way to print exceptions; otherwise only their {{toString()}} method is invoked.
{quote}1) Insteasd of modifying already thrown exception, better to create new exception and call _newException_.addSuppressed. When the caller calls _newException_.getSuppressed, accurate list exceptions are returned.
{quote}
I don't think it is correct to have add exceptions with {{addSuppressed}}.
It _is_ the case that often a new exception is created in any place exceptions are caught, so that the re-throwing method is captured in the trace, however you would always want a {{cause}} in preference to adding a member of {{getSuppressed}}.
However, I don't think this anyway always adds value. If I were personally writing it, I would likely have done it the way [~Override] has done. There's an alternative, which is to create a new exception whose {{cause}} is the first caught exception, and to {{addSuppressed}} any remaining exceptions to this new exception. But I think it's preferable to rethrow the original exception here, to avoid polluting the printed stack trace, and minimise the risk that "helpful" tools truncate some of this trace
[~Override]: LGTM, I will merge it alongside your other patch and some others I will be reviewing hopefully today or tomorrow - unless you want to make any changes in light of [~n.v.harikrishna]'s feedback?
was (Author: benedict):
{quote}2) Log statement has only one '{}'. I don't think it will print exception. I prefer caller to handle the logging part.
{quote}
This (the way [~Override] has it) is the correct way to print exceptions; otherwise only their {{toString()}} method is invoked.
{quote}1) Insteasd of modifying already thrown exception, better to create new exception and call _newException_.addSuppressed. When the caller calls _newException_.getSuppressed, accurate list exceptions are returned.
{quote}
I don't think it is correct to have add exceptions with {{addSuppressed}}.
It _is_ the case that often a new exception is created in any place exceptions are caught, so that the re-throwing method is captured in the trace, however you would always want a {{cause}} in preference to adding a member of {{getSuppressed}}.
However, I don't think this anyway always adds value. If I were personally writing it, I would likely have done it the way [~Override] has done. There's an alternative, which is to create a new exception whose {{cause}} is the first caught exception, and to {{addSuppressed}} any remaining exceptions to this new exception. But I think it's preferable to rethrow the original exception here, to avoid polluting the printed stack trace, and minimise the risk that "helpful" tools truncate some of this trace
[~Override]: LGTM, I will merge it alongside your other patch and some others I will be reviewing hopefully today or tomorrow.
> FileUtils.close() does not handle non-IOException
> -------------------------------------------------
>
> Key: CASSANDRA-15225
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15225
> Project: Cassandra
> Issue Type: Bug
> Components: Local/SSTable
> Reporter: Benedict
> Assignee: Liudmila Kornilova
> Priority: Normal
> Labels: pull-request-available
> Fix For: 3.0.x, 3.11.x, 4.0.x
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> This can lead to {{close}} not being invoked on remaining items
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org