From 08352a564de437de5531dfd06a35445fa13faa70 Mon Sep 17 00:00:00 2001 From: jihye kim Date: Fri, 4 Oct 2013 17:08:59 +0900 Subject: [PATCH] add to close resources routine Change-Id: Ia5bb08b11b4589138123b7343b067661d40bdea0 Signed-off-by: jihye kim --- .../manager/vms/helper/MonitoringEmulator.java | 51 +++++++++++++++++++--- .../emulator/manager/vms/helper/QemuImgProc.java | 26 +++++++++++ 2 files changed, 71 insertions(+), 6 deletions(-) diff --git a/common-project/src/org/tizen/emulator/manager/vms/helper/MonitoringEmulator.java b/common-project/src/org/tizen/emulator/manager/vms/helper/MonitoringEmulator.java index 6217982..28f8e8d 100644 --- a/common-project/src/org/tizen/emulator/manager/vms/helper/MonitoringEmulator.java +++ b/common-project/src/org/tizen/emulator/manager/vms/helper/MonitoringEmulator.java @@ -61,8 +61,8 @@ public class MonitoringEmulator extends Thread { this.count = count; } - private BufferedReader readerOut = null; - private BufferedReader readerError = null; +// private BufferedReader readerOut = null; +// private BufferedReader readerError = null; private StdOut stdOut = null; private StdOut stdErr = null; private boolean success = true; @@ -97,14 +97,16 @@ public class MonitoringEmulator extends Thread { InputStreamReader in1 = new InputStreamReader(process.getInputStream()); InputStreamReader in2 = new InputStreamReader(process.getErrorStream()); - readerOut = new BufferedReader(in1); - readerError = new BufferedReader(in2); + BufferedReader readerOut = new BufferedReader(in1); + BufferedReader readerError = new BufferedReader(in2); stdOut = new StdOut(readerOut, property.getName()); stdErr = new StdOut(readerError, property.getName()); - new Thread(stdOut).start(); - new Thread(stdErr).start(); + Thread t1 = new Thread(stdOut); + Thread t2 = new Thread(stdErr); + t1.start(); + t2.start(); for (int i = 0; i < count; i++) { try { @@ -154,6 +156,34 @@ public class MonitoringEmulator extends Thread { } CheckingRunningEmulator.removeEmulator(property.getName()); + + try { + t1.join(); + } catch (InterruptedException e1) { + EMLogger.getLogger().warning(e1.getMessage()); + } + try { + t2.join(); + } catch (InterruptedException e1) { + EMLogger.getLogger().warning(e1.getMessage()); + } + + // close + if (readerOut != null) { + try { + readerOut.close(); + } catch (IOException e) { + EMLogger.getLogger().warning(e.getMessage()); + } + } + if (readerError != null) { + try { + readerError.close(); + } catch (IOException e) { + EMLogger.getLogger().warning(e.getMessage()); + } + } + } public boolean isSuccess() { @@ -191,6 +221,7 @@ class StdOut implements Runnable { } } while (CheckingRunningEmulator.isContains(emName)); + if (error) { for (String s : list) { if (s != null && !s.isEmpty()) { @@ -198,6 +229,14 @@ class StdOut implements Runnable { } } } + + if (reader != null) { + try { + reader.close(); + } catch (IOException e) { + EMLogger.getLogger().warning(e.getMessage()); + } + } } private boolean error = false; diff --git a/common-project/src/org/tizen/emulator/manager/vms/helper/QemuImgProc.java b/common-project/src/org/tizen/emulator/manager/vms/helper/QemuImgProc.java index 3eda63b..76c30e5 100644 --- a/common-project/src/org/tizen/emulator/manager/vms/helper/QemuImgProc.java +++ b/common-project/src/org/tizen/emulator/manager/vms/helper/QemuImgProc.java @@ -76,6 +76,14 @@ public class QemuImgProc { isError = true; EMLogger.getLogger().log(Level.WARNING, "Failed check base image...(stderr of qemu-img)" + StringResources.NEW_LINE + e.getMessage()); + } finally { + if (error != null){ + try { + error.close(); + } catch (IOException e) { + EMLogger.getLogger().log(Level.WARNING, e.getMessage()); + } + } } } }).start(); @@ -109,6 +117,14 @@ public class QemuImgProc { EMLogger.getLogger().log(Level.WARNING, "Failed check base image...(stdout of qemu-img)" + StringResources.NEW_LINE + e.getMessage()); + } finally { + if (input != null) { + try { + input.close(); + } catch (IOException e) { + EMLogger.getLogger().log(Level.WARNING, e.getMessage()); + } + } } } }).start(); @@ -167,6 +183,16 @@ public class QemuImgProc { isError = true; EMLogger.getLogger().log(Level.WARNING, "Error while running 'qemu-img'(stderr)" + StringResources.NEW_LINE + e.getMessage()); + } finally { + if (error != null) { + if (error != null){ + try { + error.close(); + } catch (IOException e) { + EMLogger.getLogger().log(Level.WARNING, e.getMessage()); + } + } + } } } }).start(); -- 2.7.4