summaryrefslogtreecommitdiff
path: root/odk/source/com/sun/star/lib/loader/WinRegKey.java
diff options
context:
space:
mode:
Diffstat (limited to 'odk/source/com/sun/star/lib/loader/WinRegKey.java')
-rw-r--r--odk/source/com/sun/star/lib/loader/WinRegKey.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/odk/source/com/sun/star/lib/loader/WinRegKey.java b/odk/source/com/sun/star/lib/loader/WinRegKey.java
index 3276458fc6f6..597b506d9ca2 100644
--- a/odk/source/com/sun/star/lib/loader/WinRegKey.java
+++ b/odk/source/com/sun/star/lib/loader/WinRegKey.java
@@ -20,6 +20,7 @@
package com.sun.star.lib.loader;
import java.io.BufferedReader;
+import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.regex.Matcher;
@@ -40,13 +41,23 @@ final class WinRegKey {
m_keyName = keyName;
}
+ private static void close(BufferedReader c) {
+ if (c == null) return;
+ try {
+ c.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
/**
* Reads the default string value.
*/
public String getStringValue() throws WinRegKeyException {
+ BufferedReader r = null;
try {
Process p = Runtime.getRuntime().exec(new String[]{"reg", "QUERY", m_keyName});
- BufferedReader r = new BufferedReader(
+ r = new BufferedReader(
new InputStreamReader(p.getInputStream(), Charset.defaultCharset()));
String v = null;
Pattern pt = Pattern.compile("\\s+\\(Default\\)\\s+REG_SZ\\s+(.+)");
@@ -77,6 +88,9 @@ final class WinRegKey {
} catch (Exception e) {
throw new WinRegKeyException(e);
}
+ finally {
+ close(r);
+ }
}
}