Liquibase 4.5.0 throwing stackoverflow error

I am using liquibase 4.5.0 with the below root change log (payment_db_root_changelog.xml)

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.5.xsd">
  <include
    file="src/java/payment/payment-service/src/main/resources/payment_db_root_changelog.xml"/>
  <include file="src/java/gossiper/src/main/resources/create_db.sql"/>
</databaseChangeLog>

My directory structure is like below

/Users/debrajmanna/code/java/github/spotnana
   src/java
     payment/payment-service/src/main/resources/
     gossiper/src/main/resources/

On executing the below command

docker run --rm -v /Users/debrajmanna/code/java/github/spotnana:/liquibase/changelog liquibase/liquibase:4.5.0 \
  --url=jdbc:postgresql://docker.for.mac.localhost:5444/payment-service \
  --changeLogFile=src/java/payment/payment-service/src/main/resources/payment_db_root_changelog.xml \
  --username=postgres --password=postgres --logLevel=debug  update

I am seeing lot of logs like below

[2022-08-29 19:52:38] FINE [liquibase.parser] Resolving XML entity name='null', publicId='null', baseURI='null', systemId='http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.5.xsd'
[2022-08-29 19:52:38] FINE [liquibase.parser] Found XML entity at jar:file:/liquibase/liquibase.jar!/www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.5.xsd
[2022-08-29 19:52:38] FINE [liquibase.parser] Resolving XML entity name='null', publicId='null', baseURI='null', systemId='http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.5.xsd'
[2022-08-29 19:52:38] FINE [liquibase.parser] Found XML entity at jar:file:/liquibase/liquibase.jar!/www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.5.xsd
[2022-08-29 19:52:38] FINE [liquibase.parser] Resolving XML entity name='null', publicId='null', baseURI='null', systemId='http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.5.xsd'
[2022-08-29 19:52:38] FINE [liquibase.parser] Found XML entity at jar:file:/liquibase/liquibase.jar!/www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.5.xsd
[2022-08-29 19:52:38] FINE [liquibase.parser] Resolving XML entity name='null', publicId='null', baseURI='null', systemId='http://www.liquibase.org/xml/ns/dbc

Then finally liquibase seems to crash with the below error

liquibase.exception.CommandExecutionException: liquibase.exception.LiquibaseException: Unexpected error running Liquibase: Unknown reason
	at liquibase.command.CommandScope.execute(CommandScope.java:153)
	at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:45)
	at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:15)
	at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
	at picocli.CommandLine.access$1300(CommandLine.java:145)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
	at picocli.CommandLine.execute(CommandLine.java:2078)
	at liquibase.integration.commandline.LiquibaseCommandLine.lambda$execute$1(LiquibaseCommandLine.java:315)
	at liquibase.Scope.child(Scope.java:186)
	at liquibase.Scope.child(Scope.java:162)
	at liquibase.integration.commandline.LiquibaseCommandLine.execute(LiquibaseCommandLine.java:287)
	at liquibase.integration.commandline.LiquibaseCommandLine.main(LiquibaseCommandLine.java:81)
Caused by: liquibase.exception.LiquibaseException: Unexpected error running Liquibase: Unknown reason
	at liquibase.integration.commandline.Main$1.run(Main.java:447)
	at liquibase.integration.commandline.Main$1.run(Main.java:225)
	at liquibase.Scope.child(Scope.java:186)
	at liquibase.Scope.child(Scope.java:162)
	at liquibase.integration.commandline.Main.run(Main.java:225)
	at liquibase.command.AbstractCliWrapperCommandStep.run(AbstractCliWrapperCommandStep.java:32)
	at liquibase.command.CommandScope.execute(CommandScope.java:147)
	... 14 more
Caused by: java.lang.StackOverflowError
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.ResourceBundle.getLoader(Unknown Source)
	at java.base/java.util.ResourceBundle.getBundleImpl(Unknown Source)
	at java.base/java.util.ResourceBundle.getBundleImpl(Unknown Source)
	at java.base/java.util.ResourceBundle.getBundle(Unknown Source)
	at java.xml/jdk.xml.internal.SecuritySupport.lambda$getResourceBundle$5(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.xml/jdk.xml.internal.SecuritySupport.getResourceBundle(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xpath.regex.RegexParser.setLocale(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xpath.regex.RegexParser.<init>(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xpath.regex.ParserForXMLSchema.<init>(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.setPattern(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.setPattern(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression.<init>(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.dv.xs.XSSimpleTypeDecl.applyFacets(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.dv.xs.XSSimpleTypeDecl.applyFacets(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDSimpleTypeTraverser.getSimpleType(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDSimpleTypeTraverser.traverseSimpleTypeDecl(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDSimpleTypeTraverser.traverseGlobal(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseGlobalDecl(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAttributeTraverser.traverseNamedAttr(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAttributeTraverser.traverseLocal(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAbstractTraverser.traverseAttrsAndAttrGrps(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.processComplexContent(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexTypeDecl(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseLocal(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseNamedElement(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseGlobal(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseSchemas(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.findSchemaGrammar(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	at liquibase.parser.core.xml.XMLChangeLogSAXParser.parseToNode(XMLChangeLogSAXParser.java:89)
	at liquibase.parser.core.xml.AbstractChangeLogParser.parse(AbstractChangeLogParser.java:15)
	at liquibase.changelog.DatabaseChangeLog.include(DatabaseChangeLog.java:593)
	at liquibase.changelog.DatabaseChangeLog.handleChildNode(DatabaseChangeLog.java:366)
	at liquibase.changelog.DatabaseChangeLog.load(DatabaseChangeLog.java:321)

I have put the entire log in the below location

Can someone let me know what is going wrong here?

I entered a wrong include causing a loop

1 Like