Buggy code:
public class LiquibaseServletListener implements ServletContextListener { private static final String JAVA_COMP_ENV = "java:comp//env" ; private static final String LIQUIBASE_CHANGELOG = "liquibase.changelog" ; private static final String LIQUIBASE_CONTEXTS = "liquibase.contexts" ; private static final String LIQUIBASE_LABELS = "liquibase.labels" ; private static final String LIQUIBASE_DATASOURCE = "liquibase.datasource" ; private static final String LIQUIBASE_HOST_EXCLUDES = "liquibase.host.excludes" ; private static final String LIQUIBASE_HOST_INCLUDES = "liquibase.host.includes" ; private static final String LIQUIBASE_ONERROR_FAIL = "liquibase.onerror.fail" ; private static final String LIQUIBASE_PARAMETER = "liquibase.parameter" ; private static final String LIQUIBASE_SCHEMA_DEFAULT = "liquibase.schema.default" ; private String changeLogFile ; private String dataSourceName ; private String contexts ; private String labels ; private String defaultSchema ; private String hostName ; private LiquibaseServletListener . ServletValueContainer servletValueContainer ; public String getChangeLogFile ( ) { } public void setContexts ( String ctxt ) { } public String getContexts ( ) { } public String getLabels ( ) { } public void setLabels ( String labels ) { } public void setChangeLogFile ( String changeLogFile ) { } public String getDataSource ( ) { } public String getDefaultSchema ( ) { } public void setDataSource ( String dataSource ) { } @ Override public void contextInitialized ( ServletContextEvent servletContextEvent ) { } private boolean checkPreconditions ( ServletContext servletContext , InitialContext ic ) { } private void executeUpdate ( ServletContext servletContext , InitialContext ic ) throws SQLException , NamingException , LiquibaseException { setDataSource ( ( ( String ) ( servletValueContainer . getValue ( LiquibaseServletListener . LIQUIBASE_DATASOURCE ) ) ) ) ; if ( ( getDataSource ( ) ) == null ) { throw new RuntimeException ( ( ( "Cannot<seq2seq4repair_space>run<seq2seq4repair_space>Liquibase,<seq2seq4repair_space>" + ( LiquibaseServletListener . LIQUIBASE_DATASOURCE ) ) + "<seq2seq4repair_space>is<seq2seq4repair_space>not<seq2seq4repair_space>set" ) ) ; } setChangeLogFile ( ( ( String ) ( servletValueContainer . getValue ( LiquibaseServletListener . LIQUIBASE_CHANGELOG ) ) ) ) ; if ( ( getChangeLogFile ( ) ) == null ) { throw new RuntimeException ( ( ( "Cannot<seq2seq4repair_space>run<seq2seq4repair_space>Liquibase,<seq2seq4repair_space>" + ( LiquibaseServletListener . LIQUIBASE_CHANGELOG ) ) + "<seq2seq4repair_space>is<seq2seq4repair_space>not<seq2seq4repair_space>set" ) ) ; } setContexts ( ( ( String ) ( servletValueContainer . getValue ( LiquibaseServletListener . LIQUIBASE_CONTEXTS ) ) ) ) ; setLabels ( ( ( String ) ( servletValueContainer . getValue ( LiquibaseServletListener . LIQUIBASE_LABELS ) ) ) ) ; this . defaultSchema = StringUtils . trimToNull ( ( ( String ) ( servletValueContainer . getValue ( LiquibaseServletListener . LIQUIBASE_SCHEMA_DEFAULT ) ) ) ) ; Connection connection = null ; Database database = null ; try { DataSource dataSource = ( ( DataSource ) ( ic . lookup ( this . dataSourceName ) ) ) ; connection = dataSource . getConnection ( ) ; Thread currentThread = Thread . currentThread ( ) ; ClassLoader contextClassLoader = currentThread . getContextClassLoader ( ) ; ResourceAccessor threadClFO = new ClassLoaderResourceAccessor ( contextClassLoader ) ; ResourceAccessor clFO = new ClassLoaderResourceAccessor ( ) ; ResourceAccessor fsFO = new FileSystemResourceAccessor ( ) ; database = DatabaseFactory . getInstance ( ) . findCorrectDatabaseImplementation ( new JdbcConnection ( connection ) ) ; database . setDefaultSchemaName ( getDefaultSchema ( ) ) ; Liquibase liquibase = new Liquibase ( getChangeLogFile ( ) , new liquibase . resource . CompositeResourceAccessor ( clFO , fsFO , threadClFO ) , database ) ; @ SuppressWarnings ( "unchecked" ) Enumeration < String > initParameters = servletContext . getInitParameterNames ( ) ; while ( initParameters . hasMoreElements ( ) ) { String name = initParameters . nextElement ( ) . trim ( ) ; if ( name . startsWith ( ( ( LiquibaseServletListener . LIQUIBASE_PARAMETER ) + "." ) ) ) { <START_BUG> liquibase . setChangeLogParameter ( name . substring ( LiquibaseServletListener . LIQUIBASE_PARAMETER . length ( ) ) , servletValueContainer . getValue ( name ) ) ; <END_BUG> } } liquibase . update ( new Contexts ( getContexts ( ) ) , new LabelExpression ( getLabels ( ) ) ) ; } finally { if ( database != null ) { database . close ( ) ; } else if ( connection != null ) { connection . close ( ) ; } } } @ Override public void contextDestroyed ( ServletContextEvent servletContextEvent ) { } protected class ServletValueContainer implements ConfigurationValueProvider { private ServletContext servletContext ; private InitialContext initialContext ; public ServletValueContainer ( ServletContext servletContext , InitialContext initialContext ) { } @ Override public String describeValueLookupLogic ( ConfigurationProperty property ) { } @ Override public Object getValue ( String namespace , String property ) { } public Object getValue ( String prefixAndProperty ) { } } No newline ; at end ; of file ; }

Fix:
liquibase . setChangeLogParameter ( name . substring ( ( ( LiquibaseServletListener . LIQUIBASE_PARAMETER . length ( ) ) + 1 ) ) , servletValueContainer . getValue ( name ) ) ;