Index: FieldInfos.java =================================================================== RCS file: /home/cvspublic/jakarta-lucene/src/java/org/apache/lucene/index/FieldInfos.java,v retrieving revision 1.8 diff -u -r1.8 FieldInfos.java --- FieldInfos.java 6 Aug 2004 20:44:51 -0000 1.8 +++ FieldInfos.java 10 Aug 2004 21:05:43 -0000 @@ -36,9 +36,7 @@ private ArrayList byNumber = new ArrayList(); private HashMap byName = new HashMap(); - FieldInfos() { - add("", false); - } + FieldInfos() {} /** * Construct a FieldInfos object using the directory and the name of the file @@ -134,23 +132,47 @@ } public int fieldNumber(String fieldName) { - FieldInfo fi = fieldInfo(fieldName); + try { + FieldInfo fi = fieldInfo(fieldName); + if (fi != null) return fi.number; - else - return -1; + } catch (IndexOutOfBoundsException e) { + return -1; + } + return -1; } public FieldInfo fieldInfo(String fieldName) { return (FieldInfo) byName.get(fieldName); } - + + /** + * Return the fieldName identified by it's number. + * @param fieldNumber + * @return the fieldName or an empty string when the field + * with the given number doesn't exist. + */ public String fieldName(int fieldNumber) { - return fieldInfo(fieldNumber).name; + try { + return fieldInfo(fieldNumber).name; + } catch (NullPointerException ne) { + return ""; + } } - + + /** + * Return the fieldinfo object referenced by the fieldNumber. + * @param fieldNumber + * @return the FieldInfo object or null when the given fieldNumber + * doesn't exist. + */ public FieldInfo fieldInfo(int fieldNumber) { - return (FieldInfo) byNumber.get(fieldNumber); + try { + return (FieldInfo) byNumber.get(fieldNumber); + } catch (IndexOutOfBoundsException e) { + return null; + } } public int size() {