[ 
https://issues.apache.org/jira/browse/LUCENE-939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Busch resolved LUCENE-939.
----------------------------------

    Resolution: Fixed

> Check for boundary conditions in FieldInfos
> -------------------------------------------
>
>                 Key: LUCENE-939
>                 URL: https://issues.apache.org/jira/browse/LUCENE-939
>             Project: Lucene - Java
>          Issue Type: Improvement
>            Reporter: Michael Busch
>            Assignee: Michael Busch
>            Priority: Trivial
>             Fix For: 2.3
>
>         Attachments: lucene-939.patch
>
>
> In FieldInfos there are three methods in which we don't check for
> boundary conditions but catch e. g. an IndexOutOfBoundsException
> or a NPE. I think this isn't good code style and is probably not
> even faster than checking explicitly.
> "Exceptions should not be used to alter the flow of a program as 
> part of normal execution."
> Also this can be irritating when you're trying to debug an 
> IndexOutOfBoundsException that is thrown somewhere else in your
> program and you place a breakpoint on that exception.
> The three methods are:
>   public int fieldNumber(String fieldName) {
>     try {
>       FieldInfo fi = fieldInfo(fieldName);
>       if (fi != null)
>         return fi.number;
>     }
>     catch (IndexOutOfBoundsException ioobe) {
>       return -1;
>     }
>     return -1;
>   }
>   
>   public String fieldName(int fieldNumber) {
>     try {
>       return fieldInfo(fieldNumber).name;
>     }
>     catch (NullPointerException npe) {
>       return "";
>     }
>   }
>   
>   
>   public FieldInfo fieldInfo(int fieldNumber) {
>     try {
>       return (FieldInfo) byNumber.get(fieldNumber);
>     }
>     catch (IndexOutOfBoundsException ioobe) {
>       return null;
>     }
>   }

-- 
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