lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Miller <markrmil...@gmail.com>
Subject Re: ContentStreamUpdateRequest addFile fails to close Stream
Date Tue, 02 Feb 2010 13:37:31 GMT
Broken by design?

How about we just fix BinaryUpdateRequestHandler (and possibly
CommonsHttpSolrServer) to close the stream it gets?

Christoph Brill wrote:
> I worked around it using my own FileStream class. Its basically the same
> as the original one, except it does not create a new FileInputStream in
> getStream (which IMO is broken by design as noone ever closes this stream).
>
> public class FileStream extends ContentStreamBase {
>   private final java.io.FileInputStream file;
>
>   public FileStream(String name, Long size, String sourceInfo, final
> java.io.FileInputStream f) throws IOException {
>     this.file = f;
>     this.contentType = null;
>     name = name;
>     size = size;
>     sourceInfo = sourceInfo;
>   }
>
>   @Override
>   public Reader getReader() throws IOException {
>     final String charset = getCharsetFromContentType(this.contentType);
>     return charset == null ? new InputStreamReader(this.file)
>       : new InputStreamReader(this.file, charset);
>   }
>
>   public InputStream getStream() throws IOException {
>     return this.file;
>   }
> }
>
>
>
> You can use it like:
>
> FileInputStream f = null;
> try {
>   f = new FileInputStream(file);
>   FileStream fileInputStream = new FileStream(file.getName(),
>     file.length(), file.toURI().toString(), f);
>   up.addContentStream(fileInputStream);
>   // DO SOMETHING
> } finally {
>   if (f != null) {
>     f.close();
>   }
> }
>
>
>
> This isn't exactly beauty code but at least it works this way. Would be
> great if someone would come up with a better idea for solrj 1.5
>
> Regards,
>  Chris
>
>
> Am 02.02.2010 13:27, schrieb Christoph Brill:
>   
>> Hi list,
>>
>> I'm using ContentStreamUpdateRequest.addFile(File) to index a bunch of
>> documents. This works fine unless the stream created in addFile doesn't
>> seem to get closed. This causes issues because my process has to many
>> open files.
>>
>> It's a bug, right?
>>
>> Regards,
>>  Chris
>>     


-- 
- Mark

http://www.lucidimagination.com




Mime
View raw message