lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler" <>
Subject RE: [VOTE] Lucene/Solr 4.3 RC1
Date Fri, 19 Apr 2013 12:56:24 GMT
I don’t overreact. And please note: I was also involved in this issue.


The break is: You have a factory as a Solr customer that worked in 4.2. The problem with the
java language is the fact that you cannot enforce specific ctors in subclasses, so you simply
have to do this by yourself. Unfortunately this is also not even fully documented (we have
nothing that mentions this in the base class, like: “every XxxFactory needs at least one
constructor taking Map<String,String>, so Lucene’s SPI framework can load it”).
The compiler does not enforce it. You will find the bug only if you put your own factory into
solr’s lib folder and then you get MethodNotFoundException on startup.


I just said: We should mention this change if we respin, nothing more! And it is a break of
some kind (because a method signature changed, in this case a required ctor signature). I
just want to have one sentence in the documentation of the factories and another backwards
break entry, maybe merged with the TokenizerFactory (needing AttributeSource) one.





Uwe Schindler

H.-H.-Meier-Allee 63, D-28213 Bremen




From: Robert Muir [] 
Sent: Friday, April 19, 2013 2:45 PM
Subject: Re: [VOTE] Lucene/Solr 4.3 RC1



On Fri, Apr 19, 2013 at 8:25 AM, Uwe Schindler <> wrote:


I am still reviewing. I have one note about the changes.txt where we miss a backwards break:

* made the AnalysisFactories require to
have a non-default ctor, otherwise a MethodNotFoundException is thrown on initializing the
SPI. The new constructor needs to have Map<String,String> parameters containing the
factory params (e.g. from schema.xml). This change affects all users that wrote own factories
for their own analysis components, so this should really be mentioned in the Lucene changelog
(maybe also in Solr). Unfortunately the changes entry in CHANGES.txt only contains a simple
note: "LUCENE-4877:

Give me a break. the factory api was *already* broken in 4.3 before I even did this issue,
 by those AttributeSource api changes. No need to single out and overreact to my change, no
backwards break was necessary since it already existed from another change.

View raw message