comparison src/org/tmatesoft/hg/internal/FileUtils.java @ 636:ffce73efa2c2

HgCommitCommand: save last commit message
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Thu, 06 Jun 2013 19:39:06 +0200
parents 507602cb4fb3
children 12a4f60ea972
comparison
equal deleted inserted replaced
635:4ec2d44e2bf3 636:ffce73efa2c2
75 fos = null; 75 fos = null;
76 fis.close(); 76 fis.close();
77 fis = null; 77 fis = null;
78 } catch (IOException ex) { 78 } catch (IOException ex) {
79 // not in finally because I don't want to loose exception from fos.close() 79 // not in finally because I don't want to loose exception from fos.close()
80 closeQuietly(fis); 80 closeQuietly(fis, from);
81 closeQuietly(fos); 81 closeQuietly(fos, to);
82 String m = String.format("Failed to copy %s to %s", from.getName(), to.getName()); 82 String m = String.format("Failed to copy %s to %s", from.getName(), to.getName());
83 throw new HgIOException(m, ex, from); 83 throw new HgIOException(m, ex, from);
84 } 84 }
85 /* Copy of cpython's 00changelog.d, 20Mb+ 85 /* Copy of cpython's 00changelog.d, 20Mb+
86 * Linux&Windows: 300-400 ms, 86 * Linux&Windows: 300-400 ms,
87 * Windows uncached run: 1.6 seconds 87 * Windows uncached run: 1.6 seconds
88 */ 88 */
89 } 89 }
90 90
91 public void closeQuietly(Closeable stream) { 91 public void closeQuietly(Closeable stream) {
92 closeQuietly(stream, null);
93 }
94
95 public void closeQuietly(Closeable stream, File f) {
92 if (stream != null) { 96 if (stream != null) {
93 try { 97 try {
94 stream.close(); 98 stream.close();
95 } catch (IOException ex) { 99 } catch (IOException ex) {
96 // ignore 100 // ignore
97 log.dump(getClass(), Severity.Warn, ex, "Exception while closing stream quietly"); 101 final String msg;
102 if (f == null) {
103 msg = "Exception while closing stream quietly";
104 } else {
105 msg = String.format("Failed to close %s", f);
106 }
107 log.dump(getClass(), Severity.Warn, ex, msg);
98 } 108 }
99 } 109 }
100 } 110 }
101 } 111 }