In DefaultQueryParametersSpanTagProvider when a query does not have any parameters, it throws following exception:
Caused by: java.lang.StringIndexOutOfBoundsException: Index -1 out of bounds for length 0
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:55)
at java.base/jdk.internal.util.Preconditions$1.apply(Preconditions.java:52)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:213)
at java.base/jdk.internal.util.Preconditions$4.apply(Preconditions.java:210)
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:98)
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106)
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302)
at java.base/java.lang.String.checkIndex(String.java:4557)
at java.base/java.lang.AbstractStringBuilder.charAt(AbstractStringBuilder.java:344)
at java.base/java.lang.StringBuilder.charAt(StringBuilder.java:91)
at net.ttddyy.dsproxy.listener.logging.AbstractQueryLogEntryCreator.chompIfEndWith(AbstractQueryLogEntryCreator.java:68)
at net.ttddyy.observation.tracing.DefaultQueryParametersSpanTagProvider.getParameters(DefaultQueryParametersSpanTagProvider.java:58)
at net.ttddyy.observation.tracing.DataSourceObservationListener.populateQueryContext(DataSourceObservationListener.java:127)
at net.ttddyy.observation.tracing.DataSourceObservationListener.startQueryObservation(DataSourceObservationListener.java:112)
at net.ttddyy.observation.tracing.DataSourceObservationListener.beforeQuery(DataSourceObservationListener.java:93)
at net.ttddyy.dsproxy.listener.ChainListener.beforeQuery(ChainListener.java:20)
at net.ttddyy.dsproxy.proxy.StatementProxyLogic.performQueryExecutionListener(StatementProxyLogic.java:308)
at net.ttddyy.dsproxy.proxy.StatementProxyLogic.access$700(StatementProxyLogic.java:37)
at net.ttddyy.dsproxy.proxy.StatementProxyLogic$1.execute(StatementProxyLogic.java:123)
at net.ttddyy.dsproxy.listener.MethodExecutionListenerUtils.invoke(MethodExecutionListenerUtils.java:42)
at net.ttddyy.dsproxy.proxy.StatementProxyLogic.invoke(StatementProxyLogic.java:120)
at net.ttddyy.dsproxy.proxy.jdk.StatementInvocationHandler.invoke(StatementInvocationHandler.java:34)
at jdk.proxy2/jdk.proxy2.$Proxy126.execute(Unknown Source)
at org.flywaydb.core.internal.jdbc.JdbcTemplate.executeStatement(JdbcTemplate.java:201)
at org.flywaydb.core.internal.sqlscript.ParsedSqlStatement.execute(ParsedSqlStatement.java:95)
at org.flywaydb.core.internal.sqlscript.DefaultSqlScriptExecutor.executeStatement(DefaultSqlScriptExecutor.java:210)
at org.flywaydb.core.internal.sqlscript.DefaultSqlScriptExecutor.execute(DefaultSqlScriptExecutor.java:126)
at org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory$1$1.call(JdbcTableSchemaHistory.java:117)
at org.flywaydb.core.internal.jdbc.TransactionalExecutionTemplate.execute(TransactionalExecutionTemplate.java:55)
at org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory$1.call(JdbcTableSchemaHistory.java:113)
at org.flywaydb.core.internal.jdbc.TableLockingExecutionTemplate$1.call(TableLockingExecutionTemplate.java:36)
at org.flywaydb.core.internal.jdbc.TransactionalExecutionTemplate.execute(TransactionalExecutionTemplate.java:55)
at org.flywaydb.core.internal.jdbc.TableLockingExecutionTemplate.execute(TableLockingExecutionTemplate.java:31)
at org.flywaydb.core.internal.database.base.Connection.lock(Connection.java:102)
at org.flywaydb.core.internal.schemahistory.JdbcTableSchemaHistory.create(JdbcTableSchemaHistory.java:103)
at org.flywaydb.core.Flyway.lambda$migrate$0(Flyway.java:173)
at org.flywaydb.core.FlywayExecutor.execute(FlywayExecutor.java:204)
at org.flywaydb.core.Flyway.migrate(Flyway.java:128)
at org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializer.afterPropertiesSet(FlywayMigrationInitializer.java:66)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1800)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1750)
... 19 common frames omitted
In
DefaultQueryParametersSpanTagProvider
when a query does not have any parameters, it throws following exception: