[
https://issues.apache.org/jira/browse/LUCENE-2423?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12862686#action_12862686
]
Bill Herbert commented on LUCENE-2423:
--------------------------------------
The last statement in addConntact(), below, is line #46
public void addContact(Contact contact) throws IOException
{
System.out.println("Adding " + contact.getName());
Document contactDocument = new Document();
contactDocument.add(new Field("type", contact.getType(),
Field.Store.YES, Field.Index.ANALYZED));
contactDocument.add(new Field("name", contact.getName(),
Field.Store.YES, Field.Index.ANALYZED));
contactDocument.add(new Field("address", contact.getAddress(),
Field.Store.YES, Field.Index.ANALYZED));
contactDocument.add(new Field("city", contact.getCity(),
Field.Store.YES, Field.Index.ANALYZED));
contactDocument.add(new Field("province", contact.getProvince(),
Field.Store.YES, Field.Index.ANALYZED));
contactDocument.add(new Field("postalcode", contact.getPostalcode(),
Field.Store.YES, Field.Index.ANALYZED));
contactDocument.add(new Field("country", contact.getCountry(),
Field.Store.YES, Field.Index.ANALYZED));
contactDocument.add(new Field("telephone", contact.getTelephone(),
Field.Store.YES, Field.Index.ANALYZED));
System.out.println("Added Telephone to contactDocument: " +
contact.getTelephone());
System.out.println("Printed Telephone from contactDocument: " +
contactDocument.getFields("telephone"));
System.out.println("Printed entire contactDocument: " +
contactDocument.getFields());
writer.addDocument(contactDocument); //line #46
}
If it is any help, here is the code surrounding line #94:
// set different properties of Contact instance using specified methods
digester.addCallMethod("address-book/contact/name", "setName", 0);
digester.addCallMethod("address-book/contact/address", "setAddress",
0);
digester.addCallMethod("address-book/contact/city", "setCity", 0);
digester.addCallMethod("address-book/contact/province",
"setProvince", 0);
digester.addCallMethod("address-book/contact/postalcode",
"setPostalcode", 0);
digester.addCallMethod("address-book/contact/country", "setCountry",
0);
digester.addCallMethod("address-book/contact/telephone",
"setTelephone", 0);
// call 'addContact' method when the next 'address-book/contact'
pattern is seen
digester.addSetNext("address-book/contact", "addContact"
);
// now that rules and actions are configured, start the parsing process
DigesterMarriesLucene dml = (DigesterMarriesLucene) digester.parse(new
File(args[0])); // line #94
// optimize and close the index
writer.optimize();
writer.close();
} // end of public static void main
Thanks again, Bill
> NullPointerException when attemping to add a new document to an instance of
> IndexWriter
> ---------------------------------------------------------------------------------------
>
> Key: LUCENE-2423
> URL: https://issues.apache.org/jira/browse/LUCENE-2423
> Project: Lucene - Java
> Issue Type: Bug
> Components: Index
> Affects Versions: 3.0.1
> Environment: Windows Vista Home Premium, Lucene version 3.0.1, JRE6,
> org.apache.commons.digester.Digester, org.apache.lucene.index.IndexWriter
> Reporter: Bill Herbert
> Fix For: 3.0.1
>
> Original Estimate: 168h
> Remaining Estimate: 168h
>
> I'm attempting to run Listing #4 from "Parsing, Indexing, and Searching XML
> with Digester and Lucene"
> <https://www.ibm.com/developerworks/library/j-lucene/> . Using this code
> (with minor modifications), I am able to read and parse an XML input file and
> create a document to be indexed. However, attempting to index the document
> with an instance of IndexWriter (using the statement:
> writer.addDocument(contactDocument);) causes a NullPointerException with the
> following messages:
> Apr 29, 2010 2:57:32 PM org.apache.commons.digester.Digester endElement
> SEVERE: End event threw exception
> java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.jav
> a:282)
> at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:217)
> at org.apache.commons.digester.Rule.end(Rule.java:253)
> at org.apache.commons.digester.Digester.endElement(Digester.java:1332)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endEleme
> nt(Unknown Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
> l.scanEndElement(Unknown Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
> l$FragmentContentDriver.next(Unknown Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(U
> nknown Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
> l.scanDocument(Unknown Source)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U
> nknown Source)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U
> nknown Source)
> at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown
> So
> urce)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Un
> known Source)
> at
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.p
> arse(Unknown Source)
> at org.apache.commons.digester.Digester.parse(Digester.java:1842)
> at DigesterMarriesLucene.main(DigesterMarriesLucene.java:94)
> Caused by: java.lang.NullPointerException
> at DigesterMarriesLucene.addContact(DigesterMarriesLucene.java:46)
> ... 20 more
> Exception in thread "main" java.lang.NullPointerException
> at
> org.apache.commons.digester.Digester.createSAXException(Digester.java
> :3333)
> at
> org.apache.commons.digester.Digester.createSAXException(Digester.java
> :3359)
> at org.apache.commons.digester.Digester.endElement(Digester.java:1335)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endEleme
> nt(Unknown Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
> l.scanEndElement(Unknown Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
> l$FragmentContentDriver.next(Unknown Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(U
> nknown Source)
> at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
> l.scanDocument(Unknown Source)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U
> nknown Source)
> at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(U
> nknown Source)
> at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown
> So
> urce)
> at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Un
> known Source)
> at
> com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.p
> arse(Unknown Source)
> at org.apache.commons.digester.Digester.parse(Digester.java:1842)
> at DigesterMarriesLucene.main(DigesterMarriesLucene.java:94)
> Caused by: java.lang.NullPointerException
> at DigesterMarriesLucene.addContact(DigesterMarriesLucene.java:46)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at
> org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.jav
> a:282)
> at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:217)
> at org.apache.commons.digester.Rule.end(Rule.java:253)
> at org.apache.commons.digester.Digester.endElement(Digester.java:1332)
> ... 12 more
--
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]