简体   繁体   English

Java XML空指针异常

[英]Java XML Null Pointer Exception

I have a very large XML File (around 29 GB)where every other alternate line is a XML with around 500 attributes. 我有一个非常大的XML文件(大约29 GB),每隔一个备用行是一个具有大约500个属性的XML。 I am reading the file sequentially and sending out the line to unmarshaller which creates a object out of it. 我正在按顺序读取文件,并将该行发送到unmarshaller,后者由此创建了一个对象。

I got the following exception after some time. 过了一段时间,我得到了以下异常。

java.lang.NullPointerException  at com.sun.xml.internal.stream.Entity$ScannedEntity.close(Entity.java:439)

The following accepts the line and unmarshalls it. 以下内容接受并取消编组。

sCurrentLine = br.readLine();
idDetails = IDUnmarshal.IDUnmarshall(sCurrentLine);
idObjectList.add(idDetails);

This is the full stack trace 这是完整的堆栈跟踪

     java.lang.NullPointerException at com.sun.xml.internal.stream.Entity$ScannedEntity.close(Entity.java:439)
     at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.endEntity(XMLEntityManager.java:1404)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)

            at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
            at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
            at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
            at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
            at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
            at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
            at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
            at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:211)
            at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:184)
            at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:137)
            at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:184)

Have you considered that you may be reading a line that doesn't exist with your .readLine(); 您是否考虑过可能正在读取.readLine();中不存在的行? call and thus storing within it a null value which is being used by the TDUnmarshall method and throwing the error? 调用并因此在其中存储TDUnmarshall方法正在使用的空值并引发错误?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM