Revision: 161
          
http://mindtreeinsight.svn.sourceforge.net/mindtreeinsight/?rev=161&view=rev
Author:   bindul
Date:     2008-04-04 21:48:39 -0700 (Fri, 04 Apr 2008)

Log Message:
-----------
Bug#1932949 [Saving Insight preferences]: Error in parsing document. We were 
not waiting for an entire character stream before trying to parse the value of 
one of the 'enumerations'

Modified Paths:
--------------
    
insight/insight-ui/branches/insight-ui-1.5.0/src/main/java/com/mindtree/techworks/insight/preferences/xmlpersistence/XMLPreferenceDataReader.java

Modified: 
insight/insight-ui/branches/insight-ui-1.5.0/src/main/java/com/mindtree/techworks/insight/preferences/xmlpersistence/XMLPreferenceDataReader.java
===================================================================
--- 
insight/insight-ui/branches/insight-ui-1.5.0/src/main/java/com/mindtree/techworks/insight/preferences/xmlpersistence/XMLPreferenceDataReader.java
   2008-04-04 07:19:19 UTC (rev 160)
+++ 
insight/insight-ui/branches/insight-ui-1.5.0/src/main/java/com/mindtree/techworks/insight/preferences/xmlpersistence/XMLPreferenceDataReader.java
   2008-04-05 04:48:39 UTC (rev 161)
@@ -267,6 +267,11 @@
         * The  of the current PreferenceAttribute being read
         */
        private ArrayList currentPreferenceAttributeOptionList;
+       
+       /**
+        * The character buffer is used to hold the character data being parsed.
+        */
+       private StringBuffer characterBuffer;
 
        /**
         * Default constructor
@@ -275,6 +280,7 @@
 
                cache = XMLPreferenceDataCache.getInstance();
                preferenceStack = new Stack();
+               characterBuffer = new StringBuffer();
        }
 
        /**
@@ -284,6 +290,39 @@
        public void endElement (String uri, String localName, String qName)
                        throws SAXException {
 
+               // Set the value of the element
+               if (null != currentElementToReadDataFor && 
characterBuffer.length() > 0) {
+                       if (currentElementToReadDataFor
+                                       
.equals(XMLNAME_PREF_ATT_DEFAULT_VALUE)) {
+                               currentPreferenceAttributeDefaultValue = 
currentPreferenceAttributeDefaultValue + characterBuffer.toString();
+                       } else if (currentElementToReadDataFor
+                                       .equals(XMLNAME_PREF_ATT_VALUE)) {
+                               currentPreferenceAttributeValue = 
currentPreferenceAttributeValue + characterBuffer.toString();
+                       } else if (currentElementToReadDataFor
+                                       .equals(XMLNAME_PREF_ATT_TYPE)) {
+                               currentPreferenceAttributeType = 
PreferenceAttributeType
+                                               
.getPreferenceAttributeByName(characterBuffer.toString());
+                       } else if (currentElementToReadDataFor
+                                       .equals(XMLNAME_PREF_ATT_ENCRYPTED)) {
+                               isPreferenceAttributeValueEncrypted = 
TRUE.equals(characterBuffer.toString());
+                               if(isPreferenceAttributeValueEncrypted)
+                                       currentPreferenceAttributeValue = 
+                                               
Crypt.decryptHexString(currentPreferenceAttributeValue);
+                       } else if (currentElementToReadDataFor
+                                       .equals(XMLNAME_PREF_ATT_PERSISTANT)) {
+                               isCurrentPreferenceAttributePersistant = 
TRUE.equals(characterBuffer.toString());
+                       } else if (currentElementToReadDataFor
+                                       .equals(XMLNAME_PREF_ATT_USER_MOD)) {
+                               isCurrentPreferenceAttributeUserModifiable = 
TRUE.equals(characterBuffer.toString());
+                       } else if (currentElementToReadDataFor
+                                       .equals(XMLNAME_PREF_ATT_OPTION_VAL)
+                                       && null != 
currentPreferenceAttributeOptionList) {
+                               
currentPreferenceAttributeOptionList.add(characterBuffer.toString());
+                       }
+                       
+                       characterBuffer.setLength(0);
+               }
+               
                if (XMLNAME_PREFERENCE.equals(localName)) {
                        endPreference();
                } else if (XMLNAME_INSIGHT_PREFERENCE.equals(localName)) {
@@ -331,6 +370,9 @@
                } else {
                        System.out.println("START-" + uri + "_" + localName + 
"_" + qName);
                }
+               
+               // Clear the character buffer
+               characterBuffer.setLength(0);
        }
 
        /**
@@ -340,45 +382,10 @@
                        throws SAXException {
 
                if (null != currentElementToReadDataFor) {
-                       StringBuffer value = new StringBuffer(length);
-                       for (int i = start; i < start + length; i++ ) {
-                               value.append(ch[i]);
-                       }
-                       String stringValue = value.toString();
-
-                       if (currentElementToReadDataFor
-                                       
.equals(XMLNAME_PREF_ATT_DEFAULT_VALUE)) {
-                               currentPreferenceAttributeDefaultValue = 
currentPreferenceAttributeDefaultValue + stringValue;
-                       } else if (currentElementToReadDataFor
-                                       .equals(XMLNAME_PREF_ATT_VALUE)) {
-                               currentPreferenceAttributeValue = 
currentPreferenceAttributeValue + stringValue;
-                       } else if (currentElementToReadDataFor
-                                       .equals(XMLNAME_PREF_ATT_TYPE)) {
-                               currentPreferenceAttributeType = 
PreferenceAttributeType
-                                               
.getPreferenceAttributeByName(stringValue);
-                       } else if (currentElementToReadDataFor
-                                       .equals(XMLNAME_PREF_ATT_ENCRYPTED)) {
-                               isPreferenceAttributeValueEncrypted = 
TRUE.equals(stringValue);
-                               if(isPreferenceAttributeValueEncrypted)
-                                       currentPreferenceAttributeValue = 
-                                               
Crypt.decryptHexString(currentPreferenceAttributeValue);
-                       }
-                       else if (currentElementToReadDataFor
-                                       .equals(XMLNAME_PREF_ATT_PERSISTANT)) {
-                               isCurrentPreferenceAttributePersistant = 
TRUE.equals(stringValue);
-                       } else if (currentElementToReadDataFor
-                                       .equals(XMLNAME_PREF_ATT_USER_MOD)) {
-                               isCurrentPreferenceAttributeUserModifiable = 
TRUE.equals(stringValue);
-                       } else if (currentElementToReadDataFor
-                                       .equals(XMLNAME_PREF_ATT_OPTION_VAL)
-                                       && null != 
currentPreferenceAttributeOptionList) {
-                               
currentPreferenceAttributeOptionList.add(stringValue);
-                       }
+                       characterBuffer.append(ch, start, length);
                }
 
-       }
-       
-       
+       }       
 
        /**
         * Creates a Preference Object


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Register now and save $200. Hurry, offer ends at 11:59 p.m., 
Monday, April 7! Use priority code J8TLD2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
MindTreeInsight-commits mailing list
MindTreeInsight-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mindtreeinsight-commits

Reply via email to