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

 

-----

Uwe Schindler

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

 <http://www.thetaphi.de/> http://www.thetaphi.de

eMail: u...@thetaphi.de

 

From: Robert Muir [mailto:rcm...@gmail.com] 
Sent: Friday, April 19, 2013 2:45 PM
To: dev@lucene.apache.org
Cc: simon.willna...@gmail.com
Subject: Re: [VOTE] Lucene/Solr 4.3 RC1

 

 

On Fri, Apr 19, 2013 at 8:25 AM, Uwe Schindler <u...@thetaphi.de> wrote:

Hi,

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

* https://issues.apache.org/jira/browse/LUCENE-4877 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.

Reply via email to