Hello The 'Document.getFieldables(String name)' is documented to return 'null' in some cases (and really does, see the code below). However this makes a penalty to the client, as code like this
Document doc = hits.doc(i); for (Fieldable f: doc.getFieldables("somefield")) { System.out.println(f.stringValue()); } is wrong (no check on 'null'). For the client code it would be better, if 'Document.getFieldables(String)' would return 'new Fieldable[0]' instead (no NullPointerException). If you needn't distinguish between null-ed arrays and arrays of zero lenght (do you?), I suggest to never return 'null', but return an array of size zero. If you don't trust the just-in-time compiler (concerning performance), you may even define private final static Fieldable[] EMPTY = new Fieldable[0]; and return 'EMPTY' at the (*) line. Same with public final Field[] getFields(String name) { public final String[] getValues(String name) { public final byte[][] getBinaryValues(String name) { public final byte[] getBinaryValue(String name) { and maybe others. Stefan --- org.apache.lucene.document.Document.java --------------------- public Fieldable[] getFieldables(String name) { List result = new ArrayList(); for (int i = 0; i < fields.size(); i++) { Fieldable field = (Fieldable)fields.get(i); if (field.name().equals(name)) { result.add(field); } } if (result.size() == 0) (*) return null; return (Fieldable[])result.toArray(new Fieldable[result.size()]); } ------------------------ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]