[jboss-svn-commits] JBoss Common SVN: r1927 - trunk/src/main/org/jboss/util/xml
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Aug 10 09:33:23 EDT 2006
Author: thomas.diesler at jboss.com
Date: 2006-08-10 09:33:20 -0400 (Thu, 10 Aug 2006)
New Revision: 1927
Modified:
trunk/src/main/org/jboss/util/xml/DOMUtils.java
Log:
Fix DomUtils.parse(Reader)
Modified: trunk/src/main/org/jboss/util/xml/DOMUtils.java
===================================================================
--- trunk/src/main/org/jboss/util/xml/DOMUtils.java 2006-08-10 12:09:37 UTC (rev 1926)
+++ trunk/src/main/org/jboss/util/xml/DOMUtils.java 2006-08-10 13:33:20 UTC (rev 1927)
@@ -118,11 +118,28 @@
*/
public static Element parse(Reader xmlReader) throws IOException
{
- CharBuffer target = CharBuffer.allocate(1024);
- xmlReader.read(target);
- return parse (new ByteArrayInputStream (target.toString().getBytes()));
+ return DOMUtils.parse(transformReader(xmlReader));
}
+ /**
+ * Transform a Reader to an InputStream
+ * Background is that DocumentBuilder.parse() cannot take the Reader directly
+ */
+ private static InputStream transformReader(Reader reader) throws IOException
+ {
+ int capacity = 1024;
+ char[] charBuffer = new char[capacity];
+ StringBuffer strBuffer = new StringBuffer(capacity);
+
+ int len = reader.read(charBuffer, 0, capacity);
+ while (len > 0)
+ {
+ strBuffer.append(charBuffer, 0, len);
+ len = reader.read(charBuffer, 0, capacity);
+ }
+ return new ByteArrayInputStream(strBuffer.toString().getBytes());
+ }
+
/** Create an Element for a given name
*/
public static Element createElement(String localPart)
More information about the jboss-svn-commits
mailing list