From 8e56a3541e4d0780a59cec88c6e8770565224180 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Tue, 18 Nov 2008 01:01:17 +0000
Subject: [PATCH] Fix for issue 3612 (Control Panel: in the "Java Settings" panel, the value for "Java Home" variable is not correct (missing "\" characters)
---
opends/src/server/org/opends/server/tools/JavaPropertiesTool.java | 141 +++++++++++++++++++++++++---------------------
1 files changed, 77 insertions(+), 64 deletions(-)
diff --git a/opends/src/server/org/opends/server/tools/JavaPropertiesTool.java b/opends/src/server/org/opends/server/tools/JavaPropertiesTool.java
index 5f3a5fd..967f205 100644
--- a/opends/src/server/org/opends/server/tools/JavaPropertiesTool.java
+++ b/opends/src/server/org/opends/server/tools/JavaPropertiesTool.java
@@ -258,70 +258,7 @@
}
try
{
- String line;
- // Parse the file manually since '\' in windows paths can generate issues.
- boolean slashInLastLine = false;
- String key = null;
- StringBuilder sbValue = null;
- while ((line = reader.readLine()) != null)
- {
- line = line.trim();
- if (!line.startsWith("#"))
- {
- if (!slashInLastLine)
- {
- key = null;
- sbValue = new StringBuilder();
- int index = line.indexOf('=');
- if (index > 0)
- {
- key = line.substring(0, index);
- if (key.indexOf(' ') != -1)
- {
- key = null;
- }
- }
- }
-
- // Consider the space: in windows the user might add a path ending
- // with '\'. With this approach we minimize the possibilities of
- // error.
- boolean hasSlash = line.endsWith(" \\");
-
- if (hasSlash)
- {
- line = line.substring(0, line.length() - 1);
- }
-
- String lineValue = null;
-
- if (slashInLastLine)
- {
- lineValue = line;
- }
- else if (key != null)
- {
- int index = line.indexOf('=');
- if ((index != -1) && ((index + 1) < line.length()))
- {
- lineValue = line.substring(index+1);
- }
- }
- if ((lineValue != null) && (lineValue.length() > 0))
- {
- if (sbValue == null)
- {
- sbValue = new StringBuilder();
- }
- sbValue.append(lineValue);
- }
- if (!hasSlash && (key != null) && (sbValue != null))
- {
- properties.put(key, sbValue.toString());
- }
- slashInLastLine = hasSlash;
- }
- }
+ updateProperties(reader, properties);
}
catch (IOException ioe)
{
@@ -429,6 +366,82 @@
return ErrorReturnCode.SUCCESSFUL.getReturnCode();
}
+ /**
+ * Reads the contents of the provided reader and updates the provided
+ * Properties object with it. This is required because '\' characters in
+ * windows paths generates problems.
+ * @param reader the buffered reader.
+ * @param properties the properties.
+ * @throws IOException if there is an error reading the buffered reader.
+ */
+ public static void updateProperties(
+ BufferedReader reader, Properties properties)
+ throws IOException
+ {
+ String line;
+ boolean slashInLastLine = false;
+ String key = null;
+ StringBuilder sbValue = null;
+ while ((line = reader.readLine()) != null)
+ {
+ line = line.trim();
+ if (!line.startsWith("#"))
+ {
+ if (!slashInLastLine)
+ {
+ key = null;
+ sbValue = new StringBuilder();
+ int index = line.indexOf('=');
+ if (index > 0)
+ {
+ key = line.substring(0, index);
+ if (key.indexOf(' ') != -1)
+ {
+ key = null;
+ }
+ }
+ }
+
+ // Consider the space: in windows the user might add a path ending
+ // with '\'. With this approach we minimize the possibilities of
+ // error.
+ boolean hasSlash = line.endsWith(" \\");
+
+ if (hasSlash)
+ {
+ line = line.substring(0, line.length() - 1);
+ }
+
+ String lineValue = null;
+
+ if (slashInLastLine)
+ {
+ lineValue = line;
+ }
+ else if (key != null)
+ {
+ int index = line.indexOf('=');
+ if ((index != -1) && ((index + 1) < line.length()))
+ {
+ lineValue = line.substring(index+1);
+ }
+ }
+ if ((lineValue != null) && (lineValue.length() > 0))
+ {
+ if (sbValue == null)
+ {
+ sbValue = new StringBuilder();
+ }
+ sbValue.append(lineValue);
+ }
+ if (!hasSlash && (key != null) && (sbValue != null))
+ {
+ properties.put(key, sbValue.toString());
+ }
+ slashInLastLine = hasSlash;
+ }
+ }
+ }
/**
* {@inheritDoc}
--
Gitblit v1.10.0