From cd4bf1fc9fdb26496d211ce205042c797fbdd915 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 08 Apr 2009 10:03:27 +0000
Subject: [PATCH] Fix for issue 3686 (makeldif does not parse redirect to file based attribute)

---
 opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/TemplateFile.java |   26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/TemplateFile.java b/opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/TemplateFile.java
index 075f6b8..2de6f2d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/TemplateFile.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/makeldif/TemplateFile.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2009 Sun Microsystems, Inc.
  */
 package org.opends.server.tools.makeldif;
 import org.opends.messages.Message;
@@ -1358,9 +1358,25 @@
                                           true);
 
 
-    // First, find the position of the first non-blank character in the line.
+    // First, check whether the value is an URL value: <attrName>:< <url>
     int length = line.length();
     int pos    = colonPos + 1;
+    boolean valueIsURL = false;
+    boolean valueIsBase64 = false;
+    if (pos < length)
+    {
+      if (lowerLine.charAt(pos) == '<')
+      {
+        valueIsURL = true;
+        pos ++;
+      }
+      else if (lowerLine.charAt(pos) == ':')
+      {
+        valueIsBase64 = true;
+        pos ++;
+      }
+    }
+    //  Then, find the position of the first non-blank character in the line.
     while ((pos < length) && (lowerLine.charAt(pos) == ' '))
     {
       pos++;
@@ -1395,6 +1411,7 @@
 
     ArrayList<Tag> tagList = new ArrayList<Tag>();
     StringBuilder buffer = new StringBuilder();
+
     for ( ; pos < length; pos++)
     {
       char c = line.charAt(pos);
@@ -1409,7 +1426,7 @@
                 StaticTextTag t = new StaticTextTag();
                 String[] args = new String[] { buffer.toString() };
                 t.initializeForBranch(this, branch, args, lineNumber,
-                                      warnings);
+                    warnings);
                 tagList.add(t);
                 buffer = new StringBuilder();
               }
@@ -1488,7 +1505,8 @@
 
     Tag[] tagArray = new Tag[tagList.size()];
     tagList.toArray(tagArray);
-    return new TemplateLine(attributeType, lineNumber, tagArray);
+    return new TemplateLine(attributeType, lineNumber, tagArray, valueIsURL,
+        valueIsBase64);
   }
 
 

--
Gitblit v1.10.0