java.lang.NullPointerException для NodeList
У меня есть исключение со следующим кодом
public calculWeightdoc(OWLOntology onto, String xml) {
for(OWLClass cls: onto.getClassesInSignature()){
freqConcept(xml, cls);
System.out.println("la taille de liste : "+list.getLength());
if(list.getLength()!=0){
listConceptRetenus.put(cls, list.getLength());
}
else
{
listConceptRetenus.put(cls, 0);
}
}
}
Это функция FreqConcept
public void freqConcept(String xmldoc,OWLClass node){
try {
String filepath = xmldoc;
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(filepath);
list = doc.getElementsByTagName(node.getIRI().getFragment());
} catch (ParserConfigurationException pce) {
pce.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (SAXException sae) {
sae.printStackTrace();
}
}
И это исключение:
Exception in thread "main" java.lang.NullPointerException
at com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl.nextMatchingElementAfter(DeepNodeListImpl.java:199)
at com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl.item(DeepNodeListImpl.java:146)
at com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl.getLength(DeepNodeListImpl.java:117)
at com.onto.weight.document.calculWeightdoc.<init>(calculWeightdoc.java:59)
at com.onto.weight.document.Main_Class_une_seule_onto.main(Main_Class_une_seule_onto.java:70)
На самом деле, тот же код отлично работает для некоторых онтологий, таких как люди с 60 классами, но для других с важным числом классов, таких как Dbpedia с 1173 классами, он не работает, я не уверен, что это проблема или что-то еще...
Исключение составляет около этой строки list.getLength()
в этой функции calculWeightdoc(OWLOntology onto, String xml)
,
Спасибо, что поделились любой идеей, которая может помочь мне решить проблему.
1 ответ
Инициализация списка происходит только в том случае, если входные данные не могут быть обработаны. Есть ли какая-либо трассировка стека, появляющаяся при инициализации списка? Если это так, список остается пустым. Чтобы избежать проблемы, проверьте, является ли список нулевым, прежде чем получить к нему доступ.