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

Tsuyoshi OZAWA updated HADOOP-11101:
------------------------------------
    Description: 
If IOException is happended, can be catched exception block.. 
But another excpetion is happended, can't be catched exception block.. also 
Stream object can't be closed..

{code}
        try {
          in = open(qSrc);
          EnumSet<CreateFlag> createFlag = overwrite ? EnumSet.of(
              CreateFlag.CREATE, CreateFlag.OVERWRITE) : 
                EnumSet.of(CreateFlag.CREATE);
          out = create(qDst, createFlag);
          IOUtils.copyBytes(in, out, conf, true);
        } catch (IOException e) {
          IOUtils.closeStream(out);
          IOUtils.closeStream(in);
          throw e;
        }
{code}

  was:
If IOException is happended, can be catched exception block.. 
But another excpetion is happended, can't be catched exception block.. also 
Stream object can't be closed..


        try {
          in = open(qSrc);
          EnumSet<CreateFlag> createFlag = overwrite ? EnumSet.of(
              CreateFlag.CREATE, CreateFlag.OVERWRITE) : 
                EnumSet.of(CreateFlag.CREATE);
          out = create(qDst, createFlag);
          IOUtils.copyBytes(in, out, conf, true);
        } catch (IOException e) {
          IOUtils.closeStream(out);
          IOUtils.closeStream(in);
          throw e;
        }


> How about inputstream close statement from catch block to finally block in 
> FileContext#copy() ?
> -----------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-11101
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11101
>             Project: Hadoop Common
>          Issue Type: Improvement
>    Affects Versions: 2.5.1
>            Reporter: skrho
>            Priority: Minor
>             Fix For: 2.6.0
>
>         Attachments: HADOOP-11101_001.patch, HADOOP-11101_002.patch, 
> HADOOP-11101_003.patch
>
>
> If IOException is happended, can be catched exception block.. 
> But another excpetion is happended, can't be catched exception block.. also 
> Stream object can't be closed..
> {code}
>         try {
>           in = open(qSrc);
>           EnumSet<CreateFlag> createFlag = overwrite ? EnumSet.of(
>               CreateFlag.CREATE, CreateFlag.OVERWRITE) : 
>                 EnumSet.of(CreateFlag.CREATE);
>           out = create(qDst, createFlag);
>           IOUtils.copyBytes(in, out, conf, true);
>         } catch (IOException e) {
>           IOUtils.closeStream(out);
>           IOUtils.closeStream(in);
>           throw e;
>         }
> {code}



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

Reply via email to