title: Manually written XSD and generated java classes lead to an UnmarshallException using JAXB
body: <p>I'm fairly new to JAVA and reading XML. I'm used to parsing XML using a XSD in C# .net. Investigating on this topic let me to using JAXB, but I can not get it to work. I wrote an unit test using a sample XML, but this produces an obscure exception (in my opinion).</p>
  <p>So we have a XSD which looks like this:</p>
  <pre class="lang-xml prettyprint-override"><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
  &lt;xs:schema elementFormDefault=&quot;qualified&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
    &lt;xs:element name=&quot;Jabberpoint&quot;&gt;
      &lt;xs:complexType&gt;
        &lt;xs:sequence&gt;
          &lt;xs:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;Slideshows&quot; type=&quot;Slideshows&quot; /&gt;
          &lt;xs:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;Slides&quot; type=&quot;Slides&quot; /&gt;
          &lt;xs:element minOccurs=&quot;0&quot; maxOccurs=&quot;1&quot; name=&quot;Components&quot; type=&quot;Components&quot; /&gt;
        &lt;/xs:sequence&gt;
      &lt;/xs:complexType&gt;
      &lt;xs:keyref name=&quot;slideKeyRef&quot; refer=&quot;slideKey&quot;&gt;
        &lt;xs:selector xpath=&quot;Slideshows/Slideshow/Slide&quot; /&gt;
        &lt;xs:field xpath=&quot;@id&quot; /&gt;
      &lt;/xs:keyref&gt;
      &lt;xs:key name=&quot;slideKey&quot;&gt;
        &lt;xs:selector xpath=&quot;Slides/Slide&quot;/&gt;
        &lt;xs:field xpath=&quot;Id&quot;/&gt;
      &lt;/xs:key&gt;
    &lt;/xs:element&gt;
  
    &lt;xs:complexType name=&quot;PresentationParserDTO&quot; /&gt;
  
    &lt;xs:complexType name=&quot;Slideshows&quot;&gt;
      &lt;xs:sequence maxOccurs=&quot;unbounded&quot;&gt;
        &lt;xs:element minOccurs=&quot;1&quot; maxOccurs=&quot;unbounded&quot; name=&quot;Slideshow&quot; type=&quot;SlideshowParserDTO&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  
    &lt;xs:complexType name=&quot;Slides&quot;&gt;
      &lt;xs:sequence maxOccurs=&quot;unbounded&quot;&gt;
        &lt;xs:element minOccurs=&quot;1&quot; maxOccurs=&quot;unbounded&quot; name=&quot;Slide&quot; type=&quot;SlideParserDTO&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  
    &lt;xs:complexType name=&quot;Components&quot;&gt;
      &lt;xs:sequence maxOccurs=&quot;unbounded&quot;&gt;
        &lt;xs:element minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot; name=&quot;Component&quot; type=&quot;SlideComponentDTO&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  
    &lt;xs:complexType name=&quot;SlideshowParserDTO&quot;&gt;
      &lt;xs:complexContent mixed=&quot;false&quot;&gt;
        &lt;xs:extension base=&quot;PresentationParserDTO&quot;&gt;
          &lt;xs:sequence&gt;
            &lt;xs:element name=&quot;Slide&quot; minOccurs=&quot;1&quot; maxOccurs=&quot;unbounded&quot;&gt;
              &lt;xs:complexType&gt;
                &lt;xs:attribute name=&quot;id&quot; type=&quot;xs:string&quot;/&gt;
              &lt;/xs:complexType&gt;
            &lt;/xs:element&gt;
          &lt;/xs:sequence&gt;
        &lt;/xs:extension&gt;
      &lt;/xs:complexContent&gt;
    &lt;/xs:complexType&gt;
  
    &lt;xs:complexType name=&quot;SlideParserDTO&quot;&gt;
      &lt;xs:complexContent mixed=&quot;false&quot;&gt;
        &lt;xs:extension base=&quot;PresentationParserDTO&quot;&gt;
          &lt;xs:sequence&gt;
            &lt;xs:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;Id&quot; type=&quot;xs:string&quot;/&gt;
            &lt;xs:element minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot; name=&quot;Component&quot;&gt;
              &lt;xs:complexType&gt;
                &lt;xs:attribute name=&quot;id&quot; type=&quot;xs:string&quot;/&gt;
              &lt;/xs:complexType&gt;
            &lt;/xs:element&gt;
          &lt;/xs:sequence&gt;
        &lt;/xs:extension&gt;
      &lt;/xs:complexContent&gt;
    &lt;/xs:complexType&gt;
  
    &lt;xs:complexType name=&quot;SlideComponentDTO&quot;&gt;
      &lt;xs:complexContent mixed=&quot;false&quot;&gt;
        &lt;xs:extension base=&quot;PresentationParserDTO&quot;&gt;
          &lt;xs:sequence&gt;
            &lt;xs:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;Id&quot; type=&quot;xs:string&quot;/&gt;
            &lt;xs:element minOccurs=&quot;0&quot; maxOccurs=&quot;1&quot; name=&quot;Item&quot; type=&quot;SlideItemParserDTO&quot; /&gt;
            &lt;xs:element minOccurs=&quot;0&quot; maxOccurs=&quot;1&quot; name=&quot;Children&quot;&gt;
              &lt;xs:complexType&gt;
                &lt;xs:sequence&gt;
                  &lt;xs:element minOccurs=&quot;0&quot; maxOccurs=&quot;unbounded&quot; name=&quot;Component&quot;&gt;
                    &lt;xs:complexType&gt;
                      &lt;xs:attribute name=&quot;id&quot; type=&quot;xs:string&quot;/&gt;
                    &lt;/xs:complexType&gt;
                  &lt;/xs:element&gt;
                &lt;/xs:sequence&gt;
              &lt;/xs:complexType&gt;
            &lt;/xs:element&gt;
          &lt;/xs:sequence&gt;
        &lt;/xs:extension&gt;
      &lt;/xs:complexContent&gt;
    &lt;/xs:complexType&gt;
  
    &lt;xs:complexType name=&quot;SlideItemParserDTO&quot; abstract=&quot;true&quot;&gt;
      &lt;xs:complexContent mixed=&quot;false&quot;&gt;
        &lt;xs:extension base=&quot;PresentationParserDTO&quot; /&gt;
      &lt;/xs:complexContent&gt;
    &lt;/xs:complexType&gt;
  
    &lt;xs:complexType name=&quot;LexicalItemParserDTO&quot; abstract=&quot;true&quot;&gt;
      &lt;xs:complexContent mixed=&quot;false&quot;&gt;
        &lt;xs:extension base=&quot;SlideItemParserDTO&quot;&gt;
          &lt;xs:sequence&gt;
            &lt;xs:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;Text&quot; type=&quot;xs:string&quot; /&gt;
          &lt;/xs:sequence&gt;
        &lt;/xs:extension&gt;
      &lt;/xs:complexContent&gt;
    &lt;/xs:complexType&gt;
  
    &lt;xs:complexType name=&quot;Text&quot;&gt;
      &lt;xs:complexContent mixed=&quot;false&quot;&gt;
        &lt;xs:extension base=&quot;LexicalItemParserDTO&quot; /&gt;
      &lt;/xs:complexContent&gt;
    &lt;/xs:complexType&gt;
  
    &lt;xs:complexType name=&quot;Title&quot;&gt;
      &lt;xs:complexContent mixed=&quot;false&quot;&gt;
        &lt;xs:extension base=&quot;LexicalItemParserDTO&quot; /&gt;
      &lt;/xs:complexContent&gt;
    &lt;/xs:complexType&gt;
  
    &lt;xs:complexType name=&quot;Media&quot;&gt;
      &lt;xs:complexContent mixed=&quot;false&quot;&gt;
        &lt;xs:extension base=&quot;SlideItemParserDTO&quot;&gt;
          &lt;xs:sequence&gt;
            &lt;xs:element minOccurs=&quot;1&quot; maxOccurs=&quot;1&quot; name=&quot;Source&quot; type=&quot;xs:string&quot; /&gt;
          &lt;/xs:sequence&gt;
        &lt;/xs:extension&gt;
      &lt;/xs:complexContent&gt;
    &lt;/xs:complexType&gt;
  
    &lt;xs:complexType name=&quot;Table&quot;&gt;
      &lt;xs:complexContent mixed=&quot;false&quot;&gt;
        &lt;xs:extension base=&quot;SlideItemParserDTO&quot;&gt;
          &lt;xs:sequence&gt;
            &lt;xs:element minOccurs=&quot;1&quot; maxOccurs=&quot;unbounded&quot; name=&quot;tr&quot; type=&quot;TableRowParserDTO&quot; /&gt;
          &lt;/xs:sequence&gt;
        &lt;/xs:extension&gt;
      &lt;/xs:complexContent&gt;
    &lt;/xs:complexType&gt;
  
    &lt;xs:complexType name=&quot;TableRowParserDTO&quot;&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element minOccurs=&quot;1&quot; maxOccurs=&quot;unbounded&quot; name=&quot;td&quot; type=&quot;xs:string&quot; /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:schema&gt;
  </code></pre>
  <p>From which I generated classes like this:</p>
  <pre class="lang-java prettyprint-override"><code>@XmlAccessorType(XmlAccessType.FIELD)
  @XmlType(name = &quot;&quot;, propOrder = {
      &quot;slideshows&quot;,
      &quot;slides&quot;,
      &quot;components&quot;
  })
  @XmlRootElement(name = &quot;Jabberpoint&quot;)
  public class Jabberpoint {
  
      @XmlElement(name = &quot;Slideshows&quot;, required = true)
      protected Slideshows slideshows;
      @XmlElement(name = &quot;Slides&quot;, required = true)
      protected Slides slides;
      @XmlElement(name = &quot;Components&quot;)
      protected Components components;
  
      /**
       * Gets the value of the slideshows property.
       * 
       * @return
       *     possible object is
       *     {@link Slideshows }
       *     
       */
      public Slideshows getSlideshows() {
          return slideshows;
      }
  
      /**
       * Sets the value of the slideshows property.
       * 
       * @param value
       *     allowed object is
       *     {@link Slideshows }
       *     
       */
      public void setSlideshows(Slideshows value) {
          this.slideshows = value;
      }
  
      /**
       * Gets the value of the slides property.
       * 
       * @return
       *     possible object is
       *     {@link Slides }
       *     
       */
      public Slides getSlides() {
          return slides;
      }
  
      /**
       * Sets the value of the slides property.
       * 
       * @param value
       *     allowed object is
       *     {@link Slides }
       *     
       */
      public void setSlides(Slides value) {
          this.slides = value;
      }
  
      /**
       * Gets the value of the components property.
       * 
       * @return
       *     possible object is
       *     {@link Components }
       *     
       */
      public Components getComponents() {
          return components;
      }
  
      /**
       * Sets the value of the components property.
       * 
       * @param value
       *     allowed object is
       *     {@link Components }
       *     
       */
      public void setComponents(Components value) {
          this.components = value;
      }
  }
  </code></pre>
  <p>And a parser which looks like this:</p>
  <pre class="lang-java prettyprint-override"><code>public class XMLPresentationParser {
      public Jabberpoint Parse(InputStream inputstream) throws MalformedURLException, SAXException, JAXBException {
          var jc = JAXBContext.newInstance(PresentationParserDTO.class);
          var unmarshaller = jc.createUnmarshaller();
  
          
          var schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 
          var file = new File(&quot;./src/Jabberpoint/Schema/slideshow.xsd&quot;);
          var schema = schemaFactory.newSchema(file);
          unmarshaller.setSchema(schema);
  
          var element = (JAXBElement&lt;Jabberpoint&gt;) unmarshaller.unmarshal(inputstream);
          return element.getValue();
      }
  }
  </code></pre>
  <p>Then I created an unit test to check whether I could read and parse a simple XML file:</p>
  <pre class="lang-java prettyprint-override"><code>public class AllTests {
  
      @Test
      public void Test() throws FileNotFoundException, MalformedURLException, SAXException, JAXBException {
          // Assert
          var target = new XMLPresentationParser();
          var inputstream = new FileInputStream(getClass().getResource(&quot;slideshow.xml&quot;).getPath());
          // Act
          var result = target.Parse(inputstream);
          
          // Assert
          assertNotNull(result);
          // TODO: real assert
      }
  }
  </code></pre>
  <p>Using this simple sample XML file:</p>
  <pre class="lang-xml prettyprint-override"><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
  &lt;Jabberpoint&gt;
    &lt;Slideshows&gt;
      &lt;Slideshow&gt;
        &lt;Slide id=&quot;d62f4edd-10d3-4f2d-95b7-ca5c75525688&quot; /&gt;
        &lt;Slide id=&quot;40a63503-ed5c-4e8a-b170-dec630f28798&quot; /&gt;
      &lt;/Slideshow&gt;
  
      &lt;Slideshow&gt;
        &lt;Slide id=&quot;2a4aef8c-22b4-4439-bbbe-ef27a90d64c1&quot; /&gt;
        &lt;Slide id=&quot;40a63503-ed5c-4e8a-b170-dec630f28798&quot; /&gt;
      &lt;/Slideshow&gt;
    &lt;/Slideshows&gt;
    &lt;Slides&gt;
      &lt;Slide&gt;
        &lt;Id&gt;d62f4edd-10d3-4f2d-95b7-ca5c75525688&lt;/Id&gt;
        &lt;Component id=&quot;822a7698-2a87-4c16-88fe-7b416fd64a20&quot; /&gt;
        &lt;Component id=&quot;e0049245-7346-4952-b8ce-05e25b6f3331&quot;/&gt;
      &lt;/Slide&gt;
  
      &lt;Slide&gt;
        &lt;Id&gt;2a4aef8c-22b4-4439-bbbe-ef27a90d64c1&lt;/Id&gt;
        &lt;Component id=&quot;a264f972-e24e-4674-85c3-e08ff6f29d76&quot;/&gt;
        &lt;Component id=&quot;e0049245-7346-4952-b8ce-05e25b6f3331&quot;/&gt;
      &lt;/Slide&gt;
  
      &lt;Slide&gt;
        &lt;Id&gt;40a63503-ed5c-4e8a-b170-dec630f28798&lt;/Id&gt;
        &lt;Component id=&quot;c70121d9-63a7-49d4-9edd-afd5d314a3f7&quot; /&gt;
      &lt;/Slide&gt;
    &lt;/Slides&gt;
  
    &lt;Components&gt;
      &lt;Component&gt;
        &lt;Id&gt;822a7698-2a87-4c16-88fe-7b416fd64a20&lt;/Id&gt;
        &lt;Item xsi:type=&quot;Title&quot;&gt;
          &lt;Text&gt;This is Slideshow number 1&lt;/Text&gt;
        &lt;/Item&gt;
      &lt;/Component&gt;
  
      &lt;Component&gt;
        &lt;Id&gt;a264f972-e24e-4674-85c3-e08ff6f29d76&lt;/Id&gt;
        &lt;Item xsi:type=&quot;Title&quot;&gt;
          &lt;Text&gt;This is Slideshow number 2&lt;/Text&gt;
        &lt;/Item&gt;
      &lt;/Component&gt;
  
      &lt;Component&gt;
        &lt;Id&gt;c70121d9-63a7-49d4-9edd-afd5d314a3f7&lt;/Id&gt;
        &lt;Item xsi:type=&quot;Title&quot;&gt;
          &lt;Text&gt;This Component contains some images and a table&lt;/Text&gt;
        &lt;/Item&gt;
        &lt;Children&gt;
          &lt;Component id=&quot;18da47d6-aebe-4525-af2e-20418bb0b1d8&quot; /&gt;
          &lt;Component id=&quot;5ba057c8-857e-4d3e-9466-9f27c4c26676&quot; /&gt;
          &lt;Component id=&quot;e0049245-7346-4952-b8ce-05e25b6f3331&quot;/&gt;
        &lt;/Children&gt;
      &lt;/Component&gt;
  
      &lt;Component&gt;
        &lt;Id&gt;18da47d6-aebe-4525-af2e-20418bb0b1d8&lt;/Id&gt;
        &lt;Item xsi:type=&quot;Media&quot;&gt;
          &lt;Source&gt;img1.jpg&lt;/Source&gt;
        &lt;/Item&gt;
      &lt;/Component&gt;
  
      &lt;Component&gt;
        &lt;Id&gt;5ba057c8-857e-4d3e-9466-9f27c4c26676&lt;/Id&gt;
        &lt;Item xsi:type=&quot;Media&quot;&gt;
          &lt;Source&gt;img1.jpg&lt;/Source&gt;
        &lt;/Item&gt;
      &lt;/Component&gt;
  
      &lt;Component&gt;
        &lt;Id&gt;e0049245-7346-4952-b8ce-05e25b6f3331&lt;/Id&gt;
        &lt;Item xsi:type=&quot;Table&quot;&gt;
          &lt;tr&gt;
            &lt;td&gt;Apples&lt;/td&gt;
            &lt;td&gt;Bananas&lt;/td&gt;
          &lt;/tr&gt;
        &lt;/Item&gt;
      &lt;/Component&gt;
    &lt;/Components&gt;
  
  &lt;/Jabberpoint&gt;
  </code></pre>
  <p>Running this test produces the following error. <strong>Why am I getting this error?</strong> And are there better ways to read a XML using a XSD? I'm using JAXB primarily so I don't have to write a parser myself.</p>
  <pre><code>AllTests
  Jabberpoint.Infrastructure.Tests.AllTests
  Test(Jabberpoint.Infrastructure.Tests.AllTests)
  javax.xml.bind.UnmarshalException: unexpected element (uri:&quot;&quot;, local:&quot;Jabberpoint&quot;). Expected elements are (none)
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:741)
      at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:262)
      at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:257)
      at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:124)
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1149)
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:574)
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:556)
      at com.sun.xml.bind.v2.runtime.unmarshaller.ValidatingUnmarshaller.startElement(ValidatingUnmarshaller.java:102)
      at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:168)
      at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:510)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:613)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3078)
      at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:836)
      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.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:541)
      at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
      at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
      at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
      at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
      at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:258)
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:229)
      at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:170)
      at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:209)
      at Jabberpoint.Infrastructure.XMLPresentationParser.Parse(XMLPresentationParser.java:31)
      at Jabberpoint.Infrastructure.Tests.AllTests.Test(AllTests.java:28)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:567)
      at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
      at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
      at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
      at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
      at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
      at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
      at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
      at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
      at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
      at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
      at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
      at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
      at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
      at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
      at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:40)
      at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
      at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
      at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
      at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
      at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
      at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)
      at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:71)
      at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:229)
      at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:197)
      at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:211)
      at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:191)
      at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:137)
      at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:89)
      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:542)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
  
  </code></pre>