hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Rodionov (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (HBASE-16529) PathFilter accept implementations must be exception free
Date Tue, 30 Aug 2016 04:34:20 GMT

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

Vladimir Rodionov edited comment on HBASE-16529 at 8/30/16 4:33 AM:
--------------------------------------------------------------------

Quick code scan finds a lot of places, where this requirement does not hold. Usual pattern:
call to FileSystem, catch IOException, return default (usually) false. Bad, Bad, Bad. Not
allowed to swallow exceptions, should propagate them up.


was (Author: vrodionov):
Quick code scan finds a lot of places, where this requirement does not hold. Usual pattern,
call to FileSystem, catch IOException, return default (usually) false. Bad, Bad, Bad. Not
allowed to swallow exceptions, should propagate them up.

> PathFilter accept implementations must be exception free
> --------------------------------------------------------
>
>                 Key: HBASE-16529
>                 URL: https://issues.apache.org/jira/browse/HBASE-16529
>             Project: HBase
>          Issue Type: Umbrella
>            Reporter: Vladimir Rodionov
>
> As an example of a wrong PathFilter implementation:
> FSUtils.ReferenceFileFilter
> {code}
>     @Override
>     protected boolean accept(Path p, @CheckForNull Boolean isDir) {
>       if (!StoreFileInfo.isReference(p)) {
>         return false;
>       }
>       try {
>         // only files can be references.
>         return isFile(fs, isDir, p);
>       } catch (IOException ioe) {
>         // Maybe the file was moved or the fs was disconnected.
>         LOG.warn("Skipping file " + p +" due to IOException", ioe);
>         return false;
>       }
>     }
> {code}
> That is wrong. We can't say if path passes the filter or not if Exception is thrown.
The general rule: DO NOT USE ANY CALLS WHICH MAY THROW EXCEPTION INSIDE ACCEPT METHOD IMPLEMENTATION.
> See HBASE-16527.
> FSUtils contains several path filters for starter.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message