[ 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)