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