Mercurial > hg > release > thermostat-0.6
changeset 20:51fb566e27dc
Close file descriptors when done with them
author | Omair Majid <omajid@redhat.com> |
---|---|
date | Tue, 13 Dec 2011 11:56:52 -0500 |
parents | cb8e7d5966f9 |
children | f495dd894e0c |
files | src/com/redhat/thermostat/backend/system/CpuStatBuilder.java src/com/redhat/thermostat/backend/system/DistributionIdentity.java src/com/redhat/thermostat/backend/system/HostInfoBuilder.java src/com/redhat/thermostat/backend/system/MemoryStatBuilder.java |
diffstat | 4 files changed, 42 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/com/redhat/thermostat/backend/system/CpuStatBuilder.java Tue Dec 13 11:56:12 2011 -0500 +++ b/src/com/redhat/thermostat/backend/system/CpuStatBuilder.java Tue Dec 13 11:56:52 2011 -0500 @@ -23,9 +23,9 @@ double load5 = CpuStat.INVALID_LOAD; double load10 = CpuStat.INVALID_LOAD; double load15 = CpuStat.INVALID_LOAD; - + BufferedReader reader = null; try { - BufferedReader reader = new BufferedReader(new FileReader(LOAD_FILE)); + reader = new BufferedReader(new FileReader(LOAD_FILE)); String[] loadAvgParts = reader.readLine().split(" +"); if (loadAvgParts.length >= 3) { load5 = Double.valueOf(loadAvgParts[0]); @@ -36,6 +36,14 @@ logger.log(Level.WARNING, "error extracting load from " + LOAD_FILE); } catch (IOException e) { logger.log(Level.WARNING, "unable to read " + LOAD_FILE); + } finally { + if (reader != null) { + try { + reader.close(); + } catch (IOException e) { + logger.log(Level.WARNING, "unable to close " + LOAD_FILE); + } + } } return new CpuStat(timestamp, load5, load10, load15);
--- a/src/com/redhat/thermostat/backend/system/DistributionIdentity.java Tue Dec 13 11:56:12 2011 -0500 +++ b/src/com/redhat/thermostat/backend/system/DistributionIdentity.java Tue Dec 13 11:56:52 2011 -0500 @@ -25,10 +25,11 @@ public DistributionIdentity() { String tempName = "Unknown Distribution"; String tempVersion = "Unknown"; + BufferedReader reader = null; try { Process lsbProc = Runtime.getRuntime().exec(new String[] { "lsb_release", "-a" }); InputStream progOutput = lsbProc.getInputStream(); - BufferedReader reader = new BufferedReader(new InputStreamReader(progOutput)); + reader = new BufferedReader(new InputStreamReader(progOutput)); String line; while ((line = reader.readLine()) != null) { int sepLocation = line.indexOf(":"); @@ -43,6 +44,14 @@ } } catch (IOException e) { logger.log(Level.WARNING, "unable to identify distribution"); + } finally { + if (reader != null) { + try { + reader.close(); + } catch (IOException e) { + logger.log(Level.WARNING, "unable to close a child's output stream"); + } + } } name = tempName; version = tempVersion;
--- a/src/com/redhat/thermostat/backend/system/HostInfoBuilder.java Tue Dec 13 11:56:12 2011 -0500 +++ b/src/com/redhat/thermostat/backend/system/HostInfoBuilder.java Tue Dec 13 11:56:52 2011 -0500 @@ -50,8 +50,9 @@ logger.log(Level.FINEST, "cpuCount: " + cpuCount); long totalMemory = -1; + BufferedReader reader = null; try { - BufferedReader reader = new BufferedReader(new FileReader("/proc/meminfo")); + reader = new BufferedReader(new FileReader(MEMINFO_FILE)); String[] memTotalParts = reader.readLine().split(" +"); long data = Long.valueOf(memTotalParts[1]); String units = memTotalParts[2]; @@ -59,7 +60,15 @@ totalMemory = data * Constants.KILOBYTES_TO_BYTES; } } catch (IOException e) { - logger.log(Level.WARNING, "unable to read /proc/meminfo"); + logger.log(Level.WARNING, "unable to read " + MEMINFO_FILE); + } finally { + if (reader != null) { + try { + reader.close(); + } catch (IOException e) { + logger.log(Level.WARNING, "unable to close " + MEMINFO_FILE); + } + } } logger.log(Level.FINEST, "totalMemory: " + totalMemory + " bytes");
--- a/src/com/redhat/thermostat/backend/system/MemoryStatBuilder.java Tue Dec 13 11:56:12 2011 -0500 +++ b/src/com/redhat/thermostat/backend/system/MemoryStatBuilder.java Tue Dec 13 11:56:52 2011 -0500 @@ -40,8 +40,9 @@ long buffers = UNAVAILABLE; long cached = UNAVAILABLE; long commitLimit = UNAVAILABLE; + BufferedReader reader = null; try { - BufferedReader reader = new BufferedReader(new FileReader(MEMINFO_FILE)); + reader = new BufferedReader(new FileReader(MEMINFO_FILE)); String line = null; while ((line = reader.readLine()) != null) { String[] parts = line.split(":"); @@ -68,6 +69,15 @@ } } catch (IOException e) { logger.log(Level.WARNING, "unable to read " + MEMINFO_FILE); + } finally { + if (reader != null) { + try { + reader.close(); + } catch (IOException e) { + logger.log(Level.WARNING, "unable to close " + MEMINFO_FILE); + + } + } } return new MemoryStat(timestamp, total, free, buffers, cached, swapTotal, swapFree, commitLimit); }