Skip to content

JdbcAppender using buffersize property, mysql JDBC driver and ColumnConfig's clob property with true occurs java.io.IOException : Stream closed #3127

@minseo300

Description

@minseo300

Description

When using the JdbcAppender with the bufferSize property, the MySQL JDBC driver, and the ColumnConfig's isClob property set to true, a java.io.IOException: Stream closed occurs. This issue does not happen when isClob is set to false or when using the MySQL JDBC driver with isClob set to true without the bufferSize property. Additionally, it does not occur with other JDBC drivers (such as Oracle or PostgreSQL) when using the bufferSize property and isClob set to true.

Upon analysis, when configuring the JdbcAppender with the bufferSize property and isClob set to true, the JdbcDatabaseManager.writeInternal() method sets a StringReader instance to the PreparedStatement using the setClob() API. If the current buffer size does not reach the limit, it calls statement.addBatch(), and if the buffer size reaches the limit, it calls statement.executeUpdate().

The StringReader object is closed at the end (in the "finally" block), regardless of whether the buffer is full or not. This raises a potential issue.

The ClientPreparedStatement (from the MySQL driver) uses the StringReader instance passed as an argument. In contrast, other drivers like Oracle create a new StringReader instance, so they do not share the instance. Therefore, if the JdbcDatabaseAppender closes the StringReader in the "finally" block, the StringReader is closed before statement.executeUpdate() is called, resulting in the IOException: Stream closed.

I am wondering if there is any reason that the Log4j2 JdbcDatabaseManager closes the StringReader in the "finally" block, or if this is simply a bug.

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="error">
    <Appenders>
        <JDBC name="databaseAppender" tableName="logging_event">
            <bufferSize>10</bufferSize>
            <DriverManager userName="root" password="1234" connectionString = "jdbc:mysql://localhost:3306/logging_test" driverClassName="com.mysql.jdbc.Driver" />
            <Column name="log_event_date" pattern="%d" />
            <Column name="logger_name" pattern="%c" />
            <Column name="log_level" pattern="%p"/>
            <Column name="thread_name" pattern="%t"/>
            <Column name="message" pattern="%message" isClob="true"/>
        </JDBC>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="databaseAppender"/>
        </Root>
    </Loggers>
</Configuration>

Configuration

**Version: 2.17.1

**Operating system: any

**JDK: 1.8

Logs

"C:\Program Files\Java\java-1.8.0-openjdk-1.8\bin\java.exe" -Dvisualvm.id=1582776983231300 -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2023.1\lib\idea_rt.jar=59652:C:\Program Files\JetBrains\IntelliJ IDEA 2023.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\charsets.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\ext\dnsns.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\ext\jaccess.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\ext\localedata.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\ext\nashorn.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\ext\sunec.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\ext\zipfs.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\jce.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\jfr.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\jsse.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\management-agent.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\resources.jar;C:\Program Files\Java\java-1.8.0-openjdk-1.8\jre\lib\rt.jar;C:\Users\Tmax\Desktop\tttttttttt\target\classes;C:\Users\Tmax\.m2\repository\org\springframework\boot\spring-boot-starter\2.4.5\spring-boot-starter-2.4.5.jar;C:\Users\Tmax\.m2\repository\org\springframework\boot\spring-boot\2.4.5\spring-boot-2.4.5.jar;C:\Users\Tmax\.m2\repository\org\springframework\spring-context\5.3.6\spring-context-5.3.6.jar;C:\Users\Tmax\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.4.5\spring-boot-autoconfigure-2.4.5.jar;C:\Users\Tmax\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\Tmax\.m2\repository\org\springframework\spring-core\5.3.6\spring-core-5.3.6.jar;C:\Users\Tmax\.m2\repository\org\springframework\spring-jcl\5.3.6\spring-jcl-5.3.6.jar;C:\Users\Tmax\.m2\repository\org\yaml\snakeyaml\1.27\snakeyaml-1.27.jar;C:\Users\Tmax\.m2\repository\org\projectlombok\lombok\1.18.30\lombok-1.18.30.jar;C:\Users\Tmax\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.4.5\spring-boot-starter-web-2.4.5.jar;C:\Users\Tmax\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.4.5\spring-boot-starter-json-2.4.5.jar;C:\Users\Tmax\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.11.4\jackson-databind-2.11.4.jar;C:\Users\Tmax\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.11.4\jackson-annotations-2.11.4.jar;C:\Users\Tmax\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.11.4\jackson-core-2.11.4.jar;C:\Users\Tmax\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.11.4\jackson-datatype-jdk8-2.11.4.jar;C:\Users\Tmax\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.11.4\jackson-datatype-jsr310-2.11.4.jar;C:\Users\Tmax\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.11.4\jackson-module-parameter-names-2.11.4.jar;C:\Users\Tmax\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.4.5\spring-boot-starter-tomcat-2.4.5.jar;C:\Users\Tmax\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.45\tomcat-embed-core-9.0.45.jar;C:\Users\Tmax\.m2\repository\org\glassfish\jakarta.el\3.0.3\jakarta.el-3.0.3.jar;C:\Users\Tmax\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.45\tomcat-embed-websocket-9.0.45.jar;C:\Users\Tmax\.m2\repository\org\springframework\spring-web\5.3.6\spring-web-5.3.6.jar;C:\Users\Tmax\.m2\repository\org\springframework\spring-beans\5.3.6\spring-beans-5.3.6.jar;C:\Users\Tmax\.m2\repository\org\springframework\spring-webmvc\5.3.6\spring-webmvc-5.3.6.jar;C:\Users\Tmax\.m2\repository\org\springframework\spring-aop\5.3.6\spring-aop-5.3.6.jar;C:\Users\Tmax\.m2\repository\org\springframework\spring-expression\5.3.6\spring-expression-5.3.6.jar;C:\Users\Tmax\.m2\repository\org\springframework\boot\spring-boot-starter-log4j2\2.4.5\spring-boot-starter-log4j2-2.4.5.jar;C:\Users\Tmax\.m2\repository\org\apache\logging\log4j\log4j-slf4j-impl\2.13.3\log4j-slf4j-impl-2.13.3.jar;C:\Users\Tmax\.m2\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;C:\Users\Tmax\.m2\repository\org\apache\logging\log4j\log4j-api\2.13.3\log4j-api-2.13.3.jar;C:\Users\Tmax\.m2\repository\org\apache\logging\log4j\log4j-core\2.13.3\log4j-core-2.13.3.jar;C:\Users\Tmax\.m2\repository\org\apache\logging\log4j\log4j-jul\2.13.3\log4j-jul-2.13.3.jar;C:\Users\Tmax\.m2\repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;C:\Users\Tmax\.m2\repository\mysql\mysql-connector-java\8.0.30\mysql-connector-java-8.0.30.jar;C:\Users\Tmax\.m2\repository\com\oracle\database\jdbc\ojdbc6\11.2.0.4\ojdbc6-11.2.0.4.jar;C:\Users\Tmax\.m2\repository\com\oracle\database\jdbc\ucp\19.8.0.0\ucp-19.8.0.0.jar;C:\Users\Tmax\.m2\repository\com\oracle\database\security\oraclepki\19.8.0.0\oraclepki-19.8.0.0.jar;C:\Users\Tmax\.m2\repository\com\oracle\database\security\osdt_cert\19.8.0.0\osdt_cert-19.8.0.0.jar;C:\Users\Tmax\.m2\repository\com\oracle\database\security\osdt_core\19.8.0.0\osdt_core-19.8.0.0.jar;C:\Users\Tmax\.m2\repository\com\oracle\database\ha\simplefan\19.8.0.0\simplefan-19.8.0.0.jar;C:\Users\Tmax\.m2\repository\com\oracle\database\ha\ons\19.8.0.0\ons-19.8.0.0.jar;C:\Users\Tmax\.m2\repository\org\postgresql\postgresql\42.7.4\postgresql-42.7.4.jar;C:\Users\Tmax\.m2\repository\org\checkerframework\checker-qual\3.42.0\checker-qual-3.42.0.jar" org.example.MainApplication

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.4.5)

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
2024-10-28 09:25:14,975 main ERROR Unable to write to database [JdbcManager{name=databaseAppender, bufferSize=10, tableName=logging_event, columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], columnMappings=[]}] for appender [databaseAppender]. org.apache.logging.log4j.core.appender.db.DbAppenderLoggingException: Failed to commit transaction logging event or flushing buffer [columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], sqlStatement=insert into logging_event (log_event_date,logger_name,log_level,thread_name,message) values (?,?,?,?,?), factoryData=FactoryData [connectionSource=jdbc:mysql://192.168.15.233:3306/logging_test, tableName=logging_event, columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], columnMappings=[], immediateFail=false, retry=true, reconnectIntervalMillis=5000, truncateStrings=true], connection=com.mysql.cj.jdbc.ConnectionImpl@5176d279, statement=com.mysql.cj.jdbc.ClientPreparedStatement: insert into logging_event (log_event_date,logger_name,log_level,thread_name,message) values (** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **), reconnector=null, isBatchSupported=true, columnMetaData={MESSAGE=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=message, nameKey=MESSAGE, label=message, displaySize=536870911, type=-1, typeName=LONGTEXT, className=java.lang.String, precision=536870911, scale=0, isStringType=true], THREAD_NAME=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=thread_name, nameKey=THREAD_NAME, label=thread_name, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOG_EVENT_DATE=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=log_event_date, nameKey=LOG_EVENT_DATE, label=log_event_date, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOGGER_NAME=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=logger_name, nameKey=LOGGER_NAME, label=logger_name, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOG_LEVEL=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=log_level, nameKey=LOG_LEVEL, label=log_level, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true]}]
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:565)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.flush(AbstractDatabaseManager.java:158)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.buffer(AbstractDatabaseManager.java:125)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.write(AbstractDatabaseManager.java:262)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.append(AbstractDatabaseAppender.java:110)
	at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
	at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:543)
	at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:502)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:412)
	at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)
	at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:153)
	at org.apache.logging.slf4j.Log4jLogger.log(Log4jLogger.java:376)
	at org.slf4j.bridge.SLF4JBridgeHandler.callLocationAwareLogger(SLF4JBridgeHandler.java:221)
	at org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:303)
	at java.util.logging.Logger.log(Logger.java:738)
	at java.util.logging.Logger.doLog(Logger.java:765)
	at java.util.logging.Logger.logp(Logger.java:931)
	at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173)
	at org.apache.juli.logging.DirectJDKLog.info(DirectJDKLog.java:116)
	at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:610)
	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1071)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.StandardService.addConnector(StandardService.java:239)
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:282)
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:213)
	at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:43)
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
	at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54)
	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
	at java.lang.Iterable.forEach(Iterable.java:75)
	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155)
	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123)
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:339)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
	at org.example.MainApplication.main(MainApplication.java:9)
Caused by: java.sql.BatchUpdateException: java.io.IOException: Stream closed
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.cj.util.Util.handleNewInstance(Util.java:192)
	at com.mysql.cj.util.Util.getInstance(Util.java:167)
	at com.mysql.cj.util.Util.getInstance(Util.java:174)
	at com.mysql.cj.jdbc.exceptions.SQLError.createBatchUpdateException(SQLError.java:224)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:816)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:418)
	at com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:795)
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:553)
	... 45 more
Caused by: java.sql.SQLException: java.io.IOException: Stream closed
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1084)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:795)
	... 48 more
Caused by: java.io.IOException: Stream closed
	at java.io.StringReader.ensureOpen(StringReader.java:56)
	at java.io.StringReader.read(StringReader.java:90)
	at java.io.Reader.read(Reader.java:140)
	at com.mysql.cj.protocol.a.ReaderValueEncoder.readBytes(ReaderValueEncoder.java:79)
	at com.mysql.cj.protocol.a.ReaderValueEncoder.getBytes(ReaderValueEncoder.java:49)
	at com.mysql.cj.protocol.a.AbstractValueEncoder.encodeAsText(AbstractValueEncoder.java:92)
	at com.mysql.cj.NativeQueryBindValue.writeAsText(NativeQueryBindValue.java:383)
	at com.mysql.cj.protocol.a.NativeMessageBuilder.buildComQuery(NativeMessageBuilder.java:175)
	at com.mysql.cj.protocol.a.NativeMessageBuilder.buildComQuery(NativeMessageBuilder.java:51)
	at com.mysql.cj.ClientPreparedQuery.fillSendPacket(ClientPreparedQuery.java:222)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1047)
	... 49 more

2024-10-28 09:25:14,977 main ERROR An exception occurred processing Appender databaseAppender org.apache.logging.log4j.core.appender.db.DbAppenderLoggingException: Failed to commit transaction logging event or flushing buffer [columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], sqlStatement=insert into logging_event (log_event_date,logger_name,log_level,thread_name,message) values (?,?,?,?,?), factoryData=FactoryData [connectionSource=jdbc:mysql://192.168.15.233:3306/logging_test, tableName=logging_event, columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], columnMappings=[], immediateFail=false, retry=true, reconnectIntervalMillis=5000, truncateStrings=true], connection=com.mysql.cj.jdbc.ConnectionImpl@5176d279, statement=com.mysql.cj.jdbc.ClientPreparedStatement: insert into logging_event (log_event_date,logger_name,log_level,thread_name,message) values (** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **), reconnector=null, isBatchSupported=true, columnMetaData={MESSAGE=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=message, nameKey=MESSAGE, label=message, displaySize=536870911, type=-1, typeName=LONGTEXT, className=java.lang.String, precision=536870911, scale=0, isStringType=true], THREAD_NAME=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=thread_name, nameKey=THREAD_NAME, label=thread_name, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOG_EVENT_DATE=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=log_event_date, nameKey=LOG_EVENT_DATE, label=log_event_date, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOGGER_NAME=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=logger_name, nameKey=LOGGER_NAME, label=logger_name, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOG_LEVEL=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=log_level, nameKey=LOG_LEVEL, label=log_level, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true]}]
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:565)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.flush(AbstractDatabaseManager.java:158)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.buffer(AbstractDatabaseManager.java:125)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.write(AbstractDatabaseManager.java:262)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.append(AbstractDatabaseAppender.java:110)
	at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
	at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:543)
	at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:502)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:412)
	at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)
	at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:153)
	at org.apache.logging.slf4j.Log4jLogger.log(Log4jLogger.java:376)
	at org.slf4j.bridge.SLF4JBridgeHandler.callLocationAwareLogger(SLF4JBridgeHandler.java:221)
	at org.slf4j.bridge.SLF4JBridgeHandler.publish(SLF4JBridgeHandler.java:303)
	at java.util.logging.Logger.log(Logger.java:738)
	at java.util.logging.Logger.doLog(Logger.java:765)
	at java.util.logging.Logger.logp(Logger.java:931)
	at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173)
	at org.apache.juli.logging.DirectJDKLog.info(DirectJDKLog.java:116)
	at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:610)
	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1071)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.StandardService.addConnector(StandardService.java:239)
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:282)
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:213)
	at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:43)
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
	at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54)
	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
	at java.lang.Iterable.forEach(Iterable.java:75)
	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155)
	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123)
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:339)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
	at org.example.MainApplication.main(MainApplication.java:9)
Caused by: java.sql.BatchUpdateException: java.io.IOException: Stream closed
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.cj.util.Util.handleNewInstance(Util.java:192)
	at com.mysql.cj.util.Util.getInstance(Util.java:167)
	at com.mysql.cj.util.Util.getInstance(Util.java:174)
	at com.mysql.cj.jdbc.exceptions.SQLError.createBatchUpdateException(SQLError.java:224)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:816)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:418)
	at com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:795)
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:553)
	... 45 more
Caused by: java.sql.SQLException: java.io.IOException: Stream closed
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1084)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:795)
	... 48 more
Caused by: java.io.IOException: Stream closed
	at java.io.StringReader.ensureOpen(StringReader.java:56)
	at java.io.StringReader.read(StringReader.java:90)
	at java.io.Reader.read(Reader.java:140)
	at com.mysql.cj.protocol.a.ReaderValueEncoder.readBytes(ReaderValueEncoder.java:79)
	at com.mysql.cj.protocol.a.ReaderValueEncoder.getBytes(ReaderValueEncoder.java:49)
	at com.mysql.cj.protocol.a.AbstractValueEncoder.encodeAsText(AbstractValueEncoder.java:92)
	at com.mysql.cj.NativeQueryBindValue.writeAsText(NativeQueryBindValue.java:383)
	at com.mysql.cj.protocol.a.NativeMessageBuilder.buildComQuery(NativeMessageBuilder.java:175)
	at com.mysql.cj.protocol.a.NativeMessageBuilder.buildComQuery(NativeMessageBuilder.java:51)
	at com.mysql.cj.ClientPreparedQuery.fillSendPacket(ClientPreparedQuery.java:222)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1047)
	... 49 more

2024-10-28 09:25:15,007 main ERROR Unable to write to database [JdbcManager{name=databaseAppender, bufferSize=10, tableName=logging_event, columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], columnMappings=[]}] for appender [databaseAppender]. org.apache.logging.log4j.core.appender.db.DbAppenderLoggingException: Failed to commit transaction logging event or flushing buffer [columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], sqlStatement=insert into logging_event (log_event_date,logger_name,log_level,thread_name,message) values (?,?,?,?,?), factoryData=FactoryData [connectionSource=jdbc:mysql://192.168.15.233:3306/logging_test, tableName=logging_event, columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], columnMappings=[], immediateFail=false, retry=true, reconnectIntervalMillis=5000, truncateStrings=true], connection=com.mysql.cj.jdbc.ConnectionImpl@61d34b4, statement=com.mysql.cj.jdbc.ClientPreparedStatement: insert into logging_event (log_event_date,logger_name,log_level,thread_name,message) values (** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **), reconnector=null, isBatchSupported=true, columnMetaData={MESSAGE=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=message, nameKey=MESSAGE, label=message, displaySize=536870911, type=-1, typeName=LONGTEXT, className=java.lang.String, precision=536870911, scale=0, isStringType=true], THREAD_NAME=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=thread_name, nameKey=THREAD_NAME, label=thread_name, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOG_EVENT_DATE=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=log_event_date, nameKey=LOG_EVENT_DATE, label=log_event_date, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOGGER_NAME=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=logger_name, nameKey=LOGGER_NAME, label=logger_name, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOG_LEVEL=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=log_level, nameKey=LOG_LEVEL, label=log_level, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true]}]
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:565)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.flush(AbstractDatabaseManager.java:158)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.buffer(AbstractDatabaseManager.java:125)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.write(AbstractDatabaseManager.java:262)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.append(AbstractDatabaseAppender.java:110)
	at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
	at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:543)
	at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:502)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:460)
	at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:82)
	at org.apache.logging.log4j.core.Logger.log(Logger.java:161)
	at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2198)
	at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2152)
	at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2135)
	at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2016)
	at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1875)
	at org.apache.commons.logging.LogAdapter$Log4jLog.log(LogAdapter.java:266)
	at org.apache.commons.logging.LogAdapter$Log4jLog.info(LogAdapter.java:230)
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:220)
	at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:43)
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
	at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54)
	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
	at java.lang.Iterable.forEach(Iterable.java:75)
	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155)
	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123)
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:339)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
	at org.example.MainApplication.main(MainApplication.java:9)
Caused by: java.sql.BatchUpdateException: java.io.IOException: Stream closed
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.cj.util.Util.handleNewInstance(Util.java:192)
	at com.mysql.cj.util.Util.getInstance(Util.java:167)
	at com.mysql.cj.util.Util.getInstance(Util.java:174)
	at com.mysql.cj.jdbc.exceptions.SQLError.createBatchUpdateException(SQLError.java:224)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:816)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:418)
	at com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:795)
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:553)
	... 39 more
Caused by: java.sql.SQLException: java.io.IOException: Stream closed
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1084)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:795)
	... 42 more
Caused by: java.io.IOException: Stream closed
	at java.io.StringReader.ensureOpen(StringReader.java:56)
	at java.io.StringReader.read(StringReader.java:90)
	at java.io.Reader.read(Reader.java:140)
	at com.mysql.cj.protocol.a.ReaderValueEncoder.readBytes(ReaderValueEncoder.java:79)
	at com.mysql.cj.protocol.a.ReaderValueEncoder.getBytes(ReaderValueEncoder.java:49)
	at com.mysql.cj.protocol.a.AbstractValueEncoder.encodeAsText(AbstractValueEncoder.java:92)
	at com.mysql.cj.NativeQueryBindValue.writeAsText(NativeQueryBindValue.java:383)
	at com.mysql.cj.protocol.a.NativeMessageBuilder.buildComQuery(NativeMessageBuilder.java:175)
	at com.mysql.cj.protocol.a.NativeMessageBuilder.buildComQuery(NativeMessageBuilder.java:51)
	at com.mysql.cj.ClientPreparedQuery.fillSendPacket(ClientPreparedQuery.java:222)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1047)
	... 43 more

2024-10-28 09:25:15,007 main ERROR An exception occurred processing Appender databaseAppender org.apache.logging.log4j.core.appender.db.DbAppenderLoggingException: Failed to commit transaction logging event or flushing buffer [columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], sqlStatement=insert into logging_event (log_event_date,logger_name,log_level,thread_name,message) values (?,?,?,?,?), factoryData=FactoryData [connectionSource=jdbc:mysql://192.168.15.233:3306/logging_test, tableName=logging_event, columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], columnMappings=[], immediateFail=false, retry=true, reconnectIntervalMillis=5000, truncateStrings=true], connection=com.mysql.cj.jdbc.ConnectionImpl@61d34b4, statement=com.mysql.cj.jdbc.ClientPreparedStatement: insert into logging_event (log_event_date,logger_name,log_level,thread_name,message) values (** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **), reconnector=null, isBatchSupported=true, columnMetaData={MESSAGE=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=message, nameKey=MESSAGE, label=message, displaySize=536870911, type=-1, typeName=LONGTEXT, className=java.lang.String, precision=536870911, scale=0, isStringType=true], THREAD_NAME=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=thread_name, nameKey=THREAD_NAME, label=thread_name, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOG_EVENT_DATE=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=log_event_date, nameKey=LOG_EVENT_DATE, label=log_event_date, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOGGER_NAME=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=logger_name, nameKey=LOGGER_NAME, label=logger_name, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOG_LEVEL=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=log_level, nameKey=LOG_LEVEL, label=log_level, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true]}]
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:565)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.flush(AbstractDatabaseManager.java:158)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.buffer(AbstractDatabaseManager.java:125)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.write(AbstractDatabaseManager.java:262)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.append(AbstractDatabaseAppender.java:110)
	at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
	at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:543)
	at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:502)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:460)
	at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:82)
	at org.apache.logging.log4j.core.Logger.log(Logger.java:161)
	at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2198)
	at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2152)
	at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2135)
	at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2016)
	at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1875)
	at org.apache.commons.logging.LogAdapter$Log4jLog.log(LogAdapter.java:266)
	at org.apache.commons.logging.LogAdapter$Log4jLog.info(LogAdapter.java:230)
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:220)
	at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:43)
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
	at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54)
	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
	at java.lang.Iterable.forEach(Iterable.java:75)
	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155)
	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123)
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:339)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
	at org.example.MainApplication.main(MainApplication.java:9)
Caused by: java.sql.BatchUpdateException: java.io.IOException: Stream closed
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.cj.util.Util.handleNewInstance(Util.java:192)
	at com.mysql.cj.util.Util.getInstance(Util.java:167)
	at com.mysql.cj.util.Util.getInstance(Util.java:174)
	at com.mysql.cj.jdbc.exceptions.SQLError.createBatchUpdateException(SQLError.java:224)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:816)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:418)
	at com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:795)
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:553)
	... 39 more
Caused by: java.sql.SQLException: java.io.IOException: Stream closed
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1084)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:795)
	... 42 more
Caused by: java.io.IOException: Stream closed
	at java.io.StringReader.ensureOpen(StringReader.java:56)
	at java.io.StringReader.read(StringReader.java:90)
	at java.io.Reader.read(Reader.java:140)
	at com.mysql.cj.protocol.a.ReaderValueEncoder.readBytes(ReaderValueEncoder.java:79)
	at com.mysql.cj.protocol.a.ReaderValueEncoder.getBytes(ReaderValueEncoder.java:49)
	at com.mysql.cj.protocol.a.AbstractValueEncoder.encodeAsText(AbstractValueEncoder.java:92)
	at com.mysql.cj.NativeQueryBindValue.writeAsText(NativeQueryBindValue.java:383)
	at com.mysql.cj.protocol.a.NativeMessageBuilder.buildComQuery(NativeMessageBuilder.java:175)
	at com.mysql.cj.protocol.a.NativeMessageBuilder.buildComQuery(NativeMessageBuilder.java:51)
	at com.mysql.cj.ClientPreparedQuery.fillSendPacket(ClientPreparedQuery.java:222)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1047)
	... 43 more

2024-10-28 09:25:15,031 main ERROR Unable to write to database [JdbcManager{name=databaseAppender, bufferSize=10, tableName=logging_event, columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], columnMappings=[]}] for appender [databaseAppender]. org.apache.logging.log4j.core.appender.db.DbAppenderLoggingException: Failed to commit transaction logging event or flushing buffer [columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], sqlStatement=insert into logging_event (log_event_date,logger_name,log_level,thread_name,message) values (?,?,?,?,?), factoryData=FactoryData [connectionSource=jdbc:mysql://192.168.15.233:3306/logging_test, tableName=logging_event, columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], columnMappings=[], immediateFail=false, retry=true, reconnectIntervalMillis=5000, truncateStrings=true], connection=com.mysql.cj.jdbc.ConnectionImpl@5fb65013, statement=com.mysql.cj.jdbc.ClientPreparedStatement: insert into logging_event (log_event_date,logger_name,log_level,thread_name,message) values (** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **), reconnector=null, isBatchSupported=true, columnMetaData={MESSAGE=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=message, nameKey=MESSAGE, label=message, displaySize=536870911, type=-1, typeName=LONGTEXT, className=java.lang.String, precision=536870911, scale=0, isStringType=true], THREAD_NAME=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=thread_name, nameKey=THREAD_NAME, label=thread_name, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOG_EVENT_DATE=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=log_event_date, nameKey=LOG_EVENT_DATE, label=log_event_date, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOGGER_NAME=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=logger_name, nameKey=LOGGER_NAME, label=logger_name, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOG_LEVEL=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=log_level, nameKey=LOG_LEVEL, label=log_level, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true]}]
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:565)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.flush(AbstractDatabaseManager.java:158)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.buffer(AbstractDatabaseManager.java:125)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.write(AbstractDatabaseManager.java:262)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.append(AbstractDatabaseAppender.java:110)
	at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
	at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:543)
	at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:502)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:460)
	at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:82)
	at org.apache.logging.log4j.core.Logger.log(Logger.java:161)
	at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2198)
	at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2152)
	at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2135)
	at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:1994)
	at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1852)
	at org.apache.commons.logging.LogAdapter$Log4jLog.log(LogAdapter.java:270)
	at org.apache.commons.logging.LogAdapter$Log4jLog.info(LogAdapter.java:230)
	at org.springframework.boot.StartupInfoLogger.logStarted(StartupInfoLogger.java:61)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:343)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
	at org.example.MainApplication.main(MainApplication.java:9)
Caused by: java.sql.BatchUpdateException: java.io.IOException: Stream closed
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.cj.util.Util.handleNewInstance(Util.java:192)
	at com.mysql.cj.util.Util.getInstance(Util.java:167)
	at com.mysql.cj.util.Util.getInstance(Util.java:174)
	at com.mysql.cj.jdbc.exceptions.SQLError.createBatchUpdateException(SQLError.java:224)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:816)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:418)
	at com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:795)
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:553)
	... 26 more
Caused by: java.sql.SQLException: java.io.IOException: Stream closed
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1084)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:795)
	... 29 more
Caused by: java.io.IOException: Stream closed
	at java.io.StringReader.ensureOpen(StringReader.java:56)
	at java.io.StringReader.read(StringReader.java:90)
	at java.io.Reader.read(Reader.java:140)
	at com.mysql.cj.protocol.a.ReaderValueEncoder.readBytes(ReaderValueEncoder.java:79)
	at com.mysql.cj.protocol.a.ReaderValueEncoder.getBytes(ReaderValueEncoder.java:49)
	at com.mysql.cj.protocol.a.AbstractValueEncoder.encodeAsText(AbstractValueEncoder.java:92)
	at com.mysql.cj.NativeQueryBindValue.writeAsText(NativeQueryBindValue.java:383)
	at com.mysql.cj.protocol.a.NativeMessageBuilder.buildComQuery(NativeMessageBuilder.java:175)
	at com.mysql.cj.protocol.a.NativeMessageBuilder.buildComQuery(NativeMessageBuilder.java:51)
	at com.mysql.cj.ClientPreparedQuery.fillSendPacket(ClientPreparedQuery.java:222)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1047)
	... 30 more

2024-10-28 09:25:15,031 main ERROR An exception occurred processing Appender databaseAppender org.apache.logging.log4j.core.appender.db.DbAppenderLoggingException: Failed to commit transaction logging event or flushing buffer [columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], sqlStatement=insert into logging_event (log_event_date,logger_name,log_level,thread_name,message) values (?,?,?,?,?), factoryData=FactoryData [connectionSource=jdbc:mysql://192.168.15.233:3306/logging_test, tableName=logging_event, columnConfigs=[{ name=log_event_date, layout=%d, literal=null, timestamp=false }, { name=logger_name, layout=%c, literal=null, timestamp=false }, { name=log_level, layout=%p, literal=null, timestamp=false }, { name=thread_name, layout=%t, literal=null, timestamp=false }, { name=message, layout=%message, literal=null, timestamp=false }], columnMappings=[], immediateFail=false, retry=true, reconnectIntervalMillis=5000, truncateStrings=true], connection=com.mysql.cj.jdbc.ConnectionImpl@5fb65013, statement=com.mysql.cj.jdbc.ClientPreparedStatement: insert into logging_event (log_event_date,logger_name,log_level,thread_name,message) values (** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **,** NOT SPECIFIED **), reconnector=null, isBatchSupported=true, columnMetaData={MESSAGE=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=message, nameKey=MESSAGE, label=message, displaySize=536870911, type=-1, typeName=LONGTEXT, className=java.lang.String, precision=536870911, scale=0, isStringType=true], THREAD_NAME=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=thread_name, nameKey=THREAD_NAME, label=thread_name, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOG_EVENT_DATE=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=log_event_date, nameKey=LOG_EVENT_DATE, label=log_event_date, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOGGER_NAME=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=logger_name, nameKey=LOGGER_NAME, label=logger_name, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true], LOG_LEVEL=ColumnMetaData [schemaName=, catalogName=logging_test, tableName=logging_event, name=log_level, nameKey=LOG_LEVEL, label=log_level, displaySize=254, type=12, typeName=VARCHAR, className=java.lang.String, precision=254, scale=0, isStringType=true]}]
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:565)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.flush(AbstractDatabaseManager.java:158)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.buffer(AbstractDatabaseManager.java:125)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.write(AbstractDatabaseManager.java:262)
	at org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.append(AbstractDatabaseAppender.java:110)
	at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
	at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
	at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:543)
	at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:502)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:485)
	at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:460)
	at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:82)
	at org.apache.logging.log4j.core.Logger.log(Logger.java:161)
	at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2198)
	at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2152)
	at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2135)
	at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:1994)
	at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1852)
	at org.apache.commons.logging.LogAdapter$Log4jLog.log(LogAdapter.java:270)
	at org.apache.commons.logging.LogAdapter$Log4jLog.info(LogAdapter.java:230)
	at org.springframework.boot.StartupInfoLogger.logStarted(StartupInfoLogger.java:61)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:343)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1340)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
	at org.example.MainApplication.main(MainApplication.java:9)
Caused by: java.sql.BatchUpdateException: java.io.IOException: Stream closed
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.cj.util.Util.handleNewInstance(Util.java:192)
	at com.mysql.cj.util.Util.getInstance(Util.java:167)
	at com.mysql.cj.util.Util.getInstance(Util.java:174)
	at com.mysql.cj.jdbc.exceptions.SQLError.createBatchUpdateException(SQLError.java:224)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:816)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:418)
	at com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:795)
	at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.commitAndClose(JdbcDatabaseManager.java:553)
	... 26 more
Caused by: java.sql.SQLException: java.io.IOException: Stream closed
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1084)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchSerially(ClientPreparedStatement.java:795)
	... 29 more
Caused by: java.io.IOException: Stream closed
	at java.io.StringReader.ensureOpen(StringReader.java:56)
	at java.io.StringReader.read(StringReader.java:90)
	at java.io.Reader.read(Reader.java:140)
	at com.mysql.cj.protocol.a.ReaderValueEncoder.readBytes(ReaderValueEncoder.java:79)
	at com.mysql.cj.protocol.a.ReaderValueEncoder.getBytes(ReaderValueEncoder.java:49)
	at com.mysql.cj.protocol.a.AbstractValueEncoder.encodeAsText(AbstractValueEncoder.java:92)
	at com.mysql.cj.NativeQueryBindValue.writeAsText(NativeQueryBindValue.java:383)
	at com.mysql.cj.protocol.a.NativeMessageBuilder.buildComQuery(NativeMessageBuilder.java:175)
	at com.mysql.cj.protocol.a.NativeMessageBuilder.buildComQuery(NativeMessageBuilder.java:51)
	at com.mysql.cj.ClientPreparedQuery.fillSendPacket(ClientPreparedQuery.java:222)
	at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1047)
	... 30 more


Reproduction

[An isolated test reproducing the test.
JUnit tests similar to the ones in the code base are extremely appreciated.]

Metadata

Metadata

Assignees

No one assigned

    Labels

    appenders:JDBCIssue concerning the JDBC appenderbugIncorrect, unexpected, or unintended behavior of existing codegood first issueIssues that are good for contributors looking to get started

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions