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 ответ

Инициализация списка происходит только в том случае, если входные данные не могут быть обработаны. Есть ли какая-либо трассировка стека, появляющаяся при инициализации списка? Если это так, список остается пустым. Чтобы избежать проблемы, проверьте, является ли список нулевым, прежде чем получить к нему доступ.

Другие вопросы по тегам