ARTICLE AD BOX
I am getting the following exception when debugging my Spring Boot Application - but only while debugging. Normal runs are fine.
com.sun.org.apache.xerces.internal.xni.parser.XMLConfigurationException: http://apache.org/xml/features/xinclude-aware at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:732) at com.intellij.rt.debugger.MethodInvoker.invokeInternal(MethodInvoker.java:223) at com.intellij.rt.debugger.MethodInvoker.invoke2(MethodInvoker.java:45) at java.xml/com.sun.org.apache.xerces.internal.util.ParserConfigurationSettings.getFeature(ParserConfigurationSettings.java:204) at java.xml/com.sun.org.apache.xerces.internal.xinclude.XIncludeHandler.copyFeatures1(XIncludeHandler.java:2791) at java.xml/com.sun.org.apache.xerces.internal.xinclude.XIncludeHandler.copyFeatures(XIncludeHandler.java:2766) at java.xml/com.sun.org.apache.xerces.internal.xinclude.XIncludeHandler.reset(XIncludeHandler.java:604) at java.xml/com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration.configurePipeline(XIncludeAwareParserConfiguration.java:164) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:867) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825) 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.DOMParser.parse(DOMParser.java:247) at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342) at org.apache.logging.log4j.core.config.xml.XmlConfiguration.<init>(XmlConfiguration.java:94) at org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory.getConfiguration(XmlConfigurationFactory.java:46) at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:533) at org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.getConfiguration(ConfigurationFactory.java:457) at org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration(ConfigurationFactory.java:318) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:690) at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:711) at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:253) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47) at org.apache.logging.log4j.LogManager.getContext(LogManager.java:196) at org.apache.commons.logging.LogAdapter$Log4jLog.<clinit>(LogAdapter.java:146) at org.apache.commons.logging.LogAdapter$Log4jAdapter.createLog(LogAdapter.java:113) at org.apache.commons.logging.LogAdapter.createLog(LogAdapter.java:95) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:67) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:59) at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:202) at de.biovis.DecisionApplication.main(DecisionApplication.java:21)I tried to find flaws in the dependency tree but could not find an error plausible to me.
I am using Spring Boot 3.25, Open JDK 17 and Intellij 2025.2.6.1. It's a maven build.
What I have tried so far (among others):
1. Setting a default XML-Parser
-D javax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl2. Searching all transitive dependencies for xml via mvn dependency:tree | grep xml:
[INFO] | | +- com.fasterxml.jackson.core:jackson-databind:jar:2.15.4:compile [INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.15.4:compile [INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.15.4:compile [INFO] | | \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.15.4:compile [INFO] | | +- jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.2:compile [INFO] | | +- com.fasterxml.jackson.core:jackson-core:jar:2.15.4:compile [INFO] | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.15.4:compile [INFO] | | +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.15.4:compile [INFO] | | | +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.15.4:compile [INFO] | | | \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.15.4:compile [INFO] | \- org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:jar:2.0.0.Final:compile [INFO] | | \- org.camunda.bpm.model:camunda-xml-model:jar:7.17.0:compile [INFO] | | +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.15.4:compile [INFO] | +- com.fasterxml.jackson.datatype:jackson-datatype-guava:jar:2.15.4:compile [INFO] | +- com.fasterxml.jackson.datatype:jackson-datatype-joda:jar:2.15.4:compile [INFO] | \- com.fasterxml:classmate:jar:1.6.0:compile3. I debugged into com.sun.org.apache.xerces.internal.util.ParserConfigurationSettings and found out that some ~15 features are present in the configuration but some are not like "http://apache.org/xml/features/xinclude-aware".
It cannot be the log4j config and it only happens while debugging.
Edit: as requested in comments:
<?xml version="1.0" encoding="UTF-8"?> <Configuration name="Worker LabEx 2"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="[%d{ISO8601}][%-5level][bc=%X{barcode}][pc=%X{profilcode}] [%C{1.}] : %msg%n%throwable" /> </Console> <RollingFile name="RollingFile" fileName="${env:LOG_FOLDER_PATH}/logs/${env:HOSTNAME}.log" filePattern="${env:LOG_FOLDER_PATH}/logs/$${date:yyyy-MM}/${env:HOSTNAME}-%d{-dd-MMMM-yyyy}-%i.log.gz"> <PatternLayout> <pattern>[%d{ISO8601}][%-5level][bc=%X{barcode}][pc=%X{profilcode}] [%C{1.}] : %msg%n%throwable</pattern> </PatternLayout> <Policies> <!-- rollover on startup, daily and when the file reaches 10 MegaBytes --> <OnStartupTriggeringPolicy /> <SizeBasedTriggeringPolicy size="10 MB" /> <TimeBasedTriggeringPolicy /> </Policies> </RollingFile> </Appenders> <Loggers> <!-- LOG everything at INFO level --> <Root level="info"> <AppenderRef ref="Console" /> <AppenderRef ref="RollingFile" /> </Root> <!-- LOG "de.biovis*" at TRACE level --> <Logger name="de.biovis" level="trace"/> <!--<Logger name="org.thymeleaf" level="trace"/>--> </Loggers> </Configuration>Every suggestion is very welcome!
