Regunath Balasubramanian wrote:
Hi,
I chose to use Derby as an embedded DB to store text parsed/stripped from web pages, MS Office files and PDF documents while implementing an indexing and search solution. I need the parsed text of the document to enable search term highlighting to produce an effective summary of search hits. The natural choice was to use the CLOB data type. I store the contents using PreparedStatement.setCharacterStream(column, reader) where reader is a java.io.StringReader constructed from the java.lang.String instance representing the entire parsed contents. I then read the contents out using ResultSet.getClob(column).getCharacterStream(). This works fine during write always but fails for a few during the read. What surprises me is the fact that I read and write using the Derby classes and therfore naturally expect that they work. The error is in the of the fillBuffer() method of the UTF8Reader class. It throws a UTFDataFormatException.

Hello Regu,

Could you please tell us in which version(s) of Derby you are seeing this problem?


Also, if you have a repro application that can be used to demonstrate the problem, it would be great :) It would be very handy to have the data that causes the UTFDataFormatException to be thrown.



Thanks,
--
Kristian

I made a few frustating attempts at trying to get it work - I tried constructing the parsed string using different encodings (UTF-8, ISO-8859-1) at the time of write, tried to read it as a binary stream - failed with a nice exception stating that I was trying to read a CLOB as binary, ascii stream - failed with the same data format exception. Finally I decided to write the contents as a BLOB instead. The bytes for writing were constructed using String.getBytes(). I read the contents as Blob.getBytes() and then construct the String using the new String(byte[]). This works! I wonder why the UTF8 reader of Derby failed? I have the above mentioned workaround but would like to know if there is an alternative. Cheers!
Regu


------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------
Disclaimer
-----------------------------------------------------------------------------------------------------------------------------

"This message(including attachment if any)is confidential and may be 
privileged.Before opening attachments please check them
for viruses and defects.MindTree Consulting Private Limited (MindTree)will not 
be responsible for any viruses or defects or
any forwarded attachments emanating either from within MindTree or outside.If you 
have received this message by mistake please notify the sender by return  e-mail and 
delete this message from your system. Any unauthorized use or dissemination of this 
message in whole or in part is strictly prohibited.  Please note that e-mails are 
susceptible to change and MindTree shall not be liable for any improper, untimely or 
incomplete transmission."

-----------------------------------------------------------------------------------------------------------------------------

Reply via email to