[ 
https://issues.apache.org/jira/browse/LUCENE-1369?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12651889#action_12651889
 ] 

Mark Miller commented on LUCENE-1369:
-------------------------------------

Did we break our back compat guarantee here? This changes some protected 
signatures in queryparser. If someone was overriding them (which is what they 
are intended for), dropping in the new jar could cause hard to track down 
silent changes (the new method is called, the old one you may have overridden 
is not). There is a similar issue with adding more expressive range query 
syntax that I plan to finish up, so whats the verdict on these types of 
changes? Might as well do as many at once as we can if we are going to do it.

> Eliminate unnecessary uses of Hashtable and Vector
> --------------------------------------------------
>
>                 Key: LUCENE-1369
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1369
>             Project: Lucene - Java
>          Issue Type: Improvement
>    Affects Versions: 2.3.2
>            Reporter: DM Smith
>            Assignee: Michael McCandless
>            Priority: Minor
>             Fix For: 2.4
>
>         Attachments: LUCENE-1369.patch
>
>
> Lucene uses Vector, Hashtable and Enumeration when it doesn't need to. 
> Changing to ArrayList and HashMap may provide better performance.
> There are a few places Vector shows up in the API. IMHO, List should have 
> been used for parameters and return values.
> There are a few distinct usages of these classes:
> # internal but with ArrayList or HashMap would do as well. These can simply 
> be replaced.
> # internal and synchronization is required. Either leave as is or use a 
> collections synchronization wrapper.
> # As a parameter to a method where List or Map would do as well. For contrib, 
> just replace. For core, deprecate current and add new method signature.
> # Generated by JavaCC. (All *.jj files.) Nothing to be done here.
> # As a base class. Not sure what to do here. (Only applies to SegmentInfos 
> extends Vector, but it is not used in a safe manner in all places. Perhaps, 
> implements List would be better.)
> # As a return value from a package protected method, but synchronization is 
> not used. Change return type.
> # As a return value to a final method. Change to List or Map.
> In using a Vector the following iteration pattern is frequently used.
> for (int i = 0; i < v.size(); i++) {
>   Object o = v.elementAt(i);
> }
> This is an indication that synchronization is unimportant. The list could 
> change during iteration.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to