Uploaded image for project: 'OptaPlanner'
  1. OptaPlanner
  2. PLANNER-2320

Non existing xml tags are being ignored by the optaplanner-quarkus extension



    • Enhancement
    • Resolution: Not a Bug
    • Minor
    • None
    • None
    • optaplanner-quarkus
    • None
    • Undefined
    • NEW
    • NEW


      I have a hello world optaplanner-quarkus project, solution is defined, entities, etc., all is working well.

      1) I want to use my own solver configuration src/main/resources/mySolverConfig.xml

      2) I configure the application.properties to use the file in 1)

      3) I have a service that injects the solver factory and creates solver instances, etc.
      Everything works well.

      4) No I've edit the mySolverConfig.xml and add this two lines in the middle

      <nonExistingTag name="whatever name"> </nonExistingTag>

      Note that I'm adding a raw text line and well formed xml tag that has no meaning.

      5) I rebuild the application, etc.

      6) I start my service etc, and can inject the solver factory, etc, everything continues working.

      The <nonExistingTag> is basically being ignored and the "SOME FREE TEXT" line too.

      To double check, now I add this instead.

      <nonExistingTag name="whatever name"> </nonExistingTag

      (note that this time I'm adding the same tag but the xml is not well formed since I'm not adding the ">" at the end of the line)

      7) now I compile the project again, and this time, at compile time the error below is thrown, which confirms that:
      7.1) I the first execution the nonExistingTag and the free text line are just ignored
      7.2) the configuration and all the setup I had was ok, since, now, a parsing error is detected at build time.

      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 6.178 s
      [INFO] Finished at: 2021-01-26T17:44:41+01:00
      [INFO] ------------------------------------------------------------------------
      [ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:1.11.0.Final:build (default) on project task-assigning-service: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
      [ERROR] [error]: Build step org.optaplanner.quarkus.deployment.OptaPlannerProcessor#recordAndRegisterBeans threw an exception: java.lang.IllegalArgumentException: Unmarshalling of solverConfigResource (taskAssigningDefaultSolverConfig.xml) fails.
      [ERROR] at org.optaplanner.core.config.solver.SolverConfig.createFromXmlResource(SolverConfig.java:124)
      [ERROR] at org.optaplanner.core.config.solver.SolverConfig.createFromXmlResource(SolverConfig.java:97)
      [ERROR] at org.optaplanner.quarkus.deployment.OptaPlannerProcessor.recordAndRegisterBeans(OptaPlannerProcessor.java:141)
      [ERROR] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      [ERROR] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      [ERROR] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      [ERROR] at java.base/java.lang.reflect.Method.invoke(Method.java:566)
      [ERROR] at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:972)
      [ERROR] at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
      [ERROR] at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2415)
      [ERROR] at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1452)
      [ERROR] at java.base/java.lang.Thread.run(Thread.java:834)
      [ERROR] at org.jboss.threads.JBossThread.run(JBossThread.java:501)
      [ERROR] Caused by: org.optaplanner.core.impl.io.OptaPlannerXmlSerializationException: Failed to parse an XML for a root class (org.optaplanner.core.config.solver.SolverConfig).
      [ERROR] at org.optaplanner.core.impl.io.jaxb.GenericJaxbIO.parseXml(GenericJaxbIO.java:241)
      [ERROR] at org.optaplanner.core.impl.io.jaxb.SolverConfigIO.read(SolverConfigIO.java:31)
      [ERROR] at org.optaplanner.core.config.solver.SolverConfig.createFromXmlReader(SolverConfig.java:208)
      [ERROR] at org.optaplanner.core.config.solver.SolverConfig.createFromXmlInputStream(SolverConfig.java:182)
      [ERROR] at org.optaplanner.core.config.solver.SolverConfig.createFromXmlResource(SolverConfig.java:122)
      [ERROR] ... 12 more
      [ERROR] Caused by: org.xml.sax.SAXParseException; lineNumber: 37; columnNumber: 3; The end-tag for element type "nonExistingTag" must end with a '>' delimiter.
      [ERROR] at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:261)
      [ERROR] at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
      [ERROR] at org.optaplanner.core.impl.io.jaxb.GenericJaxbIO.parseXml(GenericJaxbIO.java:238)
      [ERROR] ... 16 more

      In the application.properties the mySolverConfig.xml


        Issue Links



              rsynek@redhat.com Radovan Synek
              wmedvede@redhat.com Walter Medvedeo
              0 Vote for this issue
              2 Start watching this issue