Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8327378

The unmarshal function will print out java.io.EOFException in some cases

XMLWordPrintable

    • generic
    • generic

      ADDITIONAL SYSTEM INFORMATION :
      Microsoft Windows 10
      java version "17.0.10" 2024-01-16 LTS
      Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-240)
      Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing)

      A DESCRIPTION OF THE PROBLEM :
      When I was doing fuzzing tests, I found that unmarshal would print java.io.EOFException in some cases.
      I'm not sure if this type of error should be handled internally rather than printed out.
      It seems to be printed out in XMLDocumentScannerImpl.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1. main.class:
      class main {
      public static void parseXml(String xml) throws XMLStreamException, JAXBException{
              var jc = JAXBContext.newInstance(Comment.class);
              var xif = XMLInputFactory.newInstance();
              var xsr = xif.createXMLStreamReader(new StringReader(xml));

              var unmarshaller = jc.createUnmarshaller();
              unmarshaller.unmarshal(xsr);
          }
          public static void main(String[] args) {
              try {
                  parseXml("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY");
              } catch (Exception ignored) {

              }
          }
      }
      2. Comment Class
      public class Comment {
          private String user;
          private String dateTime;
          private String text;
      }


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      no print
      ACTUAL -
      java.io.EOFException
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.endEntity(XMLDTDScannerImpl.java:672)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.endEntity(XMLEntityManager.java:1505)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1934)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipSpaces(XMLEntityScanner.java:1647)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanEntityDecl(XMLDTDScannerImpl.java:1473)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDecls(XMLDTDScannerImpl.java:2019)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDTDInternalSubset(XMLDTDScannerImpl.java:356)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1091)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1040)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:917)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:601)
      at org.glassfish.jaxb.runtime.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:132)
      at org.glassfish.jaxb.runtime.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:375)
      at org.glassfish.jaxb.runtime.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:346)
      at main.parseXml(main.java:174)
      at main.main(main.java:178)

      FREQUENCY : always


        1. pom.xml
          2 kB
        2. Comment.java
          0.1 kB
        3. Main.java
          0.8 kB

            joehw Joe Wang
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: