From 3d94e093e647c30331f5ad701e1251df46ffe5cc Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Fri, 27 Feb 2009 15:25:04 +0000
Subject: [PATCH] Fix for issue #3765 (Root for relative paths in export-ldif depends on the path where we started the server)

---
 opends/src/server/org/opends/server/tasks/ImportTask.java |   27 +++++++++++++++++++++++++--
 1 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/opends/src/server/org/opends/server/tasks/ImportTask.java b/opends/src/server/org/opends/server/tasks/ImportTask.java
index b7174c2..c8a9833 100644
--- a/opends/src/server/org/opends/server/tasks/ImportTask.java
+++ b/opends/src/server/org/opends/server/tasks/ImportTask.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2009 Sun Microsystems, Inc.
  */
 package org.opends.server.tasks;
 import org.opends.messages.Message;
@@ -283,10 +283,33 @@
     List<Attribute> attrList;
 
     attrList = taskEntry.getAttribute(typeLdifFile);
-    ldifFiles = TaskUtils.getMultiValueString(attrList);
+    ArrayList<String> ldifFilestmp = TaskUtils.getMultiValueString(attrList);
+    ldifFiles = new ArrayList<String>(ldifFilestmp.size());
+    for (String s : ldifFilestmp)
+    {
+      File f = new File (s);
+      if (!f.isAbsolute())
+      {
+        ldifFiles.add(new File(DirectoryServer.getInstanceRoot(), s)
+            .getAbsolutePath());
+      }
+      else
+      {
+        ldifFiles.add(s);
+      }
+    }
 
     attrList = taskEntry.getAttribute(typeTemplateFile);
     templateFile = TaskUtils.getSingleValueString(attrList);
+    if (templateFile != null)
+    {
+      File f = new File(templateFile);
+      if (!f.isAbsolute())
+      {
+        templateFile = new File(DirectoryServer.getInstanceRoot(), templateFile)
+            .getAbsolutePath();
+      }
+    }
 
     attrList = taskEntry.getAttribute(typeAppend);
     append = TaskUtils.getBoolean(attrList, false);

--
Gitblit v1.10.0