lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Muir <rcm...@gmail.com>
Subject Re: IndexWriter.infoStream is final?
Date Sat, 26 Nov 2011 12:36:28 GMT
On Fri, Nov 25, 2011 at 11:50 PM, Shai Erera <serera@gmail.com> wrote:
>
> Does it mean that on trunk I cannot dynamically turn on/off debugging
> information? And why do 3x and trunk differ?
>

I changed this because its totally insane in 3.x.

Because its 'live settable' there is crazy half-working (i don't think
it really works) synchronization in various IndexWriter classes for
this. Each one had a setter and each one had its own message() and
other helper routines, and when you did set() on indexwriter it called
set() on all the other classes in a broken way.

When moving additional functionality to the codec (e.g. allowing codec
to merge stored fields), I wanted to pass the infostream so that
codecs could log if they want. But I was not going to add more broken
synchronization and duplicate code to achieve this, and I wasn't going
to add a setInfoStream() to all codec classes just for these reasons.

Additionally, the infostream functionality was completely untested. On
3.x if you turn on infostream you are running hundreds of lines of
totally untested code by jenkins.

Now in trunk we randomly use a NullInfoStream class in tests: it
doesn't print anything but ensures that all those string calculations
don't have errors in them (i found a few immediately upon changing
this).


-- 
lucidimagination.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message