From 66962c445640f43cf0b1a0bfef5afc9f05e511ac Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Tue, 28 Apr 2009 15:14:27 +0000
Subject: [PATCH] Fix for issue 3943 (Inconsistent installation path across tools) Try to use File.getCanonicalPath to display the paths.  If this does not work use File.getAbsolutePath() as fall back.

---
 opends/src/server/org/opends/server/core/DirectoryServer.java                |   12 ++++++++++--
 opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java |    7 ++++---
 opends/src/server/org/opends/server/tasks/ExportTask.java                    |   11 +++++++++--
 opends/src/quicksetup/org/opends/quicksetup/util/Utils.java                  |    5 +++--
 opends/src/server/org/opends/server/tasks/ImportTask.java                    |   12 ++++++++++--
 opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java         |    6 ++++--
 6 files changed, 40 insertions(+), 13 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java b/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java
index 37b8d9a..8acb6ed 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ui/BackupListPanel.java
@@ -522,9 +522,10 @@
     if (!backupDirectoryInitialized &&
         (parentDirectory.getText().length() == 0))
     {
-      final String path = new File(desc.getInstancePath(),
-          org.opends.quicksetup.Installation.BACKUPS_PATH_RELATIVE).
-          getAbsolutePath();
+      final String path =
+        org.opends.quicksetup.util.Utils.getPath(
+            new File(desc.getInstancePath(),
+                org.opends.quicksetup.Installation.BACKUPS_PATH_RELATIVE));
       SwingUtilities.invokeLater(new Runnable()
       {
         public void run()
diff --git a/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java b/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
index 97c56ec..9c89429 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
@@ -2069,7 +2069,8 @@
             getFormattedSuccess(
                     INFO_SUMMARY_INSTALL_FINISHED_SUCCESSFULLY.get(
                             formatter.getFormattedText(
-                                    Message.raw(getInstancePath())),
+                                    Message.raw(
+                                        getPath(new File(getInstancePath())))),
                             INFO_GENERAL_SERVER_STOPPED.get(),
                             cmd)));
     hmSummary.put(InstallProgressStep.FINISHED_CANCELED,
@@ -2103,7 +2104,8 @@
             getFormattedSuccess(
                     INFO_SUMMARY_INSTALL_FINISHED_SUCCESSFULLY.get(
                             formatter.getFormattedText(
-                                    Message.raw(getInstancePath())),
+                                    Message.raw(
+                                        getPath(new File(getInstancePath())))),
                             status,
                             cmd)));
     hmSummary.put(InstallProgressStep.FINISHED_WITH_ERROR,
diff --git a/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java b/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java
index 63faa3b..1db3a4d 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java
@@ -249,9 +249,10 @@
   }
 
   /**
-   * Returns the absolute path for the given parentPath and relativePath.
+   * Returns the absolute path for the given file.  It tries to get the
+   * canonical file path.  If it fails it returns the string representation.
    * @param f File to get the path
-   * @return the absolute path for the given parentPath and relativePath.
+   * @return the absolute path for the given file.
    */
   public static String getPath(File f)
   {
diff --git a/opends/src/server/org/opends/server/core/DirectoryServer.java b/opends/src/server/org/opends/server/core/DirectoryServer.java
index cddf0d2..2c09046 100644
--- a/opends/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opends/src/server/org/opends/server/core/DirectoryServer.java
@@ -1213,8 +1213,16 @@
     // Perform the handler-specific initialization.
     try
     {
-      configHandler.initializeConfigHandler(configFile.getAbsolutePath(),
-                                            false);
+      String path;
+      try
+      {
+        path = configFile.getCanonicalPath();
+      }
+      catch (Exception ex)
+      {
+        path = configFile.getAbsolutePath();
+      }
+      configHandler.initializeConfigHandler(path, false);
     }
     catch (InitializationException ie)
     {
diff --git a/opends/src/server/org/opends/server/tasks/ExportTask.java b/opends/src/server/org/opends/server/tasks/ExportTask.java
index b96a75f..f27b2df 100644
--- a/opends/src/server/org/opends/server/tasks/ExportTask.java
+++ b/opends/src/server/org/opends/server/tasks/ExportTask.java
@@ -230,8 +230,15 @@
     File f = new File (ldifFile);
     if (! f.isAbsolute())
     {
-      ldifFile = new File(DirectoryServer.getInstanceRoot(), ldifFile)
-          .getAbsolutePath();
+      f = new File(DirectoryServer.getInstanceRoot(), ldifFile);
+      try
+      {
+        ldifFile = f.getCanonicalPath();
+      }
+      catch (Exception ex)
+      {
+        ldifFile = f.getAbsolutePath();
+      }
     }
 
     attrList = taskEntry.getAttribute(typeBackendID);
diff --git a/opends/src/server/org/opends/server/tasks/ImportTask.java b/opends/src/server/org/opends/server/tasks/ImportTask.java
index f2e6d83..ffe7490 100644
--- a/opends/src/server/org/opends/server/tasks/ImportTask.java
+++ b/opends/src/server/org/opends/server/tasks/ImportTask.java
@@ -290,8 +290,16 @@
       File f = new File (s);
       if (!f.isAbsolute())
       {
-        ldifFiles.add(new File(DirectoryServer.getInstanceRoot(), s)
-            .getAbsolutePath());
+        f = new File(DirectoryServer.getInstanceRoot(), s);
+        try
+        {
+          s = f.getCanonicalPath();
+        }
+        catch (Exception ex)
+        {
+          s = f.getAbsolutePath();
+        }
+        ldifFiles.add(s);
       }
       else
       {

--
Gitblit v1.10.0