adri...@apache.org wrote:
Author: adrianc
Date: Sat Jan 23 05:38:09 2010
New Revision: 902341
URL: http://svn.apache.org/viewvc?rev=902341&view=rev
Log:
Small improvement to ClobToString converter.
Modified:
ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java
Modified:
ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java?rev=902341&r1=902340&r2=902341&view=diff
==============================================================================
---
ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java
(original)
+++
ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java
Sat Jan 23 05:38:09 2010
@@ -108,15 +108,13 @@
}
public String convert(Clob obj) throws ConversionException {
- StringBuilder strBuf = new StringBuilder();
- char[] inCharBuffer = new char[CHAR_BUFFER_SIZE];
- int charsRead = 0;
+ char[] charBuffer = null;
Reader clobReader = null;
try {
- clobReader = obj.getCharacterStream();
- while ((charsRead = clobReader.read(inCharBuffer, 0,
CHAR_BUFFER_SIZE)) > 0) {
- strBuf.append(inCharBuffer, 0, charsRead);
- }
+ int clobLength = (int) obj.length();
+ charBuffer = new char[clobLength];
+ clobReader = obj.getCharacterStream();
+ clobReader.read(charBuffer, 0, clobLength);
} catch (Exception e) {
throw new ConversionException(e);
}
@@ -127,7 +125,7 @@
} catch (IOException e) {}
}
}
- return strBuf.toString();
+ return new String(charBuffer);
}
}
Adrian, there is a problem with this improvement:
the following line
clobReader.read(charBuffer, 0, clobLength);
can't read more than 8192 chars when used with derby database (I didn't check
with other databases).
The bug appeared when I tried to read big xml file stored in ElectronicText
entity and got the xml truncated.
Also I think this is the cause for
https://issues.apache.org/jira/browse/OFBIZ-3529
Bilgin