From ac7af95c057e514830e378f64354e6dedf249c65 Mon Sep 17 00:00:00 2001 From: djeon Date: Sat, 25 Oct 2025 16:32:37 +0900 Subject: [PATCH 1/3] for merge --- build/reports/problems/problems-report.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/reports/problems/problems-report.html b/build/reports/problems/problems-report.html index fa25ae2..3f0ed4f 100644 --- a/build/reports/problems/problems-report.html +++ b/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ code + .copy-button { From 3c7ea9d0139d299036ab4de7d4a390ee54d039a4 Mon Sep 17 00:00:00 2001 From: djeon Date: Sun, 26 Oct 2025 00:15:10 +0900 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20redis=20=EC=84=A4=EC=A0=95=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EB=B0=8F=20Event=20=EB=B0=9C=ED=96=89=20=ED=8F=AC?= =?UTF-8?q?=EB=A7=B7=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- meeting/build.gradle | 3 + meeting/logs/meeting-service.log | 2107 +---------------- .../logs/meeting-service.log.2025-10-25.0.gz | Bin 0 -> 132595 bytes .../meeting/infra/cache/CacheConfig.java | 57 +- .../meeting/infra/config/RedisConfig.java | 129 + .../event/publisher/EventHubPublisher.java | 2 +- .../event/publisher/NoOpEventPublisher.java | 2 +- 7 files changed, 178 insertions(+), 2122 deletions(-) create mode 100644 meeting/logs/meeting-service.log.2025-10-25.0.gz create mode 100644 meeting/src/main/java/com/unicorn/hgzero/meeting/infra/config/RedisConfig.java diff --git a/meeting/build.gradle b/meeting/build.gradle index f85d3aa..3a8905f 100644 --- a/meeting/build.gradle +++ b/meeting/build.gradle @@ -18,6 +18,9 @@ task printEnv { } dependencies { + // Module dependencies + implementation project(':notification') + // WebSocket implementation 'org.springframework.boot:spring-boot-starter-websocket' implementation 'org.springframework.boot:spring-boot-starter-reactor-netty' diff --git a/meeting/logs/meeting-service.log b/meeting/logs/meeting-service.log index c79b21a..75cb87e 100644 --- a/meeting/logs/meeting-service.log +++ b/meeting/logs/meeting-service.log @@ -1,515 +1,12 @@ -2025-10-25 00:00:14 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1h4m59s88ms). -2025-10-25 01:07:07 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1h6m52s776ms). -2025-10-25 02:14:32 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1h7m25s700ms). -2025-10-25 03:20:12 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1h5m40s18ms). -2025-10-25 04:25:55 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1h5m43s2ms). -2025-10-25 05:32:15 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1h6m20s25ms). -2025-10-25 06:57:03 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1h24m48s94ms). -2025-10-25 08:03:53 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1h6m49s909ms). -2025-10-25 09:10:20 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1h6m27s69ms). -2025-10-25 10:26:50 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1h16m29s675ms). -2025-10-25 11:32:20 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1h5m29s925ms). -2025-10-25 12:00:27 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=28m6s957ms). -2025-10-25 12:09:17 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:09:17 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_f30ea1_1761292853677","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} -2025-10-25 12:09:17 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:09:17 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-25 12:09:17 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@2fb3c930] for TypeConfiguration -2025-10-25 12:09:17 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@6a39100d] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@2fb3c930] -2025-10-25 12:09:17 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-25 12:09:17 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2025-10-25 12:14:57 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 54657 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) -2025-10-25 12:14:57 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 -2025-10-25 12:14:57 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" -2025-10-25 12:14:57 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-25 12:14:57 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-25 12:14:57 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 98 ms. Found 6 JPA repository interfaces. -2025-10-25 12:14:57 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-25 12:14:57 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-25 12:14:57 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-25 12:14:57 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-25 12:14:57 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesSectionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-25 12:14:57 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.SessionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-25 12:14:57 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TemplateJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-25 12:14:57 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TodoJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-25 12:14:57 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 17 ms. Found 0 Redis repository interfaces. -2025-10-25 12:14:58 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) -2025-10-25 12:14:58 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-25 12:14:58 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] -2025-10-25 12:14:58 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-25 12:14:58 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1079 ms -2025-10-25 12:14:58 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-25 12:14:58 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final -2025-10-25 12:14:58 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@53df7e67 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@53df7e67 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@53df7e67 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@3d4b45b -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@3d4b45b -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@4d0b276e -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@4d0b276e -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@31531d0d -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@31531d0d -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@19d76106 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@19d76106 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@19d76106 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@3f87780b -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@3f87780b -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@3f87780b -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@2ba318c2 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@2ba318c2 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@231d3ce -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@204c5ddf -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@204c5ddf -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@240f2efd -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@175957b6 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1b7a4930 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1b7a4930 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@1b7a4930 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@591a4d25 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@591a4d25 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@591a4d25 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@4bfe83d -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@4bfe83d -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@4bfe83d -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@5906ebfb -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@5906ebfb -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@5906ebfb -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@10fc1a22 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@10fc1a22 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@10fc1a22 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@1b841e7d -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@1b841e7d -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@6081f330 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@6081f330 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@eb695e8 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@eb695e8 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@eb695e8 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@7eebb316 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@45273d40 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@45273d40 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@2a504ea7 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@10f397d0 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@10f397d0 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@10f397d0 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@33a3e5db -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@4f9213d2 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@679f59f1 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@6b5e1fc5 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@6b5e1fc5 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@47ffa248 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@47ffa248 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@18ac25e6 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@5e1a7d3 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@1eda309d -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@248d2cec -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@5d77be8e -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@55a055cc -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@1ab1d93d -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@1ab1d93d -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@57167ccb -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@57167ccb -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@37753b69 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@37753b69 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@602c167e -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@602c167e -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@74c04377 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@74c04377 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@10d49900 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@e645600 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@e7b3e54 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@e7b3e54 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@78d61f17 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@4cfe9594 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@60861e5d -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@37d81587 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@37d81587 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7f3e9acc -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@47d4e28a -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@177068db -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@177068db -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@60f3239f -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@60f3239f -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@6b103db7 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@6b103db7 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@6b103db7 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@b3042ed -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@b3042ed -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@b3042ed -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@1f12d5e0 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@6604f246 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@c1386b4 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@c1386b4 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@53d9af1 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@53d9af1 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@53d9af1 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@c89e263 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@4d5ea776 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@5d68be4f -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@5d68be4f -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@34eb5d01 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@34eb5d01 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@34eb5d01 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@77b22b05 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@77b22b05 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@4fef5792 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@4fef5792 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@57ed02e6 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@57ed02e6 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@39004e4f -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@39004e4f -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@5f0ca069 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@5f0ca069 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@6a6a2fdd -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@552ffa44 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@7c56c911 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@7c56c911 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@45b08b17 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@6723e6b3 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@61becbcf -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@20171cdc -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@58f97013 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@7d70ba18 -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@6a07e6ca -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@726ef6aa -2025-10-25 12:14:58 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@6104691c -2025-10-25 12:14:58 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-25 12:14:58 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-25 12:14:59 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@647ce968 -2025-10-25 12:14:59 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-25 12:14:59 [main] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-10-25 12:14:59 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@1b82f62a) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@67e21ea2) -2025-10-25 12:14:59 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@2184962c) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@4d9bccfe) -2025-10-25 12:14:59 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-25 12:14:59 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@2d3768ce -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@2d3768ce -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@7c56c911` -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-25 12:14:59 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-25 12:14:59 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@7a2fd94c] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@637c8632] -2025-10-25 12:14:59 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2025-10-25 12:14:59 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@7a2fd94c] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@772db1d8] -2025-10-25 12:14:59 [main] DEBUG org.hibernate.SQL - - alter table if exists meetings - alter column description set data type TEXT -2025-10-25 12:15:00 [main] DEBUG org.hibernate.SQL - - alter table if exists meetings - alter column participants set data type TEXT -2025-10-25 12:15:00 [main] DEBUG org.hibernate.SQL - - alter table if exists minutes_sections - alter column content set data type TEXT -2025-10-25 12:15:00 [main] DEBUG org.hibernate.SQL - - alter table if exists templates - alter column description set data type TEXT -2025-10-25 12:15:00 [main] DEBUG org.hibernate.SQL - - alter table if exists templates - alter column sections set data type TEXT -2025-10-25 12:15:00 [main] DEBUG org.hibernate.SQL - - alter table if exists todos - alter column description set data type TEXT -2025-10-25 12:15:01 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@772db1d8] for TypeConfiguration -2025-10-25 12:15:01 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-25 12:15:01 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-25 12:15:02 [main] INFO c.u.h.m.infra.cache.CacheConfig - Redis 연결 설정 - host: 20.249.177.114, port: 6379, database: 1, password: **** -2025-10-25 12:15:02 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library -2025-10-25 12:15:02 [main] INFO c.u.h.m.infra.cache.CacheConfig - Redis 템플릿 설정 완료 -2025-10-25 12:15:02 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 -2025-10-25 12:15:02 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-name -2025-10-25 12:15:02 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-name -2025-10-25 12:15:02 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_a70b8a_1761362102396"} -2025-10-25 12:15:02 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:15:02 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2025-10-25 12:15:02 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - - -Using generated security password: 07950b10-c32e-4d79-ab36-caf482556b31 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2025-10-25 12:15:02 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2025-10-25 12:15:02 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} -2025-10-25 12:15:02 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2025-10-25 12:15:02 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter -2025-10-25 12:15:03 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' -2025-10-25 12:15:03 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 6.3 seconds (process running for 6.64) -2025-10-25 12:16:12 [http-nio-8082-exec-2] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-10-25 12:16:12 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' -2025-10-25 12:16:12 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 2 ms -2025-10-25 12:16:12 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/meetings/f15671d5-680e-42ba-a101-6469fa9f7ce5/start -2025-10-25 12:16:12 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) -2025-10-25 12:16:12 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/meetings/f15671d5-680e-42ba-a101-6469fa9f7ce5/start -2025-10-25 12:16:12 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 호출 - 파라미터: [f15671d5-680e-42ba-a101-6469fa9f7ce5, user-005, dohyunjung, dohyun.jung@example.com] -2025-10-25 12:16:12 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MeetingController - 회의 시작 요청 - meetingId: f15671d5-680e-42ba-a101-6469fa9f7ce5, userId: user-005 -2025-10-25 12:16:12 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MeetingService - Starting meeting: f15671d5-680e-42ba-a101-6469fa9f7ce5 -2025-10-25 12:16:13 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Cache miss for meeting: f15671d5-680e-42ba-a101-6469fa9f7ce5 -2025-10-25 12:16:13 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - - select - me1_0.meeting_id, - me1_0.created_at, - me1_0.description, - me1_0.end_time, - me1_0.ended_at, - me1_0.location, - me1_0.organizer_id, - me1_0.participants, - me1_0.purpose, - me1_0.scheduled_at, - me1_0.started_at, - me1_0.status, - me1_0.template_id, - me1_0.title, - me1_0.updated_at - from - meetings me1_0 - where - me1_0.meeting_id=? -2025-10-25 12:16:13 [http-nio-8082-exec-2] ERROR c.u.h.m.infra.cache.CacheService - 회의 정보 캐시 저장 실패 - meetingId: f15671d5-680e-42ba-a101-6469fa9f7ce5 -org.springframework.data.redis.RedisSystemException: Error in execution - at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:52) - at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:50) - at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41) - at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:40) - at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:38) - at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:310) - at org.springframework.data.redis.connection.lettuce.LettuceConnection.await(LettuceConnection.java:1012) - at org.springframework.data.redis.connection.lettuce.LettuceConnection.lambda$doInvoke$3(LettuceConnection.java:447) - at org.springframework.data.redis.connection.lettuce.LettuceInvoker$Synchronizer.invoke(LettuceInvoker.java:673) - at org.springframework.data.redis.connection.lettuce.LettuceInvoker$DefaultSingleInvocationSpec.get(LettuceInvoker.java:589) - at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.setEx(LettuceStringCommands.java:134) - at org.springframework.data.redis.connection.DefaultedRedisConnection.setEx(DefaultedRedisConnection.java:340) - at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:265) - at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:258) - at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:411) - at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:378) - at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97) - at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:253) - at org.springframework.data.redis.core.ValueOperations.set(ValueOperations.java:75) - at com.unicorn.hgzero.meeting.infra.cache.CacheService.cacheMeeting(CacheService.java:49) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) - at com.unicorn.hgzero.common.aop.LoggingAspect.logService(LoggingAspect.java:86) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) - at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) - at com.unicorn.hgzero.meeting.infra.cache.CacheService$$SpringCGLIB$$0.cacheMeeting() - at com.unicorn.hgzero.meeting.biz.service.MeetingService.startMeeting(MeetingService.java:152) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) - at com.unicorn.hgzero.common.aop.LoggingAspect.logService(LoggingAspect.java:86) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) - at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) - at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) - at com.unicorn.hgzero.meeting.biz.service.MeetingService$$SpringCGLIB$$0.startMeeting() - at com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting(MeetingController.java:152) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) - at com.unicorn.hgzero.common.aop.LoggingAspect.logController(LoggingAspect.java:56) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) - at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) - at com.unicorn.hgzero.meeting.infra.controller.MeetingController$$SpringCGLIB$$0.startMeeting() - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) - at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) - at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) - at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) - at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) - at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) - at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at com.unicorn.hgzero.meeting.infra.config.jwt.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) - at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) - at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) - at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) - at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) - at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) - at java.base/java.lang.Thread.run(Thread.java:1583) -Caused by: io.lettuce.core.RedisReadOnlyException: READONLY You can't write against a read only replica. - at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:144) - at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:116) - at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120) - at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111) - at io.lettuce.core.protocol.CommandWrapper.complete(CommandWrapper.java:63) - at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:745) - at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:680) - at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:597) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) +2025-10-26 00:01:27 [HikariPool-1 housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Retrograde clock change detected (housekeeper delta=29s829ms), soft-evicting connections from pool. +2025-10-26 00:03:37 [lettuce-nioEventLoop-6-4] INFO i.l.core.protocol.CommandHandler - null Unexpected exception during request: java.net.SocketException: Connection reset +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) @@ -517,259 +14,17 @@ Caused by: io.lettuce.core.RedisReadOnlyException: READONLY You can't write agai at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - ... 1 common frames omitted -2025-10-25 12:16:13 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - - select - se1_0.session_id, - se1_0.created_at, - se1_0.ended_at, - se1_0.meeting_id, - se1_0.minutes_id, - se1_0.started_at, - se1_0.started_by, - se1_0.status, - se1_0.updated_at - from - sessions se1_0 - where - se1_0.session_id=? -2025-10-25 12:16:13 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Session created: sessionId=74ede0f6-1ca9-43bd-82fb-56c40a07cb0e, meetingId=f15671d5-680e-42ba-a101-6469fa9f7ce5 -2025-10-25 12:16:13 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Meeting status updated to IN_PROGRESS: f15671d5-680e-42ba-a101-6469fa9f7ce5 -2025-10-25 12:16:13 [http-nio-8082-exec-2] ERROR c.u.h.m.infra.cache.CacheService - 캐시 삭제 실패 - key: meeting:f15671d5-680e-42ba-a101-6469fa9f7ce5 -org.springframework.data.redis.RedisSystemException: Error in execution - at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:52) - at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:50) - at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41) - at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:40) - at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:38) - at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:310) - at org.springframework.data.redis.connection.lettuce.LettuceConnection.await(LettuceConnection.java:1012) - at org.springframework.data.redis.connection.lettuce.LettuceConnection.lambda$doInvoke$3(LettuceConnection.java:447) - at org.springframework.data.redis.connection.lettuce.LettuceInvoker$Synchronizer.invoke(LettuceInvoker.java:665) - at org.springframework.data.redis.connection.lettuce.LettuceInvoker.just(LettuceInvoker.java:94) - at org.springframework.data.redis.connection.lettuce.LettuceKeyCommands.del(LettuceKeyCommands.java:91) - at org.springframework.data.redis.core.RedisTemplate.lambda$delete$5(RedisTemplate.java:593) - at org.springframework.data.redis.core.RedisTemplate.lambda$doWithKeys$22(RedisTemplate.java:790) - at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:411) - at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:378) - at org.springframework.data.redis.core.RedisTemplate.doWithKeys(RedisTemplate.java:790) - at org.springframework.data.redis.core.RedisTemplate.delete(RedisTemplate.java:593) - at com.unicorn.hgzero.meeting.infra.cache.CacheService.evictCache(CacheService.java:203) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) - at com.unicorn.hgzero.common.aop.LoggingAspect.logService(LoggingAspect.java:86) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) - at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) - at com.unicorn.hgzero.meeting.infra.cache.CacheService$$SpringCGLIB$$0.evictCache() - at com.unicorn.hgzero.meeting.biz.service.MeetingService.startMeeting(MeetingService.java:198) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) - at com.unicorn.hgzero.common.aop.LoggingAspect.logService(LoggingAspect.java:86) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) - at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) - at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) - at com.unicorn.hgzero.meeting.biz.service.MeetingService$$SpringCGLIB$$0.startMeeting() - at com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting(MeetingController.java:152) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) - at com.unicorn.hgzero.common.aop.LoggingAspect.logController(LoggingAspect.java:56) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) - at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) - at com.unicorn.hgzero.meeting.infra.controller.MeetingController$$SpringCGLIB$$0.startMeeting() - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) - at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) - at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) - at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) - at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) - at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) - at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at com.unicorn.hgzero.meeting.infra.config.jwt.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) - at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) - at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) - at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) - at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) - at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.base/java.lang.Thread.run(Thread.java:1583) -Caused by: io.lettuce.core.RedisReadOnlyException: READONLY You can't write against a read only replica. - at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:144) - at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:116) - at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120) - at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111) - at io.lettuce.core.protocol.CommandWrapper.complete(CommandWrapper.java:63) - at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:745) - at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:680) - at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:597) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) +2025-10-26 00:03:37 [lettuce-eventExecutorLoop-1-6] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 +2025-10-26 00:03:37 [lettuce-nioEventLoop-6-5] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 +2025-10-26 00:07:54 [lettuce-nioEventLoop-6-5] INFO i.l.core.protocol.CommandHandler - null Unexpected exception during request: java.net.SocketException: Connection reset +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) @@ -777,626 +32,17 @@ Caused by: io.lettuce.core.RedisReadOnlyException: READONLY You can't write agai at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - ... 1 common frames omitted -2025-10-25 12:16:13 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Meeting cache evicted: f15671d5-680e-42ba-a101-6469fa9f7ce5 -2025-10-25 12:16:13 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - - select - me1_0.minutes_id, - me1_0.created_at, - me1_0.created_by, - me1_0.finalized_at, - me1_0.finalized_by, - me1_0.meeting_id, - me1_0.status, - me1_0.title, - me1_0.updated_at, - me1_0.version, - s1_0.minutes_id, - s1_0.section_id, - s1_0.content, - s1_0.created_at, - s1_0.locked, - s1_0.locked_by, - s1_0."order", - s1_0.title, - s1_0.type, - s1_0.updated_at, - s1_0.verified - from - minutes me1_0 - left join - minutes_sections s1_0 - on me1_0.minutes_id=s1_0.minutes_id - where - me1_0.minutes_id=? -2025-10-25 12:16:13 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - Minutes draft created: minutesId=87e7bb7b-50d6-4a06-8fa7-2ba92470a871, meetingId=f15671d5-680e-42ba-a101-6469fa9f7ce5 -2025-10-25 12:16:13 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_a70b8a_1761362102396","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-25 12:16:13 [http-nio-8082-exec-2] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_a70b8a_1761362102396"} -2025-10-25 12:16:13 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_a70b8a_1761362102396","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:16:13 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_a70b8a_1761362102396"} -2025-10-25 12:16:13 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_a70b8a_1761362102396","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:16:13 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_a70b8a_1761362102396","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_a70b8a_1761362102396","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"fd3e7ace976743418ae7f51e4e651bc4_G30"} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_a70b8a_1761362102396","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_a70b8a_1761362102396"} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_a70b8a_1761362102396","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_a70b8a_1761362102396","entityPath":"$cbs","linkName":"cbs"} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_a70b8a_1761362102396","entityPath":"$cbs"} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_a70b8a_1761362102396","entityPath":"$cbs","subscriberId":"un_bf9be7_1761362174193"} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_a70b8a_1761362102396","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_a70b8a_1761362102396","entityPath":"$cbs"} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_a70b8a_1761362102396","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_a70b8a_1761362102396","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} -2025-10-25 12:16:14 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_a70b8a_1761362102396","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","remoteTarget":"Target{address='hgzero-eventhub-name', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-25 12:16:14 [http-nio-8082-exec-2] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=meeting, type=MEETING_STARTED, partitionKey=f15671d5-680e-42ba-a101-6469fa9f7ce5 -2025-10-25 12:16:14 [http-nio-8082-exec-2] DEBUG c.u.h.m.biz.service.MeetingService - MeetingStarted event published: meetingId=f15671d5-680e-42ba-a101-6469fa9f7ce5, sessionId=74ede0f6-1ca9-43bd-82fb-56c40a07cb0e -2025-10-25 12:16:14 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MeetingService - Meeting started successfully: meetingId=f15671d5-680e-42ba-a101-6469fa9f7ce5, sessionId=74ede0f6-1ca9-43bd-82fb-56c40a07cb0e, minutesId=87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:16:14 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - - /* insert for - com.unicorn.hgzero.meeting.infra.gateway.entity.SessionEntity */insert - into - sessions (created_at, ended_at, meeting_id, minutes_id, started_at, started_by, status, updated_at, session_id) - values - (?, ?, ?, ?, ?, ?, ?, ?, ?) -2025-10-25 12:16:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - - /* insert for - com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */insert - into - minutes (created_at, created_by, finalized_at, finalized_by, meeting_id, status, title, updated_at, version, minutes_id) - values - (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) -2025-10-25 12:16:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - - /* update - for com.unicorn.hgzero.meeting.infra.gateway.entity.MeetingEntity */update meetings - set - description=?, - end_time=?, - ended_at=?, - location=?, - organizer_id=?, - participants=?, - purpose=?, - scheduled_at=?, - started_at=?, - status=?, - template_id=?, - title=?, - updated_at=? - where - meeting_id=? -2025-10-25 12:16:15 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - - /* update - for com.unicorn.hgzero.meeting.infra.gateway.entity.SessionEntity */update sessions - set - ended_at=?, - meeting_id=?, - minutes_id=?, - started_at=?, - started_by=?, - status=?, - updated_at=? - where - session_id=? -2025-10-25 12:16:15 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MeetingController - 회의 시작 완료 - meetingId: f15671d5-680e-42ba-a101-6469fa9f7ce5, sessionId: 74ede0f6-1ca9-43bd-82fb-56c40a07cb0e -2025-10-25 12:16:15 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MeetingController.startMeeting 완료 - 실행시간: 2500ms -2025-10-25 12:22:14 [reactor-executor-1] WARN c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportError","connectionId":"MF_a70b8a_1761362102396","errorCondition":"proton:io","errorDescription":"Connection reset","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_a70b8a_1761362102396","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection reset, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A]"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_a70b8a_1761362102396","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"ACTIVE","remoteState":"ACTIVE"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_a70b8a_1761362102396","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_a70b8a_1761362102396","errorCondition":null,"errorDescription":null,"sessionName":"hgzero-eventhub-name"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_a70b8a_1761362102396","linkName":"cbs:sender","entityPath":"$cbs"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_a70b8a_1761362102396","linkName":"cbs:receiver","entityPath":"$cbs"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","connectionId":"MF_a70b8a_1761362102396","entityPath":"$cbs"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","connectionId":"MF_a70b8a_1761362102396","entityPath":"$cbs"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_a70b8a_1761362102396","entityPath":"$cbs","linkName":"cbs"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_a70b8a_1761362102396","entityPath":"$cbs"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_a70b8a_1761362102396","entityPath":"$cbs"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_a70b8a_1761362102396","errorCondition":null,"errorDescription":null,"sessionName":"cbs-session"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_a70b8a_1761362102396","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_a70b8a_1761362102396"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Sender link was never active. Closing endpoint states.","connectionId":"MF_a70b8a_1761362102396","linkName":"cbs","entityPath":"$cbs"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"Receiver link was never active. Closing endpoint states","connectionId":"MF_a70b8a_1761362102396","entityPath":"$cbs","linkName":"cbs"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is disposed.","connectionId":"MF_a70b8a_1761362102396","entityPath":"$cbs"} -2025-10-25 12:22:14 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_a70b8a_1761362102396","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:22:18 [reactor-executor-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Processing all pending tasks and closing old reactor.","connectionId":"MF_a70b8a_1761362102396"} -2025-10-25 12:22:18 [reactor-executor-1] INFO c.a.c.a.i.ReactorDispatcher - {"az.sdk.message":"Reactor selectable is being disposed.","connectionId":"MF_a70b8a_1761362102396"} -2025-10-25 12:22:18 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_a70b8a_1761362102396","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"connectionId[MF_a70b8a_1761362102396] Reactor selectable is disposed.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:22:18 [reactor-executor-1] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped -reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: Connection reset, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A] -Caused by: com.azure.core.amqp.exception.AmqpException: Connection reset, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A] - at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:85) - at com.azure.core.amqp.implementation.handler.ConnectionHandler.notifyErrorContext(ConnectionHandler.java:351) - at com.azure.core.amqp.implementation.handler.ConnectionHandler.onTransportError(ConnectionHandler.java:253) - at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:191) - at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) - at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) - at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) - at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91) - at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) - at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) - at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-25 12:22:18 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"Connection reset, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A]","entityPath":"hgzero-eventhub-name","tryCount":0,"interval_ms":4511} -2025-10-25 12:22:18 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_a70b8a_1761362102396","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Finished processing pending tasks.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:22:23 [parallel-8] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Requesting from upstream.","entityPath":"hgzero-eventhub-name","tryCount":0} -2025-10-25 12:22:23 [parallel-8] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:22:23 [parallel-8] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_44430f_1761362543092"} -2025-10-25 12:22:23 [parallel-8] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:23:54 [http-nio-8082-exec-5] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/minutes/87e7bb7b-50d6-4a06-8fa7-2ba92470a871/finalize -2025-10-25 12:23:54 [http-nio-8082-exec-5] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) -2025-10-25 12:23:54 [http-nio-8082-exec-5] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/minutes/87e7bb7b-50d6-4a06-8fa7-2ba92470a871/finalize -2025-10-25 12:23:54 [http-nio-8082-exec-5] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, 87e7bb7b-50d6-4a06-8fa7-2ba92470a871] -2025-10-25 12:23:54 [http-nio-8082-exec-5] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:23:55 [http-nio-8082-exec-5] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@647ce968 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. -2025-10-25 12:23:55 [http-nio-8082-exec-5] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@1033961b (This connection has been closed.). Possibly consider using a shorter maxLifetime value. -2025-10-25 12:23:55 [http-nio-8082-exec-5] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@2d81a5df (This connection has been closed.). Possibly consider using a shorter maxLifetime value. -2025-10-25 12:23:55 [http-nio-8082-exec-5] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@7d6e0c3f (This connection has been closed.). Possibly consider using a shorter maxLifetime value. -2025-10-25 12:23:55 [http-nio-8082-exec-5] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@61215161 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. -2025-10-25 12:23:55 [http-nio-8082-exec-5] WARN com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@6dae9010 (This connection has been closed.). Possibly consider using a shorter maxLifetime value. -2025-10-25 12:23:55 [http-nio-8082-exec-5] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:23:55 [http-nio-8082-exec-5] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 by user: user-005 -2025-10-25 12:23:55 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - - select - me1_0.minutes_id, - me1_0.created_at, - me1_0.created_by, - me1_0.finalized_at, - me1_0.finalized_by, - me1_0.meeting_id, - me1_0.status, - me1_0.title, - me1_0.updated_at, - me1_0.version - from - minutes me1_0 - where - me1_0.minutes_id=? -2025-10-25 12:23:55 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - - select - s1_0.minutes_id, - s1_0.section_id, - s1_0.content, - s1_0.created_at, - s1_0.locked, - s1_0.locked_by, - s1_0."order", - s1_0.title, - s1_0.type, - s1_0.updated_at, - s1_0.verified - from - minutes_sections s1_0 - where - s1_0.minutes_id=? -2025-10-25 12:23:55 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - - select - me1_0.meeting_id, - me1_0.created_at, - me1_0.description, - me1_0.end_time, - me1_0.ended_at, - me1_0.location, - me1_0.organizer_id, - me1_0.participants, - me1_0.purpose, - me1_0.scheduled_at, - me1_0.started_at, - me1_0.status, - me1_0.template_id, - me1_0.title, - me1_0.updated_at - from - meetings me1_0 - where - me1_0.meeting_id=? -2025-10-25 12:23:55 [http-nio-8082-exec-5] DEBUG org.hibernate.SQL - - /* SELECT - m - FROM - MinutesSectionEntity m - WHERE - m.minutesId = :minutesId - ORDER BY - m.order ASC */ select - mse1_0.section_id, - mse1_0.content, - mse1_0.created_at, - mse1_0.locked, - mse1_0.locked_by, - mse1_0.minutes_id, - mse1_0."order", - mse1_0.title, - mse1_0.type, - mse1_0.updated_at, - mse1_0.verified - from - minutes_sections mse1_0 - where - mse1_0.minutes_id=? - order by - mse1_0."order" -2025-10-25 12:23:55 [http-nio-8082-exec-5] ERROR c.u.hgzero.common.aop.LoggingAspect - [Service] com.unicorn.hgzero.meeting.biz.service.MinutesService.finalizeMinutesDTO 실패 - 실행시간: 315ms, 에러: 회의가 종료되지 않았습니다. 현재 회의 상태: IN_PROGRESS -2025-10-25 12:23:55 [http-nio-8082-exec-5] ERROR c.u.h.m.i.c.MinutesController - 회의록 확정 비즈니스 오류 - minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871, error: 회의가 종료되지 않았습니다. 현재 회의 상태: IN_PROGRESS -2025-10-25 12:23:55 [http-nio-8082-exec-5] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 674ms -2025-10-25 12:24:24 [http-nio-8082-exec-7] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/minutes/87e7bb7b-50d6-4a06-8fa7-2ba92470a871/finalize -2025-10-25 12:24:24 [http-nio-8082-exec-7] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) -2025-10-25 12:24:24 [http-nio-8082-exec-7] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/minutes/87e7bb7b-50d6-4a06-8fa7-2ba92470a871/finalize -2025-10-25 12:24:24 [http-nio-8082-exec-7] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, 87e7bb7b-50d6-4a06-8fa7-2ba92470a871] -2025-10-25 12:24:24 [http-nio-8082-exec-7] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:24:24 [http-nio-8082-exec-7] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:24:24 [http-nio-8082-exec-7] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 by user: user-005 -2025-10-25 12:24:24 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - - select - me1_0.minutes_id, - me1_0.created_at, - me1_0.created_by, - me1_0.finalized_at, - me1_0.finalized_by, - me1_0.meeting_id, - me1_0.status, - me1_0.title, - me1_0.updated_at, - me1_0.version - from - minutes me1_0 - where - me1_0.minutes_id=? -2025-10-25 12:24:24 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - - select - s1_0.minutes_id, - s1_0.section_id, - s1_0.content, - s1_0.created_at, - s1_0.locked, - s1_0.locked_by, - s1_0."order", - s1_0.title, - s1_0.type, - s1_0.updated_at, - s1_0.verified - from - minutes_sections s1_0 - where - s1_0.minutes_id=? -2025-10-25 12:24:24 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - - select - me1_0.meeting_id, - me1_0.created_at, - me1_0.description, - me1_0.end_time, - me1_0.ended_at, - me1_0.location, - me1_0.organizer_id, - me1_0.participants, - me1_0.purpose, - me1_0.scheduled_at, - me1_0.started_at, - me1_0.status, - me1_0.template_id, - me1_0.title, - me1_0.updated_at - from - meetings me1_0 - where - me1_0.meeting_id=? -2025-10-25 12:24:24 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - - /* SELECT - m - FROM - MinutesSectionEntity m - WHERE - m.minutesId = :minutesId - ORDER BY - m.order ASC */ select - mse1_0.section_id, - mse1_0.content, - mse1_0.created_at, - mse1_0.locked, - mse1_0.locked_by, - mse1_0.minutes_id, - mse1_0."order", - mse1_0.title, - mse1_0.type, - mse1_0.updated_at, - mse1_0.verified - from - minutes_sections mse1_0 - where - mse1_0.minutes_id=? - order by - mse1_0."order" -2025-10-25 12:24:24 [http-nio-8082-exec-7] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871, version: 1 -2025-10-25 12:24:24 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - - /* update - for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes - set - created_by=?, - finalized_at=?, - finalized_by=?, - meeting_id=?, - status=?, - title=?, - updated_at=?, - version=? - where - minutes_id=? -2025-10-25 12:24:24 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - - /* update - for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections - set - content=?, - locked=?, - locked_by=?, - minutes_id=?, - "order"=?, - title=?, - type=?, - updated_at=?, - verified=? - where - section_id=? -2025-10-25 12:24:24 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - - /* update - for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections - set - content=?, - locked=?, - locked_by=?, - minutes_id=?, - "order"=?, - title=?, - type=?, - updated_at=?, - verified=? - where - section_id=? -2025-10-25 12:24:24 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - - /* update - for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections - set - content=?, - locked=?, - locked_by=?, - minutes_id=?, - "order"=?, - title=?, - type=?, - updated_at=?, - verified=? - where - section_id=? -2025-10-25 12:24:24 [http-nio-8082-exec-7] DEBUG org.hibernate.SQL - - /* update - for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections - set - content=?, - locked=?, - locked_by=?, - minutes_id=?, - "order"=?, - title=?, - type=?, - updated_at=?, - verified=? - where - section_id=? -2025-10-25 12:24:24 [http-nio-8082-exec-7] ERROR c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 실패 - minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -org.springframework.data.redis.RedisSystemException: Error in execution - at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:52) - at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:50) - at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41) - at org.springframework.data.redis.PassThroughExceptionTranslationStrategy.translate(PassThroughExceptionTranslationStrategy.java:40) - at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:38) - at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:310) - at org.springframework.data.redis.connection.lettuce.LettuceConnection.await(LettuceConnection.java:1012) - at org.springframework.data.redis.connection.lettuce.LettuceConnection.lambda$doInvoke$3(LettuceConnection.java:447) - at org.springframework.data.redis.connection.lettuce.LettuceInvoker$Synchronizer.invoke(LettuceInvoker.java:673) - at org.springframework.data.redis.connection.lettuce.LettuceInvoker$DefaultSingleInvocationSpec.get(LettuceInvoker.java:589) - at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.setEx(LettuceStringCommands.java:134) - at org.springframework.data.redis.connection.DefaultedRedisConnection.setEx(DefaultedRedisConnection.java:340) - at org.springframework.data.redis.core.DefaultValueOperations$8.potentiallyUsePsetEx(DefaultValueOperations.java:265) - at org.springframework.data.redis.core.DefaultValueOperations$8.doInRedis(DefaultValueOperations.java:258) - at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:411) - at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:378) - at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97) - at org.springframework.data.redis.core.DefaultValueOperations.set(DefaultValueOperations.java:253) - at org.springframework.data.redis.core.ValueOperations.set(ValueOperations.java:75) - at com.unicorn.hgzero.meeting.infra.cache.CacheService.cacheMinutesDetail(CacheService.java:253) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) - at com.unicorn.hgzero.common.aop.LoggingAspect.logService(LoggingAspect.java:86) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) - at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) - at com.unicorn.hgzero.meeting.infra.cache.CacheService$$SpringCGLIB$$0.cacheMinutesDetail() - at com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes(MinutesController.java:208) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) - at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89) - at com.unicorn.hgzero.common.aop.LoggingAspect.logController(LoggingAspect.java:56) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:637) - at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:627) - at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) - at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) - at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) - at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) - at com.unicorn.hgzero.meeting.infra.controller.MinutesController$$SpringCGLIB$$0.finalizeMinutes() - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) - at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) - at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) - at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) - at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) - at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) - at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) - at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) - at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) - at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) - at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108) - at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) - at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479) - at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340) - at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128) - at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126) - at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131) - at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at com.unicorn.hgzero.meeting.infra.config.jwt.JwtAuthenticationFilter.doFilterInternal(JwtAuthenticationFilter.java:60) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107) - at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) - at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82) - at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240) - at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323) - at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224) - at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137) - at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233) - at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191) - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) - at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195) - at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113) - at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74) - at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230) - at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362) - at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) - at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) - at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) - at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) - at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) - at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) - at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) - at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) - at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) - at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) - at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) - at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) - at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) - at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) - at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) - at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) - at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) - at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) - at java.base/java.lang.Thread.run(Thread.java:1583) -Caused by: io.lettuce.core.RedisReadOnlyException: READONLY You can't write against a read only replica. - at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:144) - at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:116) - at io.lettuce.core.protocol.AsyncCommand.completeResult(AsyncCommand.java:120) - at io.lettuce.core.protocol.AsyncCommand.complete(AsyncCommand.java:111) - at io.lettuce.core.protocol.CommandWrapper.complete(CommandWrapper.java:63) - at io.lettuce.core.protocol.CommandHandler.complete(CommandHandler.java:745) - at io.lettuce.core.protocol.CommandHandler.decode(CommandHandler.java:680) - at io.lettuce.core.protocol.CommandHandler.channelRead(CommandHandler.java:597) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) +2025-10-26 00:07:54 [lettuce-eventExecutorLoop-1-7] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 +2025-10-26 00:07:54 [lettuce-nioEventLoop-6-6] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 +2025-10-26 00:12:06 [lettuce-nioEventLoop-6-6] INFO i.l.core.protocol.CommandHandler - null Unexpected exception during request: java.net.SocketException: Connection reset +java.net.SocketException: Connection reset + at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:401) + at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:434) + at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:255) + at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132) + at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:356) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) @@ -1404,686 +50,17 @@ Caused by: io.lettuce.core.RedisReadOnlyException: READONLY You can't write agai at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - ... 1 common frames omitted -2025-10-25 12:24:24 [http-nio-8082-exec-7] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:24:25 [http-nio-8082-exec-7] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 -2025-10-25 12:24:25 [http-nio-8082-exec-7] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_44430f_1761362543092","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-25 12:24:25 [http-nio-8082-exec-7] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_44430f_1761362543092"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_44430f_1761362543092","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_44430f_1761362543092"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_44430f_1761362543092","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_44430f_1761362543092","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_44430f_1761362543092","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"e7e1095cc5eb40ed8ea0da5853f4d7b5_G7"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_44430f_1761362543092","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_44430f_1761362543092"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_44430f_1761362543092","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_44430f_1761362543092","entityPath":"$cbs","linkName":"cbs"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_44430f_1761362543092","entityPath":"$cbs"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_44430f_1761362543092","entityPath":"$cbs","subscriberId":"un_e085e7_1761362665321"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_44430f_1761362543092","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_44430f_1761362543092","entityPath":"$cbs"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_44430f_1761362543092","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_44430f_1761362543092","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} -2025-10-25 12:24:25 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_44430f_1761362543092","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","remoteTarget":"Target{address='hgzero-eventhub-name', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-25 12:24:25 [http-nio-8082-exec-7] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:24:25 [http-nio-8082-exec-7] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:24:25 [http-nio-8082-exec-7] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 1285ms -2025-10-25 12:30:25 [reactor-executor-2] WARN c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportError","connectionId":"MF_44430f_1761362543092","errorCondition":"proton:io","errorDescription":"Connection reset","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_44430f_1761362543092","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection reset, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A]"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_44430f_1761362543092","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"ACTIVE","remoteState":"ACTIVE"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_44430f_1761362543092","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_44430f_1761362543092","errorCondition":null,"errorDescription":null,"sessionName":"hgzero-eventhub-name"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_44430f_1761362543092","linkName":"cbs:sender","entityPath":"$cbs"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_44430f_1761362543092","linkName":"cbs:receiver","entityPath":"$cbs"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","connectionId":"MF_44430f_1761362543092","entityPath":"$cbs"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","connectionId":"MF_44430f_1761362543092","entityPath":"$cbs"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_44430f_1761362543092","entityPath":"$cbs","linkName":"cbs"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_44430f_1761362543092","entityPath":"$cbs"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_44430f_1761362543092","entityPath":"$cbs"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_44430f_1761362543092","errorCondition":null,"errorDescription":null,"sessionName":"cbs-session"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_44430f_1761362543092","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_44430f_1761362543092"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Sender link was never active. Closing endpoint states.","connectionId":"MF_44430f_1761362543092","linkName":"cbs","entityPath":"$cbs"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"Receiver link was never active. Closing endpoint states","connectionId":"MF_44430f_1761362543092","entityPath":"$cbs","linkName":"cbs"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is disposed.","connectionId":"MF_44430f_1761362543092","entityPath":"$cbs"} -2025-10-25 12:30:25 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_44430f_1761362543092","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:30:29 [reactor-executor-2] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Processing all pending tasks and closing old reactor.","connectionId":"MF_44430f_1761362543092"} -2025-10-25 12:30:29 [reactor-executor-2] INFO c.a.c.a.i.ReactorDispatcher - {"az.sdk.message":"Reactor selectable is being disposed.","connectionId":"MF_44430f_1761362543092"} -2025-10-25 12:30:29 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_44430f_1761362543092","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"connectionId[MF_44430f_1761362543092] Reactor selectable is disposed.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:30:29 [reactor-executor-2] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped -reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: Connection reset, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A] -Caused by: com.azure.core.amqp.exception.AmqpException: Connection reset, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A] - at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:85) - at com.azure.core.amqp.implementation.handler.ConnectionHandler.notifyErrorContext(ConnectionHandler.java:351) - at com.azure.core.amqp.implementation.handler.ConnectionHandler.onTransportError(ConnectionHandler.java:253) - at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:191) - at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) - at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) - at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) - at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91) - at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) - at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) - at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) - at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) - at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) - at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-25 12:30:29 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"Connection reset, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A]","entityPath":"hgzero-eventhub-name","tryCount":0,"interval_ms":4511} -2025-10-25 12:30:29 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_44430f_1761362543092","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Finished processing pending tasks.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:30:34 [parallel-8] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Requesting from upstream.","entityPath":"hgzero-eventhub-name","tryCount":0} -2025-10-25 12:30:34 [parallel-8] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:30:34 [parallel-8] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_831908_1761363034119"} -2025-10-25 12:30:34 [parallel-8] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:51:12 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:51:12 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_831908_1761363034119","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} -2025-10-25 12:51:12 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:51:12 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-25 12:51:12 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@772db1d8] for TypeConfiguration -2025-10-25 12:51:12 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@7838b3bd] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@772db1d8] -2025-10-25 12:51:12 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-25 12:51:12 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2025-10-25 12:51:24 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 67785 (/Users/daewoong/home/workspace/HGZero/meeting/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/meeting) -2025-10-25 12:51:24 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 -2025-10-25 12:51:24 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev" -2025-10-25 12:51:24 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-25 12:51:24 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-25 12:51:24 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 61 ms. Found 6 JPA repository interfaces. -2025-10-25 12:51:24 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-25 12:51:24 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-25 12:51:24 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-25 12:51:24 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-25 12:51:24 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesSectionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-25 12:51:24 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.SessionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-25 12:51:24 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TemplateJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-25 12:51:24 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TodoJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-25 12:51:24 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 0 Redis repository interfaces. -2025-10-25 12:51:25 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http) -2025-10-25 12:51:25 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-25 12:51:25 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] -2025-10-25 12:51:25 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-25 12:51:25 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 966 ms -2025-10-25 12:51:25 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-25 12:51:25 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final -2025-10-25 12:51:25 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@1c79d093 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@1c79d093 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@1c79d093 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@746fd19b -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@746fd19b -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@54caeadc -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@54caeadc -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@61d7bb61 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@61d7bb61 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@33f81280 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@33f81280 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@33f81280 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@3991fe6d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@3991fe6d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@3991fe6d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@3a0e7f89 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@3a0e7f89 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@665ed71a -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@15c1b543 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@15c1b543 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@23954300 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@6aae82cc -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@7a587e84 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@7a587e84 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@7a587e84 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@622ba721 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@622ba721 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@622ba721 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@6b2f7527 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@6b2f7527 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@6b2f7527 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@7509226c -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@7509226c -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@7509226c -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@4c9cce17 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@4c9cce17 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@4c9cce17 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@73316a0a -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@73316a0a -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@63a7af06 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@63a7af06 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@5f01fb5c -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@5f01fb5c -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@5f01fb5c -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@75c77add -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@d5e3f55 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@d5e3f55 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@53df7e67 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@3d4b45b -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@3d4b45b -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@3d4b45b -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@4d0b276e -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@31531d0d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@19d76106 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@3f87780b -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@3f87780b -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@2ba318c2 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@2ba318c2 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@231d3ce -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@204c5ddf -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@240f2efd -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@175957b6 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@1b7a4930 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@591a4d25 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@4bfe83d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@4bfe83d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@5906ebfb -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@5906ebfb -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@10fc1a22 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@10fc1a22 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@1b841e7d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@1b841e7d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@6081f330 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@6081f330 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@eb695e8 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@7eebb316 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@45273d40 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@45273d40 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@2a504ea7 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@10f397d0 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@33a3e5db -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@4f9213d2 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@4f9213d2 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@679f59f1 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@6b5e1fc5 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@47ffa248 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@47ffa248 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@18ac25e6 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@18ac25e6 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@5e1a7d3 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@5e1a7d3 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@5e1a7d3 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@1eda309d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@1eda309d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@1eda309d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@248d2cec -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@5d77be8e -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@55a055cc -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@55a055cc -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@1ab1d93d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@1ab1d93d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@1ab1d93d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@57167ccb -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@37753b69 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@602c167e -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@602c167e -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@74c04377 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@74c04377 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@74c04377 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@10d49900 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@10d49900 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@e645600 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@e645600 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@e7b3e54 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@e7b3e54 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@78d61f17 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@78d61f17 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@4cfe9594 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@4cfe9594 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@60861e5d -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@37d81587 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@4d8522ff -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@4d8522ff -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@434a8938 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@237cd264 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@5521407f -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@42b500aa -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@71f056a -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@64f6dd19 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@3b8b5b40 -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@5151accb -2025-10-25 12:51:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@2e1ad7de -2025-10-25 12:51:25 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-25 12:51:25 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-25 12:51:25 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@5f26cb8b -2025-10-25 12:51:25 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-25 12:51:26 [main] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) -2025-10-25 12:51:26 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@152dbf8e) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@34ea86ff) -2025-10-25 12:51:26 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@4bcf08ae) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@626b9092) -2025-10-25 12:51:26 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-25 12:51:26 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@32121140 -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@32121140 -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@4d8522ff` -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-25 12:51:26 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-25 12:51:26 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2f64f99f] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@16c1d11] -2025-10-25 12:51:26 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2025-10-25 12:51:26 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2f64f99f] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@6d4062fd] -2025-10-25 12:51:26 [main] DEBUG org.hibernate.SQL - - alter table if exists meetings - alter column description set data type TEXT -2025-10-25 12:51:26 [main] DEBUG org.hibernate.SQL - - alter table if exists meetings - alter column participants set data type TEXT -2025-10-25 12:51:26 [main] DEBUG org.hibernate.SQL - - alter table if exists minutes_sections - alter column content set data type TEXT -2025-10-25 12:51:26 [main] DEBUG org.hibernate.SQL - - alter table if exists templates - alter column description set data type TEXT -2025-10-25 12:51:26 [main] DEBUG org.hibernate.SQL - - alter table if exists templates - alter column sections set data type TEXT -2025-10-25 12:51:26 [main] DEBUG org.hibernate.SQL - - alter table if exists todos - alter column description set data type TEXT -2025-10-25 12:51:27 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@6d4062fd] for TypeConfiguration -2025-10-25 12:51:27 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-25 12:51:27 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-25 12:51:27 [main] INFO c.u.h.m.infra.cache.CacheConfig - Redis 연결 설정 - host: 20.249.177.114, port: 6379, database: 1, password: **** -2025-10-25 12:51:27 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library -2025-10-25 12:51:27 [main] INFO c.u.h.m.infra.cache.CacheConfig - Redis 템플릿 설정 완료 -2025-10-25 12:51:27 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료 -2025-10-25 12:51:28 [main] INFO c.u.h.m.infra.config.EventHubConfig - Initializing Azure EventHub configuration with hub name: hgzero-eventhub-name -2025-10-25 12:51:28 [main] INFO c.u.h.m.infra.config.EventHubConfig - Creating EventHub producer for hub: hgzero-eventhub-name -2025-10-25 12:51:28 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_b3772e_1761364288042"} -2025-10-25 12:51:28 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:51:28 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2025-10-25 12:51:28 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - - -Using generated security password: 9c6561ca-3c22-4504-9a44-ed31e61877f8 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2025-10-25 12:51:28 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2025-10-25 12:51:28 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId} -2025-10-25 12:51:28 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2025-10-25 12:51:28 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter -2025-10-25 12:51:28 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/' -2025-10-25 12:51:28 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 4.807 seconds (process running for 4.963) -2025-10-25 12:54:49 [http-nio-8082-exec-2] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-10-25 12:54:49 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' -2025-10-25 12:54:49 [http-nio-8082-exec-2] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 4 ms -2025-10-25 12:54:49 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/minutes/87e7bb7b-50d6-4a06-8fa7-2ba92470a871/finalize -2025-10-25 12:54:49 [http-nio-8082-exec-2] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) -2025-10-25 12:54:49 [http-nio-8082-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/minutes/87e7bb7b-50d6-4a06-8fa7-2ba92470a871/finalize -2025-10-25 12:54:49 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, 87e7bb7b-50d6-4a06-8fa7-2ba92470a871] -2025-10-25 12:54:49 [http-nio-8082-exec-2] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:54:49 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:54:49 [http-nio-8082-exec-2] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 by user: user-005 -2025-10-25 12:54:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - - select - me1_0.minutes_id, - me1_0.created_at, - me1_0.created_by, - me1_0.finalized_at, - me1_0.finalized_by, - me1_0.meeting_id, - me1_0.status, - me1_0.title, - me1_0.updated_at, - me1_0.version - from - minutes me1_0 - where - me1_0.minutes_id=? -2025-10-25 12:54:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - - select - s1_0.minutes_id, - s1_0.section_id, - s1_0.content, - s1_0.created_at, - s1_0.locked, - s1_0.locked_by, - s1_0."order", - s1_0.title, - s1_0.type, - s1_0.updated_at, - s1_0.verified - from - minutes_sections s1_0 - where - s1_0.minutes_id=? -2025-10-25 12:54:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - - select - me1_0.meeting_id, - me1_0.created_at, - me1_0.description, - me1_0.end_time, - me1_0.ended_at, - me1_0.location, - me1_0.organizer_id, - me1_0.participants, - me1_0.purpose, - me1_0.scheduled_at, - me1_0.started_at, - me1_0.status, - me1_0.template_id, - me1_0.title, - me1_0.updated_at - from - meetings me1_0 - where - me1_0.meeting_id=? -2025-10-25 12:54:49 [http-nio-8082-exec-2] DEBUG org.hibernate.SQL - - /* SELECT - m - FROM - MinutesSectionEntity m - WHERE - m.minutesId = :minutesId - ORDER BY - m.order ASC */ select - mse1_0.section_id, - mse1_0.content, - mse1_0.created_at, - mse1_0.locked, - mse1_0.locked_by, - mse1_0.minutes_id, - mse1_0."order", - mse1_0.title, - mse1_0.type, - mse1_0.updated_at, - mse1_0.verified - from - minutes_sections mse1_0 - where - mse1_0.minutes_id=? - order by - mse1_0."order" -2025-10-25 12:54:49 [http-nio-8082-exec-2] ERROR c.u.hgzero.common.aop.LoggingAspect - [Service] com.unicorn.hgzero.meeting.biz.service.MinutesService.finalizeMinutesDTO 실패 - 실행시간: 274ms, 에러: 회의록이 작성중 상태가 아닙니다. 현재 상태: FINALIZED -2025-10-25 12:54:49 [http-nio-8082-exec-2] ERROR c.u.h.m.i.c.MinutesController - 회의록 확정 비즈니스 오류 - minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871, error: 회의록이 작성중 상태가 아닙니다. 현재 상태: FINALIZED -2025-10-25 12:54:49 [http-nio-8082-exec-2] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 369ms -2025-10-25 12:57:41 [http-nio-8082-exec-3] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/minutes/87e7bb7b-50d6-4a06-8fa7-2ba92470a871/finalize -2025-10-25 12:57:41 [http-nio-8082-exec-3] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) -2025-10-25 12:57:41 [http-nio-8082-exec-3] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/minutes/87e7bb7b-50d6-4a06-8fa7-2ba92470a871/finalize -2025-10-25 12:57:41 [http-nio-8082-exec-3] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, 87e7bb7b-50d6-4a06-8fa7-2ba92470a871] -2025-10-25 12:57:41 [http-nio-8082-exec-3] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:57:41 [http-nio-8082-exec-3] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:57:41 [http-nio-8082-exec-3] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 by user: user-005 -2025-10-25 12:57:41 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - - select - me1_0.minutes_id, - me1_0.created_at, - me1_0.created_by, - me1_0.finalized_at, - me1_0.finalized_by, - me1_0.meeting_id, - me1_0.status, - me1_0.title, - me1_0.updated_at, - me1_0.version - from - minutes me1_0 - where - me1_0.minutes_id=? -2025-10-25 12:57:42 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - - select - s1_0.minutes_id, - s1_0.section_id, - s1_0.content, - s1_0.created_at, - s1_0.locked, - s1_0.locked_by, - s1_0."order", - s1_0.title, - s1_0.type, - s1_0.updated_at, - s1_0.verified - from - minutes_sections s1_0 - where - s1_0.minutes_id=? -2025-10-25 12:57:42 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - - select - me1_0.meeting_id, - me1_0.created_at, - me1_0.description, - me1_0.end_time, - me1_0.ended_at, - me1_0.location, - me1_0.organizer_id, - me1_0.participants, - me1_0.purpose, - me1_0.scheduled_at, - me1_0.started_at, - me1_0.status, - me1_0.template_id, - me1_0.title, - me1_0.updated_at - from - meetings me1_0 - where - me1_0.meeting_id=? -2025-10-25 12:57:42 [http-nio-8082-exec-3] DEBUG org.hibernate.SQL - - /* SELECT - m - FROM - MinutesSectionEntity m - WHERE - m.minutesId = :minutesId - ORDER BY - m.order ASC */ select - mse1_0.section_id, - mse1_0.content, - mse1_0.created_at, - mse1_0.locked, - mse1_0.locked_by, - mse1_0.minutes_id, - mse1_0."order", - mse1_0.title, - mse1_0.type, - mse1_0.updated_at, - mse1_0.verified - from - minutes_sections mse1_0 - where - mse1_0.minutes_id=? - order by - mse1_0."order" -2025-10-25 12:57:42 [http-nio-8082-exec-3] ERROR c.u.hgzero.common.aop.LoggingAspect - [Service] com.unicorn.hgzero.meeting.biz.service.MinutesService.finalizeMinutesDTO 실패 - 실행시간: 412ms, 에러: 회의가 종료되지 않았습니다. 현재 회의 상태: IN_PROGRESS -2025-10-25 12:57:42 [http-nio-8082-exec-3] ERROR c.u.h.m.i.c.MinutesController - 회의록 확정 비즈니스 오류 - minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871, error: 회의가 종료되지 않았습니다. 현재 회의 상태: IN_PROGRESS -2025-10-25 12:57:42 [http-nio-8082-exec-3] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 522ms -2025-10-25 12:57:58 [http-nio-8082-exec-6] DEBUG o.s.security.web.FilterChainProxy - Securing POST /api/minutes/87e7bb7b-50d6-4a06-8fa7-2ba92470a871/finalize -2025-10-25 12:57:58 [http-nio-8082-exec-6] DEBUG c.u.h.m.i.c.j.JwtAuthenticationFilter - 헤더 기반 인증된 사용자: dohyunjung (user-005) -2025-10-25 12:57:58 [http-nio-8082-exec-6] DEBUG o.s.security.web.FilterChainProxy - Secured POST /api/minutes/87e7bb7b-50d6-4a06-8fa7-2ba92470a871/finalize -2025-10-25 12:57:58 [http-nio-8082-exec-6] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 호출 - 파라미터: [user-005, dohyunjung, 87e7bb7b-50d6-4a06-8fa7-2ba92470a871] -2025-10-25 12:57:58 [http-nio-8082-exec-6] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 요청 - userId: user-005, minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:57:58 [http-nio-8082-exec-6] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:57:58 [http-nio-8082-exec-6] INFO c.u.h.m.biz.service.MinutesService - Finalizing minutes: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 by user: user-005 -2025-10-25 12:57:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - - select - me1_0.minutes_id, - me1_0.created_at, - me1_0.created_by, - me1_0.finalized_at, - me1_0.finalized_by, - me1_0.meeting_id, - me1_0.status, - me1_0.title, - me1_0.updated_at, - me1_0.version - from - minutes me1_0 - where - me1_0.minutes_id=? -2025-10-25 12:57:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - - select - s1_0.minutes_id, - s1_0.section_id, - s1_0.content, - s1_0.created_at, - s1_0.locked, - s1_0.locked_by, - s1_0."order", - s1_0.title, - s1_0.type, - s1_0.updated_at, - s1_0.verified - from - minutes_sections s1_0 - where - s1_0.minutes_id=? -2025-10-25 12:57:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - - select - me1_0.meeting_id, - me1_0.created_at, - me1_0.description, - me1_0.end_time, - me1_0.ended_at, - me1_0.location, - me1_0.organizer_id, - me1_0.participants, - me1_0.purpose, - me1_0.scheduled_at, - me1_0.started_at, - me1_0.status, - me1_0.template_id, - me1_0.title, - me1_0.updated_at - from - meetings me1_0 - where - me1_0.meeting_id=? -2025-10-25 12:57:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - - /* SELECT - m - FROM - MinutesSectionEntity m - WHERE - m.minutesId = :minutesId - ORDER BY - m.order ASC */ select - mse1_0.section_id, - mse1_0.content, - mse1_0.created_at, - mse1_0.locked, - mse1_0.locked_by, - mse1_0.minutes_id, - mse1_0."order", - mse1_0.title, - mse1_0.type, - mse1_0.updated_at, - mse1_0.verified - from - minutes_sections mse1_0 - where - mse1_0.minutes_id=? - order by - mse1_0."order" -2025-10-25 12:57:58 [http-nio-8082-exec-6] INFO c.u.h.m.biz.service.MinutesService - Minutes finalized successfully: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871, version: 2 -2025-10-25 12:57:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - - /* update - for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesEntity */update minutes - set - created_by=?, - finalized_at=?, - finalized_by=?, - meeting_id=?, - status=?, - title=?, - updated_at=?, - version=? - where - minutes_id=? -2025-10-25 12:57:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - - /* update - for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections - set - content=?, - locked=?, - locked_by=?, - minutes_id=?, - "order"=?, - title=?, - type=?, - updated_at=?, - verified=? - where - section_id=? -2025-10-25 12:57:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - - /* update - for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections - set - content=?, - locked=?, - locked_by=?, - minutes_id=?, - "order"=?, - title=?, - type=?, - updated_at=?, - verified=? - where - section_id=? -2025-10-25 12:57:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - - /* update - for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections - set - content=?, - locked=?, - locked_by=?, - minutes_id=?, - "order"=?, - title=?, - type=?, - updated_at=?, - verified=? - where - section_id=? -2025-10-25 12:57:58 [http-nio-8082-exec-6] DEBUG org.hibernate.SQL - - /* update - for com.unicorn.hgzero.meeting.infra.gateway.entity.MinutesSectionEntity */update minutes_sections - set - content=?, - locked=?, - locked_by=?, - minutes_id=?, - "order"=?, - title=?, - type=?, - updated_at=?, - verified=? - where - section_id=? -2025-10-25 12:57:59 [http-nio-8082-exec-6] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 상세 캐시 저장 - minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:57:59 [http-nio-8082-exec-6] DEBUG c.u.h.m.i.c.MinutesController - 캐시에 확정된 회의록 저장 완료 - minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:57:59 [http-nio-8082-exec-6] DEBUG c.u.h.m.infra.cache.CacheService - 회의록 목록 캐시 삭제 - userId: user-005 -2025-10-25 12:57:59 [http-nio-8082-exec-6] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_b3772e_1761364288042","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-25 12:57:59 [http-nio-8082-exec-6] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_b3772e_1761364288042"} -2025-10-25 12:57:59 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_b3772e_1761364288042","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:57:59 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_b3772e_1761364288042"} -2025-10-25 12:57:59 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_b3772e_1761364288042","errorCondition":null,"errorDescription":null,"hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-25 12:57:59 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_b3772e_1761364288042","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-25 12:57:59 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_b3772e_1761364288042","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"6176201e8cd24cb09d6c3de4cf80bc5d_G3"} -2025-10-25 12:57:59 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:57:59 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_b3772e_1761364288042","sessionName":"hgzero-eventhub-name","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-25 12:57:59 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_b3772e_1761364288042"} -2025-10-25 12:58:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_b3772e_1761364288042","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-25 12:58:00 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_b3772e_1761364288042","entityPath":"$cbs","linkName":"cbs"} -2025-10-25 12:58:00 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_b3772e_1761364288042","entityPath":"$cbs"} -2025-10-25 12:58:00 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_b3772e_1761364288042","entityPath":"$cbs","subscriberId":"un_b9b1aa_1761364679977"} -2025-10-25 12:58:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_b3772e_1761364288042","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-25 12:58:00 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_b3772e_1761364288042","entityPath":"$cbs"} -2025-10-25 12:58:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_b3772e_1761364288042","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-25 12:58:00 [reactor-executor-1] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} -2025-10-25 12:58:00 [reactor-executor-1] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new send link.","connectionId":"MF_b3772e_1761364288042","linkName":"hgzero-eventhub-name","sessionName":"hgzero-eventhub-name"} -2025-10-25 12:58:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_b3772e_1761364288042","linkName":"hgzero-eventhub-name","entityPath":"hgzero-eventhub-name","remoteTarget":"Target{address='hgzero-eventhub-name', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-25 12:58:00 [http-nio-8082-exec-6] INFO c.u.h.m.i.e.p.EventHubPublisher - 이벤트 발행 완료: topic=minutes, type=MINUTES_FINALIZED, partitionKey=87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:58:00 [http-nio-8082-exec-6] INFO c.u.h.m.i.c.MinutesController - 회의록 확정 성공 - minutesId: 87e7bb7b-50d6-4a06-8fa7-2ba92470a871 -2025-10-25 12:58:00 [http-nio-8082-exec-6] INFO c.u.hgzero.common.aop.LoggingAspect - [Controller] com.unicorn.hgzero.meeting.infra.controller.MinutesController.finalizeMinutes 완료 - 실행시간: 2031ms -2025-10-25 12:58:40 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:58:40 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_b3772e_1761364288042","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} -2025-10-25 12:58:40 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} -2025-10-25 12:58:40 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-25 12:58:40 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@6d4062fd] for TypeConfiguration -2025-10-25 12:58:40 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@188585f3] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@6d4062fd] -2025-10-25 12:58:40 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-25 12:58:40 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-10-26 00:12:06 [lettuce-eventExecutorLoop-1-1] INFO i.l.core.protocol.ConnectionWatchdog - Reconnecting, last destination was /20.249.177.114:6379 +2025-10-26 00:12:06 [lettuce-nioEventLoop-6-7] INFO i.l.c.protocol.ReconnectionHandler - Reconnected to 20.249.177.114/:6379 +2025-10-26 00:13:01 [parallel-4] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Refreshing token.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name"} +2025-10-26 00:14:11 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:14:11 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_815c03_1761403649483","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-26 00:14:11 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:14:11 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-26 00:14:11 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@64ee9290] for TypeConfiguration +2025-10-26 00:14:11 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@203a266] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@64ee9290] +2025-10-26 00:14:11 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-10-26 00:14:11 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_815c03_1761403649483","errorCondition":null,"errorDescription":null,"sessionName":"hgzero-eventhub-name"} +2025-10-26 00:14:11 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_815c03_1761403649483","errorCondition":null,"errorDescription":null,"sessionName":"cbs-session"} +2025-10-26 00:14:12 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. diff --git a/meeting/logs/meeting-service.log.2025-10-25.0.gz b/meeting/logs/meeting-service.log.2025-10-25.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..f155cd630fc11620514656cc9255890d111e86a8 GIT binary patch literal 132595 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

(3eXnBQeb?d$7rc=SZ z%my|E#d^w5MZuFdWJT`=n@+e*ARR0;7t*G4eN);m{#nO@gtoD2MF(Z2u^&Y!g{nRe z%jMagp10+n=;FZhO>fs*MEt2dkPBtb9l90SvJTcpXO+TwpYQQ20__@W_7_mF2V?ud3!cVX>H} zUP0Dnt5diAm&n;I2a4LVptgFMVjvW_B^n`On65Ira-eZ{I_f0kK2xD}W8=2@Ff2K1XMVKY}XK}8RY5JL4PSlFgMEF}J}{sXZ!=;J8_gNp1# zag`$alC+ia7a%4t+avr<$nV?(tN#cfEw7Rt?jFn{@{nIy$N%?O94CiD_=p#e>|Vo( zfzZ_1-StXWPUixzVnAx_Cjp&{dnc1r7~6*HsPhdih1Bx6=Ql%`)~!cF;BW0}m9p9@ zo5VYVKjm5!2~8&!E$t$aaZ=^>(()P&Y#Vy+TxDcWIHh4={rspWj_Tv;DQp7hnqHxv zh=zqh(g+9_GE=w9)T=CNkywVHe>}K(DPZf$M3G4Uf+it5FRiptc!xfRIIoo=sPleTp5FDbb8zV`ZS(P>Yy0uxkh_-)7vi)C5??FOSlwX_ za9;k%ecGKK&QSsVT{z1!U*IKAAd|L{ni88!fWdU2$C5f@UsaTJJ_r=7IIZ@ z@_w2i#sqyK2>o!_(aI?r@v11MbBGk{w#}M6+>!rhG&E_@&x<d zpjVA7+{;{pD{eaVL+N6ZQ%`2!u-A_SC=Jw$STM*$uNXIe<)?eNoBVq1q5HpG+3d+O zQ;6Oj4(Et4YB7HX8S0KbAQPZ)SJ|luc%fk~mZH`#*?H(XKmci59sRMmMrU1f6q-<( z`NacRPf+FdT1cOXWG0Ep)IDGD3Z{SH6(;b3@c+Oo&?Q4A)nYL*I0^UezZ4qkMr%6- zFb(Mu@IRE24S)a6?kxoc6BI4CV_GmOMH`puNOQW6McQX_i(P3p9$V?_HXccq*`i+J zpkN52lYfibh5!k}$LRYFy<*hU2bnx%851`F*Qf4y+6D;e1IrDGm8aPLhhCvbVIclR zuP6hz`l44%?g=6MmtFyfYAT%@Rz$I)QmCiYG-{FCs%%+0sv@s=I#8=1XBpPM-W$?G zzr81hPU#(kOdmg+`2CmXeI1?6#|_z@i>{a3?SApz!)>*V&;9e4r7m`r@A>|G>ht*l zJ)1dXyZ-eHfrjU32zFrSQZ6TM!#^3L)1Ci4j*4~3EyiR0*s(iKE|YdJsk8r2WN@xr zNLK!dBkowJ+Pfqy=O)#3*5gwTS+4$Rpv47EDeU&dmw1+UE0?$!K^8f7A10 zlkM|nz8ta3D&`QRht1GxiCDcP)^6XV;O~z#aHIZ*+b>tzCragCRi9VIM$ota+ChW$ zm__Y`+Hzu{&+qhDZoz){+avOe&1~R1Fz)_9@zs%JZ)Oyj6$Q^Sc#E`mySa7sbBK2= z@sy7N-K;maLfAiA+jY%-$+xfnu#@?9ZmuihHgehTD8c-O zvgVFOZCBpKn%pVmjk|IaS4P4xgzTwjDkI8Byk2!DQZJ&3y;CY~W`>BQ(VRZxyCj~o zBQFV0110n8?1`UD2`d~G+jlk3e5%+*2mR+nvkfqZ(IfTJ9|6~yS@EnA1A{U!wa{Sf z()536I(`eW7y+e3{y*%Ubeqpm|F69>G@hF{@(7aZk9}j4k0_oOok|A0a4m3+WOD@% zO-`jZKfhj>nk$!T$Bn`OXAExvJG27i9BE7%Xa+b72n*eZ5B<$;%D>*vIGZ3t?ICx+ zsS80&zDa3h`+V$M z)ddOT>w3RN-+KUl-SyXsf6eh;^Z^WF!5bFNl!)c}kUJ=<5>s)Wy!l^>E=A zBS&Z*M_>6elddB?NSohA4j|zd5lU)NA}-D~u+gkRKZNzt}0Q{MW#V^R;=@IK!? z`0U2r4mI(;-#rX{GSr{!4fG8h{*S0;LPE=>@#9~QPU7%%B-l#{KuY6P)to|`qIOi^ zBe7$+uIp5U&aIkjG(;0|ZA(m`3n?Y_ST7gV(s!EnOH`Spz{mdUCJk3Q*KHoEs0y@= zI&Ie}*MhH|>d#&ei~qV&3DGu~82;@>4P69Yle6j^o|=BmPM7NhkQtsYShLuR33=Hs zj5J@7JDXKrk-KD2@6_PxZLM!9`_#3`Z_RRqlg7UO_Z_4rjaeY%*pRZ6m5CuIeO7M) zTh@;e6K>^cwjZekg{;|_Hbr~*N-lj`7_EDJ-3V2YJN;W_#Hozqe=*ealo-+mZ@!_5 zk!I1e#7-uNk5v6*RsF}a>Y14m=Uqj4{0FC#0e=}c_VehUo8h7F3u5ErW&c$u+er^8w3P+4(XT31UD`cu?3q37tkD_zZ>|Hc5HD!zLL zCF3n(C6*DARc*`6?0OAfJQLYIL25g?9k+4wboYdYVNhHB69%;01!JE}B(%Y~N^p#c z!bR;*4~E?W(OGzCEz7!W!;BHOv!><&)!}F)&x|I2>|=juoc>oLaH#Pk=ijCM2uwnS zM?x{B7+%!s%V4bNj4W$v!Q|$75V%o>1ZhIR*^$h59u7d7#a}_D}^daH<{<+{#myvSxS>uV^O5Tg$$MY*7^eej<_ z7mk0C5k6VS^bHyNHcz-*bf&M=s~y+Jnqr?dTE6#N{>0}a>^$k<@43BlQmwC5{;@Oo z;B3Ogtj;*^I>y5nM&T2e?=Kx)VhRN#Uqyft-+Jx5+ALU|s)9E&GqUg`?3MX2k9>S- zHFQ}r2fxT(%rn8*!RjLW^#En-df%Ck?jrmOaXg&Zeh4-bV$+AT`YJsUv9+*09bG*g zKYQO2wo|o@Y~G5>cm+S;%k0*U14AoJq5e~#Ut3R4Ls~(`+5j?Pd-Pw8jTVJmSNRd$@b*w?7r zaxi`C5&m~IezIsN>!NSjy0V7_q#$${cFuL~kZDt+&&4BVANom5NbO0njFXCLJr%>n zF37L0QB{agovm*iSwW+s)PC*mc-XuXhTVpCEk<1!(C;x98VO3*tDElM%$>SX1j? zC_X?N`F+UQfiqiSE;=kVvhJ@?GGD)ny7a&f7rGs4WIg|Jn+NDOaO}0qx>?WQVj1Oo zkGf@=P@G9A4_#_!)oh28xl+YqnT|I(bKI)chD8>sNogRv4qvWA*u4Xg(^!)GbQS+S z#y!f3pxYhs;#|j+9<*O4xNUn;K;u$Jp;=u+?k_f(15#IfQRMWfc^WH1e?xvn)(-2m zN6~RkU71p1g7V|Cy7m{t-kFHT4$9>KxYf-KIm#H3=lC(mkN&jR7HMO?ceY?E)i9KyFB#MtlMIc>mJ=ffqhmPt-?d_|tU(?P@gQG9 zD^!R0T!XnWGc(B}UNgk`zBm~Sxw!e_B+Jd3kZNm1d+s1NHj_ilNN7Fs<0!GSmE8t# zf~||yYktFTQ>+*9Al7uayO1M+-I88#&eZ}6pFOTR+SAn1L}?)=oQ7Q@4A-ILT>zR;9zao9 zR#7`NekEsZTFF|a#5%?f7&QdUhmaz9W6+xT>?P!<-^-c^(}Tj+?JD6we;nMsUF6h; z{2CUEZ&MHrX^G?k6DWQ%7#A7Ip?F*`-;%(aM)ZU|_0A<)7DNr)0@n|BtNFO|49+mT ze)4Q@g&PnMN-_n+ZD)s#k#keqw#*`Q*IwXq3+v%u0OXXCQA#NR*dn#_ipH>JLw?*I zaD44rrA^z&c);le_60I7hn?OlbMpurP=QXXYUPdV#dnd{-@P)Ik-%s8^04@{dCH4Y@kEAjP zZC2#_DuoK!T}-+XrJz}!6#J($;$RX+iRDF&N{Pd;003DwO}3Wo1x>b8JACvcO_WB~ z`e2!IOVpU_#tn4O!p+J`-X1XciG7M+a{zvgZt-xV0<11so3c6OQr0b$}}hQGBb zVF#X}BCZYnc@G(oTM`MeaKMWj7Mjv^XaQ6DfNH!Ew?al8n9>qiuF)lM;_&DqNtwhq z=aQ_*FCL6@$WT|Nayp-|0lKHbnff-krmj#4uNSTTpe9W9NEzuqJDAhNPuazSPhIHw z?iYG{2clj&s^NA)G#?kX-*oW4k0Qr3)FBWRqF`el*~d95v$r>bmjMZ_#&HCtp0#(#+XQRD2{gxuiw1w8r6Z`Qa6XiOEJc&sWmKw$v6vUmo zM7N&hi)0fgZyqMRr3or6GVbp!V&WE6j)htm<&0I-q|AQ2%rtJcN1ApSj$Xu)eqstnN2XW~SaWT<7rf@j)my zsEziLu24Z?eEdO9Th8Hp6D}!@!d8D`P%yE0!Z>5su%-x`_6g2gkN;W5ieeK_A5@pmkY@zW57uRy{4IkParqjn+9hjjFkRg%_B zyq!wJRH%wg$?1Z?O=^w`)2v}euB^k|^1|}wxp%}~q)-SvOlP!PC(~WGm!P)SOvI z(Hwed^Ta;-HPOpjy`vR%WrYnF{ysK`c)lvh=$b68`|Q5sjC3XKr z=;61d`GmHu_pj!<3c{$N)+Ecs655}}3`oqUts5PSbTDFru@TLyt zB(MQ8l2k-(2BeEP0NqL@&97w+j!rLn;v~$%jSVs^$2>a7lFK!08S2#61F*f4)FjAU z42o507AbGL?grWTQh*frf(gfkDv2LL=#)|iXolIwoy()RlZ<5ggJ3(pqk zO!ShpP@2Hp$Os8>*v!MDP1%Gkh|;=#%5vd-uLrGx8Dp0ve(7w%%wJCAiYpaFPyX`s zj?E3CspVu+k5I4J=Cy)ZW}B4~WcmRhggMmt!nahX=k3DKJS#mG63S~1 z$6n;gJCOV;<;Lo%ZPF0Y>D2z*Bar$@0<{4U@Ry}gY?g)0)^uE`En1mv!`JV(V?>%O zw4eL2jJY#H9<;mGIyBPDN39rsh8~v5qO}R{U6Mq*bG%t=3k@kwt$D0yb4|Ngo{5ao zT$q3SXaAJWUgxweLi&HmsZfQ9y6;cvT|CCHW5`)tfDqFcp7nYN58q1xufbj@@Iih- z!QSlS#Znbi5N}&C=R=46><-hXfWe~Va`o}W{Q};B&|6HXU@M^FxBXLG9A^R>XwlR~_b3Wu%34LT*v=}qjL)v)8Rfdr7172|x{Xr^Gp zdUv;Y4Y3F^bLMm7KfOc9``iN2>ffVhIq?$Cn&~tk^20E`Wz=Dq$B77ruqO-gTwe3j zzD;>-=$riH)~cZ=5@#xXfx@moA}rX3iWXy?qLhx62&^(<5C1WY)NDI8qsCNlUEc^L zFE!Errw|9v%F4OcJ<{6B49pJO$0V5ZvPgu!VD=@6qg}$sl--V@QN5j6mZ*-0ee3*~ z%fRVdy7kQu?57m9zw10fg#ON;TRJgZGL)kMn9tDW%tiRQtAt{%TcAwCTRp+7Agf*5L%Qfi%ADruw4Y@c-u#rT% z$6yP%A;yWVdp{jS6e-v%R`#cK-;N*YruWe|wLe}gUr_ivR!S6-C>xT5SH&IO;6 z4RH|Egpz}hy~5mrwjc~ImC3oYR()c9{bXr^v8;!&oI|){svWej*A$GlBJ>0go&z<9 z{=%E+-!D6x;jZ{m&k|uNvbVyQ-axkgSpiT3Er2U0U|Eu;EB;e7H~9dYncxf}tRo&+ zvfelCnFO7WYFnL;v*!WZk7`Tl6fV$;HP%C09n)Yg;8oM}s zq}Y@3j`_)a>TNTD)xKWSytNov7SF~wlbjIRHrP4^wW`So)W9+Q@*|--UO1uoT#OP8 z=WF*-DrGIJ9E@En8Jjmr{HUHU+j#l?*RIlN`z}Wm+#00ZR0gS*D#;Trh0%)p%?RJ- zBYzWtUl3xQW4SmgDM@Npv(?U^GCUXAfc3?byVr3N4U_S>Z>Rtrp>pvD`73-0m@$+^5-gr_N*sF zuuScq1Nf>RFhRqSHOnu4%~^cl**tDEDyv2=nVN8uogS<1>Uw&;r2Tlbof+8t zyx95lq{`r?5t?u}nhmLqT$nm{VsKLb1UwmvjcuuDNs`QR9RJ1@_yHmP${#VDfOO76 z$~09r1T5lYC?Vq&sK6I22(qaL+S$Mz`xZ3Upk}5C<%2EKZ1lACzFeIC7_-fquFZjj zx=zstO}Yw*Tv{5=s2g8dJhDGV@xpvctI74NV;{O`zjvdzH=-E;r^_b>}jchGNHHS zRwf1n92cZXm7GGgp9a5eg6L_wWJBzyUB#s-DqD=O)Q|$Ft-6yNa#zROewWV2NjdB6c>Ktc zD`!z$;!%xNW#ZU1$pE$zi1O<_^N*uAoM0W6U?I*8LkIAysiEmty*^~-`=54pNgNnI zPV1I`Jd~*}o$r1e#*M~N?Qpn1hhNft-eON*-5#QEeq8TtcKJLHgtNNuSlF@Ts6N_4 zdwYs!>C^MYxH~n9rx{8Z?8UPBBSZ1M>!Utm8B41ej;usbqKKlD(c4YEAeXxWr#*iI-ETH6Z& zk6wB(tv!eEaVKGYW-}A#_+&rGIuAp+eqm$d(ul`%WVNm%(&XYC{ebwu%X#G3)^r)r zMd{YHm3>7wxmiRjhYbv!2=d<$vc{4Ekd&$YruBb)@tQNqr+9-x?bv;9_21A&Pk$05 zQF5?iFC>VK9i3+MaA&ZpFE&=iR8TT`m1W8MoOu}O6cwtzaM5JwB-4~igQ+UCP_WAeft98sEOD5f1Y*vfqR38I+VTF4NE%Mv5CCGM%o%RSIw?_iYG&df&&(>6ru`+4~(hru)w1 zMYZG)Og0utvJ9(TNbs0%z#?f}m@VN(E!-$e8mrByx#VsOD4pEIbyxphLY}4MVyi*U zcm4enSP0gu0{hmkYTr7Botaa-YLNXhe`8vI z4rjvMv?9?#Fm$k`TJk5j6OT&~=wX9Oqw~V)CPtg_tG^$#^LJim_YQjG(A&b&foxnL zGkn)CDK4~Wh?vscIs}$Y7q%Sa8H>^vyVX%<;bTt;Hx~FIG_*(2{$ZedjVjtpMUl|9 zrZqbqd6vzyP|E9@g!Q{c{h#O{l@&ry=T`xGoS8XFJi;Pz6;>P5_93#%YgX^>kEjE2O4P!`Q}d2f)E`L8Ye|(`0rmf$+-l^-uFte3?AZwUo1FDA4 zi&YMGai?GvFb2C1KT?>kYtrJ3#iH)VwoASskX0Vq$z-KrwHNR47uJygV-PPcwiu0i z>B8&A(7ouh2}C_@CS)JXV#Ef7NY%o8ugQGl^3836#qG@L56vM*ddtlnpEr!#cTN{u zq0-gznl$)RO&6C(XRdO)7sV#h*8_f4GMBbY8y8dC$CA3XhS92{FI?I>8%D9T%ATm|U zO|)$q-xFBFhh{~LWmUK6Vb!%Lq`}X9AX#IB*%>DZ2{(_^N+R_IG#nhX3c8%*V3rMS zD#(92+x6Zz zaM|VY+_ae=j=tIc7TkrzCBIVtGqR*0==jJBaMv>Wpb31zyI9*?USkiy!gJ(xn>)s< zx{-dDJDD2UyO0Z>=QvivhgjUx!M?UOkO?v8=Y4bBK(zz*`P`rHqjw1<>+*FyP2l%A zjbxMPz~ck-PDQLy`hH3N{Dc`XTxSR3cCJjdhDD0zWwkJkZo{likhn#$$kLtDus*ID zq6%U!`Ea+`^LhtK0MSI9I1y`cmTGrs6vnj%c#DiCuZ4HKWnijPI@@T)8QojAQ?Bo0 z74$eLT}KU2-6Um(HH`!}YLQ`Rhyz!`Kaj&k$m_WSKw$;NsX=nL@(^{;bwoaTCn>{d z?6SUu=OrB;3H*w@ice{c+p#r2CYrrAT-MGQpZCBl>bTBUZET%+x~{jVm#Q(ku4iC4 z-Aaj0X}`-m^Gbt-fpG%I`Ah1A-AtRejokNC=l6nZO_*2pG;O}hv{_ZE$fcs}2rRAf zqU^KYwY8#bI8sfkm(V0?*7qFajk|ag;Mj}bU=Aw|xD!zSbAu_IW2Hw_`Z}niR@saNtj)M%1L#&@C z#y2ZO03}rW$qI~@D|cB&p~H;j(&HFU%Tv7THi}(K)-U^yIStS;Cd_=u;}8|**SSZ>%msG3qp1w)stU zK{96Inx*hQy zzMR02jU_@Y)8LLqn3=ulFtDGG@MigAhyD7f>M&d==Hbio0H)j|+v-@RxcCEq1 zsYZc&(`%#Ez1qn3%K$qqr!bW(<00WOLY0Jub9gd*ai`Nf6x^Irwk6fTxCfg($h2$> zA3JD-ZBv}kGM#cHhybf7K}Tb}zltQfgi*^vtPACijhQ>onWP_@fu_*AdtH)*#J#mh z*zC=~_=6|BH9az2 zustzJ0&2GNlGlk39TwJxEvy5*c8r2ZkkV@ce5r`SQImGL_z6W5;bFKtEuvofldiQM z*>liK)iUTZjWSh|QN7+ov8Bq)iDY_Wdw3c;_9!L)`Epj^YdPVLsVPKLL||$Zfr3H!VKM=y6WwQ!b8?oaU@($tfP_KiC7(b^O&xu zLAt1tYX`Y5QPyb;b60?{OI&?QQ_3`FbH3f;7Es?7=<^dnFwI|O{iL%#%$74i9aF<-E{T+#j;m&CfG*&oeJ=XTrZq8 zs%kTef^0Oh2$xuY{PCBDkY*y*2nlFwamP`dfMk+_d@>nrt{-L_LJ{V#Gn;TK?9~Z` zf$~;|Tu`Pm9W+gPa2XAe>sOafh5OsL1vO|(;3 z&_!^xC9^b5(qtjviEd#ACTc6unHJf`an?tuAn2*g(aMz97$)BYt&*wNjP#S;7#~NP zE&sfxD@0X$qpLhpqP;ND)~Zt7rb8T@lT%kH=Wf~ICl%1hxi3@D0GjL^* z)S`6useabwgsxZeS_EdUu0;?AL*KY<103QQ3Oz40tQy}A(J*5S;X>79Qg63CJO;QF zBxw6_6$Z&kQUg@8Q4kUb1zFi>2W)s<0RBU%z@W>1g*sIgTlYKfzSXZ03!fThi2duW zhfu}Hq^!{_Kr3?E7~5OF@Al4hz%r`7w`DLO&zLbHoeU$2{YUr&A@@*b%v_d24A;ZqiZyQ{_~ zo)^=j3aDX{Nmy^T5hUkgz}?AW0!4%>7U`88aJ~k2ufX7PBpf?i3Z?e&Mas=5>p9HO za-igRBu;o70DFJx=YmyAyWwnXGNhCrQkv+Ifcr@m3PN?FVb(rBpdJs%NBkzhzcN1& zl?$K(QE5H93)Qup;Ksl%qi499E|DJ9`K3|6NsW!@%at5}{Tczx_N zN6_*V{PmjhB7dTTtOIi^dsMMpQf)UY^y}}J|o=DL@rrDX@I;D@BB+2N^j|Vu&?VLc^O9iY)=ZoYav#g?W z$mb1aR7GTcO+HjbH*;VZwJ|dXtD6})U5)Dr$0jr?@!J?V^C8e3j2)fzZ7xQS;7Bb| zRYk= z?LXiDt5x%NH8Z+zU>klNCfgl4|1oylvNJhz`}+K9VdMjeGXux3JEKRvD9N)ZUnjx7 zYUX|ArM`Bse_vsKbq7xD)u(=)&@@T@^}}CdU&TjB3sZYZ^Xqzj#s5RtTL9P1WLu+# zm||vTJ7#8f%*+&X%xuTZ%*@Qp%*@Qp%xuSu?gU%e_-OGl;d-rd@#q+WZi zt*R7h!0^zG-V4(l{+x)EG>QCENsBg43r$s|ORtQoGTf7gQ^H&1pDsc20B!xVH64O4 zqTm9m(|sql7yo5=XWKY#1lX0C!~iakLP7^L{O_$u2a_jhEgad}Hgl+;XX$7CG*w=L zM6OUpixwtN*v@WMcqap@K|7->XBVLEcEXH9d3-}@DDq|aWPY#k24;qGa#}l+YvF|Y zK*mgrS14EBjO`YthhbV|y?ni)3bA!_o8ODjmPx+~;N$H(p`Er=iPzjQ^Ze^>NFI0= ztH*7K4We2LqRTet%WXAaNqs{25E^6;aOZBT*k&9vMQ}NrX=dNPGaiEH!4DBjAIGo> z4xh(K@mgHY7`49ku=s-U4%ZMQR=7MxE;!tGeZ1`QeR$J;o|TQ!nMPlqWdVSetP_nM zymZgHNGg^D<|Wq-b;Amkvk~)VsZn#vMVq_=R_qR=i&G?{*5h<#@6cUwhsVNzP`D@| zEb$B`EN#mux7WQ*{wCRFAgCq!&yP01YbQ^u^UcJV*AoEFiPF)0o3rDjOd;0lFi(!$ zL`THLB_SiWb#l70Ir^A99Nd}Qyqx)d6epT-xkIV<4YuGTUFs6f0TL@;(E|ep^`G?y z#hi<3cf)Ge%foHhR?b*emd@K@)K2R@o3=dej_wovqDTVATD?{JiF*MoVsY`` zr3NgIrcYZ7$rNI!OGiu;@-SW&RTo0C?w!JT~{!=6}WRx?x@du6O^F?TE@=&WU&8UVoachYMOfPI4(cE=|%2MDM)?mC>6b?89n%EZ$z!S zn!xDVOQ#IIzurcsFUm9(VL8WrZyr$c0JYF{#{JHmmsFUi>E#YR7g?Dx`*oR>_gm9y z6JCTxP$;`l>0`iA47Gh^4}-69QR258LA{ypVY1^Q+Mzc9w0g7Zp~g-?+?KS0;n9)t zvI5gt%<6qVb;0lRWEQw5n)ksxNt2=(Vbq`*!3ck#6WHf{_0r_dFX%CfazUhFfjt)6 zp=Gsv_On44v5H9E$ICV9!Y)#1>uX*+ek8chS z8$|mF@8%Z2_y9)aaIjjV6<2?@Aj(BLTx&%PFCKjQnkv%$wXS}hpfFDi!As0}3@z>~ zU$2{1Ybl2>a180?_g+5aG|T{90(MK|;MbYBYsf<_>t$Gv8bP&GqYkBg`Ui%gHy_hT4)3EddH`zT&#IJ6i3OKnGc${21+sbz><8hPb zZpl>aj4XKuwebDoaAzRKV?;8GbQ1(g1=0(w6^x(5M%IpNHx)WXUplPt!_4+P_dSC~ ziEc~+IbjihMt59$iJpT^de8a2A1Bsfc~>{8T4J$@?}d;Bg)OaX6Z;I*QVUl%%`B$E zqQbA<3IZ#tS)fT@bvvU?Y2K4l@UiL@0$P8y&qrksgZ4E@~MT%QP9Chz;I${``P@L9H#6}48L{Fb0?K#20>S~Ft}O+LC6>D969}`qWVucTx~h%k z-|Dg2A5Zdq-t=S$ToaH{p(-2X#JQmFeARmQoC7>7@(h<3?`PMyPx#f7ybz8;JF3xT z4yaRekg^3H${$KG$ZGug%7I{(PF1WGw50lkXq|qADPc^oAaQs{{>xvU*IF+ecNTP8CR}=QmB|LqdmvKQb(U= z$dE=gnRp z38k^&=+D)F>{(>BWW4lb*0&Bg@(ZrYOAsa(#&bmJyixx)zPEmr+su>r#Jr4w0H|Aa z8X0(7`{*c1gT)8zBr>LUO^RiWGI`;UvqAZf z1lx*;2M@Vt53iULL{$Bu%+3FUXP8FXCGt;9K0O%x21sN~YAhqTqbwhyNl|GCz0%E1mns!zRvjDdy{lv(%Mnwqy~{H)g<(pR9RjP-j>XD4c-)IY`l!$Om{9I z0iKGL%wxY3Wg#0Amln}Tvv~W5I9iPw7GhuXc|WsVbRTTR0><)ZtQ*mGr_b?W^W7vV zHWB);IAmdQ4(4<_DiJCOr+BO){}Am)Ln$BQSJ(Z%z4{v>)P*XSG#1Mpv^Xu3qK@I8 zwT)2_7zjrGUjFfye`psaP^>#f7QdCwHCEaLd|o@o%hxSY_g&AJd=shU?a;j%U_ZpS z$vJ4s1UxIHLp)8|5;afrO&u9v7Q1!q{b0(o4vDTDrNc~hb(NMk@C|hZD7Tjz`Afw5 zoOq1{2@eK8)Cg+Xe7Bchmp5ke3cg=ia%Z8I2-<8|8VX8 zDn=bNGhh3`g*13e+=psg)=TwsaWS9k)v9*EFO$yfvTQjla@gHIYX4FWeZIRoiIXzl zmR9~lG|bewwV0fwO)HEx(~(CbRL?xW^6hu6ZLue6X;~;^E>u`}fmO)*H2b#pJBCBC zc)^v$@G?wIgtx>@y+ze@UNLH6J^0{gtaMaDd2!Uv2~~U6$&O-x>DE;GA37n!+}x@a zZv%})ryLPy(awEZgh(Ctqc#@u4J6J6Vk33BK4Hk@Q<<$|gmzLLfvJmTlB&V#F93UR zLt1P%eWO^RvLv+d9-VHFWnP`?kt(0hDT-P6uzhzFwxEF7)$Z|&#^uP&dF(w_^I|Ej zku(^sMr@+0h~v}<+I!+gSqjga*+_Gt@*y743#F#*cb*$tf5Q%5Qx$aNPk-fRdq&2Q zTULv|yuqkl#Cw{eXt(!H>GZb_LE1-UOjW?Gdy>#}6z{v`S{b;rW)_+8w!1hc-J+B6Dc3hJv2>oVYE6;fV)CjfLFh4q$6*#3k3-m@t(@tGa~S5- zpslD#8BwaDk&UU{GNe?kP>IO>xIYJ9qO_XeZrHFejfSyB+mcOqQ)!g3Kv{_-oc1b) zhkP#qu71`;X{(&}YEp9W_1js5ijL_$dR-TYt?IMhhH%Ky{weWa${-*cC>lA94!U-{ zb2jr@PoI3G%=Gc&uY$(p?Vg2o#8ZlnZIwG51_MzpOeluahFmZpT3Cm7! zMo*!vw8Y4W1Jp&!(>!-S2nVL-oC%MmW-={aIvQkH)v<~e*=Kt{&SY-vNYkwaO3EMO z+Tdu=m(*p!do`5@)oc|r$1#WNstj+Pug5c!i?<_eoZ1>P13pSEQHB&>X{kov*qWGj zZZ863f5|SY|DI~7J+rnmDJNXQE^STbrrJ7fOb02|hsHSM09`gAU(oirJQ`$8QmN&? zuCHgTl>{U*kffq)Xa<9WflpKt(4a=%)703+{=+hiXhV2E`L=#i*RR0&tcpIWUa_D) z9l~$qMPK#4qc94oaN}+jY2opQT$s;G$I+TE5Ltm!^yM$7P;asoIP)>j4?>b`9kb7G zYDXkhUF&k{(;&bw6TcHXl_6&&!$ZGkD}LSU)#sa=z^ zYHj+8u5jV(gx3Oi{#cfca(t*J729E_AtSk#OkbI@t3*rqk>@T2i5@Ss#qfKrf=;l1 zOOqP2RwrwOb?;A078MKL_3<;W1b^i8Nk)-WTx=+L%+2I;(?+quIp#UV%@#&8Gu8$} z7}R%kY*5x=3ns9x9&pk`#Af^5TeF-RfS<3O&)bVQ}yE$? zGZMqxma zT-up2QF1ktww(COx7+F`mcn+a6&CUKGH3VYZnzI!JY%y~`op+0|H5|m?gEUk25D9XN!#G7=Y#%;cfP^Z+5`xw)xFMSq$o=g5L8EBj!Rk?q5?7JX|macWbhMY zEiYk=@oqlZ@0na}4rNUAg);@KRBcf{#-R~dDOFQVT3e~K_9d$o8Te)j8NR~EXPNyd z6nR4{)QXEW$?F>CrFacFT@RAji+oBfcmIUAL z2lxmQ7IS+M=Vp1rY<6lS>1$VbPi1mq<%M z){7AZRv@~FaK%?=Ta6{X#gougHMy-w^K0c%<_m*IM8YK|=^^;zBKI%e1k}SpFrk_YHb|2q)Zc%Bs4-9re-|`_ zxPq?+Jqch35~)}*6D-}`>w{%RDnL+f;niJ?GBQHE!wPeKo6eSOTSao~ES)1S?;RWF9%DG#C4EdJ z%@|wfAqI^Q5N|vlqUCVeb<%ixp!mp=*KI>K2GcS?o6xmG;=(EP#C)U?gLlOC8U|3- z#&HsP3O{C}2K!URvbsN=!jYvyT%;C3#H2X|8;w%V5glbPG;t4~l;^*w%&@Y+o}yc< zZd-lWT9A<$YQ)UbK_sKAxxl1~ulj!;g%&E<=r)XHbv?~p>12=5b+*0TFWpgeyEe!d zP%E3!h+8p}{HUy8q^@TzRmHAQHqv7rC$J=$Lsz=Bo10xd)_RdmRm<@6>j2G{1Yd~! zW{KJ8eLKq>wko=mlgPZ@G|trB0m|GX>MoWqI1b?N&Pp%4Zv(AoS;8F$#TqToB9s-< z@bsT*vt{g3p6>Nz2Q4UOo5-4g!f)JF(c}p7gX8Q%!PZ*5e8CcCQ<|$K5Uy)j6AnL1 zeso@4zz~J9%tVm5e)DH1s}BG&zW$O0oSXgaHu?06#Fk@#b={|qU0JmVV7uVwBQ`Jp z)jXfX$On3yM5J|J%`n%WBxWXBz2tYEFE;N4!aFXVYz zC*s38L-QEs$o1K*vmu(^LX|!__f4N6raKY9LAed1O8ySDMzKni~uYdBy$d0p~Z{GL@3~O_!i& z%dE&(4ii+)U~t-b9ERZ^oK^}t+{t3c5I_m1H84(>JIjvC>TT`Z83H|b%jw3e6ICWNF~^99(Nt_j$18}#8V<*G9sDe=pP+U+I5sIO*B#$8AjJ(QC4yzw zeX#>gr2-F^WsC@nklPcd>o(9cj46L2=Linh!wBF5Q_LY0(fT$W<%4jwLHdHNUKZ}8#y_Zb^)jXW^910vqBi3^u(x; zyWMUj-513e8P#}Zoek8xkB~&KyG=$2KXa00TR|vE?;Nz!e^6{nH*=&7r{d~E`w^jH zFQ)UdF#DG2&Yi>384G|$d5zv3Om($AwPoe-d3^5f4gfgFO41IGQrxAxGvzpoj6BLAOi8@ z3tsurNKVhocK7@^)a5UqGV)t4)Bf2M^_nF~IaV2bbbLV9+4VMM&EGebrQ`lO6z28$ zaez*@dK^;Lv*4}0(M9@nL+BFN^TvO=utH=SNf8nwx(Xvf@OBqut7T51MnPs^&Qv0Y zAz$7p*Pz4O^_HkULHF@;d-f@k)b+Mk!ceyX68JlE44RYOgiu;lE{80MN1KpEH8*0QnUdY4`2;D)-f zxx%x`xBPmXJ$JF$iTqKz|L*J6+r{pc*2-@wMaGH^=L+9oNZE0{2b~}{QL_^tD8x(I_RS;T9Jqy067!{3a=0$)&G(4@H8lQ9X(k-S zMjO6=8OR!p3q_91>1tic+&gDw{}Zwfnrw&YvdfiUvw9z+{CzF%%#{}cl`~oHVOrgZ z7`Cv65zB308&|RHoixE1uE&82^^OY>MX+M*@s~8#7usevyw+w+@_2_Yfa(?_cBL84Tuc|xeVb{WM1;IlvqRpmRb zRjcuCjF+bOPTeRjfqu8Ru>du10)dwR1T)sDIJNAG;fRiPtL( zB+~b-)hxa^vQGkBcS#D1bj>I$C^kCO#0DsYioXWCR@;q0pEwj$Z*~U)zcTU3`YN<@ zqw{xGLVY3MwJYbEV;?bmZVkjE;OPDnrf0SrVrP;ak#N9TQ?K|XU77CJFq?rv*+9jr zEr$;QFS$dMuHPZwK^SSZ8BDslLx?}nYClVei%b^NHfy03=a$q1Gc$4)ErLY9V#_%t zF>>YHr(*8H5gLjZ@qEZ1_sd98$1ZMS+4RI9s5zZ?z>i@C8!;2BPBnFQ*dG_pUV+z} z;j#fcKCV@BsvLidW^zTiA~FjyA^Ngf(YCXHrMJD zX$KHgM{%-ty*rH`uUAS9e##SaPK$VwE+mMu`Kt&Ij9j<~VewDI3_DZ-o7agb9_ciY zg08ObC61?89o1s^dN!t#K?Uc3sXC1*g5h5akGd2jAd9pje%+$wXtBQ8CFMVnrprsH z25^V+;C;VTTBR3_!tv0BCc;l^?TNj%m^k+S?IS-HMSp7bL^JVFx>OX^eky6KO;iBke`)DRqS4q^p;*i}|l z+SF=>=;F2_k}IXY_zV-~lTzvvAa-~Oy#}Mq%$_!?> zdWcte<9Y0}9<5gEj}$(4u2`PA!W7@hyDhwnBXXzi9U?k(p3{q5+2P+@-fM8QuU>N= zhHm=>Y`wPWZS#Zr``AXJTK$lyIH+&jx;Vp2|K~$?+Vjf)7Qf{0Omk)q5|LcWkDV}+S+*^O7cR0BGpys3?%hG-6K*lYpLR5S?) z`5s#yr=GNMW6c}n51Z0qMd6SocPz-2-!lZ74q`n*Wor&}qhKtW;~P&tTLuP5s!{$g zES~#qPqgOy-(MQp*`2eo)hu9crWnBB?461G6GyTV3*(WI@ej;2>!s%X)*`<+{1OVM zTrv{HO!-UVft!Ag?;vY0*%vO()7FURj4hAA*NWdph&MfpWJhYgEwSRz=N8*Xr#N#7 zI|)~i1$j>U@{GN7Q>i3blj|-dW7kBe;>KfgQf$-+sZ5m)r?mqQTAj)QV@Sq`B$0baAAX z*oAxsXsdTIZ3*@{tm7&uI$``)!uzWJP048_7fPKL3PrJKQXM9x*}_-o#^8Ep(O6+A zzQ=Pr84BWYdeZp}{JCC~Ed)iBCSP$yxT9D1B2iEXCbmLx){meoOH-U@HE zPRj7z2KrFyG6I{Zg*iLpRTgpu<|(;UmFP5)#0k08*1|?S<~BOXo3XEX zV(Cn}PPXDbWi9TDIYmUtfQX37&Z)MJ8#Jj!g~`LJor#Z=-a_v6&j4vd!~=gVX7Yh6 z?0lSOLAN}3cVr10#j(;4W*J1g%)v4S{hyumXT9Yu7>Ga2oA%~&d_4x$$SCx@pAW9Y(Kf}`_AOKqb}?RctrSi54}8Y{UeFW+KbeK8U# zyXUc>zg48%f4L=A`9hIHDu>!QeNW3PD=J+fVEcikGbl#nN$)q&7H#X;HAw^~*8EdvpzV%A!Wj$uRa#){DGo*^Oc?46wytYBPFU3A1r@xl1p z7W0~w+bj(O{zwKAJr2XkpsNeiD=~@|1Sc`fym$j7Z4U)@B`oNb^=6c|=k)-+p3b67;$|NkT&AYOtDVdqFL!V;bW0;kIZu)^joe>Cy@ zO$U?t0Gf-Mf$nv{!-wgr+hCWA(1Dm(i(!^z7Pcd-AU4kc)LfUDXdUtcWSZ_O-uN6W zD~+`blXR2y!r<3CdM~fSBy;+A4h=okANUCDBxppKZg_SdB}9&ZoC^dY0^m9Wy_4+n zj$UO@Ip_WM!ETd~+yv=pP<*Is1IWiUdgs$2)OGq~wdXs%0g;(svg~XpO7_>|z|62xQRPcjPvEx8Rd2MiZiVg#Z*yMSj^XWjGC6yvk8j=m+A&?51qJO^%Vm1$-~;mK%GcX#^qc%C z485a&nqvv^^NS`14BmTK%dZe|^n-2Oq5ER!JM~|sO?#X1S6h^LR21M}X0{H8dT?3u za73*5^q$Rs$+N6acSk3~VN9D-+|jmE@!)rmNL-SRDN=;&>b3ti70wKTF-2oost^ik znF@$gxs{)T+}A-iT}Z1#K}!fHw)F)jLsD9|d&fJhdg}dMnD*B6Bmr}#XRrz*CrdXq zWXcxOj$j15HriKSrP1CYMVAd7n&5^sV-$yAnnv_wQZ*` zH8yWphaWb+z<*lL=r(%yc$lkJygF4ZpCHqYaU8gjX4b3QiXlA<#|KhSU!yp-L( z2!R&(l3+a_S)9T#j}ztubBghF-DB|{9>|j`(t*SURy;D~VuGn9I`*|0!FD}{9d?pqt)5<+DKr+t=Ga|i{$DGnBxaqI-#i1qeOc|e|FB?RYk zt}7ZD@L>AqXm)=NwMyVRBxv03;^va zt2?yNshX!QnzK^9x0c?GIaDYpzP{&0jjAe+%jMSThk(JZ?Pcod&}}gq3hffY%~~2H zA3@fYjdx2U2O_mbWyIxk`cYbCzxQ*jVMdTiXjL5aPv)3LKty#2aM@GBiQ}l>Xk64j zI$NLPq}ijmjjukav=J>~H5fH$n`;V!VG;+@!j9_#ZL}{5Td}vw>9k*eQ*e7ob*`PK zne&lDOC2OQV(zRFE&LfrRWF}kRx$lDXKcUdbV{|)3ERT(HZzRNFi*!0(Z{8HZbNQWq8Wh3c#ohvk#g%5g%nhH4rr<|Q%A}DAyvf+q zv8CL;nHG(OiY4~7RRzVuq2Cf=W8{h2V&}l;6T>32+4;l9n%wCF*2Cq9OlQ6Z-mgC zWssw6;-i-sbnuY-&kdTs-)8pRauYckz588<1{UK+tPq^a$2l$%{gy;??sTG_hjs_N z%9~KO+r<02uP886Dy9{Lql5FoYiDOEebde(=HS+P?kIvEhw|(b0CWq7Z&ZFEwH+X--+CE?4(|UexjCH-^ zX|+Ec9`L=vw!RI~(SDq`q&emyCd||0cF;LyO_xfE$ZhpyymF;s2g&vMO_D`%ZuBYl z)34>sXT^|Qvqi!pXERCw(Sr%g%3Y-J5yN)6q_N0#7QW4K6S+PP~4`s-MsBGAh_J0l- zkGa;N+Q6>pJFci_Jv555N*}3GSU9o!1TO<&Y+aJU7vo$JyiC2cDfuZWLEKA+@%VTd zX-5L5RZsoVmP}UY2fYhiRYJ#xXIilrimJ)g$cxW^KyuM9yNz(2&ca+krlY?~qF^Lj z8Rw$*z(l`_E%jaqdqvPROL(HLxZ9xN*R^+iHZc_n-wWj2YzO7&BS{gMpWU)r?%*{V3 z#!#vz>%7a_Ai;^yxd*JM^E%IN$E-i@cEeapm#_r6)Kf&-)W6I2Z-Ny^HQ_X?JoZ6p zVdY<%XSeHW3Pl~4yY(lMoe)qvmUnND6ALt6)J-&jKD(8Jq&b7EeC1q6KFYum?!%6- z;N0)=EpjE|MYYSpHQTAq8sUcjrU=~5sU2PwFa%7XXj<2BVp?B1(=fW(yj3&-p-~$Q zKDPWg=;1vZ$akUe#IO}yMm|EaeqhtYy!O^VBBayeR$gQoi;%<~cE2m9r7MYBK~RM4 zHliw>P~Y%~t-htYujkRFw$&AK|6XPxE9HWPZqSUjWgc z;ea`0pI(&UZQ}j0OSr+&IOF=i;Co;JIjSUU__2NH{oinhV;x2FbzI-RGU<3(TgZ`F zz)c1}c;=E!09Gl(O6_V=fSej83WQG_oSgB1*WG`~Qjg=ae$uBpb6zkq1yg!{Yz%C@ z!@QroqNCH9*xUd<4AAxbuv=z5eW3I4aGUh$`dn7ED#j%HO+VQXH!l|3u)lmCT$z7u z+Z9VKl>FfT6YRn-dUkdAOxzZ=!D{BzAemt3NFxA9OM~sm@l}+Bm8qKVS5TFcc}U(5 zrf9uBtwRVY!WvJcQbvh+M~TPxBK)*?`JQq3+(cMBaq6!2Tl{%0R8ZVN{tW4K9%i&ef{(5k;N$}Jraa;oN)Gej_X^pdq6S=nO0 zQ$#%i2mT_wRC`f@*Fwv)j-D@}E3G08OpPvP6TA#G$7X_W=RTWc^kX~7&?hW%z*f6~ znwMPzlqO0j4V$G+n|i48<~*8o<_%3hz~0q=lAW2!p#)GrlXM)2Jtry^^cQp1rs{bTmGj z@ta({P_}n7el!6{WAprEn%rJxp2}h$!$=(k03aJ(M*U9qqg)!sDq+1!IZ0BF$2+fC z-8k}pM6IH%X^+*}- zCnPY&E*me=I3f!a-JV4mEl>>!s}N#gSa6SAqhS4k3>qPKi;Rp%X==iHE*A(;xr5 zXU>C62@UI8TCxD*Ted}|)3(`H{VX>5zawfVIZMB&R}ug(SPkl<_j)PKws4CQPI|@j zmCMdMna}X(h%L(^qdcT7?4h7`+;ykKq)wtj36UXj!&>5g@Du$R>g1AY)d@JmJRBLu z1^Z6B!}_BQ>LWP91HpstcG)BBbtP2;?+`zv7l~+#WPdhRvk|?;(zq3fAJN#{M9H|F z?#DLBDMs<8)VyxN%Z9&TMjTXr zc`KdWOMBw4>b^r@{+UtgSY3*FI=QM(5k;~aqO=iKYium4AA{tz4-yarK+-G*7Rj~w z`fbFh+O9XS507K=;4QxI>npM?FW^L3B*q-D-`S)59t{y5h^I}#yyWe*Wj*(xIzXBq z*VL+iOSt zRqldBplrFKPL_<%UK+tMAaB*WISKxwPAd$zVA~>1qX3@LYs(MvkhHA%4P%SMy92<% z9%swq{{w{Gym#rEvCi~jp?Z>=$rpxe2ZtBkH3ti2SSAzlxI$3zmyps?NuL*D8vr0yM9;?zvX8y^52l(R`9(;IKos6z3YdcRI%q(-aJ zN959`a=ddBQFtnDr+CkY#1Ff!3Fg?WPu6#2k7j#tuE52`>BRUSMH{Uxn%9MuB)PN; zK5xAfk9IrSqcl1{@jplyLFDqal*2Pbbam^SWhn{v<;|3Wt0@C=TOxPvC`gsmv{MgK zGdp2n!90AkTS>l<>{5KNPAj6YuLNS@j||}ISb}h_&Hzfh#O!$WK)Xzzpi9Qh*$c#U zIpRbUOS9L@I)%4_<2+M0B_nyKx?hUHO|uG6-&Y?uiY||K^9$A@^sYAQokxSCC3Kh` zCrbXKW&?i5G42QAS>OFmAB6x#3Jb=q%$Q_QYcf%2t2J{vDj>J5PGLiD2YicYgQ3*2 zYhORXU!FhYh_XNI)|*Bd$$YE6hc$uvwKknmC_m51HSJ4ZwhGlk34ad7B`Z25r56T7 zTm%n%&+zC9f}*)8tyRx(6Q;1tMqQHVK7rk@Qx>WhDK4C`!VDaQeP-lTEhKdinvjeiW^3*Iyb$U7)rYqM9_) zR0L0kxc1h8I!uO(TFYB!243v;EJ5`@lLrk1eAvg<`?9Wg$!aJoeOkq27l$sl7=GHm> z6{r*1Zg4c$GUe(hyyev;)Vb*hQhvs!Y42wY>jLI32}kf35xm#Z7Q2Tt(9CQj&~vW49hcNFZ?V=f z9tgIRj&zYlkFq1-HM^ygPYjy;^Kmsj`wc*-wLRV~womxscg9<~sTBy}B+AKwr= zF;fhU0+bdMMpbX54XWxpN5YNdEDac3W5!@CG*Ej$Jva~dxWB-{PtEh6A9rbl*vK#z z#!qR5O(cE-Qli?16C#dL*zvksS2>GHj07|bj$#y$#9g1p_2$f~4Id5`EKeNKI$pEe ztzKuSnLUi2N=I#4J8P`7RRE$f7NGuoYW<<(QVVDi(PfCO7JYOU&Y5^s&J!^z>`TdV z^-_Vqet+phgwU(`;eXVO9J{Lc)%HkRTQ~Go+9XEkR4YhCYk3xLE~P(MEo-+Y#Yva( zCL_8vCZ-a@6zL>zb3kE4zSf6@9t+Xxix;qfuhS^ggYT4d+Cn&zb(&*s^9S@#dEvx)3;uGBdYt_{#$WIdWWxNj zLN9iq?$j6@kA)IfYLI_CL{AEe%KA=mv>YngUW$`ng+aXBggBuUGaoouSPv=X!tj_6 zboHu8@x@};WYhf2xlutkmd2RG)Wru0O#7=rW8cpFBSAwTx6bu%6D>jGb4Dt_&KU?# z+i4@^{zrm_3m$I-ea_5}cH_N6zA`i)rSKSgt&r>`U_2q>5fBIG-7qk+l%T?Ty3BjP ztdg9To5v3+H|d4X3i}iTEog-tWtp3^nGZYccsVfs5zr1)*K7>)%_r;}o)cTctqtDO z+fz3(CNyFVPLDha5?>MCk_(b}+gIuZ^S|J#Eo1&&gYc52^-) z7id?jG;72J1R=A=I~+(`o+7#JpHCtj7Vk6lA1r%-P@|7AaT=1zLtBpq4?6oYpzciQ9@gmmYH4!rkRBbN_W^GVAdh2%isD#DgF5Wek~)pl;=a1F${1`*iOK>9STjE`t(-SB$~FjCvct*$ z`d!ea)WQFQLQdtYe0r6H8U=yMCRT6);G+MD=K&&niPjd>a^73X|9U+E9EUB} z1mo(oE!P0r?j34kbEnpeT;e<=m-7~^kjn;g688adhYk6PqB|oB=$L%tZ?B#nRi3G5 zmMLIgZT^l1oxFP>;1uxdXQ-q>=%2lpq<^GpHV`^%>^9R^lhd`p!Tqutp|d@;5P>aD15|UuOpNQ=)T&Zag79mq*H#p$$9@) zB>)@>-YoG0cj`r@=O`ox0t_7U0ZA_d-NN~LEsedXklifv9XRpe3yN-wmiadokxb;T z*A{_cBEX&BQ4IuuW%mBM33<1KUUvC@v7oOd0xogH~MrUfg2rS#XrYrZjW z!2G8H=4DF?Wt%xJ8T+eE!)n>%Xv1piVkzsA*+F4#V48y^tg0c{(yMe!!2)0&{@$a% zo}#;0@V~~H^r3JMVpst16oi+r!3h|3AbJJfYA)skDu7BvgXDVQ|0>ivYXJV>sh|2! zNcWF#=mBytxL@cE0osPd-`f21vZ{TSoW~Cg*C5~nvQ7&2^_qo*QqEf#pGM9*&;D<( zPxl=!rj<>GfSdI{o`PNqaFzfH+87GJ*?@N%L{4phM=Xo^P66&NblQk16QCsxW0XHm zud-!$8spWEgXSwyLF#0gj~O z!~XRe_9sDM9?+J36ri6ZIIyQdA0DP0psAS!I^3@|WjGMPl}#u3viv+ZajhA9sa2!Oy}J3Q$4#_a@vl0~~15Mc=| z0YEbTC!fC{nGU`jAdF`ff0<~+fhqItWmM}Wh1Ch!X)KtYRSA9gZsx0PYfTb&vf^yv z7dGY#xqZD=c_}U{z13d{<))?3q~9ax`6#QD=iZ9X0`dAT^io}Q5VzV{{>Nq6y^YH8{0`}B@ zq6c$kQ#LkV-AeT&SbPsjO0>*}ud)~kcj@@k-qdd+w1s23#6Ree0BQw~+5|}ZVJMlk} zk?Im>an9%V`#5J@v-|K>YLQXB{C^kB=&8&Ki`pY%DVJ;JVK@{CjhbWR;tZoGc~bu> z@>{0!sJ>}_OwbJL*)xG4F49JFY@2c1>!_fUdk{H6+GNLeDb6! zW-H^7mqyGsLCOt^@X-qdt_3~p$yc_{@NylvXO}kaXWwA_B!gv(Hp;;zL-+vc1Ft*- zKknYc!qB_;leRp)p3|)9I$yxGJ`Swuyq>F)x?V~nn135E23DXB74Os1h*a!<`!@hs zFp|{u^l{7A1q{pQ<#}^~PxtZunxxZil1KKjTVC}y!`zog&+*PhT;a>ztNaH7)bdcX zjBoH1G$%SGbl`eAfx4IF5rD~ulS(t0#f7>^Ypi$#M53?teZ8)4+4%vbWRXk-dHt!$``Ra(6r%D_m|BE z2SK-K0>i1=wpZGQTQeXsCIqeh=KslaCwHFN>Q((X?S{HZ&ALyDXYB;X`N7ICvUb#v zm(x~^`*xDBy1bD~`kY8ximKGQv9W$>!Q(o;(%KPfb#;z+fq(8{KYik8y#?i^eCt^= zp_!wT-qjRf(f9o-hn1mT(4^vjvfH&yY>O5j<6bS{-d%Fmu8@!``C2AX!-lvkCF-?J zZD(~F!U^g)yPYhHdiMNA){7An&&FEkbb9o&Q8po@4)4nEYSPe#lu zB=Q=+u?15$o%#>+Tx8_OT`OTG2R^1+{k99;2$5#N5<{u28=lq*aqG7}EqMW=@%r)` zF6I9M2JV&q0R!!N{(^xF{{;pTWL1LdR{jSJjQBsmK)>z(fPpCLpUY4K4dH5#ORUy~=7@Iv zhga8sGZs(P8T((%y0A8k+SGF453h&K4z@^=HuSgGQ$-R3kW#$pkx@}Yo~ z4f9LPe&&1cNT+??hjF&tri@Jt?eC+m-OSN;b6snN-|M4?8^{@DQto4yK$FS~_fF_^1se>K?^Q+A0L z>37Qm!y@nC>X6zihBp_8Vx*_>iQQzC;!gvP|A(=6j*cX1+r49BVkeV{ zZF45JlZi92&5o0aZQHhO+qP{dU(a*Sd)|Y8zP0vRRbAb+YuB#TtE#U1cV9P}0*@Ah zQZdsVIEqj*T79WcPX9v6jjE-6hSJ6m^=L!e^Ut=hx{Q|GzGR2XQ`c}Ojx)B9oF(>p6+#0>avkXnt0 zKA|K`eyZ(sIZS(=pW~Ysr@Ixd=R+gBhl?eSho_J?=jc!#R;uRIfuz8R=@O|s6)0MiO-tYr z3hQCw4x4UV8egUB6rz}`UB+LXYY+tua1J&pmO@K;pqzrpF|r__u)uN> z=f|N5sth~qA)2L?DN9`9BvVrZbNy}5K!0PvQA>QIWW#yID=%8pK5aV&@zh408nk_* zz1?wxIr;YJ$T?P)ms&;X>|d^?5{fBQpBLXZCv}Z3(G{Q@7G@HiM@EZB32aJ$XuK6& zmT_-7^Do3QW6Z8O$)(cgm|}ex?jDnXb6qc@v+CrJ2BtEf;;PeZca8_A!|~Ro*C*l= zqLGbp;w#rq4xHD$>hr(`uVZDIN zna|@ey2O3g=@h7?$kT~SE=v$KXF~pF#y?ICbjDhgy!lBflA!W!s3W?oHPl!ePDOg3 zuk5>8g!xSz&&XbfY6pgDN2}Llch~h0iZz>$cVSDkJ9T=>!Tg+dS}U^JmObd29ycHZ zyMCOf#=NHSk3~i)Sb-cY=hQ9e+Yy=0FFewSBji2;=rcO19+e8}x1$Btg2}p5bKN?| zF4eOJ4F}3Z@kK3em2%dsaca>6jL^1<#otp}0?ba~6jh|@u8HrlsXWjA;>iJrS3i<@ z>{=e-YqagH$d>@>6!u+5fz2qETXi03oiI>!_co$H&aPvz^{HlB*Dgj|35x@o393W?>m~g>jk^ED=gmb9vgP+Jq7Oi$|>6uXU`g-7>R(boa>7Q14 z@*k~I#2Avgg6XJim%R3Ab@Mi~GH10i_x?v>%1R@3I<)IQt&$s2j-ev_D!FqlxwJ(( z<&0!-p?0kn6=dR^cd<=ub>l*mmjJl$rX~%=U^_sCIv+8P}^R12aqmJ zCUHBZq_n$g0ZVyLV)S7{UW|sc^p-y2&|$w~EQA^?i04szsn)K;@G?!_XhJv-F)G=} z%gL1fte>Ot?h1mlhlwM&NXWa3{C-^%ZN5`#@wNB`xBGXLw$(&r=ch*bX|dox}PiaF}k^ z+;5*VURleZ<0?)oR(sv9_kQ$i{fS;HD$#Gele#%WB=`JNl}LLfglOhD9R=t_N*C)* z-58cMZ7{H$gC_E4NEZEoOQ3eIsJ{>h+hwHe@5afGV2NFd2ynsAC*QPIHyMyCB=TC2 zbo>)5N2#~n8vh1j7SKLdA`XJW{;z zxDQQ5dXat%6G>s-5DKG8-BQNDS5N;TMS-=5@pwk?(l^#JJ}$HnkK7}lCqg@K0_v46 z0-aO>9V+eeiU=@f_MMOm+1Lkcq%Wtx-!-(9BRE*Yv$6Sdc3i))*YxjZ%NVYhj+~(Hp1B`RZ7`|YA91QZjjRQrt9>)jHC>oa0FND zHh@!yO~8uEOQ|RbJvCl$Gf4H#0}yYfkHHXf6pp{Yr^M*;5|Z$Kkejh5nXILD{CoUj(DgQZKxw3>T=Um`{CUpMr4sO>tA z;Jc0rUoUD`oiA7?8w_5Lk3?U5TZykHxxx;@#tfMPl@ulLi)Pr7TAhnOYNV%gSWz#^ zD~?~FJT&0lBJhJHZ1!PS^KHkGe7W~}^c0zxmNLjC|F$3?{usIOCpBAXNPD!iI}VjL z9JMDOv_i*0?`on0`o!u5eCT)9i<0wY#LI|NkWn4ylb)o<=cn`q=7${E-}-F{-*Qro z7ly?#!|syCpvsPt`|geSa1^l4tQm*1$hZ#I>IX{j;0mnAmwr~MB6Z^(a7FT1GELcS zgxe5l$e!h&B=22TeV%V*eccLpy~)Ta-XB&+XKS97Y|IYUW5uI=yuu}ApnV{z%TrOj zw!fV6M0B9;%_1T#cQvpOU=_#lHPK+)|kj;LRlQ`>(>OM>AK6l=##PHX2j(`lv z=e=<-UO6(%B*6{DIY~7D z>{#PLb%C$~*x7>>@Z>6#h>~UheOh=mP&)&5*1%nv&He9K5B3T7_Q09qv)BOc6*Qy3 z%nF=F6H8rS*O@|28IYWG{fM*N@U|HLj!u+L3;b415T@wgtg(^RwM~M(^OM$2f@#6t z0QdiY+rj^}DJU7T89>;RW(-;x3w4a?cB0A%e?8h;l?wSxk1NjuZwtv+k_`DA>C|eD zxxI==X$;z#habFT2->+v*fI&$Zm;fh#am<2K-(S0@=yl6@+(xvpqKZlrT3EKCDnW( zX|+a{z``zCZj3ISkWOyXN(ESio-F#-al(5k^@ev4J^D$%qk^brm*vQtqoFFZ9mVt9 z*+LJ&zY`<49S5s>-jrNxBLD1Tn%vbbfRMd@6Rp91nhC?2n<|*_I8?8%HzOLw=Rpca z7802keR`c)?m-uLHdr1OIE06&P~{3)mWh(8%SNDJ`JmQ$OJQ?EOB#a_U|+&Sc=!p< zwb3heIni)90efk>Iit9E7x~b>M}J7b0h>0-mcu%RVl0;6s7G0sSAzoxSqfYEgj}9Q z!!@buV_gF`g#dtG1)y`Uvh34)}6l`cT@ApN(Me#BAes0IE3MBgqTS!%PGZ8atANt=qttE5ywD9ORvL(9d~5$2nzK6owG^Xs15e3v7FYCP2NB;6zU7@^wfLogBmE$6L+61%TVzT2BSAfN&uj!8q)#h@O>Bx5f$f?15o zz^jX7r28pp427aCz6)r^0X;+alr8t<&4oB<;n~i0zx5EKrU`T)H52xqMkG1yF+^Hl z76<6vE${o|{p90WS=oRt_QctPu;;WtV0k9)Vz@@<;RP{Ng+uwwTz;nWA-0WXDJ)FX zIXD80=sBjofoV4cwU)9jM8Z9y;Hefrie8}HO_*P}?O5f|^99--iFS*EF2JjqqQQwEb#2)T)LN?93Jq}ZwmIOuMKo)*{tYuS zSfmM=|BZ?AtP!NzDsscO!^(FGCe{$?f;~54kB{?oAfA!HlWun|(il& z_Vqey`~24p^xks)6us3ldt`OPHHmYO_0PM*&zN1zoJ$EIB7a-rZX9>^z`O4KT`Ai) zEt+0BG{4gLHR7l(8L?bzSmcyQ2g}AD(jb(eSBPMEy`M_JJMdLIC$|A7wPP5!AfZs! z(6l3xP#{W2Cg4lSSPrGzNqiLgF+GI%Op;!n$pMoJq{n?}kN{>)V%#$fb? z*zCn=9n7m~dJp%#JK=r^T=O=&${^hYmFM5`x?;%)< zpgt0>eQFBlRvza?$SZ5Ugu-*ZTI)y?E7L0|?3q4%gb#GmoX$@a< z>gZ&YN;Z=UE;hC!>GI<$6_W~XCzYY5kA~Iq(A9O@#&ScGu?auh)2Sqx7fD&9iu4+9 z9mTjT)&WkSubRFqxE9(GzENr4y3Wf~PcDF!tO3sPu-`(SKy>hGmEotxJpq4|d4 zyFO#})1r5Bm}xbSxj3DR>O7v@nl(u!RYRE)4XXDhnjyghwdN3u=_jFgw>PQcN5(^K zV{*A5@&+qC^3C{osK$Qd+tXP8NmL3IseIM^ASUkcp#;@Msemzm9Eo!DhYAbF{9eL5 zMM2M(G873c{N>!w7;ig4Xp%w+XlUpOVZQh3x`YA2Bk3FsS(ljr@CzpupFq4t66v1~Zp#5l?pMFWcx49sIxyuBAi z6PBf-$nyx&2_0t zrul!eAivSL6FJW*uMMtOKoc>QJ7x=L%lKd;v=kQ@OG+u7ANF40gJ|-}mvADhCD?$k z8>-kA*1DP)vMCho@@hzUOm@V93Y2AX zsR%4y@84XY)TpOBFhopSv5p$V}S~Z4poF$3C?9}=4tRxGPYfA zbXg;oXdPv2Nt}Bc3V(I97aLmPW~`ic>|%wFdU5ZR=W+dFh1yJu@$ZhvKK8IW6%CT|>pnYi~m} zKAp>%`7c$8vJ$1*^?=~i4j6=nMXR+jqcRtsPIKHD(=narXbx}(s|lyp(%cnzBKW6W zgS-Vg_qMb8)=7Kzo}G%nx2O7sOX=r5O(s5dll--qD)<&$Wewp0G)SzzYI*+k1VP2G z_JOy&$ZE)>{;G2Il0m=C!{|*;$PTv5{dk?zqeUOypzo1p8ygO8YzKS~cRC#N_&?v+ z2t!Kf9n8@xR+_1P_Lem4GCQI7WJHTF`HCO%GDZLEZ)S0?z-U<`?sz$Gsi{`<>(v*Pw6)<+^|jb5 zAIxll040ml(_I^U33ZqHR1l#WVQF(KXJ{;?22DpU2lb_)F%MO2BV_?7BUUG|g`~Ru zfq7(#1_2$3@ZeA}`!a(%^a_LIu@oDMKQkDRTuA2W-%QP%lW5I`AP(!??d+g>s^9;O=k@j>9sXHIVN z3=;``x3t(0fP zuccU$72~pyC9`nRYDLTVyLCwR`I) z`j%)TpPZA%LW>Pt1U&*&u4@RdW?9&K8CaXTUi}oTsK`j73;}MBMwjRFI=M zq2o!oYMr@|dvn~iB-G{k@7GqTlGp(9=wk_QWlxPqv9Lok*!X8I|-hWU!9h-RkEfGwP+p0~2 zQz%hS{L`0=B!AB&g#fSMQ-&XN1djU0H7EJ?*Oj9?cB!jK9-`M?=xCI%WcVIsBGKDW!|zN3AXUekWSN@Ku1jPCopma?G&T+4|hzKI1iZFtIb6ir$m&HGI$mTe9!%hT$)o0s`CBIP})D_o$IsX>H+qf z6!psJzNx*stOe!>VNCH9>HKNZU8R?!D&&PFm#A#-d+cybbNcu|u)U zBW=$dCal@pR12FQ4>n(Wy52M$Z-*RLULWwTp|Bl**wuKI4jP(^#&XJ6@-e@~IE0Fg z4MS=uYp4qexOR|zH7~uV{HvZUx9UeZ*+@B3wMQSG#`dFtA0bIr(Ah*qD5kU5Zri&0 zgFNFT&wj`ujQt26`cjoqZOA{Q@3CINpXD1n_4H8B*c1^c zzHk4*|3ox8L2v*=8i7bJ|CX68uQhe+4!5X+d8v!i?PtP_doJ`#jhPTf)j6t8~x9w z{yOt9$|oz`SQeS2#iQrcO2oWkKIl7;yLmwTqf6v1&%UY4Trfgaz$imq7lD(g;%3+1pBH+TABpS;ACrKPKKzY=YR)yx!mz6U^sK%pB-E4kC`B>PE-&B*o$f@u3zxUa_Y8HeSD>-abasgPY1Ntx6@&82X5 zD+Z@~^8P%> z_M;<|HarnaCS@yO-f9WjW7N+(A2vppA%~#CzU$AY?V^@YlG+vQX(K&@e5zcs%3^|J z!)Gxs)R72uIt@JNzff z2a~@*=vp(hVRL%)&!_AbKqjw$oJ=m?#`~tNN#JW@?dx-Db}j2`Y_01nf$>%zY96rf zFSQcaSk-IAO65c-~?1&`v z2tgQ#?z4nfg>Tzg%l9IT+pO&Bvvan)>c6;y%$~o~qbyPHl0ft0zC9m+l3lM!xn}XN zJ@_+zz6=ASi3;y)ab=WMdN*Ncktv8%>!a$hHxgR5Lw6k`(?mfB7{MzLHe`?I z&jX)$VYMOCIHDR*Em6_&M8W+)ue6YPZlhO4G7H;ack*nhotp9zj~*@8L>L3u1uCT! zS+gaSmddPKZx#uwy$oD=ixDY#3K{FB)?%4Xlb~eH)QGeYGNHTT5$yuf`h35~ACGiX z4^7onn)iqejq#ck;7}8gP(Jz)cKW-}kN0_~i&{}ZPZiNh(P0bHed^8^Z7I@yE$IEp z$E~av*XJ56m?HO-s-AvP>NqM$P4iykR#>Xo`NL1 zKF+q3x{_C)OWs~jTc1%b-cMM3Bad%!HBSrJ z(QJCkNR6ozwQK`C2B6g+&iKRk;+cM%w?RVKmmvbZ<5O76FSbLdp|2RLP2EHYrq>4# zD`yq?w(A3PQ$}HsYW={ldDqKE+t*Rj@J`mp`9;;|$Hmt}n@!h?l^g)W!Iq_O>DdIw z+f97yo3em#hZ`R$&#e*D^>CXyM6a~KyyYwe!#EY}qN;w5eC{vz8ndqplPfPsjXMtS z*GsG~B>-^9w;NrbS=ZQUt}y(6R+X>!pc$V+Z5{WCHt@qwyy(JM&zXu@72KJ@(WG1L zGL|4d8@nhnE{QI#G6xj+&7PhI>goos(LO(KMsDWz69h+ue$PfHxw=(**Jh#PjLKu& zbZbIPN@PiPoL5PdWSF?iql#9U;)AK>5Bkq-_0{9x;c7^_x7^0$%z+fp@brN1O1iM>9+ONOA7-pSPNZ z%{OPm{PXfe&8|-}Gb#3$KtZ^yYW>_*Ej&wr%N|G}e86elELHoSwdM=nboxor%`ahC zW@D%#qR*;qXkb5>8#J{NXcu;t8pJ4^WO$aUuU}QA6;KEfTyp|fi?kX zik+pev9_+atpXSC&omqFM>%=%Y{9iHAZO~xQ$bge7fYwj7Ed?pG@SU8PWwzF)QW48 zPg#U;+XoPIKZ>j~hRyE_im1hx5bT(3>$v*sBubhRdIUgUZ$Z&t@4rncSl{|dI;;IHf59QGCUg# zt#dN+qd?&SJ~9^Ca>^xC6KNKK7az!}6qR z{Sn3s`K$?R)PTT!UKMLQt3ezu{ymtbu^1`JG z1=jG@ads2oL7KFe)H2HfS@<{t+@*U+obZ#I;M?Kf%`-7#{MNQU5-%VI=~E6EatVhE zrJ`p@r6K`F6{)&vWu@9at=KIrJM_aIoOu!NN`LIjR@MQ^4bF(=Jmi-~b-B|12D4;U z*dNvlpFD9F#VSkHZRSw{+@rxsidOKRE&TZM*Z*-%v)JFXl?dgZT=Zw+?)XUf;NAeB z$U}SDx=jrvoENd4zOk>35sN|!)aW`$!sJz8m`g5Z@0mXzF-hE{F^W30QV%Nh-oOYI z-9`!kP+I)uzq#$U5r*~Dk>#Q3AV=y;a8&{-xU^A6in<0^>8Xa2H0DmI@f|BKFo_qVFvGFDBap}Aj3o{Om=@6FZL9hno(a!8dYOnJsnNuF0K zpe^GgY?K6yl{e!_pY0~gkbL@q#(;PpuyK5lrG2G|Au9G)n4pC zFD)|i^k?WAno4(s7g-R6ylDMnvHnM>vLQ;LOUgKk!N@bB?w;#tsf4jMJ*1eRGKp$F z`NcPwcpO$kr5jj6Yut4#rEI+9(g5RNRr@`AV_;=cYv#{5mx~kcVC$L^?!ePJk~eMN z?y8H{TV&HM!Ca=oA%7!(qF1dm5isDndi1>P5qY-Z+uAtb>{X% zE>-8t7U=1ZXZ5^i#rqjIcjd}FLa{yLZ&#D>WQJw}ky(RTVRg)Q9MtVmeY*~#e_QUY zh-`jl{A|LD`v`3(|0#^h+`I#H671UD)kj?(=HF{9bC0-44f$^-D`sQL&&BJ}E=))m zs#2_fF!~-_=}=IN`Pcc&yP1I~7t@W|Mmc61>ce>>$xrR{Z{UZ4=cFWiAdWdnyYE_( zTyDK01+@MIft|F@@n(1eEtGr2lmd<zc2yB)HtE!2d>W*&|cLN@O1Oe20WDw*%i56p1}95D@+`Gm8_53)H9TxPkE zS7J)@OQk?M53Z#NX11ABA?;fp>?SXX*5L+Dre72_G_%VE&=4!kmr~0lJEQ?_?MGr3 zrM>Cgs9vWDYP|EVbwnlR&DsHKrSg6Snb`Agb01_D{q2lmDWc>2kLioNMd9*&T$Pu* z)Y@gcV!5Haii~c9EARE2>X5>oD$pBkB~>gYiyezy$P!=Tm$a?CPf#KMH}plLBNEF- zvcSI$G(e})JsW>p#IcvScxL{K!?Bj1F!g^xUhRXYWo4#|Y?QZ-={ZdQlkzf{%AGP} z>=RDt#E5w)o%{d>#n%aCUbw)W$&%7LQfMl;pOiUS#!8CX*qw+fI}gAbdmQh%nM_lF z?rHi~eT&>Gkdj#&ER~R(yqc=JSpBVju7}yzZFXDol$x<#lT`0VcwTBpdH__gAd}}`2LfDigysu z{Im49AU;lfm8A%(p(B1Gf~F>oLFati>#%&Mt$zN2rp$#8;Jsh#dJf&Eompg)_&rpl z5^R}G1ogQ_W0X%W+0-m{98c8~_6Rmg+<0LeuFy8u7n>e0VhP@67if~8vkz@QN zA^n!NecNF!QWfRKmngAMMi=HI*`aU;bu56nZS?i;E^!V1NbjBBO%}Y}R+}xK1|0KS z>9#XwNbQ@Zr=t;tm++p0s43`8z4&LzGQG~PC=7!jS@Zw`9));PI<3oNiAOGqr4$Kz ze%J&LyM3MexH`cIoGN&C9%Ix9k1-<4e6{7!6EStja?|o0k&>`F^1WdKJq?MMl(V6c za&}k3iu#2{Z{|nb6x16+vJTg4!_-T3y25o(c^dag%IH9C%1)e z-9qG?Pvs|<~Z72 zzTkWst(n+i$lu3|vB7^Es%c%X(OCAFg*dc@?D08r=wp{cl{(&TWL{1xb^~Jd1;2e* z*|GKa9XcZBH51i5H#8UH+L-F4B+LHJToS$1_EH1z0gU2zr4mgP|NjAAf7Aa1c-^#o zk{(n&|EMW!dw01>z+M~}u20M1@8TsY+WUU1NIiC}nlXycQLLT7T&BJIYH@Sn;3E9T zvJkHsj8JJ`SZ~^kHAFubZ&ywF z>Ad@QoRwIo;W;y&!>M2p2-+6m%O~Zdpsac;q4^hR2CMy5%gFI~p9f;cH8#T2H;1Yu z1=R;ld3s{gdgGBwLB?;B3Ymgq$(Ow2&>&9>xX_^J32r~2fOaWSXu3j2^t0tpy=64X zoT@*WDMOJ5IOIl5g(jL|Q;yuS+{xF6NW-6-#FC4cj%vmMLmx)_`LtuPKW^G0NZF4N z$%x{9D!m=LK^z%thdFH4z}sBtq(UFhNt*dsN5e%{$G6iztB$vbZ`|Lq&Pix+O4kga zax*n^j0APK5zQI%gI6Y!6(AXqr|ijh+Vib-!6^)1<4hi2`d2n4#I83rXyVf>gx9ay zp@HkXI=^(Hq<^m$5$Q0R-hBW*Czjxoj?tnE-L9L$GIt}45RYS?db&Wx-P7=1&*XZbZma=H*hIPeTLU9C;)(RCC74SwSoMc%Tvd&Cj@@U}BZq7|td2&@uf zf5olKe0G=l+u>J`m++bSDB=rR_2{(F-xOBFZHonKvy8@)Z>wgfG8HnZ6N!}#nisN~ z7o1iX?<^u+I3|J2(osf-Z1~|5^*s{ZMuXA)p7KG`6TN;=< z%fdF@{j|f^j^`O`+Q7i;EtAKF^`?x;-8o70J6i{0*m`-{!9ppPe(#!|Xx+=Plc*m& z_Bi0_1zCWs5pk5z>lH+bZ#n+l&IheaE{i~5Z7cpbEe20I^9_6{)dSG#4FI^lpL=|* z5FTz4DthC4uKtyKj)=?RHvBfbzhu%W^K*~{P6-OvYc!occ{C#U1ZjPLhKNBd%@`@{ zst7OtlSka9Ds*sG?YjT1~*?*TUN8t&SU3veq} zFMlXvu<;K$^9&>JJS>sctEV7tFV(&tA9cO&F1%kd?jM`F-XE(zr2$V(K$#&Z>meI0 z0;J?ftdgWLOHhfN#PVuoXRmJ~gT-=ZH{>xgWIvAYB2MCm4H9r z28KR-=XDtxTp<7R?{2{iscXkERKMHG*Im`7=N-dro9_ERY0|xu?%}RB?C|$xu&V;4 z`sZ>OAhvaTyXH*0)kCSSzg3blLYT)wEdCDhxgPVDcdsmoUm_QBQno28L%V{B7;q zG{s?PlN%=Z^&$Z=14`VG_`z^EAHr_6y_k&esGK_w6zv#E$u}I*t256#g~|`!S?h)1 zngcw`EE`WiQ?w0+Pm|R@L&UOffb*>i%jZ{F)efcv@vMM(ZKOJ>ppZ#H*00nb(KhL+uaSi^XnA}%#lHKdtH%voED7? zlPbCr23NGxr0*Z()tx=SSEW#!c4j=&o;p#6!PC>$jJIiD3^I9ZZt4`E42+3$Vit*h@dddMRMYs?911TGXF2S;OVoPH1ihI z7ekZPgZyG3Qp70&<})rQ_P2}T5E={{44R9_S0G;JK&;vj@q_hgfcU;Vh}%vhF;`Q! zHV~tTI1Zca5zi+!SgjYIk2`&n15oSvlKo5QdJ6CY3sgKcS#IuMgI1aP1AOw-xSQd=3zh%@ncW<8*JUW;{!1+Q7Z&Ade$VkjArvo>N3 zw(gx0tDMl;CMBd9fjq^k}gy7-e`NBl>6KsS2Jd2tM^feR&% zKC)vvDva1Y-znp1rwhV2@TJ0(iJc%qX=SZxRQ%VAe9|P0)So9mecncuu*48hkX_A8 zVJR`@_>;AIIDFz=8r7zY8Uxnof5nGPGBlrTdty3MU0z$Sk#l`-LkOw94Qj2z# zCE4%Q@{;*G8agj7qpV6UtU9j#Jogy`%Mh)06H*-o+_Yo)BU`g2>Pt&eOPH%^QA+wjzm=Ce8&z zcU@2Z*=kpsv@^1{R@!c=&tB_kTKg9Fn#!HNRP~9Fi0|#?9A6c zoUXE&8%&9; zxIm7O5XFycIe$585Nr|q`99x#xBrv*tqGZmBI23bX=450=VMTp$4rrsdrDq#Hlitxp{G7>dCf}kO&;P z^J%~^#6D=dy3KCv`e_;M{e()fV|U%7vRlSo{@keVv$EKoaAM5nQ+jCdGx)QkrnteR zD78XE6gotpNS`;C1&=A4J)o!9$RUQ5H1xq_`}9s1$Rzu3vt?9cl+a#%`p9;6n@}Bf zDy8lL_JRW~Ce$q^Cs>c-+ukf7HE85zAW=cT8V<|ZiV6?YL#!w*7SzjRwHI!zyertt za@jf3>1fQ28`o)JiatGX)EZ-HA|{swM$9n>)tBQOo#5n|BbjA}HnbJNIouNX)Y*T%(qRUn!xg;cp1fT#)ckm_!&?U|VP-(?KP35uWB-%;3%T z<0KH(d8z+@5`L2ZP57P1{*vXDYeMM&!4JyZld59W-w2a)j34;}h#+YyI)En~$^F|d zsjc8X`}19co8OH($4@*dH=Vf2P$p1E915e<&soEgXkEm(4PmQi`+s15_Xt>GjZpWo zNY5D<5~LnFA|s1A@0nR*q>ex^&Y{=uV|wL3gr7{tZ}4v@RC7jw6CtZ7c3pd6hK^S8|*!W;% z%K{11f+kmT?GP;qiiBj^EF}zPJovzyqfjnnez%e?qv2+{dpT)Ym2wuAYFznd2;}at zd_k3KVH!H1E=)^R?EOx?r1gqdmr%x$>WqDszGkf!HX=}3C1}f|{C_w<-2ruiEXlM` zbwC={!)79GR79o3uJd0B2A@eeAlO276XJbU8xwLrpGF}{%V<-%T$ zvAWep4JIMa5Z#fJ7Wvq5W5Oh=k$Y<@NJne95;xs!<3+$*YRF&!+aaq)S>D-dFBT?> zX2$SUt!>AuHlMVe;e+U{<&5)^EoNkl&1*6LTCGMZ@Fd1p%Aln#QW-Hh!>*Daek2m8 zkQH{~AE6p_w$Z>&l?^o{>L(Ly=tK&HXt}FKS&j83g$XSgpbIGA8yvy~|ZeQL)gfjedF-H>1{dPd=KgQ2x<>Eh#U!W~P>8YqYm#@uWF9vjK zcNq)#BBD9xSc>_fTQlH0PCX#kYE4w>gx*VN5B*COZNFykFKg+Rz{Bsk>F9H5I`fpWegJ4B|F!YEEg`(=z8eKwnLIRS`o(v(c}Td=z~x zY`AnsCb_?mUHzFdxwlQd%M2%9YV|O-{Gj4BTz{=}lN~GKeh6f=(|0Y;Y2G=G-lH=5 zF%>vKe;1YmOP)aMRrn}8^yp1#z6$3hYiBI$=yQ!tLro5R%@g|eCDNTTz~p7^wn#&( zxKtAi*`vKP)Au{xM#!>*alW)5NJDaCFc-oc~DHv@7c?_Y^)b=->=QPw&Rds`@#@>P`yDfKO(FevY(N1C81-GXW3 zQC9u%(K*4$``~n~1@r%c`xQ|}OuH)1Zb1D=g z+$S0G-1UgntXRVBsmsiZ;4xrdfG^uoPUFNvS@+!SQXGKGp zd?Y>Ahte=D5-gRJjhmD6n0@6Sry}z{z3Ke^E{|`T6@SkvEASl3EDDU|`C~kpVZ%x5 zIis^DO?$(X5rwLlFkfXQy%)R$Wje=ug!%E$Xg&&JE^7+r;e|cP$!Nd~o`ll7sA2N1 zT1}$%o#wfQJ?WaII!Yb-)rxg?DY{AKwo~GKYh)fka=A z1u;RN-DNDII?{3B0V_{F67=sVVN70MqRKfiPo>_oit68o19^FSVnGsX#d)FF8fp!HQj)k6gD+{?oBRq*N_>%sR68*PUNJnzf=tv0Q{7JjP# zxL-dU%N=hR3`eXQ1JznKXk#8eJO|go31@k8Z7F~7a~=d{L7%RPAa%+~*CC0o6LUwx z@rmXqN!``jg~CqRHNt%T=>7$Jq7vdGWyZ(qI3&-S<`ELtRmA!ux%Lp{5E^RKt}=?s zzVJ${L`YzdWE`nC-DAO*yH&eLauU&$Bio1x&NhMM)yyxUyAzFz|&<1NYd3562R*V3hQYmg!eFrjbSJ@k+xW_O?KVi*kK}!TV@HS zF{1FGWIA36&&V6Fbpbh76P~rNzB)30oIlwk_G111xnqKTcYK*ayp^or2?3rXVTquW zsOsCQLcf=?C7K%%C_68Y`QX{~3S7`ry{1@TZ^IwD?9gy%ljWKM*fWF{s z&+FkYG*9CtBW%g`ExrPJWs(pW+k5_bZZ4+;XOT3RoyF#lB@AZV@kdn#pd=s`gS}7~ z;7adL-CTM8e{|h*Tju@VKK#kHYpSUx+pfuzZQHh8lWp6!ZQHhO{f_foxYo7q>wWv{|5H@Z~^6P&^2_AzfDm zC+N^&7Fy(^oBmC%kMBoJ-P@*%ktV1SITdXn7;i6a)?Rm)OI^{M9~Z3FUpvO-h&A~B z4(_va8FO_XC?z+K-tTjO(vq6nlk?ZZhW1y;ef+m7KWFa`48VT3;Qmtj>u{~>wXSxi zl!wEY63%1jJx$nUJ6Kj)F0HoI*|1eOesXMlBEJ7BdwozPp9M1UHcx2Ks#m5{|63iNex8>8@!&?t8Z{KEk00P$`rg(9lFNQ17QUga zNe*ER`@U2ikR{dHTu&Ie1ze|>+p8{^d^m0?h)XawE`+T8zdmEmIyMo2d5`(bH-Mt< z883H^fIdc+;kF5?WU-r#eu<$VZ_14Af#$g$lt|*oWdJIc&it7W?U}dcPn7Z)l%!N! zxVk~-BY(Ojyk!Z$G(OmxpmJ0+n27cI&{=vt8 z7eG!eTh(3o&8acSNc=IGx|-e%=oG3R3emfZ#c_npu?SZxpW!~>}*Py5Hl$UY6f)N2vh6DcO&jkK?74!o;6mG zsl`dErIjP|+NK$YnKEfbWsq_DRgG8TYzVJN z#rM`7w(#U0yp{0Wk$@jy`k9ZhhF3pLclpnk^SYacJVI@%R!#g%kfFwwlHqNz7I(Hu z2b+@}nU=|@)yTllKP41NF|y(NPsfS`fN3n7j$h9Uct^evBR>0Jt#?8tL~qG**r z1aafm3A`?vV-s)CyApc7g>7|wya2kFPu_`}pYPh6pC47TKp=nB?3`!+uG#H?TYo9M z+n9XWLZvFjJQSBGbmkVe(?aIPz(@yx1%_rXJxg#m}x;o zk$ql_D8?&SKMz0+jh|n@V?y3o_O@CzMM$?8l zfO?V;Qqoz{fiMWI7SwP6M{I;;oXI)POP!ALolY+}Gr~hhR)xp&AOR9*un7H$4xXMA z#hr`y_hG{2w`o$AuB4Q$5Kq--qPNpcZ(wl;xEBZ7B(80H71u=#CqQiDl2V~{0~<3G zInzyYfK&H-lTc3D^RWk|dhY1YF;<$2($K$Iv0^@T*jN^C!~jh0-ZZ}1c>JPSL;7o1DR0rL2N za+{Pue+TbDlDSjq$GW*Pu|QZs_BFlFKfTYS)*k`NahP4~xM`S> ztS9tZ4LwTREW7v&SN&1rp(ERc%tjt#XNn69=LF%*k1pTPvIcoGVy>AXvb_6ew!mUA zpC!aWDol0HX^O~l%eQ!srz7a`_Ztl&2xioO|9^$6cu zl~%HE{TWSjD;O2;gm|Upvo@Vh7W#hwQ8>@aX1e%CbstWXx?r+5{XK8|X#^8^&@M@* zTZ@5|I~-+5GyJ4G9^Wnlr1#a_+WpP_BrEu(_^I($K;tsF<)KI{?u|n6ES|bCb}soP zlevVt-X`@lni_c9OXhmgp!259#l)w@}LsCRiQ!6bZ=Im`YuL z6_!!iD3j@>2tNwCze&)S3{Z6L_$Ael#J0gVI6UT9?SNt{uGR^#gryklXXTAHLtNoR zLs9x`i2+2TJXjO57XenkmQ&5OVCt!+6Q#H&Zx|AhN1vda^{(esaJr_}dINJhVeUj# zI^DOYp-h$A8t-oOi9{1-E0G4n@w`!V#y$Ah@5p+56Ud=BrK`hUL%LJF)VmH?Idw5~ zC2&S(m|@oftvO6aXonx4_FOeafSLMZmEwMT%8y6^u zw?5>m_I)Ptp8cmY>ZZ&d2QIAy{N~-Kup7~%nfNV}`+qFOv-#@iA5!m%*V^G`u2Z}f zrJ5Ex(Kh6A-IOatnDS>Z4Co3EELoZISlE#sQ}|>qHsf{3xrI{DBL@=zms#Wiiq7BVq-K#DkIJE$5;l+!ipHcADe zRGQ11X3SW|P8^F?Sff^hWM?Ccy3aR9=PNF50SX|$P`_Q~xz8Kc<3OMAO-J@>sVKTm z=1Uai3=PEzbN$NVvg-c*q9eEcDdmA&D9z)mYPkuFY6Tz$>@;u9_lxX>*LYJUJ{6VxU)5bw66Hn^jZA zWiO<}T`!AA+F;I(&*^|G(Qn9+E@iUleNHtEOCw!Y(WWK_>cyhNfm$~UzBn?c7+>$k z?BV8$j32_vB{G_Y z&kL>taVaXu<+wDwmZOYPDMy2U+GHYD*Y^j_B05xkWrT8i>*j#Zt)bSVZEa}zo#M6X zRiMSFvBQWg`%TXCAvw%e!P#iak)Qw4Kn#8y-R@Scza6Q5RK@q32_VMJkQ*MY=2ou_ zGc7WnE~^2tT6cqvrA+UGotcVpKsjaP#}4#w1gqNOhhJ_Db22dI5nv{#-OI(mnNB`9w<%&tAvsL2> z?h{i|`$5w+H;|QRDIx0ty!Gf^A9qO}b}9*TM?bJrlUJ}~>+slQpI zxfu7caMu44D4bmT!?JQ2MY;k?ygsZM_N-xby)l8-Y)j~LSLYNe`Pl43_@7vS7{SFr z#7~1=@0|P3ONET=s6E2IhXB&pSO@4B>^B zV4U+SpO8P((j*7&lL6t8;J-GP!65WRaJ!?>e$zJw=KJMqzEjzle0qPwdc5xpL#x_= zZ5YM*Lzrti;~U@Hw^YK*RDCw+qXKJ)0Eod~>~)w7;gHn5ir_k!ss9lZoJU4=15LnP zVeUduiglKG&-AW)qsSsmdF=?xb4k`K0s}|IheNQmrK5IS0S&`k6*}M|+6EZ2_n5R` z;Blga8hh5l29O7hU5ZKxj#ujAx>p`RXmKqM2>WE22_9-7eFxIxsBv^*AT$+UrUr7! zeS@BJt08JkNqvDU1rwHHku4^;)Qw#RVrc9M$$IT&5gIl%+NG-rxY};9;G!i7?Jep! zb57peN_C}^ z*iGp2cZ|>%Rrfa#z&e*M->Gd`@yi^nwB*;W#)F#uVye8n{chdW{}Cc&j9av*B1(O{ z*fq2fua6(tgy+q%N+^`TUImBx{1IvX^Fp849ZB0a(!aoeL)N*v!?OR>0kbqF8&xHk zeJ&~O*1*_HsUWD|lu%ecoGRBao3_r!7ffR4DtS$q!c^VBc?R#N8r!!PA!v?Vf_9=C z4!>vnS5{!{U(K*2_*+bVMyx7`jPSHBtTHwMI|lN8*9TshsRLCBzyO@EYgh0~#Tz!e z1||_a?83B`4ih+6?PA!9wLIgg30)XgqH_Hs8L&NN7qA*hh3$xjEp3>K)x^5`Ays8T zweGp55P`S(y6ygm-US=E5rMw-rZ}v%bkUIN?D|o2@&@8mrGHTGW;vwr?Gdo+chh+I zpIyHto*ZD+qczOyxb!TB@_B1|5KTRsV6eil+@Mz!^6l7=_><6^m^%Qp%A z%B&qZM#t0@8;gkq6Uy3^c$LagN(d-PJ1>ge)(sVv`i&)+!fnxp@0B-D|FQ3%VTRMw z^PA@nn&QMb>t;2l6ZgeRH$;`gqV3Pt_39L%gtGok7=xOydi21yoSSOc$U!WA1QVpv zbwmM3D->5XnC7de`2Qq$wnT0)q?#RZLQ~?NNh_oL5SNvo%Co?VlphA{3pFT%$Ct)ERU{Qkn4*-Bvly>MGkCIB6)aa_o~V>jl_(~L%AlqnhZ^K+ zam4D(ojG9erTj6WKKOq3ei+c%WFq#hM+vgA3_zt{%yPwoO%DuVNDzx zPY?XEf<(AX`WjWW!ql(uw0`5~m`|fyv0Pql+iJP~^kj#d#yr)SO=@b*b&FDe;-9iA zo{~nrWtiZE6m!7Nx{76Q+(_IqCQup}B?87A7AexqIsUPCsRL0xqxjzefC3-@n1?Ia zn+|ja?%c?;!|Yd3Baub7vhQ%KUe)Z&DQ$5%sKTiD32v)kzH?S6+Wya#e_?TIf%Ex+ zgh{md)M*XCTd<=)PNka19WtE>tQ!4m=U?#m&cB?1+)Tc1E#oNwaQ=5B;Iv$zzuf_7JX~0SV^Z%;^$v;|B8Y`CguscM3W`u?xGb~3^fijhsDiM8dF#s3)!Wcyzu&l$?JdQwT*1; z*fW^RQ^o31UvD%9h(_vu0asIv!F|!pqWEiPy?tVUQEPxJQwKkfO;f!0T3zxNA)0_W04Y*7yL3=+rS7PT`tTiSq_6|XBy+bdvfMAd~vl)R!ulJ#!U{d>2-2|2Hp$P)oh;^-pf3N=M z=Q+)sZ-y#^`%-VP7ZxSz+MaJvVisT)FdIdo920x%Z~`jUEH#x|VOY`sRC>)fY&fX_ z{=gll_SlR_z29(~&7!r#N7QibApY7k63fmGyhS`4&sB7W-R^ zS0lOT0E;=Z+IAujVSD8tLE9wIb|sQqFtS`+(1Hj`{TUydy|@vQlp z)6+kxrFBM!uvUuucUdiaAcP!Iw!l|x?O2QmP@!rhNioAYiN@|qERLu$P58!dwR{8v z(SqlTGGf-Z#Ct0CSj)y@06^#p5CI$kB7i$nJ+L!qrip+hOT$F%raq}5X2m|m3hw$a zbuk|BRgN?>bH$tjkFOL5HX;lnh&-*P_xHnA%RQEadJYBBeiK?B5aEi$t5_r;a_Pro z$Z^&OLcUMkGRcd`Im-=V96O7~`9#SHBRKeK_z)@=U|x+Pu-C!>XEoiL@h}mQp{PlG zT%I*fkH;0#C6&Ey<{U9vlKO9Qz}@{E;CtgdS~TVz*%|cnp_6A7Z%#4(S15DkcSz2EBJ=p8kWLO5+APx5 zKK~rx_chdku;t zBL=X)1Z^s!bu3Vc*2%&GkO1ZXjRbuCpGZKMc*@FuBLS+b4}dIz@gG^jzH3-r03b_X zZmDaM)f$RyAK^!kQS{$7u8mjuK z!*!qU5;UANNwm)WpJ77!zrzH1E4p4Q@R-5p{}P69w0qY zV)Yb3Nt!W>3Bna3f41PqH@7>>n4`f%!$q0MehZBbEUGKu} z)91eV8!K_<$}$BtUczgf9|0nPi8k#o{(lu(Yxw)UU}rBxrJbdw9;NdK*S>C~t-U|Z zPd2tbmH-(7>8w0(J2XHW&~AS_Oqy-u{Q%gbr&FWCWv|Del}wkoch=ZDzWBo2qL!nj zn+XX{>Pn~`#wHh+B;t$^ct{tbhGnEsg&%Qodnh9b+=%JaSFSn33`T1}#h0d_Vmuyr z&q>L#2q?In+j-34ULaY^v1faee;^r=fhnJROpQq6iS=9+%uK7Dxi;VdSYBYU>~P?%pigW%BIth+17b!=$>vjb z=O6bxFKX}?OSgz_$e34e9dB;}%HSeYZ(j>Ohv z>LX_^C@Ly#zoN?g?d!fH)e8;sdV>$k*WexOI2awB98KNm@jpBHK&qhA5vA^E=S&zry_Xv;BPJz9%$iIR<3K>Bwy9k{6{(RB3Igh-3mnj4x# znf&4#q~loWZ5Lx()s<6VlBW~oQ`VuZZ8V5lv7^qz$X?M^6n#4>)hh3CAc3btB`o+M zz3nChEPPPS&*F zFE6IN?;g9p>h2$pzHT3{yc1sWvlof*(>F5fJ<+VfR2Lql2M~gtRHqcf%0>Q74GfK6 z3&Q@N)Br&NfEpl+pjVJRtSOz-1wrLlY#ri!E}8BeqLE^B`kNYv9};G$%(w_qz&zcVf%HT2EQTV z*}&`@2|%&icxnhgzRo?rtoMbTj;2_>g>(sZ+|bQJ4eGi!Be}6f_hOWZMq-UfSA27- z(-zF!T1T{EsU@!ne?{K`jZ}aHcsq;J67trVf{3g5^6kCZ)6ew%E^VY6*sSgH8^YBQ@@7 z=@VM7O9g(#qN^q_7I%{OO;aJM=KIod1$4sI%fQb^%N0_kM_n!*Q_8vbP=&$k{GK&F z9;?lL4bcGqN?#b+<))tLiIIZLAP**b8k*l5(M{rUlmqCxvF^s1^ zt9wB^(?y(Jo^i9#@807Q;~qVtM6)&iJjmE{m$Ch&u@j_yQL)m1uvp?W)w3c(2pw~elonQJ?T#A@Gzir*Job8Vgti>5et zANgrdFTiVG%k9zehs4IaT6B2pMlUCbp3>L*+?4a|)Gs}T({L;oEdww1?6{_s1nK_- zbPB=6wL;vnl#Q-GvkjP?iFX_J3Bq4#o_-+hJwV~EMnV)qiKhW)f`xh6C{BKV2{?s# z7~#TAejTKun7t`M#*QA4R89t;%rUHfk5l4h9M)N`7r}V)c%rT&=XxAS)6-#igZULK zkC5!PHhra!8PiUki@TNfIhAp-x99(naZ&e?CvfZH{-tA`l#UxSS9cLtH-2?_F4enS z!Rf3MIv5vj^5B#gmn|4s^8nY9Q`;hP)wgaCKC=Qu3*DZ65t&^R)do3nnSAl(pqqN{ z9Gp8E(B*iQDgG+4Rt*Jg)ZkN#dn?>Lg=It!Ub*c290Sh+E*0=>+dCq+pI8`!;ZbH^ z+~;ZPuD3?3ESPub|4O20IWfJTy2^Z8vg&c+>d(2c|Q6an+^i_Ue>D|VUltAb?JBH+B3-*Qu!GdM0)?3 zB1wOf5`~ZIsvwU{m8l{p|?|zc?35H zEE+Ouw>>{C2H#wyYS- zeZEwvL5wNFA?&%ve|;)>8LCEYKwFjdcDRkt_CWmFY)Dl|pg@M@@5rjkz-{c=CPX!s z{{9iWpa#+eLTc&qj{cA|gQ_V~$v z!HH42QG2z#I)f_yj;i|EnVa;spx|Fxi!|j`9lhysvva!Rc4P8Dcf-TgW%ry@`TmUB zV#bmj_GG@*jxb`OLcr0T$}RbAR%1cNY|t5X!61=WQ`Fiyqn>2e-_QcRg;!Rlf{U>aUosQGM88)ay#8NrO<5N@ zsXdrn{$lHcu%a@?BvZc<*=5^L4O%B9ggAWVj3Qp<3cX{dOyBdzB>EMnsP=4Z&6bie z7zjf&0mX$R?@c3}rl=Ol59TAh+9;BW{svZFx39@FDdtUxg)n;YUl zTNW6j>4hYv95eUJ!i=I|)efBj69#ZJ{8r_Yc|MvTR?(QgEfXIM_|D{`TyAh%GpXl< zS=yohtRNXS$jnJc$yujIb=-j$SK`l40LBh{TEBOD-pbl`O$H_~1t^@Sy#lkM<&VRZ z@J*}CfJ!*6$DARPrIc1$QH6|vHLW_2GRgty8e^6GuVB{Fg+?`Pmv1`2)}6NU6~hZw z_BU^Sxok(+jArUHXdSiJ-&6_HRHWbxm=4?|)h9=d-B#-sfU$j9vm6$&)e6k1yb`E@ z9BF_Q>)i^pENR!h$r6(~7Z)fPG-p3aVYSg1osz(&D4B#&3sw@&PH&wC(Q$gm{DLLy zxjpHqrn8tU)XGN3R%Z6>trF;K8S}x0`eUzsjfHL;Y>}2aOHAGD*~_lO?K!uA!>@Ym z*XSM19eZ9iJ+&-uzoE31IyDSf%irvv$h0=U)34EwUq^1yU1!u4ic318rRmRZkDs|7YwVlEJqfr zRajw)Io?2HUUg0&h+mDWDQi8O)=XP9CG;<0vBQh+CV78XzzHfmgAr-0s~zTVoEz0M zcp5`ZImW41WvxFb=lr9tt%Q<8xft@mpSF2sS7&6haB%)kZ`nR+94PBHkc5E^{cJE6 z&+B0BT_1~ygobd0o@{s)G#h<_yrij&budhBC-*B)OkgPyrM$YBl$(=Xh1(&izOS-y zv`e#1^@JrnkQSZoaiPTqmSma4cF9P66jlOtU=Quw;zH ziAi2vXf!;=8#-d*v3lGotTed~4XDKagwm3d3?pSaP>$IEgV;}&wx7)Ls;H_w^_o|` zIn90#F*BFHhcM#elMoae3g;KxjATxOE+!^P(B=t|Cxs0_TlpD|r*rrS^GKyLnGBuu zO&WwEUB{$&*_Ofh`p7q{OUA4s8p)>YmIk?w>-C)^pCw66XI)oI+~Z1NrFQVh*&TGW z<#;%|O${Z47p-`%y?!sg{sYj4wUuM#I0kL7)_K-p|&HSQ#uQTFHgT zoh)*SRkVJCpND4l7QsKA9^2F80DX|8mX7vTDN|~bR8+Q#gF}MHES0rZ3J3nKLxik) z&GSw#4qY$l_XN0CPKSv=hyd=D7xNFW2M5(bT!h+he{b8p1mc^%dy(<;z1iXo;(9@#Wm&pPRw-FY3bmb)OocgmI2n^ zC(C*I%*`b=eh$y#2jYl}pAcI=3r&xRtdMX;5;729?+;h9@ppHu3uFuMbMKzw-8c$M zTm#sBeQUF}h=eOG*EajJvu=@$KzBOhXDgJjC#=+RBh0w?XZj52sf2+FYm4xo91-?l zMqn}3@>Y6P2HuR<49LWgbXr!7XX216X#(37(MzUNU}!z}Ph!7DxGh+uij5_fj749kV_|xR#nt(NB964f*m2(GGYBh#oAdWleY%RX zW&aj%E^)A=V%Dh4LqO9R1>ynFbe_a3G{)gwp#JdV_)9X4fn7m3cdS!Le%ScHxA}7wu0s zi7Rj}kXuh6{1Zqr5i2(Zjz1y8c$k4JR|=~%`w%-Eor_rm$f+xl$(htvzpdBDP0~`= zN4Un>Lw?&7!StU0aKsv@yAy;9l_W)Af`wjN@u-(?dF6 zE!Ut21N9t@dw`bn({+5cnurFLFS-u1m_d<<@3vx;8#f}}xbN~DE&W;!0e^W0ePZX4 zzjcjw(g#U=4wNCH>|Jc4s`#boeu{YD=PpziBK3jn6Aev78(w`58ni7pi2o3yChR_b z^5PixP)!DU{o?uEZ{9sTughutCTWrxS3r;sP%*n3VNm7YA<29g94tTv%lhKU6j;4KIOe5D6&X7ECEODYuZo->vVK?I$YFQ?20rj? za&)%V32nghGZ*y4R+EmqwA##gUuDgHo*Oy}%`r_lY>}%XPY~9uT--OiyUf~$Fb-lT zGzm-hengEf(&HZGcQ$%Eff#b3C-7Jk381Pve#R{PMwT+zWMQL65LqBGztaBvDFfln zz>?P2cT|td{5BR~3}x5?r(4@JTBz8`bb>Z1xlRpLm5{@e3m?c6v@(Ktny_sVtST!j z*@Fru;7dJ%-H%!Gpe8)U*U(o==pLuYt?hTB@I9MMP>wIN=RwSwPT9oEtNEIDT62=7 zImBoSZG^2!Boo(oAcJ#inQ#vbOy3WSMdy$YrJa7fx6<8^Q#fpXLAXOLXTz>(u{@z6 zb&7wmlYW3*vkAQrBItv6K+Z!c9PU&2fe zH)ac7+E*}m-m+1~uXLoT^ikyQ)425{HtB1E5#gSUm0C+iz!QA>qf;RrsCu}oa=iw( zsv;Q?^SL2_>*Uj`llm3Pwg&=OCZM2A>i6Teio_i@wH$^xSO8e{r$1dX}7N>6QjIHIxYlLkc$(O#adeg>I zS#!$~nu-W}ct zLSW2BQr9=03PNS>HIT*Q@^`R*pQ;9XdR|*_`de=jKYdlAxe51pwu1_%a z5<2}g8h5oa;7OBhe$A#yHOH8A8u^DSls)t?V~k zL1f=}BP>RpAEQ5^%nh5hLcUQ&j7|Ws%`gn8cB4dFxFz|Va=pBgRr(OtAd}6v*MS>* zu`R~kDCG7L|6p_6B>Cvrh5j9?w#N*a*yG=iCgZZ1vGg2ei_w*6twD(F5~aTO%=ey{0TYQ zPn+uM{A|)D3g&&;f57;lBMnan6>|^+|~TK!P}#6vCE?} z7FXyOJO@!VFVN=e&BUAB_=3XX(nE32_adw}%!($F+BS*Rvs!T#GuPqYk-^BzAnp{I ziJO@K{`B%TL@FZfuMA9#z!?ifd-FcBIie+F@PkjW70ijrCX(w%#r0J7{NoNye89;V zPD?kMT&r{Ioq_e!O3&tHhoqhL*Y*4J{&7cK$K0IzQ=WE$pZ2r#Jx0|Q7@A3V_uks$ z@RKM^xkO`SGT8|IbJZ3BHA~uV)bE+Mo~pNfcXhop!+gOZJXI~zUkUar7$^2~kUN9j zcKcyEaDkpoqrctW4Xjn3heotHD8)24d`-xIc~(y5 z3MpoL=c*)UGDPn|@xz+e{iCXjbm{B!|Y-#y1;G2G(Pj=ty+dOBsa^sy`Z#S}piOwll&$44qcM%eD05LdF;Pc{(2tD%trR7=-C+Z=djNL>&#`4lnxT5zNQ(3*XBu zQ!Mh}sJfVd`KGsk4y{VH09Qs}-Db2k?vW|NyM_MkcO=|eMW6TPQaHz(=GWJ3%VQj* zAj@IKoCPb~RD zhbf-Qr*byR0%(Qky9vy9EKX{gK_6QAwpfm)t8izn!|HJw^@?8KC3;P*_h;np$@A1q zS$i+kv zE))x`$9*d_&b`<>Q33Lbq3yc)A6N<0!ul2-XGD7k2I8RtZ6-%zZ6q{#yaifQEX#Np zts6UGE;5g^UZUby!~s8)keR_?w!N6&?X&Wq2Y9NCBug;MY(xaYrN!1Bqr-SfZ#ym3 zEWmuIRWh#KY=%J(nvWG3gP>xw-fvAc5a_kBxxk)M*ij6=iJY{}E;ZlpqCp6}$=c zX^57>zS242k*+j%xjYMD1R*q0ARM2!do};6;Ck8Ot?yqYdC~4%{biyr5V;Dxg}|cO z&R7?8qPuVMqYKrYJU;a{v3RN>qNb64k!5goP-P8sAlTqpMR|FVEsg8wodZoQkrAn& zubw|pOr95!J|KKp6&{wna5BCry+use(b`-`p@nTDSsXhYX|M9nfQkdmZ}OMS zvz;bGHI21M^R*k{#ytar{FJDLCd2gdiJ^v<=0^5SmNflFcA5FdXC+FG^%>6XK+iUx zC(AZzc65>HUT)a%$M`3`1^PaYVQmcS0sS?kHeJRu1#B!i^i4*d=JV%=Iuuk5uYu1S ziJxnU$H{U|raK`UkWnTKnbLu@U>}wO_ut_+)I(YLPTq$K;+(f{5R>3 zsR3V9Z%pFNH{F|XEP}XB-Mxou`C}H(TKp4Q$Duh8hUOAkH{h?^Fc{KmRIfotW&5DZ z)X;I#6!?mn;!RYw3T*5{7c4V`CN>wht$K$VdILKpG6xgFWCAD4&w8c;4Le$y7`1SX zd1iJ#&F_7{hpp$|iTA$2<{a(bZwA<12RJ9x!aB{@8`cm>u0FSjLLp$URGx&~{lVd7 z!nMwSl0OSefU6(44`q;EdrrgleC^!bD2_)KdI?W2up&~#ZKx^QOJ6DIR^m!+?ZFQc zvrJEQ*(JVNA96W3?t?2}@~>R}h%4BI?%CHGWvZ6noCIl!C8ieo5lo38Qo^$Dfmz!) zgTAYl2zkVxTkI;NW;}S&ADbixKOZz`J}OQhWEJv(6Y_-oC>S$X)VcHa-oAL64GR6`QHJ}=g2J}$tK$(42upaSxp4Qt!O=iM@J=g+Muojd3u&nQ@xNZ^|uIVv2f`Ri(Hm8cN?DN7aAoob~4|`SQbbpp>DT z<2ELiaLKrxCkl|et`N)* zjAg;X2w$Rwu2nQPK5A?+*xqL-<6adc7-`C+DTFh2A+8ZGnb}b%2@yV>D3g&MSd0Dj zvUOrBYt3|)eN0EJBjsEygxH{Pg(5B)0k(&>n4ZZ`u|FA&)0sa< zip>zm%eL>%!JYUxvb;C&Fu-wYKbh5?1JAa*K4e=6G?bILn7iPI^5reEz`C_SRK6VV zL-*+{?p{kD!^nrsl{Pp8iToDS{6o6KfJB@a>n#nESY#Yrg|DwrGwx>~){vikW(dYQ ztEGY+;b47ai47@jfQP}~&staZGazKjaQ#FlNO8%O`Ak84DuuR`y1EGWBNgCYbKJ1Z2K831_II-+F%Jx-T>xbVuZM=_v3e&584AU)5_Uy`N%NiTk;&>f@H~?un0c2%WT@9 zn-yLzR~*nKA}Wr@6*3nwqt|=!t)c$toh~d@bneU-!>D-{>+Pz>^66ttfO=oR8Y#a&69;$D!M#^>euRU+YCfiZZ1PZcN zz~c4wp{@ENL!iz1+*Z1qieGAn^)P|P8%R@D<(8I~p4PWheJ1ED)CZd5@;XuN5TWB$ zaZ~C=Y=<~qJubJIlwdm;110b(a+<-lSVFtxPSX8V$8aMv&K~@gqN5HyT*X48QHhnMJwpIdg= zDZ`7RpdbvrO&h7-0tLD36Z12qSS;{bT?kU(6d5P3TW+rrO>m_aPA!ogWVG2~bI2c0 z4wAwD$UyC_s}fh+Jz0TLpRm zPLVpWYp=R!2c0!4*v)f4V!K5f2Q!u{TbMO|w!YWnm*U(J8Vh2MIVaJyw~xqA=RPUG zDvs)|r5K{FGa;7v8TdXv#M}rBXDS!%cP68k1;-raEQ5lWk+_faX1S39nyb_)E+6}` zS;rQ>beXVXs+wEUo04Xz4cN)!F}!s2c!0!aal$Omu9lFa9Gvt3p7oz-z>~fpDB}Ps za{ThSJHXdmR)l6i%O39~Xu(5pL*R`f!>YlHsI^3}p-?TnSo}ru>%_83(JXKzWS&bN zvUI`~s&H05-sQ+aki}A)_d08CWB~e_4+CPQ(GtPXij4dAYgLAxn;Bsq0uT_M(Tby= zM>KGCI^L3%e-l{^-dbl~XMqjg$m-d$AR~`uYH)B68KHn$L@o8oKUy4U(3$ci9YCuH zld!dvKv4!9ku=A+LGw5eJLnpgDZL>)8z8y8)ZFqY#!l{2Z66I~*NO{Z^T_GaSmhke zJKoWuTM?0vK$BW^yjr<$s^dMbhSFhT!IF(1_cZF`_&NL^qeSMhq=||YjU&dFl^ekj zf*KE`gjCGOu`_F`a{IU=3_MTIQ^e>Oz|;6!OV>^C)TC3&%0#6^B&rKdW1F|97JvHb zw35Ua!{sB`d=CQm_(lB~TGc#U$Mkz2r!tX&ymZ2a)_5}2qq*AmlC}jB<22xOFdj<5 zoT7%qqiO7EB2b<9_v^Qp(`BhYUQVtwx@zlX+6IQFOu-CqdzB}sm0}@L-@W_rtPTgL z&MM2ary14Xecg#8RGuU#i3FJ|MHV|8U^6zY`wS4dxzCc zlqZHd)GtfPVMCr|(YLT0njh~&)UW$RoK0T)1Q1t}xm=A}+>*qknwdjxdvQ`0g;X$T z2()`G>~z)yyeD4ciDioh5ssTtU1@WlRF{pX?QMZfbv^^IP2(3#1?UkDQ2iQC>v<#) z9s2Fu;(s|BweQZ?)4ax4-PK0{%Ht7-DO7}9J6&Px(HnWo4V{;Q_k1WD{;Cx)xbW`;=f-3AT3Mx*|-iMAr{*1RO_WJeqLwFua3* ziO0RM$(z2klaT*L+~a0v7L^X);VqJ|V5S-~W|lxEX@aPtybpF+L*Wlk#kwD)HV8Ul zcpy;Q_H?}Bo=+5!pUE^lEFv%}$n}HDF=vKwmm>1e+J%?13L0+4J19p&I^ z+l6c!GwW;fYlJ#1;@_DX&=+P1k=$y*HqQ3ehO2zQ`8}QK{x)y8FD%NIMizQvp$0hQ?e0Kkb`{RAHWthJ_7NDxrIwzDIe%LG~H>icT~3ZUdPN zoKFJud-l4p$gO2eA3~N{pD8f!d*o+2aB6UFTdGze_ilfL5~Iqy>E~^<5Sp`VEpfv* zSXt3F;il1fh-}OLjxij`#yt2oLw1B4D6C=*6I{TsVmnH6Lq9X3jK{qK+7?wc)2T)B znn~!g)h&STonf%CO%Su}Gjm#l)bh4-}HnDv4SeFX=Rp^9#&hT`*N@x9hJG_4Ep#VFnw& zX1Q0G%MB77CGE$7o|oIP6tM|-H~`Y|>vAHC3J${x^>y}wT+9B@!9OK%vl)-Z#>sH| zcAqs{nU)70zvyNZx)%UKv1%YyrHY9OK1B0Cye&Nu*`wrm7Fh9|z`n6wr#ZFD?Mo3$ z>r6b_tQvI<-8Vu=ici$@@_eEzX)Ykw@~iavvIO1DqhOKb5Iqv{N&$Ccy8A`A88*S3w~EW6tx%oVhu~4+uGTpX{bBG)|iq zAs(r7+qm|3b@N+tet(`}z`SfS<9d|&Grh1_)CPZr*9=LYGO%IBeM+nH~ZDhfHo;l;ytOxFXUFfZH6a*qDj z2vxr%LLKL9Kc_^j`*#{obC^W4bJ3vExzMHp}0ez655_tsfC4+81D4bmpJak@tsXbVNi}4rb zn}hz-khxpI_9X04XqlGsk)|p{oB2rlQ)Vk|zUjLfE*8PfH9ryM2v#gm@rRy79d@=KsRnXYwpeMv$0`%;lpmL!2dREl^r^c z?0|jFsZkG*Nb}B;qPb8rnjq`6I??TmkLp7AwK;L<8;$Bpe`p`(JOCTa3VGdppxq-J zB$D$s0V1N-$fG}&G!M2NcDEgplGu(4mcrbrBwOv43G}8Y5k~@rZt#jhU;6i_5tm^< zMw89-tn*hl4AUQd_|M9#NBb7nX5wMHn-=|^myZ2j`C8uY<-4nb_5D0w)4QTVc8}`k zRm-&+Di-i>Yt<~wO;$6MY&j4wu3P|Xw)1-uU-p4xD^R!eKd7tdUfP*=SIh;cQXGl6 zhH;fUO;X2kl^KBk#xjpdGD9aRSBA5F+(qre%)8pi=)2+6j0$sAIx?DovapoevS07A z?8-F0K`E($*uIFb$J%Z=y5G3u)k+)ym?s!dmP65bs7KiszaaHHNBtq;LAh~k$ zKjjkIe=ATpmkY?7x)xxN@o;Yj%%Eq7zp_7n+H_wj^}z(@z^^CA^*=mHa5)5MQ`)$q zIp6`LUUam)W>1Ch4PN~5Vg`tO*p9Yh-Ct(t#fT%)FSiC4AYtDx^7WtK;$IzDF4f;$ za%PYQS`j+@IGCof+U>FNh7Kw9u6i}*9uPk$k2{mbP6mJ$9qzK3l@$0n9n@bRAJ=7o zUcuvz<4zt9MR0`%(M)`0309h(v+5!fE>$zEC-9SnRI|vhn|ZRtcmeYtUbZOL63^lQ z2cS!|l{$^KF@|X$(q;*PL4>@!Q)7#eqjeclf_bXL5z4L*g$T874q)Wa4o{CJRwR6ODxPRNd)>B)Q$u)#XDNstJv#uCfRPc5 zSw;7fI3I(&Ju&t&L(aJ)zp0^cGnX>E7?dNgo1?Zp>$`;~*!*#U+&3-`W*th;T3v$U zfqEPNQOp2NxxGiZP>0YK(!)=%&K)941f}q&|ujl4I+&w!4(%}8c((X_^A+JwsF&@9Rj*(ztXyRv;^K7ys%kUH~AOLj#Trzo>22LzKa4NEox83 z|HfGruJ^5gFyqTcW6;4Q&8o)hUHu{YP}>{;Mc0_x5Pwh6EgdmzB3AZwPWFAtL{^Dh ztSyn~%dz6*-fO2%Z~`Vr*Si*sB<0Dz-Re za<^b8?a|=mCT{1KcXdImA!LKqpFe)r7l-Y^9Y8VszB1J^^dV9!7(pkDSNtqi3*#__ zNel=%>|%$z)znD41bGX8{<}l{+tX&d12^85DsIUQ+NWO$^&pn5!8Fe-J{|hTGP!sv zj14X+C1{a~J^vw#d4=}3U<&J_UP4a9^R??e2MPd`fuS z^%0Uzk{!tKvsgmv1iRDS?=v_%x} zQRTk~cGLR8$9k-sz>nm-Jq5fP14wFkowLITH_FD5wb83-ZED57DZwG+!)yUpr>a$67+@6ooI&A&bsF&fxBPb`2&Q2JTJD2ySRcUreDsGLlr;h4+a z)Om%;TNPT%pKmX7aX^>5dHEhmQqv4J_TyN1yPrmt+sfq9WoE)U;kS4jtQa-SJa#;V z!IKQ^JrdP6cHMFYJbkzn5hTrO3>72ryt7Up+dDO1Wh$8fx!y$vY$lylHNAe ztkt4=I*Dm&fZ5|jlbgK=WOd|)2#NC0u=~wN%*qMODeSZ|Q`EQ_)qUr9`70i@+qua$Y%%%`t(cGQweM+ha|DgHnxDoh%{}+wIM7g%* zuiD)DbbVW(r)p<>mBOpM+*)lkxJ5_Ae69F75apgXt`yLf^~XVM`E07FX0>MP2HUKL zG*iHOubyD#vuc#Qj>G&JaL^FU16>{l;@!}+VO1+lx1>gb>?Jh#@J*mF#e4xLaTTRt zFVUth#-jtZ8Mmy97UF3Ncc}Rb zrBnD`_nba!5owc-cRdy0NsVcIsrXsdkoE!46KMqk>1B+oun6Si^h{#Te-t`)=UMP# zxTsHZ@Nxh6k-=4dnbU2tnlhel>xIy-Ca)c&p!!5hZFQ_lCxBt~(U?|p*=aw#UyXU8 z-b|aN8K_So)b3_Rv8mbLTvYN0mnUscep*0^_|vB#Wj+X`n{8dQO=R#^r3AYqU|(xF z`{EhEPA-;6E8cM#GU+&4`FY1y_p}kwr1U3zbiP&-u;l2-amjKmvI;cjaBjV@QB?kf zEw*wnBI|RR-t77+lK;rwrZ%?>uTO3ShhcXeuZBs|wqcCjX|f=@&*_LDV(Z)nPrQZ> zRrzJ|gC5v=lkH@*nzmd9*GTUi_;3#9@v>A~`8?i;V?_?^pGdW0)3H+3!-GOvnbOqp zDDy8|bag@tjCH4(<4r%mz(Iqn`__tu^zcsm3AV5~B9H#f`9#w;-FWOy*_dAX`O`U5 z5io3PuH5FI{-9blY@?Z8vH#R!g=$)O?M2Bd1kigMN+zpJsg%yUF>EWt>i29~np9~c zC{Y2UfZN|-Qb?;#)3A(o`xFiy^($ST+v;y!t{x9ta!u{hV)Xf_N0%}GCzocZV!q29 zs8JC#qzVc-XkN4%#!D|ungcpB#tet*1D)36Hb`c4VS zO&b~+YCimG$a8OO{xv&QqPAk`!=*?t(2{8fHgLbua+=cG(E9DQlAn>oLxt9{VMXV~ zG~k0CGdrLWQ+J9sLg2vQ58_^Ew*A|jt6`eL|AV;UaJ&%#)9gw0+{6D3aYNT)0Q5@L zSK!@PaGMQRaxHZMq%#yJS>5S&@b)qmuDh+ReXplH<*+}^@(wUiI4-Qq8_L=*xU9@f zVuLIGG^@{&sWDzGEYpBGh;1mR`Nb4jc9gqmM3yc{mNrj?uY>!p&w> z(B+|LajuJFDlOO?mYyJjfDKHH_HjAW?^gYm1i%kb(tXe|Xc91dL{WAya113=`!Edp zPbW&Np@sI_9aN$(BIEw9ju0Wfq9tO(@V0pS4J0A*@e*CzS{@$JV=>|9W+OS~ zEZnGh)5)xLtE|$db((7ho%{1EZ#|pJIIz2#NFpn9Hs%lkz@)igyQgqLy3YZsg+*)$ z{rXZLP~g`!$lR94EX}A-(ii+Dqoj(Ha4n-K9r2}Jk|yiRnMZdfDWMx}t8dlHw&?-i zN}@vO4fQlQcs>MEtGLhh_5SwMUBOi_bG>z<&_Gi!D=KguQSL@L_=+AU`LuEpH>ENXOn!=) zil>rKV*yntmPrTO4L}2klfax!1iQsqlVox2g#Bh~<-pXmvC83E+-;M}q6OlJ3gvrB zRosjoJ|)M4U!4Ufjyt(V$fes+ipGnw&8;RVGi2(NzyCxiJWT$IP^5A`Ly<{ekq6P! z7(zAa<`d(qwHiFMj93>Jj5wOG+T7p>;fm8XOS$56I>MLH1*Z$|N)?jO{v*2o^e1G! zcEm$$4k;5=@Kt7RwS2$`N-!*6HH`8{a1((JiAbH5#*Q!{fn72gn4ZX&w0RXw08Me>(&QFc zIMH6X0SO#aBHwFsl^2fQ*S)SuyfLg08lb=mrHEqqhtVik4m$=KutzW8&j zkzB+82g_4<2gK{74`^{{8BlTab@V7d&(}QX2Z%*VIyxX=Z|r$w#x&G*2=HpNq>zN9 za_=cL*a>U5E1%M2orKWQhQe5>w#%e8qgvtd@@N=9 zUt@VH;duKMg#aWBJ;ISb=Dz!ubvb_Zi=u2Szt96G)uva-2Kl_CF0^H7K;A{VD<`_- z3{{#`J`V_PJfJ7rR5UF~b8nKW?r_m5C;H#;(U4Pc+&pdT#~%y4zod6PMf`4|;p7gmLc6_t#FlvIbM3%VG?AQ3 zi&LtS4$o__O!Rb$r$`0&`qB7xd0Eom;(TZ4;Co6OB%#^Ywj^4|NZb(cIIp9CNaSe3 zXEgLHgS1{V@5+#tD!XGSW}8*)O#>p~g|pt!ID?jH!Slt+8ydf+vT`DMyniVDsZR((BitK}y%CFZ#&jca|R|9+IOK6!+v;zYB$ZE{*?$CQ`hx z7y5OPmnY#Mo3jF1wo@5GE|F!9ceAz^<>0lf?mRNG9gqdw4q_yVz>z(o3hWvQ`PjiX zGnCHEFrwh(4W3fg{?XjcAkA&zhjnX-bmNuGgpeJ%EQA<4>$xI;%a!n8@|DW)S4}}M zpZjm+(aVfflknh83*2lV*5{&oRD};F2a8aV>Y>z%CAM!*E+v_AWyYRixOa5DK>70{ zfmj{Txs87;#K^Pl@fq+J1}z_i`j02J`V`8wwRWDz20Ova;+To!@Tu7br$Rktny3&R zz=-PYe{gQ^zd1Mih_Kn;oSXh{&RzQNoEtZKSNb2$ZO6iq`Zwo(8vR}jW8#5mQ2B41 zn;Nz%;lFTh>VI)=z~CRw-Txn)oBe-rZegLU&Oe-6@jp2Cmp`04_1`!*+FzV|iT&H| zzjJPt-RSB0vNgwewPO>+1mPA%D?F2iwJCOh?i7#b?SJFkg+2elxiS7H&MlulQrmSD z-}m1*cjx~d=Z^c|aPE`5{~OM2{SW6>{{O_ebN+DdfuR4)xlR6!bMO8iI5+kG;@nn$ zaqiXsf1KO?-#GX6itR;s1$qn*jde+`A_GjQ`@?p?`C3)As+7bB9 z(_8>*J}mmOB7F}bXDv2}CPw&$GJQ%ydD8i7Dm49fb-8}dp4*9UHaBrCy%X6e1oFz2 zz-_4WH@Y7^Z#dcB3@#eHGQ3pl-fy?JU9WgtFT+$-T@Nt}?=QEU#C~(6jNVALArD9I z^qVn%POY{=OE}F$Sa`M3lxyqJ#XnJ2hqlt-pSC8U=}q(tk%)xt8IJySiuH*t`~C6O z>|L_b?>6Fi{S}>e0P8HMhS!4n%NHMeDLyv*2Z`$-i*x}4BkV|F;siUg5FO?2{FdVk z)UvfFBCa)_#TBmW?ONmggQZPP3;XOYKX1nyHg^hzs}eHYe@+x2#h}ns3bnt9gYOT4 zPs6<!o%VSg5IA9rw!w&-+o|p5Wlp_cQ#Sn>55A^pTzDa zLaA^i`-JgxMxodu&`NZ|s3|N;#0RP$Bo0WC&iRK5-gmc66>W4X=t)(hvw88mKIv1X zrg*b-qgCJQ+;_g)#sL&%e(5y^zh=6jL!J*VdV8@D9_PDHSPua0Z9-4Ox?t(0`}7|X zr9HBwMmRriPxR{I`(f)zNw?#3ZAeg*A>Yew5pu3fulw)xWj{e#!?6@WZ6gQEBj0#% ziuUo#?&NO~ofko$W1+$ly=LJZW_(uDpL@TnTX=u+a(q1pF>VCw@9QAdZTFU>^L{dF z$N%W{nOq^~Y=I`KsBG9#bD>pB^O%j+q(i8|F%i#2R*@!Cs=*6dEVd0y;oM(uX(&~u|j4djPLJ(r&2ZW8o_?L74{9Llf0SEI!al3blWC7~;8mo(D2V!lkMpw~1ln}Uj;3t9t$18L4!3Qu3d(fRh+a(P)U zaZ+(+zGNYX>daHX~``6haL4WIV;_@Gj+J<=vM3wngTVHn>cF9J7TC*!F~7Y={JE0?X({8f(4v-qgpRKJS{;k4lkK;vw&R5v{~g>B8-) zm{Kq^z9#~=0@(YCF9r$j=b`ej}g&&+iHz|UdD+{x6iZy}2fk2BK= zj>8>-VwTK~iVHgsE)H<;DaW-&36bDT-?Jimz0gOx(SfQXEQ^XWN&V4m7TbfA6uf4} zZADbkWVSDp&h4>4c>tpt$0XJa?Fg^+ww>k8;d8iKzLFHiE~{fwYm|!1>_AqulWFot z?Mve$C_fyU1_#TnfaE?W;_bwIWDssdXf?c-PYS1ni1(tN`6cJUgS;b^RF4rrP^ptq zu>AAdU}#xf`-hb#X$E{)-X5k!CTZ1qDejCC|c4D~`uWd^8}Sss9Y3FCQz z7tbv_OZ!>Fi%SW!^6bSqeu^Vtyx__LvhQk6>vJcjaI6_7#QEgY!AQF6%nyth)`TL=oxE5^Uq@q? z17??^l9Jgb(%P(rX8j0Y_;G$p=8V~WfaIoCH>IjX7MzhO*Dc#Z+1U!MU93Ln1H4;dsQn?UX=1hzPy~@$iSC=-l}F# zp^rZNu+xOWkA)7WMg6mF)AI7Nlh0`1l$)MQdy-n3i-3(1^Z1Lfb+S(RaDxt3*lO{5 zPDVl(_3p#bz19)1PuOo<>`rPPAR|rm85h4n%_Zl%`GpU4SZ?fR64%Ndljm8yA_XE{d{9Kl6Ie{a{~x?eQUj)6{>p&X_gf)fhF=DPO`e83PDwB6Ys=T(L3>#biFBr zvRhtZM#I!xoAMs_lvRUh@!pwHxgl2s-43F1F4+_o{(A}z{THX?yTjn<01dg+h2HzS zaJTvdy&tp%8ER78VL5!b>?OB_*0wrfYu;~$&`qqxvg@UVrd1WdyOY?uw z;2CaGO=Hs%*EQH+?#%?7hknF~nbX7^o?1BUH1v7Ccq8D+p?e=#9c3Uk>gThBoV$cT zot9B)1cxp}zBsAZS@3dcx5#}YY4UrK4nJIi6d4~Xg$1W+OjcQ%wV^iA&s=gG^-xe) zo30Polmzf{9+Z0a>-CDmVK{Z%MLn7AC|9u#MVn}&Eojob?!uQpHNG2fc?dt639r^M z$V3zcB6LZmWJ>0pgec?7F4deWzGt9X3i8sU`Oq{*6i*uUFXp0)84Su{Pz*_8b9tiq zjt{dJ#a+t_L+TTxV0UcLDOijg_W`3zMfuu{?l~!w+u`oX03X$6lP8UGbjW|0$%6xhzxcOX?oRBR1q6}rle}tdG*2^E|P48{wgypj4Gi+ha#12{afhk3I zZ2S=VJU=f$U@KHXtOb^CYMSOKnvf7QkGN|NworeyN}XZA$a0b3ZL4W)Xt?bd7C_FI zG;T_8W0nu#yCV9`(j~`lm${W<_X4#&>{W^JT_2;E`x}=F;fN_lnAsv9YF8d7xy1S< zY)cVFG0j7qIOELDNGE-|Rd1(Fux$@gWft-GayWMCYcdkp2qCuJ@OuLPgdJ7?2W)&& ziHhD^el~XvINu+YY0tv1G75^g)c##xqIW4jeFGPdBhRD3?6JcnK`52B{tYG_wW5Y% zGRk4Dxrgw1d)k8-+4BdX{h5ix(T&9CAv#$}zvE{z=>i1~pn+sbatVj6_*|DIMJA1O z&v6Wj>n4t=yNT5|Y79=528_4p-mDPqRbHZ_+gQ%PeP5ezU$6Y}))b^>;I6?`WwX^6 z1;1CGMhd=z5yh?`^5}Z=*Z$tmBa(SilSz(*n;6T=COmXc8%(Sd|K|@I`;c+|;2~ib+YObS*(V{t^%K#JbZVx zkzy2F$t43%v+I`LZWAu_U%vC-8|>h6&) z4cF#8`3St7u@<(0Zu56<*t+2W8{}8^W91~#Ogw>{ZKWO1h7&V`Y@vyM$bx`Jbjt!o zwPM76-UMZs`LdZOCZS2x(L=?LbE%i%$}_D8%AMn*{77oW?42e2ryU3B&M^$loSNRB zJ3U5v+~R|GC$A3}qDt+Fk1Gee_zQLy{05C~ z6rL1Vnbr(y^`Zr`P`_rc8)vU~d%aNgxU*!4G-0m~)J+jN8p&Q2j_@(b z1_G74!jKqsb9|J4!3vwu9LWal;lG8Q+8uskUPcwHm9c~M`L?M+c$8_lzV=aCw94eF z_nelX=cLL|#)Fk`Ffu5gq#^u<$OLY(5dj^3-9|ItSD$yS&~}hHbaUV7_BMTUfQ(n8 z1wmJs+I}QxxQG6VVuru8qLeO!oyz%}SA9vr?_uIl)exsVB)ueX{h721m)o@ENm>`c za%{SzSS+UQ!mO6M&Gf*dm!%W`I089bhQa(xydqC6b);QpCJTkbdQb{O0B+g=9WCOK z#j4p^RE$ei^1S&@KfQBKGmDG(d6?3*OXe2{e!%^OgM#_`(aDCdj`_n{5&}Fzrwhw(vb%+Sf8tNn=0Mng&41H)i|VdrJc};U0Rw zm>^j%4AMOZtPeX|=4H(qC(kx? zu~%{Nvqb2=S7=*$-}((>FBPxbVo)W}&En!3<;CV;n*=gBpcOe~3bJxl!7km0)%}KQ zG`6U8W-A>R3jH}V>_%A3xRJv$EOr+{xaZYVh2$iL0zS;3l?Y)1mE(*W1107WSF#HM z*}M1qR1LH*Z2G&_&uZq>O&-gMlVlYg1OeH5!y&`j{c%U^lm#*(Us2vQpRmAv*PJePBE7RBd*oDjlO)cNrqP5;=tOn>uoK0{iUjE__)gVbxi*ivgPeKM*n?` ziXKN)L~!Iz??+JIWWpuNidW;iyPw%Jg0_3@eRo~QOr0!CpFd{O6BwZYP6}ugC+%s0 zL^Q3=9g@ck_XY?!SMri!el0$0*Kr2#e4P6;$djvlAH-fDeur;)JBeTLyCmBC*0Su6;i*!=aJ7HAJv3m}J z#mm#C{KU-}W$xEq6&tjl&k;6CWp>F7zbgNBC$2D?&(xaZD-J1mzga#t34;Qgaq+}& z*H3Y_>=@*l09+&YcxSYEB)|V~MqYOq5^}!p=li%M z0Rt#b(CR#A(`{3fNUls}sbsqd5Mrum5R^nzPdN@bq-v>Hd0HHGG@>x_w*q zw)w=F-T1@cet<0Fo#E^7`TO^sHBxv%hqXv>S`vZ({T!5%%)Cea-4538JJrG1(ocj5 zq)P2ISTdC44&I8<#4_OQ3i0@G&&$Zx-}Q<@8u%jU?hr8Et^CJs<8l9hCXy63x6C@K zroW-IpxrqE9}h1r;&-LL2b-9gy-@9a*Hm6qUhzxPa7EcZLH|~$*kMJq4^BACJmXzj z@o}wgg1>w2c`?ylBww|>@DvvQexE+)jG850^}1-@<`n& zNl!Vu&{Gl8<0rXmO^gFnq$sLc9*IGYLFEKW4*M*Q4?DjrCk&bZa+DB$;ZLV#Rqwa= zJ5TEZkRnLFuYV?=97mzk9H;Z?WlBY-jau_Gs#>-x&iOjW^EA35bKT){`yerGTlhyz z!{k+f#I#VtA2Iz&>W`QfZTTanMX5nz8ihh&+YUukGcrvBT2bxu4<+Ld>v||A0cF0s zfuGBCq#+b(ETvV8(x`?0fNAwr5W0o`8%!q|+dF{$1*VboQI5_n1~8F2D+YMCCqwLg zDMZb$oyPQ0}-%)w)e(S;^?j7X8H2M*vu2DiQa+ILe2VaNyGby)WwHvhwHgyK=CJAQQ z53)x{cH9VASNYsEv|?sliHUGbJT4;@^pq;u`8^b&M|Sa$9>TY&w}9`7wJf=w0L5f0 z-9lXCxqXvOCD6~mxzoXNU829v(QY_Tc$e}Nu|a?b;$pkou+Bbz=No`Ff%KJ&1_qGW z6 z$xyv;snR<`U5=)mdTAbGJmeuf1MHl)6?}54OC>hL0(|m%Pw;5^(2eKj6+ox?Hwju( z%Lk1a8bsZAo?W@7vV;apUB+Xk_ynGY#=L{@smj@?N7V6_5AG{Dzyr9n+!@*xD7OPL zIM!QfMw46X;O>~6qGfk?=1I*-Gm>8s49~l<(cYuJP4vTD$*1P}ApZ*g#4@O!{ zWf&#Tn%FhY(&~ z`*k`;;>B9)acI>!F^N_2W%i8QTIRbORM4jUah^p8YU$u%u6R^Vgq-6WM~ zcHpRO_`sEauU)-P0kZgVv{RyDbo(1`cRGl>6>b+;o0iGy?5tg$TH*PI)%KcD0CwG5 zk^9O$-*iZ}9BA2kqJFF=_9L#!`rDYE?)XSDnW43S`r)t$a+fEyl+d~XTVjhAIH*sYU(#?ZyTnf`XhD)jROEB7Qe zAj&ov-d;Q@013{V$UDqU$UpZOLS^a+-a_CZ8pzQ8NfC3V$sqE}7_{I8hr-WLOhwZH0mDRgs<{3ME7E1Pdj5}ApZw2Sz4vde{-ib8 z|44>_{;y{E)%vh+a^xwhyP87H0{pdAq?MPAAePyVyHhO^^t6T7DmXX`lEDCvV_NB# zmAr#1cfOAAIH=8<37dYgZ1J>E(>vWNg0pi`w1)OR$yB23PNCLM4MWU^Kr@w zj^llJ{aViRdCDrz*1dWWV`V?aGJv&tA?+qyQ(XP8yN%8iioBb0S0-0%t!zy2=%d;r1bMUtrDO_hC`sVIFEI{-*VottU0Mcy%1RjRP44cAsp z(5hpyZ%zk4S>gJIeCK(O#pC65k+sRQc<}%k+TDF0yqb1ykD97!S7BHxMY?oyM&M=E zS616iuOlh#1nJMRKsedxFnIbv;_U7B7Q<-2zD0Y%VLMGQkUt}gY5HQ!2 zh~3OJb!jIx#)?og`EI5`0grY?X{A+|fAU;N9z7c*k(Kxt3- zFH?OzA^g%xURG7=WxMn^T!xpRCMn_vzWT!K5_7_1@2E+BU)e#bq{(bvXsxm?UquY}kR3qbI8&IoB3|C$-ixs6dHHxWb-Q(WG}SkF@dDShAAS}u7Qzui*{kpbY`_!{w-XZZ-YO^jh>v)z_M2Ob zJ)yy9^X2ty@@lAdA~N?g2&guM%pc7JTSd(k&=8Cl(@N_5na6*u%bA`z;>)97&8qyY zxoOU?DfctKfIfIqLh!|#aTaTe)-(ft8XSpve5F8 zA|_2z=A0=Z*`Mxtzf_AQn>IWZ%Jo=;yR251=HWepO_)_BX5l2wNUM0)Qd#`SmGLk^=? zMYX98gErv#vSHpyHd#QRXP9BXVw)UY+=KtP2)Zm*V@Wf zi!bN8sqGqL>f12Os9qj5;7BSG8B8l@E~pnkLdlmuH-lYCrR?79DatY(j%ZU?fv;t< zN$XF22Oy6ceC?F(*s9Bi)he2=qNCy;cW*vQ7&!E@^#p%8Pj)Az>;fgnEbFIq+@;Lp z)V#LV0#;q+^PvvuLstWj+ElCVX~u#XON$|$*-H^Dy!H+up_;WS?^hz^5#fg0R@zH% z*z#hJdW=FHxX;gEysGBAv(Y4zm{N4QmMSY= z6h#ORvRY!_a333-Xf=Mpnss6_I-x=Q{Zd`f+FZV!cTG!Lq(~WD_J}20T1f63w(TU2 zL;qFo*DjsoWNcr(NL^p;Z;tcY;!!_?<1vR_v}HeXu~h3B)7Fcv$mTa*96XMXC}BBd zsU?ZK_RHkv__i6$9*s&OV_lJ`c%EgtBSti^5%=_Q4|F zL4ui)E9!;!0EFiG(mFFSLWJ257IVQ8ra*tp z+J2uQ0NfJLfpura@@_)YlRfwxE=wI#Sdiiu+Nr3*Gbia6>76~#I^i!T**t;Jyqdaw<_X81V}us&k94)upa$Dn;vPCeP%D=32w`{Iy}G0TC`z62K`rpN2+`SS2`**$gEJvE4Icd8`?`4Q=GGjFKU z?o;5Nb2(4&kX&gF&eA=TX|}arqmS>)L;N2$Fa4ucv2tG0F6@2)Lv!PIYHJ;YCgWkl zm0?=r1g1h+v=KfVfk8@|f|$hP_DgxKfZl^Jhh(^4XV5K%#_IL)^H*95`2cH`Q7xZM z7F<53TDY5n><~@J5hW#(1wslSzpuUEC@~2%dD;EL?kY z(~-^#yC@k$pb+{9OYQ%|+F6Fh)nx5D3BlbRg1bX-2u^T!cX#*T?(XjH?h@Qx8h3Z+ zbl!JnzL{^X>zqI54;z|YRcqJozIxT#Pu-7?a^PT!J(p*>IpoppPfJ=;D>C*+QqxpN z9=*sp+tS*ts@2aT{lu{YlR4^VduW5xg z0H=;fIf}9bHTC&aNyS;S4B>|54INSYO~mQQ*v1x&sd{HOH;>ZfQcw`%VxV^3XAq|E z^Yoe9x7|GCp-w>so_-FG!3q|Yt{h32fqDj}UIBXkMZDgiQr(v0;KRl;JfyegG|ipB z8L~dzs6)CM;Rmco_G^LJ%F=WKtF2%SzmJ1nF9g&_4gDAT0%jI;j z?V`(xyUuk)aqd)tdmak%YfN@;T}hyWJV{IbEu9B|%1(?L zco`{o-WNI;P-OEKY+HD~+2wZ(1ffR*n!USL*zbVKdDsWCj_d%8&W-ydRbO+;{$XpKn zpiTx%juvXYQ*cgfDh^}Mx}B; zU;WhUtIgKO4`=qaY6<3`N}rvzOqY9RDxSwp%vFQ->`e*!A+R;BLtkfDr6tEIi=jjE zc{fSxSUdYVBZS8!Epy98wfPMr`PtDor7Wygt(Q%Z!p1(gzc}c8e>mvLTU)+D;EG)B zN(uNxk>*nd9(GZrl|!c=OFAs~OW(*R{Pl|%AyklZwR1Bz}=l!C-2mGb)m}P4>GBoqm58WFCPtm;| zG&V707{z?o@`$7A&u|=#t)pZv%Ax>dnI9){RCKgD?_u&%OiX~)Y(W#FopS%je!6DM<%PT7naxMA!H#ejBoh`N0~=Hs zwInN;gFb;ZQPq^Ih)eaax?bb^CB}Xyh`4ey(#3U-4B4G0JJ2)r6RWyY^Yp=qh~=)! zkT4zq$VJkO3LT;Lg80EH(q1j>Y(mTAu%0$pdhG1KT3|)v)0h1-J;I3Hng4J_P6x|nhGKHJ%?JMhp|jvm z*KGb1gbs+?IZvq-8r)CBXQAHE(b?76>>-g*4xc)F=z4uS`FKSi>GFCwJF)gISo649 z9|uyJo)4n-Ezz76WUGOg~?4^9)Wzsqaw zUr!IqncaQ^c-gsmV6-49U6*7ruaG7m9;6<835ifs3DF*>yV>_*Wc_f~}R+Ty*^Zudl2$Y%J33TP~P zl{xZB8oozGCSiwtKf$NKHIlp%DL?GnTol*?S0}tVoY!b}99QL^=)3d}UA)S7m&y31=U;If*n&n^r^^}`z1D;o+ zmPHD=I?1r+A!`sM(%E--JsRy0Sv#Wzi z5kQD_7U_Z%jyfM{TttNID)Pnh$ohv}Vb(LA1(cx#tQ0Rwm|Jlcynw_X9y;y$Y~Sr+ zpF<4Bbuxz-XqYy4!`YRQe%)~um4qXNnpggH_B(~)#!(7)W6=G;9mN^v9B%(MfUq{u zn*+mmy(sA!piG~ce6qV8;h!Arp&Ct&b3a~e0E%|qR6^Yz2UjA zvcXNQV6Aw5g+e)Zw}5`u=GU_gw-YgS37Tw@Iq7~||t(l13J*u7AB zL}%!FtMaYV9f-bEifO4uV>#ffXZ(oK*(~E;+0?rC!zIR6`CF5&pRhDWZmoxmbR(>mE)R=9FtW$t*t;f(kr@zA${j4(Vz z!V-)K^BAt5#MT?9z+J|pp`>u$jq1aKmZRD zkW@dwS3YM8IBza!>|>p>kshe6LXoI!%Xi+8qT=u&Tyq~i43Trj=7_OiGQR~XI1amK z-sBa`Gk`!omu<}@ox#ky9?cVldbPTR((h*D?$zIlMmMcp&$-TpSvix6!jpIe-6q#j zq?OzZd~xl=EXP{)SM82)2TjaMD+E5amZ$2q0%2Mve^^C%F{0JI@~oab9FEHc^QMww z4GI=zkA=HO1#lkauuk=TL*mL%Ibi9KhB@|z5o^~>3*$TKea3B~wob8B*|n0Vp;f|7 z+Cv^Y{NAKx+~4v^e?fJ}`!)XZwM+!Qdd?44Lb^NQG%s%_uLG9L+=63~>^rqv6~5y` z>$=}g-c3i|I;;~(Jogn|!d9HQOk3fEbG~nuNcAcA7Fm?!F^`@UI`!UQzA@bR=5!Xd zNUBll04ozL|Hof?ja?_pIYg#WNPqt`441;b)0)=~0rGEnH{6b0Fo0oD zznoQ~F8^_F8quZXvCFwKAb}6ImU+gJE-L+MfDs=yZdQC?Lbu5$2+fQQTsd4F7snAD`YMgP9m2<#%wur8C|^*o4N`A z+1=@KR|hE4aCd2aII8P7Uk2m-;al+Tqs7Yz(NSwTR+QIxH!TkDj0C{jCfjo=xSJk; zP&x=BT!V-D2(q^7dO=MIvGA=IG7-3hZJ<2;;qLJlJYW1@%mqayWqk`4C zeV30}dPWbT2>_jnyY3CPBN-*9TD3bE!hRBXCO zlE%jPC8I>7(8Y_Vq8h8*HXeY#;A{`GA90-*4{{UfVUAjSR5ff(l{ znFZt7=KCtAE4imVJ1O6ywb#A-lqM_h%XpX9i=v3B!sswgftg5IzEfdmHcr7RwuV#W z4326vl?ddDI3TICD)_ZrB2sSEWX7#3MpSlWxMwe)e2>h?i$YA*as-7WCHMAwA^EyM zp<(DuTS~4&o9GzRd=V%VV2Y)-q#-R~TrHvg`>G?Z+FTkI#RH{U0P&^ojl9c{LY6CX z!!=^?Jjr_^L_Ze<9oDbkM7Zok2=4?GGxT3<}_IG^@MZTfs;TU|?3m`ZnnNo^z&Lj03$u3!TkH1yqj6Rc+2<=kmBfP}$8cpiLPz6LbR zdA)d}8;IlmsR7ictHPL{%#Ez{5jysmwwJB z(u0mjK(8EW@*?tr5z4lI8!2lr!et6l z+-J@&S~Q$%Wx2x;viF*Y&zMz8z`Mqz%2Qg*jk;1fkSd9R-VNS1Grdwy(c-kj?_;&q z>{$5pb@SZM)-IZtPo!M9f}A-qRs7n#rnt&^+>Z`lq$*$Ox9{mO1(S+<@o&caNGv$Z zl%jUR@SSHr!A+XGz8!<38`;7aI=lw0O5i$yrmV*;mBHGBn9Wl&L7%xTt_sZDaaHcy zXWe~F>%iE;<|muN^wHi{!rZ1*r&y#iME+i|YR-_#@7vp$XX@4??_`X=+%jV3L|(+KxySSFw6BTF)3EB{}*tq@HnRM3joCBD|ham6CaU zgc%T?Fg$k_VW^h!ee@9*IS3}m0i#muJhhBQ>MBoFmwhEnYO*q(6G(m~B4aHmh)WE=F->H&e=uN3yjEJ@&`2y06g$SXydR;Tjf(y|g8T&6iwX&ifI`)jg|r&R zl-7<0394D6B!+`r!9NlH9cl_SYO0YTrS;&5!LgHNh?4LQyEioVK^IfKrdt;FflEC? z)Q2<7F`{SnauaR_mbvNTR0ZxQ#Zxp;(1tm2e;%E#8N%QZpKsNm4JgQ6z3vwcN|+y* zEhCs-6SEYiZJL#=cMC>U1rOiN^EH-<1C`b-7R~AxN>Aq1x+0QdEy*>-uxKSG&|ykr!e_Fj=pq}GcR&f&Lx&qb zI0qL7ZQs~n=X|uFi-31bVW!liJ+k|mB;KmwY}ZlxM$1TP8^YR2eO?>itgQWZDQyC+Le9frtxv1Ul$ z%mbl}!iIX?QOQKa2Mm81uhkmH1};i{dzjXjyyle&1)RmkVVNct5uHVonyB_cFL2j0 zk_=?J0Z6kJ)yK(XK$d&*MSPvze8_XajL6{gxZQk1n*hiD@e{EBFhS5Xz$GHliY~Gm z1mw@1WptoKudB9jlp;)K>=5|}UXY8ZuVRl3-!FS{$Xy)ZpML9$UX?4(ml+o?o=TI9 zBb{B;9rK21SZ8u5;O2bP4DHgTwHBvlv!6?|s+(typ^;43+Hh2)#=W9v)jHD458|Z`h;p&qQ!=vbq|u#!+Qg`V z%7cH}?$gFVtB|8cj$=_;Q9F-G{bH(nl73|D!9aE#t}6a<%N}0;v52W990t~e;@!Vk zUcs&)XIfCXfK=8K0?uumRRgN?7+0rhzF#^>*1cKA8{Yr5Y;$v6K^+tD2tA=zIVj&5 z^qjQ{XOcHlKB9~3w79b9Iv+D{Rr@Sl!I(8~_fGO-UE-uZ@PTqPr&27e|^KQ_dN9V>~r9bf6Yn0==8?}%yV`8Ts?ouVIIkIyi zJ*^_oQe@wf6BjAQUlmp94aNRIAAtf{6fHSYTyJO@1s>1f_ox+GuRm9bUV;Ku>~{$YA=q9J|}m2^25iFKvi?U z*PQUx5#3pd_@V!F{>@V#xGhTU7PfdeC-|(>$M00L3*KMH;LXJlG*}MV%*x0e6*Qyi z^hmc&oDZ#2w`kIsrtxW2twpmU@kD&jA;~V3#)cu`tWR1Ro)pn|MWC~%Yq zyYsXHbKz&p({&bEEyVC}tG2eb)L`6XEmYPURJ? z{z?A)_2fRbD*x&Lr|fEc*C?&M!`}`wRxvT35-Iuxn#Cp+56eDF7_}RG;(@S^=0ojy zIbtVm>(-^*ZUeFGai49i*OuFhTIj`i0{Rdu=wTG>Y@m1h1bNq^nS}GI-GCLAWrhtO z^ioO0eo4v5!pJB6EM;p=f`rrC{DDZn*>AKQKKrL$5|d^lDQgw_+>#Le53?9o1} z8KgZOv>02O%WVp9{!4%Vk12zb>@2`2L*LnqscqJx=u|AQ?r7NN8cNjti=D5T0r$1D z^NhggyuSOYNVOTYBr4pwNOgmH7*x$$z7yps>Qm8iLNLo;!;<`d}nH9Em zBO`nW&W5y&NM#NXZN0JL=LZdq=bL9#vD5W9DR4Qeplc>}C6~J|e6~USawk1~dht5> z>tq@)zq*419y0Wvkb-}_{_VlVI1?r$NSP?)gH(ksGYo3A>Bh5%nXUv9rz$(*FbXq5 zFf3TfY`Gok^z4}+SxJ6wv|LsUo6j`It91VL2+LF|R{M%+D>_jQdLRz(d?j9{qSsZW z%CKIsMd*mzP%%e?G(q~fZS6)U32yk#?NZt17rM$4Lk}vty9N~0qtQ2YXQTP>C%D=9 zrz1H=U18F(F&bSXtFWHUC4J_xif}&)55Rml_L%zpRX@jtqDjL>n9xI6h@)P?O39+V z7B5*9T7q)eNSV;yeD1Z`H1KQQslkMFyR|BC->bm{hSUveD_O-BuV-Ybkgwd$|F6`8F^37=$gtMY-9AOB5U&3}&+v!p7#OMF2u}$4 zlX=@mR{AVIH_F`rD=W9M;cx+xXIbnF=Y=yBxqC$RH{J(N7gZ*RL31F6U zKLR|XP2Ots=6{kg=UPTv)K-oIU>q;k6Qd>>b}Uq@l9@^WNaperQcMkzC><0hM%M~g zlbp4{$W4vT-v7M^RVC6&e&xOPG0Rp@*8{`)NTs8>(d%|#qNgi4iRD|I#((dej0#yfr_BBo_%@-tSdwgzuXF%bSoJnt z^@;WC6s;7$Q(Qvaj5I5;hp1Uw`VEc{<(T+4l~a6=Koqa?UJ>6e*6rZ9vh1L6mb#$M$_uF$C(C734;Q2A%gu4f{lZ=1>+DR(DULkr4br;IzyX`o|!b~a! zT;!Y!Qn2m8^Ujzw0OqiEZ#ZjZAY^m9mKwCZJ#Sz|$E)6N_t8I;Tb}N;*Isu3J^H8H zzoun-E8PlN^Kn7PO38RA`NwX~W{Co9x5cl4z;!pBPU6Ut$ev$169f8FR#WFZK;HUy zmd7XmWC5Nmy5T8iA0{!j2h`OTA1IBBFNOEg-IrM0n%pfAck?3SW_4o6GM|e@XCu5g zK7r2X&B@*7oXH7z7E_Wno}_kcv7p&Yf;2PP%0dNi!&!hAtpvBbnce>iA_~2gC~gH} z*Jb<=G8Q)U(M(_kPVP*fxQ+Pg=8KgaBie_ki{oKu=&{OjptoCFjJ+U@=3AH@k53M1 zKOonQz&@{{eczd&R7tkkob5i%$vcs406xVv*#-dx68?Y9th={1*$)ECwVXqfkrQHh zL9cIdvpap83E6h=>4+C<|EnBa&e0uB9u+TjYb;~-VuCK#ig!gyYa>L#eRzI)amEAe z>_tbw)yBrb%g*if>PV~UWmEUHOzsl;BjjWItnJwc3pqN)Qu--pCMVH0FfW08*z{8S zL-gnqdt?x=o)A7*7ak?=lAJ~(RA|D~S;$_3umUID3)=e{Goix+t~<(0uX6;-y{yWm z*$-R}MI>{eL*^aNGyMkYrN7XBY(wBz`*NR&d=Z2XG{`K1Tyl?$+Y`Yjh2lxqyLmNm zGYc;iG15PVeR!|towe4n%;O}5K9%UY=1jciYADSaUw=3{n9j-YVg++$cC?qEo|J4) zW6OT{yF3iH=e~d)oqkk=2WpJQ7RQfy1671CH5j-_gddo^R21T&u~rmxG#w-)sCRLD z`^fCz-ZClegMAG5&Z$t|dGOK(^bsiXRBnqaEXJZ7Un)4L{xM3RqUtEGxcjxMsw5R(ks69!AfYy|dj$1yuGQ8(Et+pLX$yQ4Q5lBWxeO}3HO--_(JNAC&lkOR@y+YJ(^8~TQHOgc z7$t4ypd-4vB17g|KJrcgW%R8n^Xqv%{ zejNvsabsz0QNzGqN)1gGRnarBEMSMh5d&oX4y|0B3+ALpqQh%{CQhYKzF+`PJdY>H zNLEL+s&=*XU>#tnO3A`@Lj-pVvG^)#D)F#uI1U z8M$IpHRnZm!1ozS>52x5-M#xmlV17lsD9rn6!$)n+Ki<D9hV>`I(GFT5mF*U*^}uWvV!g%lmm!f(1x) z*;ttvm^%F&v{c#6@xoHKtfER#6%ig1PJ@W{`oW)3dF#Ijxfc^c_PakjgUe9$q;pv; zg{H2NKu7gp$U^K2y?t^L3o1AH`QKqK}?3Pb)XSD8B4+%LBr-gDCF- z?gXFkE5D-N&% zWASn@hprP?yW(D)nG^SJxsNQCKGGM(7kI{)8H(l+zM>e`OBF=tpsx2a-m;&ls+6fs z4WR)Zpkg0*0dR`}6>goHVZHvDZs~twq$R zbyC-OzQHQ*yXpunjgsC&u86}^bokI^L9zGhH+?$M>0lPMkyoFxB(cB;2kB6-(}Q2p z&p7?{rI^C{U<{p}VUAokOGPd65{F|A4%VO_$>&teQRK*)maD z8wVieI`Up+J!gf*CB8F@wLkQ2W1hPGMjU3;DxN)mnhV~j{!Tt~_4!FGFiS|tV8DepII&c7WBDuKFUU){ zo!*vwmpYYja0vbQuh?Ux<7*b2m4FInD zSGbHLS*^ZjM%YCm*5tLwR9wT6q24xp{1VEhK>ZYFMhpN?&u?Mhllw!0i553|bnXkzF~Ur>I4ybt zvRjurWBIR?AcQhCqdQ%5ylnTzTT#U_BAMci{y~GWIJ))cU{X*xR!3BwJXsT;R=4$J z-aCLfgLdE6E&cpzoC;l2)SIFz#c5e`yrJb925OOUbm*8pMR?I)88D|SS9l%GnEf@~ z*fHzvfPI7iEod`TBHnf;dC2|A&sT0*Ei8s^8)w(r>qqSZh?*XZMLv6F6&U8p@OmRagGKn1cr1(#X2tml0me`~- zCiP_5x1SGax7C-O8!kn)2Eo&Eb^-sdv}9p5m5 z_gHS6T&${GM8uB*n)yeL3i6c^Z^`lk#Ox`CBdB7=53HSRc zq%Dm5RnkR$AR>fve^=zFu|oua<%}YEF>JXub|JxtC~fh7=ZlnpYh(ZB(*KLY0`+f7 zOgNAdlaz$9?S(E(+;CqBu7z$Jeo!5YA%DQc*bW0HQP_#Bz-qrhMJ;L8QR5sUbM4R& z!%cq)+&|NWKtRB@m*Ud1SXf~u75ZSwnz42n5FHiH1e>HXp}4HLP=o>>GEgePB~AVz zf%LcQr=YMl$=ZZL!Rfmaw&t?=YTi3L(VUNq8u7bAepu1mP-u++S?XY9hRF&fZ>@e% zf+X+3e1nnFL6$#Mr;C{ujBnkK0?aDp7F;GO!$Z}RE!0N6riO7hy)*;e zKKU{1I1RSt1dcSF5tb*qlG)p%(RI-^#d>yj&TggI5Z(7_|xXARD_i`z7$<3#SAm9M_s!d@X z(R}rBr1qkrEgi(h8k7molyhdh6{~T+D!U=7FH1NY zc|G9&xfnKYBop3MxG-v#fh-NIO)Kt z^*i*Q17d`bL7Aw&=Pboq{P!~L?Pv3=vk>+|owOs4bDtL$K@swfX8iGTI>+Mk!47u# zd6+px{tTZF-YFDvh-SX9rnR@@f+O0J0+jBHMO-D;*cUsId7j z>G?>7uOVdVS?bfgI_h+j1xZh&bqLq3b1kOAR;(s21qCxBacpxH(lFMAg#Fn=uIQg+E~fPzewUN}`?W!t4(T{a#|? zTo+3`4gmb5PMrxc_|4DrGx3N<7lt|=rdo~s-&6$zzT7Wm81frq-3%lST!l(8(|H&G z9}XZqqRO#+*oHjweC8A9gtu2wjTh6JOZe*5=oCr(mm)4bxOGBp#cJ@i{{&{o%@a~K72yWuLe!Pw7$sZ>i!zJ)=S$@>_=%aPA+-~$bj*@!E~S*k zYTly&T(~c^Ou&znEy}DS^@|w6DJ|37Y@ z=zCXQ3zQ@dr@PgmY)2J_1TsuhkTdOU=x<569m3usfMRA!mEVZL0=J@jYEbnxHIyo4 zP8!sO7tvogjeV!KYbrrQFN+NGX_^SPvOjSYPKTy9%3ygPk`B@JscwtH(l z*?KrUd^E8Z$f+7EwD;75mwbDcb*@_FX5--iaIUP&AXqJCxN$pA+pn^vGFBxb08D{Ot%>sOrHq`|TExB1)$qXtgMe%TSm8L$vk2U$+eN zeJD1dpI#HbkPP}2pa1h!@~zL^adNUTWaFMOc0ROmJ>txpyxRM{;r04*5bZ@opIdXM`s^Nlq>p zP$(mKT>I8o&TpNflsP@U+Hs|R=eVLwmETp@C-nsbXMyeiB}<@S{kSVz^uBWhC!NM1 zZ?KpI%AAl7NA56Q{!5$?*!yF(W)6SqL+D$cHL=J`-h zP({X>!2iYM^kXY6t?Hexf>2^+mk$UkhV1^O<&KoGIteu^n^SCG$>s1WM;Qy z3@YtgB_rA!HI7K6^QJ7p$WHhq`l%5%AaGl13D?{+S$~n;_5!*Nr49$|5L`WYWA*Kp zV(RMGmk*1#PizqRZejqZCFIwG1x^O~hv!g@GL5z;pl?Z6JibK;rK%?o8^Je_i>6Ew zvXO-hFX@3$2O?yIc~D%tq@CM6bx(%q;7^ZpZa*6wh5nk#=HmAnxNR3l&11Cnd}(d{ zMTq;e!I;_S+@Q;O1BI^+^#on2G8%u($-#A z-hGgqwzfI5x*zMnq7$}I(Iqa$I9T7OUM>GQZysrs)anzUyn*|$GA-+EU%TrKDqbp& z%dUu1{!F2?B%|bOouFe~)YuP!R~-;$PrEg4`NrQ%Yu5p-E`HOt?|KVojBFeKDIU~a z>Uuiguj+CIV$jK1Ki;jaz211Oyl2bkHWJR~L*M34-d}FIdy1sd< z>TG)gbn(G?zulc!zwg}vydU0_0Z#GgTQE>h#~&5jQBj9fzL2bHV&5faw?k12b`Xc3=$?P+@>4CNn z=2w_h-BvEn7WcC+B1A32r(eHFDIb&FPjHDNmr%vZ>=Y&P?0vwNg3UTXnnNdEjl5Hi z)5eI(X*qHf=suY2lpeFoqK3 z6(-WCK`Ue4q9W0@hp$q}6?(!AC`{(7Ozyap#vKR?wwN>;{5i}|6B@6X*@mgt;HW#D zqa{PvaOZ~R1Kc>n$Da~3fwW~?vv<}(SZHNXNvx#ok3Jo;zj{KW@ zBwKQA2Y7b*L|IykzO}tPne)=*Fz<9MIkxX{e0W%1X>rxOQF$<}&Z%L_p$Rc!{3#{G zv^}=HT9T5izMr`koX+TxIMKNYCV}et76ZB}6XKA~>*Jq3E7K*wTpVShT*-USI!_xT z%#M7?&f*KV2I%2N$;*sT_o;V+#!OqgEIJJJ&w|e(=E2rp@KTXzhq9+84AXS98evZu}S;G>^hKIoRSg``b@?uZnj!M^XjZz*ZXn(SCf=t#YJE{U1tdJY$7w ziJ|I@_exT+O!oJo(KwbGI5#6<9|_pKc30Wz3GIZE$@bW8*QYDqs|;NdAUEU%9l!;? zEygdTDw~$z6Ai){xzVDOXj$Q4T`jJjmhY58SGb5m_#E;Yi@kI?m?R8YVs%i#_t#kK zPxXrX1Pu&6Hn*Wx{i z;L#_h*~3VmcRWZHwEsQHJ7s#xUVU7^8s(nlz#a`+wPRu4A_1Q1qtvOIC@!fXB|HU)ShuUv z!?JfK5kxk!Lng07)60^T7$mKk>vGooOg!79S()qTU^|LA#X>rY=8yUUT2%WAvOM1y z_aME_@$b7MceuzR-dAD>APSyR?l3S4Ye)awCQ@zuzj4^awEo z>WU`Qx2T`eWFs%U#7o?fvESHPm&+0cXh6cG;==_i6f?+UI9#;E^vsCGg2xitEwYw- z!&4j5&D&oNo=h+`gA1#kmLR>Z38k~Ry5kKJ-SJ67E)5LOQcx8X#WA%>;(l+Kc+XAkkDM7oGx0JEaX<`{KK~BYlAV$?np;_Kf*&B zJz+_MGxud{us&B%LVq$xR?L>6jSk~oMs{mTotCbt+(|@-xPNR>S;XnDUn0%8Z+FSf zTNIQ1(4F5c747BPt=o=v1L^!d4AM=T`|T=6Drh2wHeGdrCM&VDH#SelMIwAa!!H*$Rc zS-crmv_J5T4O$`fiX&!~p-ygc;cUz8izG+I=RY{t-C`il6?qbe@IKScV8uPLr}C@H zMeQt^ZWZi{gI)q5$tzBQ+V$qJLx;R0!%;79Pi;x60=O(&9(rb=Ok=ot{inQ`y; zTileIP+bV?Bu#3ouwL~IX;C}OT6&BDbX8)}7JRLWfP?>N;LXIyvqZp=^?cm5*ofZ1 zExh(|;o90oQ~^lY%;KP5iK^o6nsL0kN!g3#SxPnG-6ru&YKfT! zQ*+gGzioE$$S;iMc_V!APT`0)(Yg)jD%zZF6_8)DDEOh)aKkPgNVdp?lRG>Q5_VY# zi#q_G21mwlSL(VATW?JElK(C%*nYj)ip<4F0}&Yq1#y7aXieyQ*VNp$?s?Au-x8|v zz7Z9XIt8$c+W~(9MZS6;6Od2z*e}i-H!^x3l{ohoYg=6Qx*xPal`qbHm68>4jkkG* z7<&WLif^^IwYAOiQkT5}AMGii{9cLQO9||y$rQtLWuX-E6p&7>0e5fhrMDmSmL_1t z6rR@qp0Lz)<*oGjQQooa`?QPp@a$0sgz{o@rtLYJ7PUYV!`DiD45OA#sJrw%G)`Sr%9 zGSO4*f8`O;JcGx}!Xa-j6EFo1=m0ZkSzvDf+2=^>j0^G_?}C@d_tvPH1D7&SxR5t& zY|xOm)dD17h$uf#wHZW6?k^lV{u-~d1D%KFHd5lRFi7sJfS0paEPkp@5lTfI3Or*3 z0HwPPY(qgr!65(~A_cgr2lmr}3IZ4IxfdO$6c}nVi7|l`Ec=z#Z5d1s^a5adZ0v!;kiSI9< zVEB{7P66{cDY(GvBNZ0Z``FJ_`Jc)9JIbXlV6Xo+g#h7Gz$=@tbN~DQhxdeaS&IL= zr32;oT<0A6*Ee@}ztO<=3?gVdz7L~@CZz2;#;L9dr3|IfGovrhtYpwhAa7||$xnPA z`_aoVtE4&JB)8VDS&BaI9YGS}hX7~fXI61yG_W`I*)+qI!_SD^a)5G07${it@p0e= za?=Pqfif&f$TzA#4Xga$6Q;T>#KaG^|MAMj2q2#}N0GQb)PFConKERMxH7a~(bd{U zk@&XimLWfi;O_)e|IQ-M|J~C#@b3pu7dJ#1>4aE_nqn(_4T{wp<{=LzzEkBIQ~ ze?OChd~=5n1$L60hxF{+s`b}+fQ^?-G&iBbzrsLzR_6a0QJ({bg))GOBm_KT&pP1S z6|hZw3`zz8aELLKcudH*mkr1OV2j+Q(q~cr4>8xcsV=#~4aSsM;ISOwSd$1m;wa1D z06U5wRg4t}wg@bc;{WKx1=iew0cFH=0;i4140!3f1eMXmx7L{}B)1pptZ2Zz>Z*_`$Zg+DG8NLRSnug)I;AoPG-?NS5O#a2NPv$p!O($jVVc|( znSUj1y+Y#HZ2haMnHkaJm~W8puOjhF*e;&RH#COs8>}LG-o)?vrOYBmIDT<+Y;zB- z3>igu)yjCbFYZ@<&npe(%aX0G>rq)@udHSfZ^Cv8x)L;N0eXG3kPBJSk#?c2b^ zxa`@AyD_SowqTuXAQe?or)nyjx5I@>rR8j};@4i_@MQFVf&ywV>Al%r@U$;ro;W8{ zx~Y_-z1f7I!#2q|sLD3dFr9JCYiMO8lo`G%hT(Gw8aK|l({oCf5w0%*eD?g^${VehwM+VMLz*iSJED=UfrE@G1$rGlX54Ur&U#d!o6d^ zP$O99d>jQIo>9g-SuTnG-VZEeOFHj19`lsOYPGFfH}W2M1OvAbTC_}Re4c+JalM1O zz3le*i6g&m{IN`eceH{W^u+p#DD2D1A_#?k=R@>upN-mm0|hqcT(YQptJN|tG-1<- zq=e~hx0v>k47f?WAlNRy3}UsHu*ku{J$~38QS+y*Go*j7j=5h$Bq(jJODlG(#Jhbm zKV6heo5R9w=Bn+qr(NOvG)H@Cfmf)*d;IZSdp^~gcaS`rGn@r*SJu6sbj!HkghEPb z@R_LsEbVU^5moe+Yq#PQZ`+GD+axoeqY$#L7#e^YSi>}+BT@?51(^ZH~JN;B%smY zXsteom#2-kY7nWri@rD$rjz6<#DKz93en?)5GGwa^`al|#*(8-(v;Ecjog9(H}h1^ zm^7(b7S!Lt1lu>g!bVp7;?7l1rZ|cWk!rf6Q+*N0+QxX`*`ZSuJ5w0m%#9EYD<;op94QmYjey>mC{Bb z(qW5dnt}vgpv)Jhq7KspLXm^Y0wQaTrbZj$2Uo5J>CyCy;eK=Ne`+NSQxinLdcT5% zd65pxgtQ6=5NT9V5@GMm(MB`Xz=XT>J>zQoiWnRpn!Gen*5naA;%3mf{&rZqHA+!t zz+$jMLD2hB^Npg-9mq@O=GJ#0PMmol+6^(SSx>`&MHFu4*dhcmm|GqBt(ZXeo4Ww9 z=vGa4I+{nclG7Lou##f{X$6fBv_;2jnA$`7Yb8}q4W zN{N`y7AOHOV0JRWFUMxV+b&dD;u6}&)}x?J4K?8mXN8i(aMVR-BzO5)wfwFe@9h1f zinq_0;9!Gln4to)IYiDbe|JsNu63;>;R`WnarUPWozQq33U*ME0}0{|(dn4Kd2@++ zb(DJcL-VzTLjR|>dkBsM{@*-4nb^t1_QbYr+qP{@Y}-ycoTy{lw(U$jak81;e{tBu zR_)f_`jS&uSE`=+eBUp%@xy@~RDJr#1!`7~N!Ou|yX?PD$Trapwd6+I{^62m*+nvQ zjA=5IhE|$dgp{+G8IFNWGL>+9R>WRq9Xprgw|J2%)AEL5)>pUGN&+pGTVlJPZYp^S58y|f2#jpdUphL%B>q!JRMo*LKpY-4JwiP^B!Jd&jQDe; z*W_jvB1lnsDU6XTdbosb2^umDk~uJkE4kUNvVwH}dM(GwGc!NnWiUN>m6~S!qujSn zKFs*1C}p;N0;jVmfLn7CMWFsJnNuV~Opdun)CV zxRg|l(*G8I%jNO?KZf7%&w^Bo@RU`jHR-JV*08-gXRjW&zy1HpzD4Q_#^-hYC;PUg z$Ko4UJ6TxYMDsF%+)Ba3`g(cvBl%+H58Cx}MGCfU>ZsB}#%of+iwD^#4)O-kaX`SG z5pLC)SCM`VTdJJVjpuq5rdGcON6DXGA&Ab(i`2{1uJsPn9-^Z#@V@S>&;tr1qC|Hy zzcFd6HTAz6R*I`|WJ6YtH4~Mt9F|oq&1m_yIaJqWs)Y1EyL<)f5N(wV&{e#&I>j49 z*5}d4sBtIBD<$&{<-Pj9)0sAGp3F z^4-xuSQtJMHS`A3P$h&wEE)n?X=V())JOdcBJ(TuDEJ2fCouv$XZ%4u>C}UE+4?#cIDFlwxZp zJeAN%DvU4>)w;VKbPF(|)Y*E|Dp*q+0z#0tb5cmBsYZZ$-E$U}j__hYsr(+X(cnFU5e>mavG8)A_9otp;#FE7x6Ymt}s|%x!VoWvb+*)P|D4 zN4JVfX_9tL1B@@PrR&{Qd18+uO{~}3Zf|`v* zmg(jU6|6ppOr1TMCC{Hn-7~a2JlPp0pr0w{jpIAy z0&0DIosZ~Uxsvf-Nc?~Ru5vG z9oe`fCR)9e9i+GMmNnvH`@~TvZq;II<58)()f_PwsFuCpJBcSjC1`_pgWzV=tY;~H zwwz+Ij&{ei`8UQMcHBSf)Y3Hk0n<@fac0USzWo|cKNtvqr)SnA;xl^1kQL(ug;FLu zZ7ft|&RWngZg|#KkjnimRU{1DB)l}M?8rWW%IcWT#k;7%_uY@0Tr|N|QhicUE1G42 ztL}0L8VaXQMHGEG)avfIzB9VGUH_icu*GB*Op{$DQL}FKV+5J*fmpkMcFhhO7$QFH zu9jLKe%DyfQcrCL1OBiMU!T1XE519y2@4-DejhpP zmKnN4HBUxI<)Hf-MlDIAG`Qa?T7M5%A_g9UsRW*!R48#e!r-A=sJ~W|QXL6tm@CTr zy1lqO0NRVW+H_CTD@kaN!VM{r?2*%H_ryjV?; zDg+n$S!`G1UG2nzanFvx1tPj(xX9QYw4##Ou;IqBK1)XNqQKoud`nhW+g&=SA8HJ_ zdUlO2K{PS-g&@0HF>DgnyIG?WdN=vjqRZu7!9^g7XD~2&KuI{QS#&!NV^VY!L0Rir zDcc*!y!e5>n*=A|oQBWXk3_fTLt)+J@yWJ?)<^tdaQw=*+?mF8M)njEZBHwdAlqi8 zz{keGJT@$M)Vsd=)l+gX#a%%Z#DL7#Cg#Ga%gJr%R8^gd%h*M9H=d>OI#gEI&Aw4I0QpVLY`}#5_2*mZ?`uBwc^p01 zopMM+Wr*Lq0bf-5$QPCFcTi^>SH7=XG*LV55MfGDTBeg>&|YU1xecX5=?7{(cGyL! zEd8JobV*74Z90x&1t z7SqXb3ULAKuPXK`uizX#W~B8yC{O!rlmJ@_j|MdKs1A>}`=^`d{h*@FprSZ}tufZQzi5K)w!lK~shT@XLXMIkWBrxk1mEh1&FkCK4Y@bB`Ex3gYmrWM($%&17+dS%g6}(|K3ywYp)`G~`+u>(*Q~!?Z5Sv8QPanv0%G#FW<;Mgy zsod|YfK=d1pDB~qkqO#~BtLuuOmYdF1rLymvnpk-D%p*&RY#X&bd=>~v4EC()!!8$ zgLSWQWa>0gS%P(1Gfu>jVA#%-Y-$4X8!m?V*yBZG`N!O8(wffPhMd#2>>SIv&j4=u zzDmJx_`_h2?oxXjuUS0FwLU3>qL60-Q%||8ugd((gH`3`CoYD6*a8WZ${nU+K!F*- zu5m?MuB~^0F#kTu0GOeiUrI7is%Ui#6bSMTVWk=UUB@&o`|Ih|O$aH3SoPu`gQ~rx z23u1aDasxv=aD{gvJIWcDmBgGz*@47mk@E4&m_ndTdO*IBh|X~UXD05j~=jvtT@y_ zL(qR2I9XN9Xti5doiMevhuj2Cfx^5xsrEd+5INuc9)6Q>cSg_XI5Yi%-v;$9kpeMJ zo*DV+c8KI8(u_h2w$T^{w>-N^mo``1xwIMSj1ZYFU-$GBZE#i`WBaY+`%=t+IY&C8 zqqjZiTd=?DR&YzS3;z&x$|l3X`m zS`bE6EAjun1xKj_Hq`NJeBWUU*Co~&dt_(FO1}J9Hvc!bFv{`sqwSx2n|d&*klokGpM3_U?Cj_U^a1F(ME>&aV&u{_yKn&As}+ zghh#F<=z5xTVGG}bhjnUqwVt75l6jNIZ(BFRfV;B$xytknkDwxx#Y>P*+rkd{q`Y9x%&snCAapQ~+`zI}n~@ULPxS zl)K%b=N}D;M-&n_54F!v1TEKEv>=+>bsC+ioVK_iL|6`Ro{37z50yd3# zJuEMGr!)Ba5{c4eq;Q$s;CsFa_I7;)3XUTjO9Dgt(`b5+m(y70KSCYD{goXp_KTl~ z?_JT(Dg}C4&QUjh9U}bLq!#uS!Gke|TN*_=Qx&uhYXJaCdqjFw47BS*jbv8*Xe*}$ zf&H0EfBSU*5$ZBr0*X)?g0Z_^qPQZklhcS8ABZk#4Y1=P&L=P&QGC#+cs*II}450wjCb- z?Nz4=T6M9jNu&!i>44)-Mb6%iDA!hC4e!(V*FgORlK)`WuWMBay6xh;1 zxL{g@f)fW>epr|b7`|ZrBDWQ1FedOJZ2@*c=UU|X17rKE9JJm2Veeo0^(*uDc;D`Z zen&()uY;em6JKp}Y96StIxpLc10}INQcJ87mn=C$yDaxE6l%=)Q_e6lgEWDi6=BY5 zF%O=rkskpGlNEL%OoiCgqnK#`Af7a?mI;G*n5kRTF4QqI)dEkXFFwPJa0je2{GfClMRsj_1ca%)rkKc zkhK@6a`vEiG<&80t9P1AJ3GYy!4mBothyT8Q+kNlAVyoW%JX33z*{IR^#bkML$+<;aU-kdy#xhAq=4XRQM@671Y3}Ob)D_sl4N)_NUO=CfZA2Yh=gzaQ;tVmAJ#Wq|Q{h=}Y=3_jqq;1eroi*}JGObIBOpWI*A5Wm#C=O_#aC2ixk7 zU~Uo1EOtLqr^YHC&4%!Xy~18gPiim&D+UqucJrsE;t@A}zH>cGj0}0!88-O5 zQ#SfuPpr9IbqDoSz5-Uyf#cPB@6JFIxpR9JvjO)Y~woGYr=N~IM_YeIP&oBxRqof}zyhadQ`cw+RYT>mMQ0we9gtpATr$9F zb@Mjnp}G8J$Wvl*kq!|lH==vpMW-Rx?F1D$3nqB$9b8`)ZGgvF+~Sm@F$D25pe}@` z|7M0)1`HJ__gm8tk3s)7{Z-YfkI7=$bJk7M=l6n6n=C)FDtVJ13GM$X+{Q!{25BZIcdGB8 zF&#(l=mqM>{l??NN~$HdDT69{QTO-_8xjrcZNmB0h1jxWxGW6j z>xHX6--5!qm1>BlMCkKNc>`W!ltezS<41vxrHjMWMpLwGF4D;D{+mh8>1&h`{3Q6t zdQ+GU4#guc=|4OGr55K3(a_NBXkV3VHZvMve0Ch-x$>KVu@ewBTV+F*O)$ z7wMei@^iMW^w)l)UZZ{ny%1?y`v5oM8@R9)QY20Mn%Q=os=I@K^dDv5)cZKKcZxvy zaij~BI!)B+s%<1i38*D({cyUc`Yfe{HoN}?4b0-yQ1Mo8k*wW=E5Tw-5(`|97oHF9 zFBV0_?Y0U8(+9$?ob028N0m;8RnSvej~7nkCPWdt0}>!k)qk{T-w`Ys&1|Gp=viaU ztKZR!73|{4#;GTEV19EJL|FRA3drd%HF^Aqn%1dSs==NdzzcUKU&O0LGWu$(OiFc| z%Mk2%>yNs`^FNt{$(mpCnyiV-(_I82AwkbBXruqx z%U~K`4%sNX%Tz*ypH0Y4nJ*;kxIL}EpaEvXtIZNB-0{tn;@{?a*%(ckX#Et;FYkv> zI6JccHIw1|kC`k%^&553TCluTjAhTxV7-I8YPkq0OCd%ixSIF7R8a}7Pp2wev8|?x z=+2B5@u&|JDcxLeK>fcaDY7AzFO8u|n%9jTkMlULBfF zp;3Eh>nFI6nddtXC3|q&jBR&P1$aQ*`>URWQb2EvEAMg1#mS`qPHX=^=-JHzM zM-!apM>07YZgi?8TPm)dI=L?}@f6<6M?Z4Y;;c-qI911Uxsqf7O-XS!4Si`!0>>nV zqCh-bnx4sfWPG9`?m|pdlDPK~3arVwg-h{Oix7)6l=@W{IJFuUa~RHJ7AEV|AzUtO zHd_cx^0G=jR#{kjZ!gw#XGBn4)-2#@y92y9N=uV$mX%6g%&jlYUaybgfxAB3_KKfu z)4{@m)M|R0cF(V1X9SjjG~@CrY_Iu@E_lA6&^yRP;qhgl$D{CIqgjzY&Wt^uU~Jf0 zOHIo3j4GS&^5A%2-~`4TOV_ZSi&H$eP;=>*)>~pSjbFJPbK4(c8>`8-SWdrqx`MpC z*|7u{v}9IfHyQ50s80d8f|qkCX@#wPya(!$G?^tOS|mH1@nT0F<6OvDq#VVi z=6R+tEOe&x1#wu*wekpe@f`~&U;o6(5zF|3)?Ax({Xk3g9C0VJxunN1vNPCJi^`YG zO1s9$FQ=e%y9{R08qP42r((@G$*-e#WRavgl}v$=#uIXyUJS>W&(L!|%0_BWw_%09 z0l<3W^ae-8-DK@o5Cb2at=9nQ&S!8O_XowUk|L!=gFL481drr6*?y-=RaG`uto4Uq z{RcO!Z1AP3<%~FK5OgqhQ`7@?%dWTC3V_qeGmV2+O1Z86{>g{u{$))n~s(cw}6=R3^h@o20eIJ|F1Sf=bFjym~f+CZ$Qe1|bl z8YP6srXz$6%7*7bm1VvLQ#IN3j5ZaFCv))|aGmA6Qm;{)r7>j!6TUcYPY^n|OTzEk zMvjkgXfLyk<{nF)?g+Dz00=E&Q#XXiJFV0_KIQ#oWRpm z#ks8c=7pgVr-~qHF=czL`EE3j-9z=(wG=1OGG+7H{vD@SZrOR;Ah}Ps2GoHLl6ck0 zwZmOnJ6I#V!|(z&Td6XCe<-6Yn=1v&xeCci=|%R_Ydt(s9pp?`db5O!CzJ6q1a=@( zqtVkwSiF|6* zFxT&?B8+P*D}eI1CWQt${D{=c?gk(N3B0<;usKmT)0#2y&z6vYUm2H1GY)+aj)9^R z<%5E%u@r_0G~iX2d666kIXzdkglD_y$jAk}VJ(&7G3mv*`l4NL|#g!?EY~V1-&aD11ZWQ-U_PU{^aV9s9EQ|HD<7Um0 zp@uNYRAigARBi|`*H{sx9#H%>*x+ITJ72w4o0Idja2M|SrmcK59=Z_{}unD~VF zKXR~5nmr?tMZlWFz#K&Zz7=+j3H+LmFA(U@dsqxG=-ig5u>yt$m`YZ>K~+1-#?c)8 z#{g~#Wr^e}*2p{Vn=<_OZNnh^&~j+eg;DvMZtB<3M$1ePGQQ1TZ5Yy~z1u&Q();ED zFl`kX$^=RM`4)Nj6yd9{(B!_=?qZm;ZZBa#e@cu*iKu+rztc(H)EG# zO$7+2{PYt^;TR`o%kt!rub}V~OwXUibzkvdunWD(`6cJs=Z+J-D8>3Phmd$FgVy#r zh0bz@5WwFUvdk!&9c!0VTgIR%L<}kxLM)p&@mG7ZNqi5lur^ElghPJNgxlh6us6Eb zMPb&Y9q&wVPBR}F1V2uwK)vl-N{sVplo<#`qT%*YQA3SDl7cO|g3oZbYa#AMbq#CH zI2#+_xG~=T%`!c+(;B1*AY%>T=UoUrz26hF=#9rm%QCtF3;E3JV=M@2-0;v;E*_^z zc-}r8G!j2qu%idyo01yqb%EfroC}dLQLKQ*_#HL|q7rZ`m9L`Qo z0nZ?!1EfV4)wMX+8XxrB^8c&*xjrrVnU|aMc}~uQ?20dNwKV$o>_gBvjwa{xxI54P zFYT%SUEDkUN34x)V|#n|xRyvrykm-UJqqJ!PPuQw?)-s*TYjid zWtj1Z{kZs%i`Z)2sq%PxFDDqthPZt*_JU%AH$o+{w)`qh<(=*Ro)O@4#nq{zm*g5o zE1+IY#)~e1cu+Xal~UgLPa%(>{lNztekcX+#;yi=k80iC=wGnc*l6``efd2NDCjvo zJH6k+$?s8x@wk)*tsWU3jNrPaKIw*JDTGiW8ALXf)edMiRYnX)NI!q{b|KNCXg&Va z8tR8yQy@@s#0%^}X(gh%ZPvMxB!PO%N2qqy7Mh0c-A>ZDc3z9Gp6lOn&yOaBdGUZ}8n@SqIHfv-65iHQ2k)3+rK zdoN7pl1pKmF4@z8aRwXHL~Y9pW-CI=W+JbQ4g(uhCJUKp&(Bd|Ra$)}u2oWnRiVdb zC8nzXbo$WS+K-xGI_}~B0Z#Z>!aLS~IdS%vJMP*{Xk=X|mw04t*5~JB!Wxzqmyv@08YL18b?69hSoauNqt4^Hid7?Pq|IbQE$lb&9l{r` zGKplBx_1#lxR5w2kPN2uJNqctz^RirEj_(JQ-39KOn@pqe(!}4ZV!ctfFN?$Lo@^? z#r?}Y)Gon}ZZDS&%BC6xiDQi$iGMPx`yX5t!Xn&Q3s21ZrvFn6VtD2%Uo9$L>|LWiTYz}TEH1hBu+=Z)ag_hbvP-?pe z)Y~-7KGt$3-q!U^hP`wD;axJV4it$QG(%<2dvz`-pNR9|^h6)@jaDz4*K7rjKE|zM z0X=MDyfGyulSs+oz-6YSSTfMtuFYH8HDZBh6x{3Y02vNUD5j?~k2t}ka+7}}TF818 z{EuFbY7{5VXu7j?d5z@S)&qFY=jW)q=`QZiWBsJNX+P%=`f12pNVxM@#6G(mn!J#4 zCw1Uk!du;`PEhp#NeZR;gc5eWfDUs%Z!4j&D1)^RAJ0Sa6q3ar2ss~-4}Kw>Bzl^l z!dYPjv9QtNq9PE)jccim?&nh%t}mj_hFMjPfL1XmOrDQ{QSv^%eyt{E#FWKtv0+YC zl;zsDn*qZxLFr`09U{&CT=Vg*Ra^?TJygePCFh1+l7={byI)Xafy39n*LIVLeNT_6 z{uk~=Pp7+@$@m60VY~qu^xKs^A}b{+cc@I#*$#_$oqFq6p{r;kzOfc$Qx{Ld`{k2Q z=$GGI1*%nk(u^URXlUKs*6T?-H%V}EoB}nYW{)try=C1jXkG?DEt8L{Zvcxk5xGeh zp3gV1Z+Zk5vS;I?u^t&TuK9A&9+%&u?hWaFZo|}86&#E{D+ba{j(Y@KZ&XXA5)6)_ z<~Czus6`uAUFWA@y+(o<-a>dI%ua)Qz~h(VK;O}b0cly|oaA)5(v)~aLn*e=KM5j5 zalMxXs<8+RbFpfD867j9b5V>W9Ox8CY4Dffg=Zh;D2QYlYEnnqp}J05{gBs{Oyo0k z7wm8cu#Q+1zP*rzgG$kJ75x^obf)DAJP$4eGwsM!knyN#?_+eVNk= z^Qb;x?RX)=hwa-}R)L4o1H1HXZ1)#PwH(%s1%^IT%b;_fcpyPHV3DZ2+(unZeePl$ z#L;*0e||{M`F|9CRvsVc^|^i6`)z)n@xN^QXpzVI&z*Z+xr40!7@-zaR2{zPX_ov> z_&Q0!z(Ur_0dMWo4j+j0z>Qh^ifK;JmSL#g9hJ?0txb#GF`RSMmJ7>mLqCNre=4F8 zAFVmZwDE z7tw9OPDFW*)JaSM8iF~2w3o4GSgiub0DbgJbS`JuD(M`-|G!rPPK6F2Z^jYz%ZwC)5-5y zOQyE)@Fzb67hViLp{)ZF+AH(zjZd_U8?7o!KS)Y{)ht^zDQ3ob#+yy1z7k=W8pPo?oOq1$ z6qhGS4-Mcx!OSn-o||;nEoyLwU#ghcJ~|v5l>4gt_}4bK=lCR2gdm4Dibf9O#B_=! z7FP?XE;#cKxCU3nzg!z9TDh9zDFreRxC-aPXliZfuUk|R*s(5Qz?wKZAD_%_{aN>p zd4C^lKh=>QMfs5Ak9ZMAg36(b&R7iZ5In0rKGH)srUVaty2~n_dPIMUm-1rwY?Id0 zPmMh(M{U}EC@f){k6rKx;CIR)+ORN_K9ryt-Prbf~di$y9O_`Yys&E9UUe_YMS?r76wzVItBRn2stAwjZfi?vaOu_`exy=Due% zS3{v3d|#7&T0!U#1hHH_V)e%to>+bbx##69hV~=R>&R zy-lnB#bjqjME|g{maDHI4ud(wsvDh<3jtr~y~s}>@BfQ3BvRj2;B@2_>yKVIh+bc? zWmRC8O1%b%^h`u&-*IMdoAE+pXGAKuH&9F3F%iT?U&;c%1lyD|@PhL)7Va2@IQ0$+ z2JmDG666yRUnp?vcWDzwTmYp{ksnj8Mi-vLZ>_juz3(sF($mTwuhU_sG=~QVU|o62 z>9=bTQ@5VpMSS0_0FDGALgwfl!DMWWJe-`5o}$I8#oao8HblRA$wdwd6u^eMIb-b7jXabl%w)-!${%TAr-pn)63Blrrq zkDeVyO@@i1rCMGZi^6|&Tm>5j_gn>nj5Ws3VE2ZY3CNcXgmOo-lwqah=LAUAZP zxS8#RzdvhnU=CUaYs1oDHf_f$KkZpc1;xZ+?S^^n@Eb;qYq4FSMKaf^qjMEPF(-tF z$~)|Yc$9uGv4II{>FV&YWpv>=gb!hF!WC&PotXi&>)5r^%pyip z>(9(omfTQ3yQoIr?$1p>lf{Yb%*oH3O_~oyi5Aow1)j)!NtVmY-{@S zRwp@fo9dfGkNculxz|+-eAb;MNSte*|7*wR1$*)5Gx>4%i*OtKvuc0HeT10ZMn%#r z;dFB~qg$sk`;S;HpTOW^lJyMjm~6WqDY^qrxWGWrkbSm(+|Y{8|e)!CfqoD3mSwGzR{%UbpyO9 z+l;KWUL`NExy7bY#WtEIBVMA#osn?bfZ!sf0Jtgza3-^u!=JAVmcw(};7*(V-lX?OYa81NtlaOC;qi8LG*a!t z>k}Ii)tXm>{|H~<9&KESUidXb^Dy=0?JB*n(ifU!u8LM^c~FPq4VF(|=l`NGyGNmy zn4bya`cj{DOamjWlHXvD|MfB`g*3Z2*&;rstXW1E*7H2bfIU1>%;CCY-^;|EM@{!TU zLMi*60ctGt`$dd6UeR5TvGj81L*BIa;dX)~3fRBMJ^NBZO*r=f?sQvr#SHM@;Lq@v a63OjDt_<34;nHG0A(fHmCdhVweEV redisTemplate(RedisConnectionFactory connectionFactory) { - RedisTemplate template = new RedisTemplate<>(); - template.setConnectionFactory(connectionFactory); - - // String 직렬화 설정 - template.setKeySerializer(new StringRedisSerializer()); - template.setValueSerializer(new StringRedisSerializer()); - template.setHashKeySerializer(new StringRedisSerializer()); - template.setHashValueSerializer(new StringRedisSerializer()); - - template.afterPropertiesSet(); - log.info("Redis 템플릿 설정 완료"); - return template; - } - /** * JSON 직렬화용 ObjectMapper */ diff --git a/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/config/RedisConfig.java b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/config/RedisConfig.java new file mode 100644 index 0000000..cd9dea6 --- /dev/null +++ b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/config/RedisConfig.java @@ -0,0 +1,129 @@ +package com.unicorn.hgzero.meeting.infra.config; + +import io.lettuce.core.ClientOptions; +import io.lettuce.core.ReadFrom; +import io.lettuce.core.SocketOptions; +import io.lettuce.core.TimeoutOptions; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.connection.RedisStandaloneConfiguration; +import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +import java.time.Duration; + +/** + * Redis 설정 + * Master-Replica 구조에서 읽기/쓰기 분리 지원 + * + * ReadFrom.MASTER 설정으로 모든 읽기/쓰기를 Master에서 수행 + * Replica 연결 시 자동으로 Master로 리다이렉트 시도 + */ +@Configuration +@Slf4j +public class RedisConfig { + + @Value("${spring.data.redis.host}") + private String redisHost; + + @Value("${spring.data.redis.port}") + private int redisPort; + + @Value("${spring.data.redis.password}") + private String redisPassword; + + @Value("${spring.data.redis.database:0}") + private int redisDatabase; + + /** + * Lettuce 클라이언트 설정 + * - ReadFrom.MASTER: 모든 읽기/쓰기를 Master에서 수행 + * - AutoReconnect: 연결 끊김 시 자동 재연결 + * - DisconnectedBehavior.REJECT_COMMANDS: 연결 끊김 시 명령 거부 + */ + @Bean + public LettuceClientConfiguration lettuceClientConfiguration() { + + // 소켓 옵션 설정 + SocketOptions socketOptions = SocketOptions.builder() + .connectTimeout(Duration.ofSeconds(10)) + .keepAlive(true) + .build(); + + // 타임아웃 옵션 설정 + TimeoutOptions timeoutOptions = TimeoutOptions.builder() + .fixedTimeout(Duration.ofSeconds(10)) + .build(); + + // 클라이언트 옵션 설정 + ClientOptions clientOptions = ClientOptions.builder() + .socketOptions(socketOptions) + .timeoutOptions(timeoutOptions) + .autoReconnect(true) + .disconnectedBehavior(ClientOptions.DisconnectedBehavior.REJECT_COMMANDS) + .build(); + + // Lettuce 클라이언트 설정 + // ReadFrom.MASTER: 모든 작업을 Master에서 수행 + LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder() + .clientOptions(clientOptions) + .readFrom(ReadFrom.MASTER) // 모든 읽기/쓰기를 Master에서 수행 + .commandTimeout(Duration.ofSeconds(10)) + .build(); + + log.info("Redis Lettuce Client 설정 완료 - ReadFrom: MASTER (모든 작업 Master에서 수행)"); + + return clientConfig; + } + + /** + * LettuceConnectionFactory 설정 + * Standalone 설정과 Lettuce Client 설정 결합 + */ + @Bean + public LettuceConnectionFactory redisConnectionFactory(LettuceClientConfiguration lettuceClientConfiguration) { + + // Standalone 설정 + RedisStandaloneConfiguration standaloneConfig = new RedisStandaloneConfiguration(); + standaloneConfig.setHostName(redisHost); + standaloneConfig.setPort(redisPort); + standaloneConfig.setPassword(redisPassword); + standaloneConfig.setDatabase(redisDatabase); + + // LettuceConnectionFactory 생성 + LettuceConnectionFactory factory = new LettuceConnectionFactory(standaloneConfig, lettuceClientConfiguration); + + log.info("LettuceConnectionFactory 설정 완료 - Host: {}:{}, Database: {}", + redisHost, redisPort, redisDatabase); + + return factory; + } + + /** + * RedisTemplate 설정 + * String Serializer 사용 + */ + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { + RedisTemplate template = new RedisTemplate<>(); + template.setConnectionFactory(connectionFactory); + + // String Serializer 사용 + StringRedisSerializer stringSerializer = new StringRedisSerializer(); + template.setKeySerializer(stringSerializer); + template.setValueSerializer(stringSerializer); + template.setHashKeySerializer(stringSerializer); + template.setHashValueSerializer(stringSerializer); + + template.afterPropertiesSet(); + + log.info("RedisTemplate 설정 완료"); + + return template; + } +} diff --git a/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/event/publisher/EventHubPublisher.java b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/event/publisher/EventHubPublisher.java index 477857a..8e488ad 100644 --- a/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/event/publisher/EventHubPublisher.java +++ b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/event/publisher/EventHubPublisher.java @@ -58,7 +58,7 @@ public class EventHubPublisher implements EventPublisher { @Override public void publishNotificationRequest(NotificationRequestEvent event) { - publishEvent(event, event.getRecipientId(), + publishEvent(event, event.getRecipientEmail(), EventHubConstants.TOPIC_NOTIFICATION, EventHubConstants.EVENT_TYPE_NOTIFICATION_REQUEST); } diff --git a/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/event/publisher/NoOpEventPublisher.java b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/event/publisher/NoOpEventPublisher.java index 8854d64..800e3ea 100644 --- a/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/event/publisher/NoOpEventPublisher.java +++ b/meeting/src/main/java/com/unicorn/hgzero/meeting/infra/event/publisher/NoOpEventPublisher.java @@ -40,7 +40,7 @@ public class NoOpEventPublisher implements EventPublisher { @Override public void publishNotificationRequest(NotificationRequestEvent event) { - log.debug("[NoOp] Notification request event: {}", event.getRecipientId()); + log.debug("[NoOp] Notification request event: {}", event.getRecipientEmail()); } @Override From ef8e586d9a0fe4c26dfbbb3848985379beebe081 Mon Sep 17 00:00:00 2001 From: djeon Date: Sun, 26 Oct 2025 00:15:44 +0900 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=ED=9A=8C=EC=9D=98=EC=98=88?= =?UTF-8?q?=EC=95=BD=20=EC=8B=9C=20=EC=95=8C=EB=A6=BC=20=EC=88=98=EC=8B=A0?= =?UTF-8?q?=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80=20(=EC=9D=B4?= =?UTF-8?q?=EB=A9=94=EC=9D=BC=EB=B0=9C=EC=86=A1=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=ED=95=84=EC=9A=94)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.run/notification-service.run.xml | 5 +- notification/build-output.log | 1 + notification/build.gradle | 3 + notification/logs/notification-service.log | 4144 +++++------------ .../notification-service.log.2025-10-24.0.gz | Bin 0 -> 41300 bytes .../notification-service.log.2025-10-25.0.gz | Bin 0 -> 236683 bytes .../config/BlobStorageConfig.java | 6 + .../notification/config/EventHubConfig.java | 6 + .../notification/domain/Notification.java | 2 +- .../domain/NotificationSetting.java | 2 +- .../notification/event/EventHandler.java | 54 +- .../event/event/NotificationRequestEvent.java | 176 + .../processor/EventProcessorService.java | 6 + .../notification/service/EmailNotifier.java | 173 + .../service/NotificationRouter.java | 127 + .../service/NotificationService.java | 257 +- .../src/main/resources/application.yml | 5 +- 17 files changed, 2024 insertions(+), 2943 deletions(-) create mode 100644 notification/build-output.log create mode 100644 notification/logs/notification-service.log.2025-10-24.0.gz create mode 100644 notification/logs/notification-service.log.2025-10-25.0.gz create mode 100644 notification/src/main/java/com/unicorn/hgzero/notification/event/event/NotificationRequestEvent.java create mode 100644 notification/src/main/java/com/unicorn/hgzero/notification/service/EmailNotifier.java create mode 100644 notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationRouter.java diff --git a/notification/.run/notification-service.run.xml b/notification/.run/notification-service.run.xml index 3644645..5cb97e3 100644 --- a/notification/.run/notification-service.run.xml +++ b/notification/.run/notification-service.run.xml @@ -39,13 +39,14 @@ + - + - + diff --git a/notification/build-output.log b/notification/build-output.log new file mode 100644 index 0000000..7b023e6 --- /dev/null +++ b/notification/build-output.log @@ -0,0 +1 @@ +(eval):1: no such file or directory: ./gradlew diff --git a/notification/build.gradle b/notification/build.gradle index 1855f1d..9d26e2b 100644 --- a/notification/build.gradle +++ b/notification/build.gradle @@ -26,4 +26,7 @@ dependencies { // Azure Event Hubs Checkpoint Store implementation "com.azure:azure-messaging-eventhubs-checkpointstore-blob:${azureEventHubsCheckpointVersion}" + + // H2 Database (for development) + runtimeOnly 'com.h2database:h2' } diff --git a/notification/logs/notification-service.log b/notification/logs/notification-service.log index 2130327..85d822c 100644 --- a/notification/logs/notification-service.log +++ b/notification/logs/notification-service.log @@ -1,2964 +1,1242 @@ -2025-10-24 08:47:08 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 91024 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) -2025-10-24 08:47:08 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.0, Spring v6.1.8 -2025-10-24 08:47:08 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 68 ms. Found 3 JPA repository interfaces. -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationSettingRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 08:47:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. -2025-10-24 08:47:09 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) -2025-10-24 08:47:09 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-24 08:47:09 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.24] -2025-10-24 08:47:09 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-24 08:47:09 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 907 ms -2025-10-24 08:47:09 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-24 08:47:10 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.2.Final -2025-10-24 08:47:10 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@54e94de9 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@54e94de9 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@3595086b -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@627d35ff -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@627d35ff -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@7157413e -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@3245efdb -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@3245efdb -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@3245efdb -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@2f0e7fa8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@24d7657b -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@6f428e6e -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@72e49f6a -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@72e49f6a -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@2e4b5da1 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@2e4b5da1 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@312819ae -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@4ae2c01b -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@1cab19e2 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@6879e983 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@196d684b -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@45d38165 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@1f3f434 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@1f3f434 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@26612078 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@26612078 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@54bc3bcf -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@54bc3bcf -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@d3d5094 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@d3d5094 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@13714753 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@13714753 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@3c3cd7a5 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@96be1ae -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@6eb5b9e7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@6eb5b9e7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@77e730bd -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@2d3c501b -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@7b8cb283 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@38b54694 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@38b54694 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7619fbe7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@39ead1b7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@27ec74a3 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@27ec74a3 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@35ff072c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@35ff072c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@c0004b7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@c0004b7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@c0004b7 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@63880be9 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@63880be9 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@63880be9 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@27053257 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@6a0e97fc -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@662713b6 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@662713b6 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@45539bd8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@45539bd8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@45539bd8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@4bca8eaf -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@55e5415d -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@b8142f4 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@b8142f4 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@52d59507 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@52d59507 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@52d59507 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@4d75c604 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@4d75c604 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@3265995e -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@3265995e -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@33f2eb04 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@33f2eb04 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@4df13dd0 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@4df13dd0 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@2ed7978c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@2ed7978c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@30665461 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@146833a2 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@360a3106 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@360a3106 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@543ac221 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@2270f58d -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@54737322 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@56da8847 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@7323c38c -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@2c02a007 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@63a72cc6 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@61bd0845 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@cef885d -2025-10-24 08:47:10 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-24 08:47:10 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-24 08:47:10 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@29431f61 -2025-10-24 08:47:10 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-24 08:47:10 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@4ef28dc4) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@59b3f162) -2025-10-24 08:47:10 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@7ade62a6) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@53d15034) -2025-10-24 08:47:10 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-24 08:47:10 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@3d1b43d8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@3d1b43d8 -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@360a3106` -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 08:47:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 08:47:10 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@64829470] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@1f95158a] -2025-10-24 08:47:11 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2025-10-24 08:47:11 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@64829470] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@593d0173] -2025-10-24 08:47:11 [main] DEBUG org.hibernate.SQL - +2025-10-26 00:00:40 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 19788 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) +2025-10-26 00:00:40 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-26 00:00:40 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 74 ms. Found 3 JPA repository interfaces. +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationSettingRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-26 00:00:40 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. +2025-10-26 00:00:41 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) +2025-10-26 00:00:41 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-26 00:00:41 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-26 00:00:41 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-26 00:00:41 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 969 ms +2025-10-26 00:00:41 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-26 00:00:41 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-26 00:00:41 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@27053257 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@27053257 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@27053257 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@6a0e97fc +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@6a0e97fc +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@662713b6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@662713b6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@45539bd8 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@45539bd8 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@4bca8eaf +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@4bca8eaf +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@4bca8eaf +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@55e5415d +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@55e5415d +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@55e5415d +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@b8142f4 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@b8142f4 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@52d59507 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@4d75c604 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@4d75c604 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@3265995e +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@33f2eb04 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@4df13dd0 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@4df13dd0 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@4df13dd0 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@2ed7978c +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@2ed7978c +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@2ed7978c +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@30665461 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@30665461 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@30665461 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@146833a2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@146833a2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@146833a2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@50b38342 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@50b38342 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@50b38342 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@424a152f +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@424a152f +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@408d945b +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@408d945b +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@15ad5acb +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@15ad5acb +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@15ad5acb +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@59c862af +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@4bb9f7d4 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@4bb9f7d4 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@673a9db4 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@183ef89a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@183ef89a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@183ef89a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@2792c28 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@6fa7ce4 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@351e86b2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@5a8b42a3 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@5a8b42a3 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@11582db6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@11582db6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@44106e25 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@57a5b03 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@5649f55 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@558127d2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@12270a01 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@4552f905 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@646d58cd +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@646d58cd +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@388e4c25 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@388e4c25 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@12532e37 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@12532e37 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@401b67a9 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@401b67a9 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@4e3ee457 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@4e3ee457 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@41b66d1 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@fb2c2f3 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@148fca83 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@148fca83 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@2d2a8819 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@72585e83 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@6b64bf61 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@1d5bb5c +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@1d5bb5c +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7846913f +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@48da64f2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@60b553f +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@60b553f +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@2aa811f9 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@2aa811f9 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@66abb2fa +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@66abb2fa +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@66abb2fa +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@7d4da729 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@7d4da729 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@7d4da729 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@2133b712 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@4b7e4d14 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@70f91ae3 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@70f91ae3 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@601d9f3a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@601d9f3a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@601d9f3a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@5c2a3f0c +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@6585df70 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@5d93ff21 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@5d93ff21 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@51fb5fe6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@51fb5fe6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@51fb5fe6 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@5ca4c88a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@5ca4c88a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@1791e231 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@1791e231 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@55397d15 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@55397d15 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@5e360c3b +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@5e360c3b +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@24ac6fef +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@24ac6fef +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@3cb49121 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@227b9277 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@51468039 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@51468039 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@4efe014f +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@22ff11ef +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@23d978b +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@3cf70afa +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@66dd04e2 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@495e8a3 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@6a7aa675 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@6eded11a +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@602a3237 +2025-10-26 00:00:41 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-26 00:00:41 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-26 00:00:41 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@13018f00 +2025-10-26 00:00:41 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-26 00:00:41 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@5300694d) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@7320750c) +2025-10-26 00:00:41 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@2570851e) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@67d8613) +2025-10-26 00:00:41 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-26 00:00:41 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@43a8bd35 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@43a8bd35 +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@51468039` +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-26 00:00:41 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-26 00:00:41 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2979c6ef] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@1af6974c] +2025-10-26 00:00:42 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2025-10-26 00:00:42 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2979c6ef] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@ba90170] +2025-10-26 00:00:42 [main] DEBUG org.hibernate.SQL - alter table if exists notifications alter column message set data type TEXT -2025-10-24 08:47:11 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@593d0173] for TypeConfiguration -2025-10-24 08:47:11 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 08:47:11 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-24 08:47:12 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) -2025-10-24 08:47:12 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 -2025-10-24 08:47:12 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 -2025-10-24 08:47:12 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 -2025-10-24 08:47:12 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: eventhub-checkpoints -2025-10-24 08:47:12 [main] ERROR c.a.s.b.BlobContainerClientBuilder - Invalid connection string. -2025-10-24 08:47:12 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'eventProcessorService' defined in file [/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main/com/unicorn/hgzero/notification/event/processor/EventProcessorService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'eventProcessorClient' defined in class path resource [com/unicorn/hgzero/notification/config/EventHubConfig.class]: Unsatisfied dependency expressed through method 'eventProcessorClient' parameter 0: Error creating bean with name 'blobContainerAsyncClient' defined in class path resource [com/unicorn/hgzero/notification/config/BlobStorageConfig.class]: Failed to instantiate [com.azure.storage.blob.BlobContainerAsyncClient]: Factory method 'blobContainerAsyncClient' threw exception with message: Invalid connection string. -2025-10-24 08:47:12 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 08:47:12 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@593d0173] for TypeConfiguration -2025-10-24 08:47:12 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@8862881] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@593d0173] -2025-10-24 08:47:12 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-24 08:47:12 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2025-10-24 08:47:12 [main] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] -2025-10-24 08:47:12 [main] INFO o.s.b.a.l.ConditionEvaluationReportLogger - +2025-10-26 00:00:42 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@ba90170] for TypeConfiguration +2025-10-26 00:00:42 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-26 00:00:42 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-26 00:00:42 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) +2025-10-26 00:00:42 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 +2025-10-26 00:00:42 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 +2025-10-26 00:00:42 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 +2025-10-26 00:00:42 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: hgzero-checkpoints +2025-10-26 00:00:42 [main] WARN c.a.c.h.netty.implementation.Utility - The following Netty dependencies have versions that do not match the versions specified in the azure-core-http-netty pom.xml file. This may result in unexpected behavior. If your application runs without issue this message can be ignored, otherwise please update the Netty dependencies to match the versions specified in the pom.xml file. Versions found in runtime: 'io.netty:netty-common' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-handler' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-handler-proxy' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-buffer' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-codec' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http2' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-unix-common' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-epoll' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-kqueue' version: 4.1.114.Final (expected: 4.1.101.Final) +2025-10-26 00:00:42 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 완료 +2025-10-26 00:00:42 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 중 - EventHub: hgzero-eventhub-name, ConsumerGroup: $Default +2025-10-26 00:00:42 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_861fdc_1761404442971"} +2025-10-26 00:00:42 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:00:42 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 완료 +2025-10-26 00:00:42 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 중... +2025-10-26 00:00:42 [main] INFO c.a.m.eventhubs.EventProcessorClient - {"az.sdk.message":"Starting a new event processor instance.","eventProcessorId":"c3b3a024-6a73-4b1a-b8ab-43d3cf71ac51"} +2025-10-26 00:00:42 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 완료 +2025-10-26 00:00:43 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2025-10-26 00:00:43 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - -Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. -2025-10-24 08:47:12 [main] ERROR o.s.boot.SpringApplication - Application run failed -org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'eventProcessorService' defined in file [/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main/com/unicorn/hgzero/notification/event/processor/EventProcessorService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'eventProcessorClient' defined in class path resource [com/unicorn/hgzero/notification/config/EventHubConfig.class]: Unsatisfied dependency expressed through method 'eventProcessorClient' parameter 0: Error creating bean with name 'blobContainerAsyncClient' defined in class path resource [com/unicorn/hgzero/notification/config/BlobStorageConfig.class]: Failed to instantiate [com.azure.storage.blob.BlobContainerAsyncClient]: Factory method 'blobContainerAsyncClient' threw exception with message: Invalid connection string. - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:795) - at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1357) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1194) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) - at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:962) - at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) - at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) - at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) - at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) - at com.unicorn.hgzero.notification.NotificationApplication.main(NotificationApplication.java:20) -Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'eventProcessorClient' defined in class path resource [com/unicorn/hgzero/notification/config/EventHubConfig.class]: Unsatisfied dependency expressed through method 'eventProcessorClient' parameter 0: Error creating bean with name 'blobContainerAsyncClient' defined in class path resource [com/unicorn/hgzero/notification/config/BlobStorageConfig.class]: Failed to instantiate [com.azure.storage.blob.BlobContainerAsyncClient]: Factory method 'blobContainerAsyncClient' threw exception with message: Invalid connection string. - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:795) - at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:542) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1337) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1167) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) - at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) - at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) - ... 19 common frames omitted -Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blobContainerAsyncClient' defined in class path resource [com/unicorn/hgzero/notification/config/BlobStorageConfig.class]: Failed to instantiate [com.azure.storage.blob.BlobContainerAsyncClient]: Factory method 'blobContainerAsyncClient' threw exception with message: Invalid connection string. - at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:648) - at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:485) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1337) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1167) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) - at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) - at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) - ... 33 common frames omitted -Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.azure.storage.blob.BlobContainerAsyncClient]: Factory method 'blobContainerAsyncClient' threw exception with message: Invalid connection string. - at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:177) - at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) - ... 47 common frames omitted -Caused by: java.lang.IllegalArgumentException: Invalid connection string. - at com.azure.storage.common.implementation.connectionstring.StorageConnectionString.create(StorageConnectionString.java:115) - at com.azure.storage.blob.BlobContainerClientBuilder.connectionString(BlobContainerClientBuilder.java:349) - at com.unicorn.hgzero.notification.config.BlobStorageConfig.blobContainerAsyncClient(BlobStorageConfig.java:40) - at com.unicorn.hgzero.notification.config.BlobStorageConfig$$SpringCGLIB$$0.CGLIB$blobContainerAsyncClient$0() - at com.unicorn.hgzero.notification.config.BlobStorageConfig$$SpringCGLIB$$FastClass$$1.invoke() - at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258) - at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:339) - at com.unicorn.hgzero.notification.config.BlobStorageConfig$$SpringCGLIB$$0.blobContainerAsyncClient() +Using generated security password: d4235947-1707-449d-9f61-9f6742fa5b41 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-26 00:00:43 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-26 00:00:43 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library +2025-10-26 00:00:43 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-26 00:00:43 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 중... +2025-10-26 00:00:43 [main] INFO c.u.h.n.config.SecurityConfig - CORS 설정 완료 +2025-10-26 00:00:43 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 완료 +2025-10-26 00:00:43 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter +2025-10-26 00:00:43 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 중... +2025-10-26 00:00:43 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 완료 +2025-10-26 00:00:43 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8085 (http) with context path '/' +2025-10-26 00:00:43 [main] INFO c.u.h.n.NotificationApplication - Started NotificationApplication in 3.661 seconds (process running for 3.859) +2025-10-26 00:00:44 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"c3b3a024-6a73-4b1a-b8ab-43d3cf71ac51"} +2025-10-26 00:00:44 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:00:44 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_861fdc_1761404442971","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-26 00:00:44 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_861fdc_1761404442971"} +2025-10-26 00:00:44 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_861fdc_1761404442971","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:00:44 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_861fdc_1761404442971"} +2025-10-26 00:00:44 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_861fdc_1761404442971","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:00:44 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_861fdc_1761404442971","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-26 00:00:44 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_861fdc_1761404442971","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"f25c3c181e594ee6874ce5fa6b38c8e6_G25"} +2025-10-26 00:00:44 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_861fdc_1761404442971","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_861fdc_1761404442971","entityPath":"$management","linkName":"mgmt"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_861fdc_1761404442971","entityPath":"$management"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_861fdc_1761404442971","entityPath":"$management","subscriberId":"un_57b0cb_1761404444992"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_861fdc_1761404442971","entityPath":"$management","subscriberId":"un_19eca8_1761404444993"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_861fdc_1761404442971","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_861fdc_1761404442971","entityPath":"$management"} +2025-10-26 00:00:45 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_861fdc_1761404442971","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 0 +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Attempting to claim ownership of partition.","partitionId":"0"} +2025-10-26 00:00:45 [reactor-http-nio-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Successfully claimed ownership.","partitionId":"0"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 1 +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active event processors 1 +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Expected min partitions per event processor = 1, expected number of event processors with additional partition = 0 +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Load is balanced with this event processor owning 1 partitions +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Load balancing completed successfully +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.i.PartitionProcessor - {"az.sdk.message":"Initializing partition processor for partition","partitionId":"0"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.eventhubs.PartitionPumpManager - {"az.sdk.message":"Starting event processing.","partitionId":"0","eventPosition":"offset[17179876440], sequenceNumber[null], enqueuedTime[null], isInclusive[false]"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_35eb50_1761404445118"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Setting new subscription for receive link processor","subscriberId":"rlp_444f99_1761404445121"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Requesting a new AmqpReceiveLink from upstream.","subscriberId":"rlp_444f99_1761404445121"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.m.e.EventHubConsumerAsyncClient - {"az.sdk.message":"Creating receive consumer for partition.","linkName":"0_a24119_1761404445120","partitionId":"0","connectionId":"MF_35eb50_1761404445118"} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-26 00:00:45 [boundedElastic-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_35eb50_1761404445118"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_35eb50_1761404445118"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"daf94f96845d4a4c8f204bc24deb4033_G28"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_35eb50_1761404445118","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_35eb50_1761404445118"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_35eb50_1761404445118","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs","linkName":"cbs"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs","subscriberId":"rlp_444f99_1761404445121"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_35eb50_1761404445118","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new receiver link.","connectionId":"MF_35eb50_1761404445118","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0","linkName":"0_a24119_1761404445120"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Setting next AMQP receive link.","subscriberId":"rlp_444f99_1761404445121","oldLinkName":null,"linkName":"0_a24119_1761404445120","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Link is active.","subscriberId":"rlp_444f99_1761404445121","linkName":"0_a24119_1761404445120","credits":0} +2025-10-26 00:00:45 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_35eb50_1761404445118","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0","linkName":"0_a24119_1761404445120","remoteSource":"Source{address='hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter={apache.org:selector-filter:string=org.apache.qpid.proton.codec.DecoderImpl$UnknownDescribedType@4562b994}, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.event.EventHandler - 이벤트 수신 - Topic: notification, EventType: NOTIFICATION_REQUEST +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.event.EventHandler - 알림 발송 시작 - Type: MEETING_INVITATION, EventId: null +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - EventId가 없어 생성함 - EventId: c360411a-51b2-4109-8c21-30160b97b54b +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - 알림 발송 처리 시작 - EventId: c360411a-51b2-4109-8c21-30160b97b54b, Type: MEETING_INVITATION +2025-10-26 00:00:45 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* */ select + n1_0.notification_id + from + notifications n1_0 + where + n1_0.event_id=? + fetch + first ? rows only +2025-10-26 00:00:45 [partition-pump-0-3] WARN c.u.h.n.service.NotificationService - 알 수 없는 채널: null - EMAIL로 기본 설정 +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - 단일 수신자 처리 - Email: minjun.kim@example.com +2025-10-26 00:00:45 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* */ select + ns1_0.user_id, + ns1_0.created_at, + ns1_0.dnd_enabled, + ns1_0.dnd_end_time, + ns1_0.dnd_start_time, + ns1_0.email_enabled, + ns1_0.invitation_enabled, + ns1_0.meeting_reminder_enabled, + ns1_0.minutes_updated_enabled, + ns1_0.push_enabled, + ns1_0.sms_enabled, + ns1_0.todo_assigned_enabled, + ns1_0.todo_completed_enabled, + ns1_0.todo_reminder_enabled, + ns1_0.updated_at + from + notification_settings ns1_0 + where + ns1_0.user_id=? +2025-10-26 00:00:45 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* */ select + ns1_0.user_id, + ns1_0.created_at, + ns1_0.dnd_enabled, + ns1_0.dnd_end_time, + ns1_0.dnd_start_time, + ns1_0.email_enabled, + ns1_0.invitation_enabled, + ns1_0.meeting_reminder_enabled, + ns1_0.minutes_updated_enabled, + ns1_0.push_enabled, + ns1_0.sms_enabled, + ns1_0.todo_assigned_enabled, + ns1_0.todo_completed_enabled, + ns1_0.todo_reminder_enabled, + ns1_0.updated_at + from + notification_settings ns1_0 + where + ns1_0.user_id=? +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.NotificationRouter - 알림 라우팅 시작 - Email: minjun.kim@example.com, Channel: EMAIL +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.NotificationRouter - 사용자 설정 없음 - 요청 채널 사용: EMAIL +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.NotificationRouter - 선택된 채널: EMAIL +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.EmailNotifier - 이메일 발송 시도 #1 - Email: minjun.kim@example.com +2025-10-26 00:00:45 [partition-pump-0-3] INFO c.u.h.n.service.EmailClient - 이메일 발송 시작 - To: minjun.kim@example.com, Subject: 회의 초대 +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 종료 중... +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO c.a.m.e.EventHubConsumerAsyncClient - {"az.sdk.message":"Receiving completed.","linkName":"0_a24119_1761404445120","partitionId":"0","signalType":"onComplete"} +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO c.a.m.e.EventHubPartitionAsyncConsumer - {"az.sdk.message":"Closed consumer.","partitionId":"0"} +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_35eb50_1761404445118","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.u.h.n.service.EmailNotifier - 이메일 발송 최종 실패 - Email: minjun.kim@example.com +org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.service.EmailNotifier.sendEmail(EmailNotifier.java:40) + at com.unicorn.hgzero.notification.service.NotificationRouter.routeNotification(NotificationRouter.java:59) + at com.unicorn.hgzero.notification.service.NotificationService.processNotification(NotificationService.java:383) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:140) - ... 48 common frames omitted -2025-10-24 09:17:35 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 92451 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) -2025-10-24 09:17:35 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.0, Spring v6.1.8 -2025-10-24 09:17:35 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 73 ms. Found 3 JPA repository interfaces. -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationSettingRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 09:17:36 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. -2025-10-24 09:17:36 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) -2025-10-24 09:17:36 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-24 09:17:36 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.24] -2025-10-24 09:17:36 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-24 09:17:36 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 990 ms -2025-10-24 09:17:37 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-24 09:17:37 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.2.Final -2025-10-24 09:17:37 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@46e6458d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@46e6458d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@46e6458d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@6297cb4b -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@6297cb4b -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@65d6640 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@65d6640 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@672d8370 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@672d8370 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@13137835 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@13137835 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@13137835 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@22002459 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@22002459 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@29bd056a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@21e702b8 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@21e702b8 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@7f1fec57 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@5c9e3d01 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@2ac9e53c -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@4ac7856f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@432f4626 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@432f4626 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@4c79ca55 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@3a63d248 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@3c4ad54 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@6dde1bf5 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@335cdd2 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@335cdd2 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@60a99f3d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@60a99f3d -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@7a274521 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@35841d6 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@5e9ea380 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@1e50eb3f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@12e3f4ae -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@12e3f4ae -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@537451d5 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@785d6a98 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@614d7fbf -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@614d7fbf -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@54e94de9 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@57a5b03 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@57a5b03 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@fb2c2f3 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@148fca83 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@72585e83 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@6b64bf61 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@1d5bb5c -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@7846913f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@48da64f2 -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@60b553f -2025-10-24 09:17:37 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@2aa811f9 -2025-10-24 09:17:37 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-24 09:17:37 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-24 09:17:37 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@464d60fb -2025-10-24 09:17:37 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-24 09:17:38 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@1ba3c03d) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@9a37591) -2025-10-24 09:17:38 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@749c0669) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@4468c0ea) -2025-10-24 09:17:38 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-24 09:17:38 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@6369d01c -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@6369d01c -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@57a5b03` -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:17:38 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:17:38 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5819ee0f] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@f310675] -2025-10-24 09:17:38 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2025-10-24 09:17:38 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5819ee0f] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@354ff4f6] -2025-10-24 09:17:38 [main] DEBUG org.hibernate.SQL - + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.notification.service.NotificationService$$SpringCGLIB$$0.processNotification() + at com.unicorn.hgzero.notification.event.EventHandler.lambda$processNotificationRequestEvent$2(EventHandler.java:223) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:357) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 38 common frames omitted +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.u.h.n.service.NotificationRouter - 알림 발송 실패 - Email: minjun.kim@example.com, Channel: EMAIL +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.u.h.n.service.NotificationService - 알림 발송 실패 - Email: minjun.kim@example.com +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_35eb50_1761404445118","linkName":"0_a24119_1761404445120","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:01:00 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - 알림 발송 처리 완료 - 성공: 0, 실패: 1 +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Terminal state reached. Disposing of link processor.","subscriberId":"rlp_444f99_1761404445121","linkName":"0_a24119_1761404445120","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Disposing receive link.","subscriberId":"rlp_444f99_1761404445121","linkName":"0_a24119_1761404445120"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_35eb50_1761404445118","linkName":"0_a24119_1761404445120","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_35eb50_1761404445118","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-26 00:01:00 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.notification.domain.Notification */insert + into + notifications (channel, created_at, event_id, failed_count, message, notification_type, reference_id, reference_type, sent_at, sent_count, status, title, notification_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_35eb50_1761404445118","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs","linkName":"cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_35eb50_1761404445118","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_35eb50_1761404445118","sessionName":"cbs-session"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_35eb50_1761404445118"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Sender link was never active. Closing endpoint states.","connectionId":"MF_35eb50_1761404445118","linkName":"cbs","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"Receiver link was never active. Closing endpoint states","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs","linkName":"cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is disposed.","connectionId":"MF_35eb50_1761404445118","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.GlobalIOHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_35eb50_1761404445118","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_35eb50_1761404445118","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_35eb50_1761404445118","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_35eb50_1761404445118","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_35eb50_1761404445118","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_35eb50_1761404445118","sessionName":"cbs-session"} +2025-10-26 00:01:00 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_35eb50_1761404445118","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:01:00 [partition-pump-0-3] WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: 23514 +2025-10-26 00:01:00 [partition-pump-0-3] ERROR o.h.e.jdbc.spi.SqlExceptionHelper - ERROR: new row for relation "notifications" violates check constraint "notifications_notification_type_check" + Detail: Failing row contains (b8bdfb88-014c-4937-84c8-7dcf33c3e2bf, EMAIL, 2025-10-26 00:00:45.27459, c360411a-51b2-4109-8c21-30160b97b54b, 0, 'test 회의' 회의에 초대되었습니다. 일시: 2025-10-2..., MEETING_INVITATION, 33b6b044-d938-4085-a86d-a315a6f819d4, MEETING, null, 0, PROCESSING, 회의 초대). +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 종료 완료 +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-26 00:01:00 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@ba90170] for TypeConfiguration +2025-10-26 00:01:00 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@150239e8] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@ba90170] +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-10-26 00:01:00 [partition-pump-0-3] WARN c.zaxxer.hikari.pool.ProxyConnection - HikariPool-1 - Connection org.postgresql.jdbc.PgConnection@13018f00 marked as broken because of SQLSTATE(08006), ErrorCode(0) +org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend. + at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:399) + at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:330) + at org.postgresql.jdbc.PgConnection.executeTransactionCommand(PgConnection.java:981) + at org.postgresql.jdbc.PgConnection.rollback(PgConnection.java:1024) + at com.zaxxer.hikari.pool.ProxyConnection.rollback(ProxyConnection.java:386) + at com.zaxxer.hikari.pool.HikariProxyConnection.rollback(HikariProxyConnection.java) + at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.rollback(AbstractLogicalConnectionImplementor.java:127) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.rollback(JdbcResourceLocalTransactionCoordinatorImpl.java:289) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:276) + at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:101) + at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:562) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:795) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:758) + at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:663) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:413) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.notification.service.NotificationService$$SpringCGLIB$$0.processNotification() + at com.unicorn.hgzero.notification.event.EventHandler.lambda$processNotificationRequestEvent$2(EventHandler.java:223) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:357) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +Caused by: java.net.SocketException: Socket closed + at java.base/sun.nio.ch.NioSocketImpl.endRead(NioSocketImpl.java:243) + at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:323) + at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:346) + at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:796) + at java.base/java.net.Socket$SocketInputStream.read(Socket.java:1099) + at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:192) + at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:159) + at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:144) + at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:76) + at org.postgresql.core.PGStream.receiveChar(PGStream.java:476) + at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2174) + at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372) + ... 40 common frames omitted +2025-10-26 00:01:00 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.u.h.n.event.EventHandler - 알림 이벤트 처리 중 오류 발생 - EventType: NOTIFICATION_REQUEST +org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 20 common frames omitted +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.u.h.n.event.EventHandler - 이벤트 처리 중 오류 발생 +java.lang.RuntimeException: 알림 이벤트 처리 실패 + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:209) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +Caused by: org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + ... 16 common frames omitted +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 20 common frames omitted +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.a.m.eventhubs.PartitionPumpManager - Error in event processing callback +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.a.m.eventhubs.PartitionPumpManager - Error in event processing callback +2025-10-26 00:01:00 [partition-pump-0-3] INFO c.a.m.e.i.PartitionProcessor - {"az.sdk.message":"Closing partition processor with close reason LOST_PARTITION_OWNERSHIP","partitionId":"0"} +2025-10-26 00:01:00 [partition-pump-0-3] INFO c.a.m.eventhubs.PartitionPumpManager - {"az.sdk.message":"Closing consumer.","partitionId":"0"} +2025-10-26 00:01:00 [partition-pump-0-3] ERROR c.a.m.eventhubs.PartitionPumpManager - Error in event processing callback +2025-10-26 00:01:00 [partition-pump-0-3] ERROR reactor.core.scheduler.Schedulers - Scheduler worker in group main failed with an uncaught exception +com.azure.messaging.eventhubs.implementation.PartitionProcessorException: Error in event processing callback + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:333) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +Caused by: com.azure.messaging.eventhubs.implementation.PartitionProcessorException: Error in event processing callback + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:268) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + ... 11 common frames omitted +Caused by: java.lang.RuntimeException: 이벤트 처리 실패 + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:81) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + ... 12 common frames omitted +Caused by: java.lang.RuntimeException: 알림 이벤트 처리 실패 + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:209) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + ... 15 common frames omitted +Caused by: org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + ... 16 common frames omitted +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 20 common frames omitted +2025-10-26 00:12:08 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 23930 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) +2025-10-26 00:12:08 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.5, Spring v6.1.14 +2025-10-26 00:12:08 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 70 ms. Found 3 JPA repository interfaces. +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationSettingRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository +2025-10-26 00:12:09 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. +2025-10-26 00:12:09 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) +2025-10-26 00:12:09 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-26 00:12:09 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.31] +2025-10-26 00:12:09 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-26 00:12:09 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 977 ms +2025-10-26 00:12:09 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-26 00:12:09 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.3.Final +2025-10-26 00:12:09 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@2d7aa291 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@2d7aa291 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@2d7aa291 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@1ba7db2a +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@1ba7db2a +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@762cdf46 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@762cdf46 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@54e94de9 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@54e94de9 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@2cff03cf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@2cff03cf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@2cff03cf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@924f3f1 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@924f3f1 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@924f3f1 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@19e2db7c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@19e2db7c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@77a4bac +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@534fc1f7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@534fc1f7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@7d5a0b14 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@72ec16f8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@279e1422 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@279e1422 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@279e1422 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@af3295f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@af3295f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@af3295f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@27dc81be +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@27dc81be +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@27dc81be +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@3595086b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@3595086b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@3595086b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@627d35ff +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@627d35ff +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@627d35ff +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@7157413e +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@7157413e +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@3245efdb +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@3245efdb +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@2f0e7fa8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@2f0e7fa8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@2f0e7fa8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@24d7657b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@6f428e6e +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@6f428e6e +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@72e49f6a +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@2e4b5da1 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@2e4b5da1 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@2e4b5da1 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@312819ae +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@4ae2c01b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@1cab19e2 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@6879e983 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@6879e983 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@196d684b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@196d684b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@45d38165 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@1f3f434 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@26612078 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@54bc3bcf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@d3d5094 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@13714753 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@3c3cd7a5 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@3c3cd7a5 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@96be1ae +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@96be1ae +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@6eb5b9e7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@6eb5b9e7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@77e730bd +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@77e730bd +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@2d3c501b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@2d3c501b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7b8cb283 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@38b54694 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@7619fbe7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@7619fbe7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@39ead1b7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@27ec74a3 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@35ff072c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@c0004b7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@c0004b7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@63880be9 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@27053257 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@6a0e97fc +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@6a0e97fc +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@662713b6 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@662713b6 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@45539bd8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@45539bd8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@45539bd8 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@4bca8eaf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@4bca8eaf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@4bca8eaf +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@55e5415d +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@b8142f4 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@52d59507 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@52d59507 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@4d75c604 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@4d75c604 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@4d75c604 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@3265995e +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@33f2eb04 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@4df13dd0 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@4df13dd0 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@2ed7978c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@2ed7978c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@2ed7978c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@30665461 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@30665461 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@146833a2 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@146833a2 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@50b38342 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@50b38342 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@424a152f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@424a152f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@408d945b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@408d945b +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@15ad5acb +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@59c862af +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@79777da7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@79777da7 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@7323c38c +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@2c02a007 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@61bd0845 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@cef885d +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@35d4035f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@6f4fc83f +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@66b90ab3 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@16e4db59 +2025-10-26 00:12:09 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@33fec21 +2025-10-26 00:12:10 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer +2025-10-26 00:12:10 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... +2025-10-26 00:12:10 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@6b6c0b7c +2025-10-26 00:12:10 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. +2025-10-26 00:12:10 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@53da2aec) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@18a38bba) +2025-10-26 00:12:10 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@58ca6ba3) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@74797b90) +2025-10-26 00:12:10 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) +2025-10-26 00:12:10 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@4714f447 +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@4714f447 +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@79777da7` +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-26 00:12:10 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) +2025-10-26 00:12:10 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@7d75940] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@3e5cbcfe] +2025-10-26 00:12:10 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2025-10-26 00:12:10 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@7d75940] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@359f3401] +2025-10-26 00:12:10 [main] DEBUG org.hibernate.SQL - alter table if exists notifications alter column message set data type TEXT -2025-10-24 09:17:39 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@354ff4f6] for TypeConfiguration -2025-10-24 09:17:39 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:17:39 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-24 09:17:39 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) -2025-10-24 09:17:39 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 -2025-10-24 09:17:39 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 -2025-10-24 09:17:39 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 -2025-10-24 09:17:39 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: eventhub-checkpoints -2025-10-24 09:17:39 [main] WARN c.a.c.h.netty.implementation.Utility - The following Netty dependencies have versions that do not match the versions specified in the azure-core-http-netty pom.xml file. This may result in unexpected behavior. If your application runs without issue this message can be ignored, otherwise please update the Netty dependencies to match the versions specified in the pom.xml file. Versions found in runtime: 'io.netty:netty-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler-proxy' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-buffer' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http2' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-unix-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-epoll' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-kqueue' version: 4.1.110.Final (expected: 4.1.101.Final) -2025-10-24 09:17:39 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 완료 -2025-10-24 09:17:39 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'eventProcessorService' defined in file [/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main/com/unicorn/hgzero/notification/event/processor/EventProcessorService.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'eventProcessorClient' defined in class path resource [com/unicorn/hgzero/notification/config/EventHubConfig.class]: Unsatisfied dependency expressed through method 'eventProcessorClient' parameter 1: No qualifying bean of type 'java.util.function.Consumer' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} -2025-10-24 09:17:39 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:17:39 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@354ff4f6] for TypeConfiguration -2025-10-24 09:17:39 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@554b571b] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@354ff4f6] -2025-10-24 09:17:39 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-24 09:17:39 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2025-10-24 09:17:39 [main] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] -2025-10-24 09:17:39 [main] INFO o.s.b.a.l.ConditionEvaluationReportLogger - +2025-10-26 00:12:10 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@359f3401] for TypeConfiguration +2025-10-26 00:12:10 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-26 00:12:10 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. +2025-10-26 00:12:11 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: hgzero-checkpoints +2025-10-26 00:12:11 [main] WARN c.a.c.h.netty.implementation.Utility - The following Netty dependencies have versions that do not match the versions specified in the azure-core-http-netty pom.xml file. This may result in unexpected behavior. If your application runs without issue this message can be ignored, otherwise please update the Netty dependencies to match the versions specified in the pom.xml file. Versions found in runtime: 'io.netty:netty-common' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-handler' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-handler-proxy' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-buffer' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-codec' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http2' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-unix-common' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-epoll' version: 4.1.114.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-kqueue' version: 4.1.114.Final (expected: 4.1.101.Final) +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 완료 +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 중 - EventHub: hgzero-eventhub-name, ConsumerGroup: $Default +2025-10-26 00:12:11 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_985db0_1761405131507"} +2025-10-26 00:12:11 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 완료 +2025-10-26 00:12:11 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 중... +2025-10-26 00:12:11 [main] INFO c.a.m.eventhubs.EventProcessorClient - {"az.sdk.message":"Starting a new event processor instance.","eventProcessorId":"d336faa3-d54a-4c99-b381-a7d829c39c68"} +2025-10-26 00:12:11 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 완료 +2025-10-26 00:12:11 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2025-10-26 00:12:11 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - -Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. -2025-10-24 09:17:39 [main] ERROR o.s.b.d.LoggingFailureAnalysisReporter - - -*************************** -APPLICATION FAILED TO START -*************************** - -Description: - -Parameter 1 of method eventProcessorClient in com.unicorn.hgzero.notification.config.EventHubConfig required a bean of type 'java.util.function.Consumer' that could not be found. - - -Action: - -Consider defining a bean of type 'java.util.function.Consumer' in your configuration. - -2025-10-24 09:31:47 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 93156 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) -2025-10-24 09:31:47 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.0, Spring v6.1.8 -2025-10-24 09:31:47 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 65 ms. Found 3 JPA repository interfaces. -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationSettingRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 09:31:47 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. -2025-10-24 09:31:48 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) -2025-10-24 09:31:48 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-24 09:31:48 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.24] -2025-10-24 09:31:48 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-24 09:31:48 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 944 ms -2025-10-24 09:31:48 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-24 09:31:48 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.2.Final -2025-10-24 09:31:48 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@46e6458d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@46e6458d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@46e6458d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@6297cb4b -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@6297cb4b -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@65d6640 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@65d6640 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@672d8370 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@672d8370 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@13137835 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@13137835 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@13137835 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@22002459 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@22002459 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@29bd056a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@21e702b8 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@21e702b8 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@7f1fec57 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@5c9e3d01 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@2ac9e53c -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@4ac7856f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@432f4626 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@432f4626 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@4c79ca55 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@3a63d248 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@3c4ad54 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@6dde1bf5 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@335cdd2 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@335cdd2 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@60a99f3d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@60a99f3d -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@7a274521 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@35841d6 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@5e9ea380 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@1e50eb3f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@12e3f4ae -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@12e3f4ae -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@537451d5 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@785d6a98 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@614d7fbf -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@614d7fbf -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@54e94de9 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@57a5b03 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@57a5b03 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@fb2c2f3 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@148fca83 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@72585e83 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@6b64bf61 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@1d5bb5c -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@7846913f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@48da64f2 -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@60b553f -2025-10-24 09:31:48 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@2aa811f9 -2025-10-24 09:31:48 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-24 09:31:48 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-24 09:31:48 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@464d60fb -2025-10-24 09:31:48 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-24 09:31:49 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@1ba3c03d) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@9a37591) -2025-10-24 09:31:49 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@749c0669) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@4468c0ea) -2025-10-24 09:31:49 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-24 09:31:49 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@6369d01c -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@6369d01c -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@57a5b03` -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:31:49 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:31:49 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5819ee0f] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@f310675] -2025-10-24 09:31:49 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2025-10-24 09:31:49 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5819ee0f] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@354ff4f6] -2025-10-24 09:31:49 [main] DEBUG org.hibernate.SQL - - alter table if exists notifications - alter column message set data type TEXT -2025-10-24 09:31:50 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@354ff4f6] for TypeConfiguration -2025-10-24 09:31:50 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:31:50 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-24 09:31:50 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) -2025-10-24 09:31:50 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 -2025-10-24 09:31:50 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 -2025-10-24 09:31:50 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 -2025-10-24 09:31:50 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: eventhub-checkpoints -2025-10-24 09:31:50 [main] WARN c.a.c.h.netty.implementation.Utility - The following Netty dependencies have versions that do not match the versions specified in the azure-core-http-netty pom.xml file. This may result in unexpected behavior. If your application runs without issue this message can be ignored, otherwise please update the Netty dependencies to match the versions specified in the pom.xml file. Versions found in runtime: 'io.netty:netty-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler-proxy' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-buffer' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http2' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-unix-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-epoll' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-kqueue' version: 4.1.110.Final (expected: 4.1.101.Final) -2025-10-24 09:31:50 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 완료 -2025-10-24 09:31:50 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 중 - EventHub: notification-events, ConsumerGroup: $Default -2025-10-24 09:31:50 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_3077b5_1761265910856"} -2025-10-24 09:31:50 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:31:50 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 완료 -2025-10-24 09:31:50 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 중... -2025-10-24 09:31:50 [main] INFO c.a.m.eventhubs.EventProcessorClient - {"az.sdk.message":"Starting a new event processor instance.","eventProcessorId":"82b01c9c-28c5-4e59-be88-db56f014ccfb"} -2025-10-24 09:31:50 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 완료 -2025-10-24 09:31:50 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2025-10-24 09:31:50 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - - -Using generated security password: 48dec296-acd1-46b9-ab82-a6ec53f21bdf +Using generated security password: cbb5fb0d-9314-4128-b9d9-b5be1e389425 This generated password is for development use only. Your security configuration must be updated before running your application in production. -2025-10-24 09:31:50 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2025-10-24 09:31:51 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library -2025-10-24 09:31:51 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2025-10-24 09:31:51 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 중... -2025-10-24 09:31:51 [main] INFO c.u.h.n.config.SecurityConfig - CORS 설정 완료 -2025-10-24 09:31:51 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 완료 -2025-10-24 09:31:51 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@55bcd722, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@6045d2c, org.springframework.security.web.context.SecurityContextHolderFilter@53e2e561, org.springframework.security.web.header.HeaderWriterFilter@7ce15695, org.springframework.web.filter.CorsFilter@5618b26b, org.springframework.security.web.authentication.logout.LogoutFilter@26d47eba, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@2349aa88, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@39783d83, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@21ff56e7, org.springframework.security.web.session.SessionManagementFilter@201a976f, org.springframework.security.web.access.ExceptionTranslationFilter@62c9625e, org.springframework.security.web.access.intercept.AuthorizationFilter@2ea0e29d] -2025-10-24 09:31:51 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 중... -2025-10-24 09:31:51 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 완료 -2025-10-24 09:31:51 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8085 (http) with context path '/' -2025-10-24 09:31:51 [main] INFO c.u.h.n.NotificationApplication - Started NotificationApplication in 4.496 seconds (process running for 4.646) -2025-10-24 09:31:52 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"82b01c9c-28c5-4e59-be88-db56f014ccfb"} -2025-10-24 09:31:52 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:31:52 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_3077b5_1761265910856","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-24 09:31:52 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_3077b5_1761265910856"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_3077b5_1761265910856","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_3077b5_1761265910856"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_3077b5_1761265910856","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_3077b5_1761265910856","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_3077b5_1761265910856","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"4ca36a23cfb749bead98170f9c38c926_G1"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"notification-events"} -2025-10-24 09:31:52 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:80361444-f01e-003a-767d-44cc37000000 -Time:2025-10-24T00:31:52.8318364Z" -2025-10-24 09:31:52 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:80361444-f01e-003a-767d-44cc37000000 -Time:2025-10-24T00:31:52.8318364Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_3077b5_1761265910856","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_3077b5_1761265910856","entityPath":"$management","linkName":"mgmt"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_3077b5_1761265910856","entityPath":"$management"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_3077b5_1761265910856","entityPath":"$management","subscriberId":"un_a79b06_1761265912675"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_3077b5_1761265910856","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_3077b5_1761265910856","entityPath":"$management"} -2025-10-24 09:31:52 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_3077b5_1761265910856","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-24 09:32:08 [SpringApplicationShutdownHook] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 종료 중... -2025-10-24 09:32:08 [SpringApplicationShutdownHook] ERROR c.u.h.n.e.p.EventProcessorService - Event Processor 종료 중 오류 발생 -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:80366a40-f01e-003a-077d-44cc37000000 -Time:2025-10-24T00:32:08.2688888Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) - Suppressed: java.lang.Exception: #block terminated with an error - at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:146) - at reactor.core.publisher.Flux.blockLast(Flux.java:2845) - at com.azure.messaging.eventhubs.EventProcessorClient.stopProcessing(EventProcessorClient.java:286) - at com.azure.messaging.eventhubs.EventProcessorClient.stop(EventProcessorClient.java:265) - at com.unicorn.hgzero.notification.event.processor.EventProcessorService.stop(EventProcessorService.java:59) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMethod.invoke(InitDestroyAnnotationBeanPostProcessor.java:457) - at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:415) - at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:239) - at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:202) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1202) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1195) - at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1186) - at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1147) - at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) - at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1093) - at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) - at java.base/java.lang.Iterable.forEach(Iterable.java:75) - at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) - ... 1 common frames omitted -2025-10-24 09:32:08 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:32:08 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@354ff4f6] for TypeConfiguration -2025-10-24 09:32:08 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@5674e314] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@354ff4f6] -2025-10-24 09:32:08 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-24 09:32:08 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2025-10-24 09:32:22 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 93172 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) -2025-10-24 09:32:22 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.0, Spring v6.1.8 -2025-10-24 09:32:22 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 74 ms. Found 3 JPA repository interfaces. -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationSettingRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 09:32:23 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 4 ms. Found 0 Redis repository interfaces. -2025-10-24 09:32:23 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) -2025-10-24 09:32:23 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-24 09:32:23 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.24] -2025-10-24 09:32:23 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-24 09:32:23 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 929 ms -2025-10-24 09:32:23 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-24 09:32:23 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.2.Final -2025-10-24 09:32:23 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@2ac9e53c -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@4ac7856f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@4ac7856f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@432f4626 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@4c79ca55 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@4c79ca55 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@4c79ca55 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@3a63d248 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@3a63d248 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@3a63d248 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@3c4ad54 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@3c4ad54 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@3c4ad54 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@6dde1bf5 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@6dde1bf5 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@335cdd2 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@60a99f3d -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@7a274521 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@35841d6 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@5e9ea380 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@5e9ea380 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@1e50eb3f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@1e50eb3f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@12e3f4ae -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@537451d5 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@785d6a98 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@614d7fbf -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@54e94de9 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@3595086b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@3595086b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@3595086b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@627d35ff -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@7157413e -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@3245efdb -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@3245efdb -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@2f0e7fa8 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@2f0e7fa8 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@2f0e7fa8 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@24d7657b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@6f428e6e -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@72e49f6a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@72e49f6a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@2e4b5da1 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@2e4b5da1 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@2e4b5da1 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@312819ae -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@312819ae -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@4ae2c01b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@4ae2c01b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@1cab19e2 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@1cab19e2 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@6879e983 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@6879e983 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@196d684b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@196d684b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@45d38165 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@1f3f434 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@7846913f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@7846913f -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@6585df70 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@5d93ff21 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@5ca4c88a -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@1791e231 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@55397d15 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@5e360c3b -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@24ac6fef -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@3cb49121 -2025-10-24 09:32:23 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@227b9277 -2025-10-24 09:32:23 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-24 09:32:23 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-24 09:32:24 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@53b907d9 -2025-10-24 09:32:24 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-24 09:32:25 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@1368e2f7) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@4d84688f) -2025-10-24 09:32:25 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@3ee68eb2) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@7348e75e) -2025-10-24 09:32:25 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-24 09:32:25 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@7a85dc58 -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@7a85dc58 -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@7846913f` -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:32:25 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:32:25 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6a013bdd] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@5e0bba2f] -2025-10-24 09:32:25 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2025-10-24 09:32:25 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6a013bdd] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@d0456ad] -2025-10-24 09:32:25 [main] DEBUG org.hibernate.SQL - - alter table if exists notifications - alter column message set data type TEXT -2025-10-24 09:32:26 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@d0456ad] for TypeConfiguration -2025-10-24 09:32:26 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:32:26 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-24 09:32:26 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) -2025-10-24 09:32:26 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 -2025-10-24 09:32:26 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 -2025-10-24 09:32:26 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 -2025-10-24 09:32:26 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: eventhub-checkpoints -2025-10-24 09:32:26 [main] WARN c.a.c.h.netty.implementation.Utility - The following Netty dependencies have versions that do not match the versions specified in the azure-core-http-netty pom.xml file. This may result in unexpected behavior. If your application runs without issue this message can be ignored, otherwise please update the Netty dependencies to match the versions specified in the pom.xml file. Versions found in runtime: 'io.netty:netty-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler-proxy' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-buffer' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http2' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-unix-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-epoll' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-kqueue' version: 4.1.110.Final (expected: 4.1.101.Final) -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 완료 -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 중 - EventHub: notification-events, ConsumerGroup: $Default -2025-10-24 09:32:27 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_aabc8a_1761265947073"} -2025-10-24 09:32:27 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 완료 -2025-10-24 09:32:27 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 중... -2025-10-24 09:32:27 [main] INFO c.a.m.eventhubs.EventProcessorClient - {"az.sdk.message":"Starting a new event processor instance.","eventProcessorId":"70d2490d-4990-466e-bd66-4bc997bd44b2"} -2025-10-24 09:32:27 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 완료 -2025-10-24 09:32:27 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2025-10-24 09:32:27 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - - -Using generated security password: 52ff1f14-a8b0-44dd-8832-ac8cc0781a4c - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2025-10-24 09:32:27 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2025-10-24 09:32:27 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library -2025-10-24 09:32:27 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 중... -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.SecurityConfig - CORS 설정 완료 -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 완료 -2025-10-24 09:32:27 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@680a5de1, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5679e277, org.springframework.security.web.context.SecurityContextHolderFilter@4cbeae45, org.springframework.security.web.header.HeaderWriterFilter@39783d83, org.springframework.web.filter.CorsFilter@23b2ddc4, org.springframework.security.web.authentication.logout.LogoutFilter@55bcd722, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@7d332e20, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@3cbe4472, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@32a7f41b, org.springframework.security.web.session.SessionManagementFilter@24ae25b8, org.springframework.security.web.access.ExceptionTranslationFilter@14796b9e, org.springframework.security.web.access.intercept.AuthorizationFilter@7279d0f8] -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 중... -2025-10-24 09:32:27 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 완료 -2025-10-24 09:32:27 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8085 (http) with context path '/' -2025-10-24 09:32:27 [main] INFO c.u.h.n.NotificationApplication - Started NotificationApplication in 5.253 seconds (process running for 5.396) -2025-10-24 09:32:28 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"70d2490d-4990-466e-bd66-4bc997bd44b2"} -2025-10-24 09:32:28 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:32:28 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_aabc8a_1761265947073","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-24 09:32:28 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_aabc8a_1761265947073"} -2025-10-24 09:32:28 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_aabc8a_1761265947073","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:32:28 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_aabc8a_1761265947073"} -2025-10-24 09:32:28 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_aabc8a_1761265947073","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:32:28 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_aabc8a_1761265947073","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_aabc8a_1761265947073","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"22393503f661413fb000826d7995ae6b_G16"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"notification-events"} -2025-10-24 09:32:29 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:a20c2fc1-701e-006f-117d-442740000000 -Time:2025-10-24T00:32:29.5500462Z" -2025-10-24 09:32:29 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:a20c2fc1-701e-006f-117d-442740000000 -Time:2025-10-24T00:32:29.5500462Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_aabc8a_1761265947073","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_aabc8a_1761265947073","entityPath":"$management","linkName":"mgmt"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_aabc8a_1761265947073","entityPath":"$management"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_aabc8a_1761265947073","entityPath":"$management","subscriberId":"un_0c0233_1761265949482"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_aabc8a_1761265947073","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_aabc8a_1761265947073","entityPath":"$management"} -2025-10-24 09:32:29 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_aabc8a_1761265947073","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-24 09:32:50 [SpringApplicationShutdownHook] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 종료 중... -2025-10-24 09:32:50 [SpringApplicationShutdownHook] ERROR c.u.h.n.e.p.EventProcessorService - Event Processor 종료 중 오류 발생 -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:a20cade0-701e-006f-607d-442740000000 -Time:2025-10-24T00:32:51.1677357Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) - Suppressed: java.lang.Exception: #block terminated with an error - at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:146) - at reactor.core.publisher.Flux.blockLast(Flux.java:2845) - at com.azure.messaging.eventhubs.EventProcessorClient.stopProcessing(EventProcessorClient.java:286) - at com.azure.messaging.eventhubs.EventProcessorClient.stop(EventProcessorClient.java:265) - at com.unicorn.hgzero.notification.event.processor.EventProcessorService.stop(EventProcessorService.java:59) - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) - at java.base/java.lang.reflect.Method.invoke(Method.java:580) - at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMethod.invoke(InitDestroyAnnotationBeanPostProcessor.java:457) - at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeDestroyMethods(InitDestroyAnnotationBeanPostProcessor.java:415) - at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeDestruction(InitDestroyAnnotationBeanPostProcessor.java:239) - at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:202) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:587) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:559) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:1202) - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:520) - at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:1195) - at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1186) - at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1147) - at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.doClose(ServletWebServerApplicationContext.java:174) - at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1093) - at org.springframework.boot.SpringApplicationShutdownHook.closeAndWait(SpringApplicationShutdownHook.java:145) - at java.base/java.lang.Iterable.forEach(Iterable.java:75) - at org.springframework.boot.SpringApplicationShutdownHook.run(SpringApplicationShutdownHook.java:114) - ... 1 common frames omitted -2025-10-24 09:32:50 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:32:50 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@d0456ad] for TypeConfiguration -2025-10-24 09:32:50 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@32226944] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@d0456ad] -2025-10-24 09:32:51 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... -2025-10-24 09:32:51 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. -2025-10-24 09:32:54 [main] INFO c.u.h.n.NotificationApplication - Starting NotificationApplication using Java 21.0.8 with PID 93184 (/Users/daewoong/home/workspace/HGZero/notification/build/classes/java/main started by daewoong in /Users/daewoong/home/workspace/HGZero/notification) -2025-10-24 09:32:54 [main] DEBUG c.u.h.n.NotificationApplication - Running with Spring Boot v3.3.0, Spring v6.1.8 -2025-10-24 09:32:54 [main] INFO c.u.h.n.NotificationApplication - No active profile set, falling back to 1 default profile: "default" -2025-10-24 09:32:54 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:32:54 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2025-10-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 62 ms. Found 3 JPA repository interfaces. -2025-10-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode -2025-10-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode. -2025-10-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.notification.repository.NotificationSettingRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository -2025-10-24 09:32:55 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 3 ms. Found 0 Redis repository interfaces. -2025-10-24 09:32:55 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8085 (http) -2025-10-24 09:32:55 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] -2025-10-24 09:32:55 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.24] -2025-10-24 09:32:55 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext -2025-10-24 09:32:55 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 911 ms -2025-10-24 09:32:55 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] -2025-10-24 09:32:55 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.2.Final -2025-10-24 09:32:55 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@4f82248f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@22002459 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@22002459 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@29bd056a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@29bd056a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@21e702b8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@21e702b8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@7f1fec57 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@7f1fec57 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@7f1fec57 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@5c9e3d01 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@5c9e3d01 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@5c9e3d01 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@1dc9f5ad -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@4a2d66e -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@4dffff9 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@2904bc56 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@7bb25046 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@69b1e8f8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@126af200 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@1e000a17 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@77d959f1 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@11c999da -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@54f69311 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@4ab86b2a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@7793b55d -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@2ac9e53c -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@4ac7856f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@4ac7856f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@432f4626 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@297c3a43 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@4c79ca55 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@3a63d248 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@3c4ad54 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@4b22214d -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@498b611e -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@6dde1bf5 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@4b56b517 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@1124dd79 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@335cdd2 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@1ea96ff2 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@60a99f3d -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@57515944 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@7a274521 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@7a274521 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@2fa47368 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@35841d6 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@35841d6 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@5e9ea380 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@5e9ea380 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@1e50eb3f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@12e3f4ae -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@537451d5 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@537451d5 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@785d6a98 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@614d7fbf -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@6c06b1bc -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@1d8dbf10 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@e171f93 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@4ad3969 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@5d7ff311 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@2d7aa291 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@1ba7db2a -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@762cdf46 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@54e94de9 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@2cff03cf -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@924f3f1 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@19e2db7c -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@77a4bac -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@534fc1f7 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@7d5a0b14 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@72ec16f8 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@279e1422 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@af3295f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@27dc81be -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@3595086b -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@3595086b -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@627d35ff -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@627d35ff -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@7157413e -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@3245efdb -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@646d58cd -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@646d58cd -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@1d5bb5c -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@7846913f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@60b553f -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@2aa811f9 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@66abb2fa -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@7d4da729 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@2133b712 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@4b7e4d14 -2025-10-24 09:32:55 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@70f91ae3 -2025-10-24 09:32:55 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer -2025-10-24 09:32:55 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting... -2025-10-24 09:32:56 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@6167c42f -2025-10-24 09:32:56 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed. -2025-10-24 09:32:56 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@53d2b827) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@4769537a) -2025-10-24 09:32:56 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@4504a4ed) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@7ee3a2ed) -2025-10-24 09:32:56 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT)) -2025-10-24 09:32:56 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT)) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@5b3ee43e -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@5b3ee43e -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@646d58cd` -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:32:56 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007) -2025-10-24 09:32:56 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@3c7db0e8] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@84becbe] -2025-10-24 09:32:56 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -2025-10-24 09:32:56 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@3c7db0e8] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@7c9015c6] -2025-10-24 09:32:57 [main] DEBUG org.hibernate.SQL - - alter table if exists notifications - alter column message set data type TEXT -2025-10-24 09:32:57 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@7c9015c6] for TypeConfiguration -2025-10-24 09:32:57 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' -2025-10-24 09:32:57 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used. -2025-10-24 09:32:57 [main] WARN o.s.b.a.t.ThymeleafAutoConfiguration$DefaultTemplateResolverConfiguration - Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) -2025-10-24 09:32:57 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 중 - Host: smtp.gmail.com, Port: 587 -2025-10-24 09:32:57 [main] INFO c.u.h.n.config.EmailConfig - JavaMailSender 구성 완료 -2025-10-24 09:32:57 [main] INFO c.u.h.n.config.RetryConfig - RetryTemplate 생성 완료 - MaxAttempts: 3, InitialInterval: 5분, MaxInterval: 30분, Multiplier: 2.0 -2025-10-24 09:32:57 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 중 - Container: eventhub-checkpoints -2025-10-24 09:32:58 [main] WARN c.a.c.h.netty.implementation.Utility - The following Netty dependencies have versions that do not match the versions specified in the azure-core-http-netty pom.xml file. This may result in unexpected behavior. If your application runs without issue this message can be ignored, otherwise please update the Netty dependencies to match the versions specified in the pom.xml file. Versions found in runtime: 'io.netty:netty-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-handler-proxy' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-buffer' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-codec-http2' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-unix-common' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-epoll' version: 4.1.110.Final (expected: 4.1.101.Final),'io.netty:netty-transport-native-kqueue' version: 4.1.110.Final (expected: 4.1.101.Final) -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.BlobStorageConfig - BlobContainerAsyncClient 생성 완료 -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 중 - EventHub: notification-events, ConsumerGroup: $Default -2025-10-24 09:32:58 [main] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_4e2428_1761265978193"} -2025-10-24 09:32:58 [main] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.EventHubConfig - EventProcessorClient 생성 완료 -2025-10-24 09:32:58 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 중... -2025-10-24 09:32:58 [main] INFO c.a.m.eventhubs.EventProcessorClient - {"az.sdk.message":"Starting a new event processor instance.","eventProcessorId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:32:58 [main] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 시작 완료 -2025-10-24 09:32:58 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning -2025-10-24 09:32:58 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - - -Using generated security password: 5cbb3798-c2d2-4531-ad1a-68eba792f822 - -This generated password is for development use only. Your security configuration must be updated before running your application in production. - -2025-10-24 09:32:58 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager -2025-10-24 09:32:58 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library -2025-10-24 09:32:58 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 중... -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.SecurityConfig - CORS 설정 완료 -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 완료 -2025-10-24 09:32:58 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@36004275, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@25983534, org.springframework.security.web.context.SecurityContextHolderFilter@67c492fc, org.springframework.security.web.header.HeaderWriterFilter@37994ff, org.springframework.web.filter.CorsFilter@7e8b070e, org.springframework.security.web.authentication.logout.LogoutFilter@79a4f733, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@14796b9e, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1676550a, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@209db88a, org.springframework.security.web.session.SessionManagementFilter@10de078f, org.springframework.security.web.access.ExceptionTranslationFilter@718d339f, org.springframework.security.web.access.intercept.AuthorizationFilter@6045d2c] -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 중... -2025-10-24 09:32:58 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 완료 -2025-10-24 09:32:58 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8085 (http) with context path '/' -2025-10-24 09:32:58 [main] INFO c.u.h.n.NotificationApplication - Started NotificationApplication in 4.623 seconds (process running for 4.797) -2025-10-24 09:32:59 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:32:59 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:33:00 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-24 09:33:00 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_4e2428_1761265978193"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_4e2428_1761265978193"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"207ea9e644274683a2167ef2c733be55_G4"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"notification-events"} -2025-10-24 09:33:00 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c72751e-e01e-0048-567d-44bd09000000 -Time:2025-10-24T00:33:00.6004520Z" -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_4e2428_1761265978193","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-24 09:33:00 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c72751e-e01e-0048-567d-44bd09000000 -Time:2025-10-24T00:33:00.6004520Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_4e2428_1761265978193","entityPath":"$management","linkName":"mgmt"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_4e2428_1761265978193","entityPath":"$management"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_4e2428_1761265978193","entityPath":"$management","subscriberId":"un_59f0bc_1761265980448"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_4e2428_1761265978193","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_4e2428_1761265978193","entityPath":"$management"} -2025-10-24 09:33:00 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_4e2428_1761265978193","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-24 09:33:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:33:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:33:30 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c730a11-e01e-0048-1a7d-44bd09000000 -Time:2025-10-24T00:33:30.3504772Z" -2025-10-24 09:33:30 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c730a11-e01e-0048-1a7d-44bd09000000 -Time:2025-10-24T00:33:30.3504772Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:34:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:34:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:34:00 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c7398de-e01e-0048-247d-44bd09000000 -Time:2025-10-24T00:34:00.3768929Z" -2025-10-24 09:34:00 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c7398de-e01e-0048-247d-44bd09000000 -Time:2025-10-24T00:34:00.3768929Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_4e2428_1761265978193","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_4e2428_1761265978193","linkName":"mgmt:sender","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:34:00 [reactor-executor-1] WARN c.a.c.a.i.RequestResponseChannel - {"az.sdk.message":"Error in SendLinkHandler. Disposing unconfirmed sends.","exception":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 98]","connectionId":"MF_4e2428_1761265978193","linkName":"mgmt"} -2025-10-24 09:34:00 [reactor-executor-1] ERROR c.a.m.e.i.ManagementChannel - Exception occurred: -The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 98] -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_4e2428_1761265978193","entityPath":"$management"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 98]","connectionId":"MF_4e2428_1761265978193","entityPath":"$management","tryCount":0,"intervalMs":1800} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_4e2428_1761265978193","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_4e2428_1761265978193","linkName":"mgmt:receiver","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_4e2428_1761265978193","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00","sessionName":"mgmt-session"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_4e2428_1761265978193","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00","sessionName":"mgmt-session"} -2025-10-24 09:34:00 [reactor-executor-1] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped -reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_4e2428_1761265978193], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] -Caused by: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_4e2428_1761265978193], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] - at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:90) - at com.azure.core.amqp.implementation.handler.SessionHandler.onSessionRemoteClose(SessionHandler.java:157) - at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:152) - at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) - at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) - at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) - at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91) - at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) - at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) +2025-10-26 00:12:11 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2025-10-26 00:12:11 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library +2025-10-26 00:12:11 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"d336faa3-d54a-4c99-b381-a7d829c39c68"} +2025-10-26 00:12:11 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:12:11 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator' +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 중... +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.SecurityConfig - CORS 설정 완료 +2025-10-26 00:12:11 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.SecurityConfig - SecurityFilterChain 구성 완료 +2025-10-26 00:12:11 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_985db0_1761405131507"} +2025-10-26 00:12:11 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:11 [reactor-executor-1] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_985db0_1761405131507"} +2025-10-26 00:12:11 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:11 [main] DEBUG o.s.s.web.DefaultSecurityFilterChain - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 중... +2025-10-26 00:12:11 [main] INFO c.u.h.n.config.SwaggerConfig - OpenAPI 설정 생성 완료 +2025-10-26 00:12:11 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"4a8b6c79abe243a3a753b14892c87299_G10"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_985db0_1761405131507","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_985db0_1761405131507","entityPath":"$management","linkName":"mgmt"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_985db0_1761405131507","entityPath":"$management"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_985db0_1761405131507","entityPath":"$management","subscriberId":"un_c963b2_1761405132057"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_985db0_1761405131507","entityPath":"$management","subscriberId":"un_6324ab_1761405132059"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_985db0_1761405131507","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_985db0_1761405131507","entityPath":"$management"} +2025-10-26 00:12:12 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_985db0_1761405131507","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 0 +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Attempting to claim ownership of partition.","partitionId":"0"} +2025-10-26 00:12:12 [reactor-http-nio-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Successfully claimed ownership.","partitionId":"0"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 1 +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active event processors 1 +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Expected min partitions per event processor = 1, expected number of event processors with additional partition = 0 +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Load is balanced with this event processor owning 1 partitions +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.PartitionBasedLoadBalancer - Load balancing completed successfully +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.i.PartitionProcessor - {"az.sdk.message":"Initializing partition processor for partition","partitionId":"0"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.eventhubs.PartitionPumpManager - {"az.sdk.message":"Starting event processing.","partitionId":"0","eventPosition":"offset[17179876440], sequenceNumber[null], enqueuedTime[null], isInclusive[false]"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_a57200_1761405132182"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Setting new subscription for receive link processor","subscriberId":"rlp_fbc5ad_1761405132186"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Requesting a new AmqpReceiveLink from upstream.","subscriberId":"rlp_fbc5ad_1761405132186"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.m.e.EventHubConsumerAsyncClient - {"az.sdk.message":"Creating receive consumer for partition.","linkName":"0_ab405b_1761405132184","partitionId":"0","connectionId":"MF_a57200_1761405132182"} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} +2025-10-26 00:12:12 [boundedElastic-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_a57200_1761405132182"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_a57200_1761405132182"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"489faaafbfef47bfab375bb6b58fa25a_G22"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_a57200_1761405132182","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Setting CBS channel.","connectionId":"MF_a57200_1761405132182"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_a57200_1761405132182","sessionName":"cbs-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs","linkName":"cbs"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs","subscriberId":"rlp_fbc5ad_1761405132186"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_a57200_1761405132182","linkName":"cbs:sender","entityPath":"$cbs","remoteTarget":"Target{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs","linkName":"cbs:receiver","remoteSource":"Source{address='$cbs', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.ActiveClientTokenManager - {"az.sdk.message":"Scheduling refresh token task.","scopes":"amqp://hgzero-eventhub-ns.servicebus.windows.net/hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:12:12 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8085 (http) with context path '/' +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.ReactorSession - {"az.sdk.message":"Creating a new receiver link.","connectionId":"MF_a57200_1761405132182","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0","linkName":"0_ab405b_1761405132184"} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Setting next AMQP receive link.","subscriberId":"rlp_fbc5ad_1761405132186","oldLinkName":null,"linkName":"0_ab405b_1761405132184","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:12:12 [main] INFO c.u.h.n.NotificationApplication - Started NotificationApplication in 3.708 seconds (process running for 3.942) +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Link is active.","subscriberId":"rlp_fbc5ad_1761405132186","linkName":"0_ab405b_1761405132184","credits":0} +2025-10-26 00:12:12 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_a57200_1761405132182","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0","linkName":"0_ab405b_1761405132184","remoteSource":"Source{address='hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter={apache.org:selector-filter:string=org.apache.qpid.proton.codec.DecoderImpl$UnknownDescribedType@80c2031}, defaultOutcome=null, outcomes=null, capabilities=null}"} +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.event.EventHandler - 이벤트 수신 - Topic: notification, EventType: NOTIFICATION_REQUEST +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.event.EventHandler - 알림 발송 시작 - Type: MEETING_INVITATION, EventId: null +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - EventId가 없어 생성함 - EventId: 5375f682-338c-42cb-9e8e-94756cdee786 +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - 알림 발송 처리 시작 - EventId: 5375f682-338c-42cb-9e8e-94756cdee786, Type: MEETING_INVITATION +2025-10-26 00:12:12 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* */ select + n1_0.notification_id + from + notifications n1_0 + where + n1_0.event_id=? + fetch + first ? rows only +2025-10-26 00:12:12 [partition-pump-0-3] WARN c.u.h.n.service.NotificationService - 알 수 없는 채널: null - EMAIL로 기본 설정 +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - 단일 수신자 처리 - Email: minjun.kim@example.com +2025-10-26 00:12:12 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* */ select + ns1_0.user_id, + ns1_0.created_at, + ns1_0.dnd_enabled, + ns1_0.dnd_end_time, + ns1_0.dnd_start_time, + ns1_0.email_enabled, + ns1_0.invitation_enabled, + ns1_0.meeting_reminder_enabled, + ns1_0.minutes_updated_enabled, + ns1_0.push_enabled, + ns1_0.sms_enabled, + ns1_0.todo_assigned_enabled, + ns1_0.todo_completed_enabled, + ns1_0.todo_reminder_enabled, + ns1_0.updated_at + from + notification_settings ns1_0 + where + ns1_0.user_id=? +2025-10-26 00:12:12 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* */ select + ns1_0.user_id, + ns1_0.created_at, + ns1_0.dnd_enabled, + ns1_0.dnd_end_time, + ns1_0.dnd_start_time, + ns1_0.email_enabled, + ns1_0.invitation_enabled, + ns1_0.meeting_reminder_enabled, + ns1_0.minutes_updated_enabled, + ns1_0.push_enabled, + ns1_0.sms_enabled, + ns1_0.todo_assigned_enabled, + ns1_0.todo_completed_enabled, + ns1_0.todo_reminder_enabled, + ns1_0.updated_at + from + notification_settings ns1_0 + where + ns1_0.user_id=? +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.NotificationRouter - 알림 라우팅 시작 - Email: du0928@gmail.com, Channel: EMAIL +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.NotificationRouter - 사용자 설정 없음 - 요청 채널 사용: EMAIL +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.NotificationRouter - 선택된 채널: EMAIL +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.EmailNotifier - 이메일 발송 시도 #1 - Email: du0928@gmail.com +2025-10-26 00:12:12 [partition-pump-0-3] INFO c.u.h.n.service.EmailClient - 이메일 발송 시작 - To: du0928@gmail.com, Subject: 회의 초대 +2025-10-26 00:12:41 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"d336faa3-d54a-4c99-b381-a7d829c39c68"} +2025-10-26 00:12:41 [pool-3-thread-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:12:41 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_985db0_1761405131507","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-26 00:12:41 [pool-3-thread-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_985db0_1761405131507"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_985db0_1761405131507","linkName":"mgmt:sender","entityPath":"$management"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_985db0_1761405131507","linkName":"mgmt:receiver","entityPath":"$management"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: CLOSED +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.m.e.i.ManagementChannel - Complete. +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_985db0_1761405131507","entityPath":"$management"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is disposed.","connectionId":"MF_985db0_1761405131507","entityPath":"$management"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_985db0_1761405131507","sessionName":"mgmt-session"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.GlobalIOHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_985db0_1761405131507","linkName":"mgmt:sender","entityPath":"$management"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_985db0_1761405131507","linkName":"mgmt:receiver","entityPath":"$management"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_985db0_1761405131507","sessionName":"mgmt-session"} +2025-10-26 00:12:41 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_985db0_1761405131507","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 1 +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active event processors 1 +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Expected min partitions per event processor = 1, expected number of event processors with additional partition = 0 +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Load is balanced with this event processor owning 1 partitions +2025-10-26 00:12:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Load balancing completed successfully +2025-10-26 00:12:45 [reactor-executor-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Processing all pending tasks and closing old reactor.","connectionId":"MF_985db0_1761405131507"} +2025-10-26 00:12:45 [reactor-executor-1] INFO c.a.c.a.i.ReactorDispatcher - {"az.sdk.message":"Reactor selectable is being disposed.","connectionId":"MF_985db0_1761405131507"} +2025-10-26 00:12:45 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_985db0_1761405131507","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"connectionId[MF_985db0_1761405131507] Reactor selectable is disposed.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:12:45 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_985db0_1761405131507","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Finished processing pending tasks.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:13:11 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"d336faa3-d54a-4c99-b381-a7d829c39c68"} +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 1 +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active event processors 1 +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Expected min partitions per event processor = 1, expected number of event processors with additional partition = 0 +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Load is balanced with this event processor owning 1 partitions +2025-10-26 00:13:11 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Load balancing completed successfully +2025-10-26 00:13:12 [HikariPool-1 housekeeper] WARN c.zaxxer.hikari.pool.ProxyLeakTask - Connection leak detection triggered for org.postgresql.jdbc.PgConnection@6b6c0b7c on thread partition-pump-0-3, stack trace follows +java.lang.Exception: Apparent connection leak detected + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:127) + at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) + at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:46) + at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:126) + at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:156) + at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getConnectionForTransactionManagement(LogicalConnectionManagedImpl.java:286) + at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:294) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:232) + at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:83) + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.beginTransaction(HibernateJpaDialect.java:176) + at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:420) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:532) + at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:405) + at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:604) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:373) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.notification.service.NotificationService$$SpringCGLIB$$0.processNotification() + at com.unicorn.hgzero.notification.event.EventHandler.lambda$processNotificationRequestEvent$2(EventHandler.java:223) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:357) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_4e2428_1761265978193], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session]","connectionId":"MF_4e2428_1761265978193","sessionName":"mgmt-session"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_4e2428_1761265978193","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_4e2428_1761265978193","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection handler closed."} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","entityPath":"notification-events"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"notification-events"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_afe1e2_1761266040535"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_4e2428_1761265978193","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_4e2428_1761265978193","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_4e2428_1761265978193","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '207ea9e644274683a2167ef2c733be55_G4' because it did not have any active links in the past 60000 milliseconds. TrackingId:207ea9e644274683a2167ef2c733be55_G4, SystemTracker:gateway5, Timestamp:2025-10-24T00:34:00","sessionName":"mgmt-session"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_4e2428_1761265978193","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:00 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_4e2428_1761265978193"} -2025-10-24 09:34:02 [parallel-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Not requesting from upstream. Processor is disposed.","connectionId":"MF_4e2428_1761265978193","entityPath":"$management","tryCount":0} -2025-10-24 09:34:04 [reactor-executor-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Processing all pending tasks and closing old reactor.","connectionId":"MF_4e2428_1761265978193"} -2025-10-24 09:34:04 [reactor-executor-1] INFO c.a.c.a.i.ReactorDispatcher - {"az.sdk.message":"Reactor selectable is being disposed.","connectionId":"MF_4e2428_1761265978193"} -2025-10-24 09:34:04 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_4e2428_1761265978193","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"connectionId[MF_4e2428_1761265978193] Reactor selectable is disposed.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:04 [reactor-executor-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_4e2428_1761265978193","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Finished processing pending tasks.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:34:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:34:30 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-24 09:34:30 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_afe1e2_1761266040535"} -2025-10-24 09:34:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_afe1e2_1761266040535"} -2025-10-24 09:34:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:34:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-24 09:34:30 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c743d00-e01e-0048-777d-44bd09000000 -Time:2025-10-24T00:34:30.4318492Z" -2025-10-24 09:34:30 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c743d00-e01e-0048-777d-44bd09000000 -Time:2025-10-24T00:34:30.4318492Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:34:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"42ee5c50ad114fafa7f111006219d4d6_G29"} -2025-10-24 09:34:30 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"notification-events"} -2025-10-24 09:35:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:35:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_afe1e2_1761266040535","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management","linkName":"mgmt"} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management"} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management","subscriberId":"un_0060c0_1761266100298"} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management","subscriberId":"un_4c8e08_1761266100298"} -2025-10-24 09:35:00 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c74e6f8-e01e-0048-177e-44bd09000000 -Time:2025-10-24T00:35:00.3968986Z" -2025-10-24 09:35:00 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c74e6f8-e01e-0048-177e-44bd09000000 -Time:2025-10-24T00:35:00.3968986Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_afe1e2_1761266040535","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management"} -2025-10-24 09:35:00 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-24 09:35:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:35:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:35:30 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c757ead-e01e-0048-7c7e-44bd09000000 -Time:2025-10-24T00:35:30.4050913Z" -2025-10-24 09:35:30 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c757ead-e01e-0048-7c7e-44bd09000000 -Time:2025-10-24T00:35:30.4050913Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_afe1e2_1761266040535","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_afe1e2_1761266040535","linkName":"mgmt:sender","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:35:30 [reactor-executor-2] WARN c.a.c.a.i.RequestResponseChannel - {"az.sdk.message":"Error in SendLinkHandler. Disposing unconfirmed sends.","exception":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99]","connectionId":"MF_afe1e2_1761266040535","linkName":"mgmt"} -2025-10-24 09:35:30 [reactor-executor-2] ERROR c.a.m.e.i.ManagementChannel - Exception occurred: -The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99] -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99]","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management","tryCount":0,"intervalMs":1800} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_afe1e2_1761266040535","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_afe1e2_1761266040535","linkName":"mgmt:receiver","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_afe1e2_1761266040535","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30","sessionName":"mgmt-session"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_afe1e2_1761266040535","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30","sessionName":"mgmt-session"} -2025-10-24 09:35:30 [reactor-executor-2] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped -reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_afe1e2_1761266040535], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] -Caused by: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_afe1e2_1761266040535], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] - at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:90) - at com.azure.core.amqp.implementation.handler.SessionHandler.onSessionRemoteClose(SessionHandler.java:157) - at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:152) - at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) - at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) - at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) - at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91) - at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) - at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) +2025-10-26 00:13:41 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"d336faa3-d54a-4c99-b381-a7d829c39c68"} +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Starting next iteration of load balancer +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of ownership records 1, number of partitions 1 +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active ownership records 1 +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Number of active event processors 1 +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Expected min partitions per event processor = 1, expected number of event processors with additional partition = 0 +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Load is balanced with this event processor owning 1 partitions +2025-10-26 00:13:41 [boundedElastic-4] INFO c.a.m.e.PartitionBasedLoadBalancer - Load balancing completed successfully +2025-10-26 00:14:09 [SpringApplicationShutdownHook] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 종료 중... +2025-10-26 00:14:09 [SpringApplicationShutdownHook] INFO c.a.m.e.EventHubConsumerAsyncClient - {"az.sdk.message":"Receiving completed.","linkName":"0_ab405b_1761405132184","partitionId":"0","signalType":"onComplete"} +2025-10-26 00:14:09 [SpringApplicationShutdownHook] INFO c.a.m.e.EventHubPartitionAsyncConsumer - {"az.sdk.message":"Closed consumer.","partitionId":"0"} +2025-10-26 00:14:09 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:14:09 [SpringApplicationShutdownHook] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_a57200_1761405132182","isTransient":false,"isInitiatedByClient":true,"shutdownMessage":"Disposed by client."} +2025-10-26 00:14:09 [SpringApplicationShutdownHook] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is disposed.","entityPath":"hgzero-eventhub-name"} +2025-10-26 00:14:09 [partition-pump-0-3] ERROR c.u.h.n.service.EmailNotifier - 이메일 발송 최종 실패 - Email: du0928@gmail.com +org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.service.EmailNotifier.sendEmail(EmailNotifier.java:40) + at com.unicorn.hgzero.notification.service.NotificationRouter.routeNotification(NotificationRouter.java:59) + at com.unicorn.hgzero.notification.service.NotificationService.processNotification(NotificationService.java:384) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) + at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:379) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:768) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:720) + at com.unicorn.hgzero.notification.service.NotificationService$$SpringCGLIB$$0.processNotification() + at com.unicorn.hgzero.notification.event.EventHandler.lambda$processNotificationRequestEvent$2(EventHandler.java:223) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:357) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_afe1e2_1761266040535], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session]","connectionId":"MF_afe1e2_1761266040535","sessionName":"mgmt-session"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_afe1e2_1761266040535","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_afe1e2_1761266040535","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection handler closed."} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","entityPath":"notification-events"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"notification-events"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_5b088b_1761266130516"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_afe1e2_1761266040535","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_afe1e2_1761266040535","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_afe1e2_1761266040535","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '42ee5c50ad114fafa7f111006219d4d6_G29' because it did not have any active links in the past 60000 milliseconds. TrackingId:42ee5c50ad114fafa7f111006219d4d6_G29, SystemTracker:gateway5, Timestamp:2025-10-24T00:35:30","sessionName":"mgmt-session"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_afe1e2_1761266040535","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:35:30 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_afe1e2_1761266040535"} -2025-10-24 09:35:32 [parallel-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Not requesting from upstream. Processor is disposed.","connectionId":"MF_afe1e2_1761266040535","entityPath":"$management","tryCount":0} -2025-10-24 09:35:34 [reactor-executor-2] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Processing all pending tasks and closing old reactor.","connectionId":"MF_afe1e2_1761266040535"} -2025-10-24 09:35:34 [reactor-executor-2] INFO c.a.c.a.i.ReactorDispatcher - {"az.sdk.message":"Reactor selectable is being disposed.","connectionId":"MF_afe1e2_1761266040535"} -2025-10-24 09:35:34 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_afe1e2_1761266040535","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"connectionId[MF_afe1e2_1761266040535] Reactor selectable is disposed.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:35:34 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_afe1e2_1761266040535","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Finished processing pending tasks.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:36:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:36:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:36:00 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-24 09:36:00 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_5b088b_1761266130516"} -2025-10-24 09:36:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:36:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_5b088b_1761266130516"} -2025-10-24 09:36:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:36:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-24 09:36:00 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c761f51-e01e-0048-4e7e-44bd09000000 -Time:2025-10-24T00:36:00.4288123Z" -2025-10-24 09:36:00 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c761f51-e01e-0048-4e7e-44bd09000000 -Time:2025-10-24T00:36:00.4288123Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:36:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"fd8238e549094ce9854c47f1e70ed6ea_G24"} -2025-10-24 09:36:00 [reactor-executor-3] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"notification-events"} -2025-10-24 09:36:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:36:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_5b088b_1761266130516","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management","linkName":"mgmt"} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management"} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management","subscriberId":"un_658990_1761266190335"} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management","subscriberId":"un_482cbe_1761266190336"} -2025-10-24 09:36:30 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c76c047-e01e-0048-6f7e-44bd09000000 -Time:2025-10-24T00:36:30.4407958Z" -2025-10-24 09:36:30 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c76c047-e01e-0048-6f7e-44bd09000000 -Time:2025-10-24T00:36:30.4407958Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_5b088b_1761266130516","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management"} -2025-10-24 09:36:30 [reactor-executor-3] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_5b088b_1761266130516","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-24 09:37:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:37:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:37:00 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c778af4-e01e-0048-457e-44bd09000000 -Time:2025-10-24T00:37:00.4463489Z" -2025-10-24 09:37:00 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c778af4-e01e-0048-457e-44bd09000000 -Time:2025-10-24T00:37:00.4463489Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_5b088b_1761266130516","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_5b088b_1761266130516","linkName":"mgmt:sender","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:37:00 [reactor-executor-3] WARN c.a.c.a.i.RequestResponseChannel - {"az.sdk.message":"Error in SendLinkHandler. Disposing unconfirmed sends.","exception":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99]","connectionId":"MF_5b088b_1761266130516","linkName":"mgmt"} -2025-10-24 09:37:00 [reactor-executor-3] ERROR c.a.m.e.i.ManagementChannel - Exception occurred: -The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99] -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99]","connectionId":"MF_5b088b_1761266130516","entityPath":"$management","tryCount":0,"intervalMs":1800} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_5b088b_1761266130516","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_5b088b_1761266130516","linkName":"mgmt:receiver","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_5b088b_1761266130516","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00","sessionName":"mgmt-session"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_5b088b_1761266130516","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00","sessionName":"mgmt-session"} -2025-10-24 09:37:00 [reactor-executor-3] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped -reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_5b088b_1761266130516], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] -Caused by: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_5b088b_1761266130516], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] - at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:90) - at com.azure.core.amqp.implementation.handler.SessionHandler.onSessionRemoteClose(SessionHandler.java:157) - at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:152) - at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) - at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) - at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) - at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91) - at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) - at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 38 common frames omitted +2025-10-26 00:14:09 [partition-pump-0-3] ERROR c.u.h.n.service.NotificationRouter - 알림 발송 실패 - Email: du0928@gmail.com, Channel: EMAIL +2025-10-26 00:14:09 [partition-pump-0-3] ERROR c.u.h.n.service.NotificationService - 알림 발송 실패 - Email: du0928@gmail.com +2025-10-26 00:14:10 [partition-pump-0-3] INFO c.u.h.n.service.NotificationService - 알림 발송 처리 완료 - 성공: 0, 실패: 1 +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_a57200_1761405132182","linkName":"0_ab405b_1761405132184","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Terminal state reached. Disposing of link processor.","subscriberId":"rlp_fbc5ad_1761405132186","linkName":"0_ab405b_1761405132184","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.m.e.i.AmqpReceiveLinkProcessor - {"az.sdk.message":"Disposing receive link.","subscriberId":"rlp_fbc5ad_1761405132186","linkName":"0_ab405b_1761405132184"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_a57200_1761405132182","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_a57200_1761405132182","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs","linkName":"cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_a57200_1761405132182","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_a57200_1761405132182","sessionName":"cbs-session"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ReceiveLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_a57200_1761405132182","linkName":"0_ab405b_1761405132184","entityPath":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_a57200_1761405132182"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Sender link was never active. Closing endpoint states.","connectionId":"MF_a57200_1761405132182","linkName":"cbs","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"Receiver link was never active. Closing endpoint states","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs","linkName":"cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is disposed.","connectionId":"MF_a57200_1761405132182","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:14:10 [partition-pump-0-3] DEBUG org.hibernate.SQL - + /* insert for + com.unicorn.hgzero.notification.domain.Notification */insert + into + notifications (channel, created_at, event_id, failed_count, message, notification_type, reference_id, reference_type, sent_at, sent_count, status, title, notification_id) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.GlobalIOHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_a57200_1761405132182","sessionName":"hgzero-eventhub-name/ConsumerGroups/$default/Partitions/0"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_a57200_1761405132182","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_a57200_1761405132182","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_a57200_1761405132182","linkName":"cbs:sender","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_a57200_1761405132182","linkName":"cbs:receiver","entityPath":"$cbs"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_a57200_1761405132182","sessionName":"cbs-session"} +2025-10-26 00:14:10 [reactor-executor-2] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_a57200_1761405132182","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} +2025-10-26 00:14:10 [partition-pump-0-3] WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: 23514 +2025-10-26 00:14:10 [partition-pump-0-3] ERROR o.h.e.jdbc.spi.SqlExceptionHelper - ERROR: new row for relation "notifications" violates check constraint "notifications_notification_type_check" + Detail: Failing row contains (d2f0350a-14bd-4571-8274-7cc45195f79f, EMAIL, 2025-10-26 00:12:12.333186, 5375f682-338c-42cb-9e8e-94756cdee786, 0, 'test 회의' 회의에 초대되었습니다. 일시: 2025-10-2..., MEETING_INVITATION, 33b6b044-d938-4085-a86d-a315a6f819d4, MEETING, null, 0, PROCESSING, 회의 초대). +2025-10-26 00:14:10 [SpringApplicationShutdownHook] INFO c.u.h.n.e.p.EventProcessorService - Event Processor 종료 완료 +2025-10-26 00:14:10 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-26 00:14:10 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@359f3401] for TypeConfiguration +2025-10-26 00:14:10 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@292002fd] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@359f3401] +2025-10-26 00:14:10 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated... +2025-10-26 00:14:10 [partition-pump-0-3] ERROR c.u.h.n.event.EventHandler - 알림 이벤트 처리 중 오류 발생 - EventType: NOTIFICATION_REQUEST +org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_5b088b_1761266130516], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session]","connectionId":"MF_5b088b_1761266130516","sessionName":"mgmt-session"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_5b088b_1761266130516","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_5b088b_1761266130516","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection handler closed."} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","entityPath":"notification-events"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"notification-events"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_ce2579_1761266220542"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_5b088b_1761266130516","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_5b088b_1761266130516","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_5b088b_1761266130516","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container 'fd8238e549094ce9854c47f1e70ed6ea_G24' because it did not have any active links in the past 60000 milliseconds. TrackingId:fd8238e549094ce9854c47f1e70ed6ea_G24, SystemTracker:gateway5, Timestamp:2025-10-24T00:37:00","sessionName":"mgmt-session"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_5b088b_1761266130516","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:00 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_5b088b_1761266130516"} -2025-10-24 09:37:02 [parallel-1] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Not requesting from upstream. Processor is disposed.","connectionId":"MF_5b088b_1761266130516","entityPath":"$management","tryCount":0} -2025-10-24 09:37:04 [reactor-executor-3] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Processing all pending tasks and closing old reactor.","connectionId":"MF_5b088b_1761266130516"} -2025-10-24 09:37:04 [reactor-executor-3] INFO c.a.c.a.i.ReactorDispatcher - {"az.sdk.message":"Reactor selectable is being disposed.","connectionId":"MF_5b088b_1761266130516"} -2025-10-24 09:37:04 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_5b088b_1761266130516","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"connectionId[MF_5b088b_1761266130516] Reactor selectable is disposed.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:04 [reactor-executor-3] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"onConnectionShutdown. Shutting down.","connectionId":"MF_5b088b_1761266130516","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Finished processing pending tasks.","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:37:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:37:30 [pool-3-thread-1] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Creating and starting connection.","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net","port":5671} -2025-10-24 09:37:30 [pool-3-thread-1] INFO c.a.c.a.i.ReactorExecutor - {"az.sdk.message":"Starting reactor.","connectionId":"MF_ce2579_1761266220542"} -2025-10-24 09:37:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionInit","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net","namespace":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ReactorHandler - {"az.sdk.message":"reactor.onReactorInit","connectionId":"MF_ce2579_1761266220542"} -2025-10-24 09:37:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalOpen","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:37:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionBound","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net","peerDetails":"hgzero-eventhub-ns.servicebus.windows.net:5671"} -2025-10-24 09:37:30 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c782d42-e01e-0048-247e-44bd09000000 -Time:2025-10-24T00:37:30.4663399Z" -2025-10-24 09:37:30 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c782d42-e01e-0048-247e-44bd09000000 -Time:2025-10-24T00:37:30.4663399Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:37:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteOpen","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net","remoteContainer":"59380e37ef814b1a82372fe5b86fd2ec_G26"} -2025-10-24 09:37:30 [reactor-executor-4] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is now active.","entityPath":"notification-events"} -2025-10-24 09:37:32 [http-nio-8085-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' -2025-10-24 09:37:32 [http-nio-8085-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' -2025-10-24 09:37:32 [http-nio-8085-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 3 ms -2025-10-24 09:37:32 [http-nio-8085-exec-1] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/index.html -2025-10-24 09:37:32 [http-nio-8085-exec-1] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-1] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/index.html -2025-10-24 09:37:32 [http-nio-8085-exec-2] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-ui.css -2025-10-24 09:37:32 [http-nio-8085-exec-2] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-2] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-ui.css -2025-10-24 09:37:32 [http-nio-8085-exec-5] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-ui-standalone-preset.js -2025-10-24 09:37:32 [http-nio-8085-exec-5] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-5] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-ui-standalone-preset.js -2025-10-24 09:37:32 [http-nio-8085-exec-6] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-initializer.js -2025-10-24 09:37:32 [http-nio-8085-exec-4] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/swagger-ui-bundle.js -2025-10-24 09:37:32 [http-nio-8085-exec-6] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-3] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/index.css -2025-10-24 09:37:32 [http-nio-8085-exec-6] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-initializer.js -2025-10-24 09:37:32 [http-nio-8085-exec-4] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-4] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/swagger-ui-bundle.js -2025-10-24 09:37:32 [http-nio-8085-exec-3] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-3] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/index.css -2025-10-24 09:37:32 [http-nio-8085-exec-8] DEBUG o.s.security.web.FilterChainProxy - Securing GET /swagger-ui/favicon-32x32.png -2025-10-24 09:37:32 [http-nio-8085-exec-8] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-7] DEBUG o.s.security.web.FilterChainProxy - Securing GET /v3/api-docs/swagger-config -2025-10-24 09:37:32 [http-nio-8085-exec-8] DEBUG o.s.security.web.FilterChainProxy - Secured GET /swagger-ui/favicon-32x32.png -2025-10-24 09:37:32 [http-nio-8085-exec-7] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:32 [http-nio-8085-exec-7] DEBUG o.s.security.web.FilterChainProxy - Secured GET /v3/api-docs/swagger-config -2025-10-24 09:37:33 [http-nio-8085-exec-9] DEBUG o.s.security.web.FilterChainProxy - Securing GET /v3/api-docs -2025-10-24 09:37:33 [http-nio-8085-exec-9] DEBUG o.s.s.w.a.AnonymousAuthenticationFilter - Set SecurityContextHolder to anonymous SecurityContext -2025-10-24 09:37:33 [http-nio-8085-exec-9] DEBUG o.s.security.web.FilterChainProxy - Secured GET /v3/api-docs -2025-10-24 09:37:33 [http-nio-8085-exec-9] INFO o.s.api.AbstractOpenApiResource - Init duration for springdoc-openapi is: 221 ms -2025-10-24 09:38:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:38:00 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteOpen","connectionId":"MF_ce2579_1761266220542","sessionName":"mgmt-session","sessionIncCapacity":0,"sessionOutgoingWindow":2147483647} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Emitting new response channel.","connectionId":"MF_ce2579_1761266220542","entityPath":"$management","linkName":"mgmt"} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Setting next AMQP channel.","connectionId":"MF_ce2579_1761266220542","entityPath":"$management"} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: UNINITIALIZED -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_ce2579_1761266220542","entityPath":"$management","subscriberId":"un_bc62fa_1761266280378"} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Next AMQP channel received.","connectionId":"MF_ce2579_1761266220542","entityPath":"$management","subscriberId":"un_c0cd89_1761266280378"} -2025-10-24 09:38:00 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c78cfb1-e01e-0048-747e-44bd09000000 -Time:2025-10-24T00:38:00.5177911Z" -2025-10-24 09:38:00 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c78cfb1-e01e-0048-747e-44bd09000000 -Time:2025-10-24T00:38:00.5177911Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_ce2579_1761266220542","linkName":"mgmt:sender","entityPath":"$management","remoteTarget":"Target{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, capabilities=null}"} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.m.e.i.ManagementChannel - Management endpoint state: ACTIVE -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Channel is now active.","connectionId":"MF_ce2579_1761266220542","entityPath":"$management"} -2025-10-24 09:38:00 [reactor-executor-4] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteOpen","connectionId":"MF_ce2579_1761266220542","entityPath":"$management","linkName":"mgmt:receiver","remoteSource":"Source{address='$management', durable=NONE, expiryPolicy=SESSION_END, timeout=0, dynamic=false, dynamicNodeProperties=null, distributionMode=null, filter=null, defaultOutcome=null, outcomes=null, capabilities=null}"} -2025-10-24 09:38:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Starting load balancer.","ownerId":"a1d4531a-9fcd-478a-9b21-71eadf7b8e16"} -2025-10-24 09:38:30 [pool-3-thread-1] INFO c.a.m.e.PartitionBasedLoadBalancer - {"az.sdk.message":"Getting partitions from Event Hubs service.","entityPath":"notification-events"} -2025-10-24 09:38:30 [reactor-http-nio-1] WARN c.a.m.e.PartitionBasedLoadBalancer - Load balancing for event processor failed. -Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c797c91-e01e-0048-727e-44bd09000000 -Time:2025-10-24T00:38:30.5182879Z" -2025-10-24 09:38:30 [reactor-http-nio-1] ERROR c.u.h.n.config.EventHubConfig - 이벤트 처리 오류 발생 - PartitionId: NONE, ErrorType: BlobStorageException -com.azure.storage.blob.models.BlobStorageException: Status code 404, "ContainerNotFoundThe specified container does not exist. -RequestId:3c797c91-e01e-0048-727e-44bd09000000 -Time:2025-10-24T00:38:30.5182879Z" - at java.base/java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:733) - at com.azure.core.implementation.MethodHandleReflectiveInvoker.invokeWithArguments(MethodHandleReflectiveInvoker.java:39) - at com.azure.core.implementation.http.rest.ResponseExceptionConstructorCache.invoke(ResponseExceptionConstructorCache.java:53) - at com.azure.core.implementation.http.rest.RestProxyBase.instantiateUnexpectedException(RestProxyBase.java:411) - at com.azure.core.implementation.http.rest.AsyncRestProxy.lambda$ensureExpectedStatus$1(AsyncRestProxy.java:132) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) - at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367) - at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2241) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) - at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) - at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:76) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:165) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) - at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:158) - at reactor.core.publisher.Operators$MonoInnerProducerBase.complete(Operators.java:2864) - at reactor.core.publisher.MonoSingle$SingleSubscriber.onComplete(MonoSingle.java:180) - at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onComplete(MonoFlatMapMany.java:261) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onComplete(FluxContextWrite.java:126) - at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onNext(MonoUsing.java:232) - at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) - at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) - at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129) - at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224) - at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:113) - at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:194) - at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) - at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2097) - at reactor.core.publisher.MonoCollectList$MonoCollectListSubscriber.onComplete(MonoCollectList.java:118) - at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) - at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) - at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:415) - at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:446) - at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:500) - at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:793) - at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at com.azure.core.http.netty.implementation.AzureSdkHandler.channelRead(AzureSdkHandler.java:224) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) - at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) - at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) - at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) - at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) - at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:530) - at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:469) - at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) - at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1407) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) - at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) - at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918) - at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) - at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) - at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) - at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) - at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) - at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:994) - at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) - at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) - at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_ce2579_1761266220542","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_ce2579_1761266220542","linkName":"mgmt:sender","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:38:30 [reactor-executor-4] WARN c.a.c.a.i.RequestResponseChannel - {"az.sdk.message":"Error in SendLinkHandler. Disposing unconfirmed sends.","exception":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99]","connectionId":"MF_ce2579_1761266220542","linkName":"mgmt"} -2025-10-24 09:38:30 [reactor-executor-4] ERROR c.a.m.e.i.ManagementChannel - Exception occurred: -The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99] -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Upstream connection publisher was completed. Terminating processor.","connectionId":"MF_ce2579_1761266220542","entityPath":"$management"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.AmqpChannelProcessor - {"az.sdk.message":"Transient error occurred. Retrying.","exception":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30, errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: $management, REFERENCE_ID: mgmt:sender, LINK_CREDIT: 99]","connectionId":"MF_ce2579_1761266220542","entityPath":"$management","tryCount":0,"intervalMs":1800} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkRemoteClose","connectionId":"MF_ce2579_1761266220542","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"Local link state is not closed.","connectionId":"MF_ce2579_1761266220542","linkName":"mgmt:receiver","entityPath":"$management","state":"ACTIVE"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose","connectionId":"MF_ce2579_1761266220542","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30","sessionName":"mgmt-session"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionRemoteClose closing a local session.","connectionId":"MF_ce2579_1761266220542","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30","sessionName":"mgmt-session"} -2025-10-24 09:38:30 [reactor-executor-4] ERROR reactor.core.publisher.Operators - Operator called default onErrorDropped -reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_ce2579_1761266220542], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] -Caused by: com.azure.core.amqp.exception.AmqpException: onSessionRemoteClose connectionId[MF_ce2579_1761266220542], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session] - at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:90) - at com.azure.core.amqp.implementation.handler.SessionHandler.onSessionRemoteClose(SessionHandler.java:157) - at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:152) - at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) - at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) - at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) - at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91) - at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68) - at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28) +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 20 common frames omitted +2025-10-26 00:14:10 [partition-pump-0-3] ERROR c.u.h.n.event.EventHandler - 이벤트 처리 중 오류 발생 +java.lang.RuntimeException: 알림 이벤트 처리 실패 + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:209) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Error occurred. Removing and disposing session","exception":"onSessionRemoteClose connectionId[MF_ce2579_1761266220542], entityName[mgmt-session] condition[Error{condition=amqp:connection:forced, description='The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30', info=null}], errorContext[NAMESPACE: hgzero-eventhub-ns.servicebus.windows.net. ERROR CONTEXT: N/A, PATH: mgmt-session]","connectionId":"MF_ce2579_1761266220542","sessionName":"mgmt-session"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionRemoteClose","connectionId":"MF_ce2579_1761266220542","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.GlobalIOHandler - {"az.sdk.message":"onTransportClosed","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionLocalClose","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionUnbound","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net","state":"CLOSED","remoteState":"CLOSED"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Disposing of ReactorConnection.","connectionId":"MF_ce2579_1761266220542","isTransient":false,"isInitiatedByClient":false,"shutdownMessage":"Connection handler closed."} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Channel is closed. Requesting upstream.","entityPath":"notification-events"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Connection not requested, yet. Requesting one.","entityPath":"notification-events"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.m.e.EventHubClientBuilder - {"az.sdk.message":"Emitting a single connection.","connectionId":"MF_a542ff_1761266310622"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.m.e.i.EventHubConnectionProcessor - {"az.sdk.message":"Setting next AMQP channel.","entityPath":"notification-events"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.SendLinkHandler - {"az.sdk.message":"onLinkFinal","connectionId":"MF_ce2579_1761266220542","linkName":"mgmt:sender","entityPath":"$management"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.h.ReceiveLinkHandler2 - {"az.sdk.message":"onLinkFinal","connectionId":"MF_ce2579_1761266220542","linkName":"mgmt:receiver","entityPath":"$management"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.SessionHandler - {"az.sdk.message":"onSessionFinal.","connectionId":"MF_ce2579_1761266220542","errorCondition":"amqp:connection:forced","errorDescription":"The connection was closed by container '59380e37ef814b1a82372fe5b86fd2ec_G26' because it did not have any active links in the past 60000 milliseconds. TrackingId:59380e37ef814b1a82372fe5b86fd2ec_G26, SystemTracker:gateway5, Timestamp:2025-10-24T00:38:30","sessionName":"mgmt-session"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.handler.ConnectionHandler - {"az.sdk.message":"onConnectionFinal","connectionId":"MF_ce2579_1761266220542","hostName":"hgzero-eventhub-ns.servicebus.windows.net"} -2025-10-24 09:38:30 [reactor-executor-4] INFO c.a.c.a.i.ReactorConnection - {"az.sdk.message":"Closing executor.","connectionId":"MF_ce2579_1761266220542"} +Caused by: org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + ... 16 common frames omitted +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 20 common frames omitted +2025-10-26 00:14:10 [partition-pump-0-3] ERROR c.a.m.eventhubs.PartitionPumpManager - Error in event processing callback +2025-10-26 00:14:10 [partition-pump-0-3] ERROR c.a.m.eventhubs.PartitionPumpManager - Error in event processing callback +2025-10-26 00:14:10 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed. +2025-10-26 00:14:10 [partition-pump-0-3] INFO c.a.m.e.i.PartitionProcessor - {"az.sdk.message":"Closing partition processor with close reason LOST_PARTITION_OWNERSHIP","partitionId":"0"} +2025-10-26 00:14:10 [partition-pump-0-3] INFO c.a.m.eventhubs.PartitionPumpManager - {"az.sdk.message":"Closing consumer.","partitionId":"0"} +2025-10-26 00:14:10 [partition-pump-0-3] ERROR c.a.m.eventhubs.PartitionPumpManager - Error in event processing callback +2025-10-26 00:14:10 [partition-pump-0-3] ERROR reactor.core.scheduler.Schedulers - Scheduler worker in group main failed with an uncaught exception +com.azure.messaging.eventhubs.implementation.PartitionProcessorException: Error in event processing callback + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:333) + at com.azure.messaging.eventhubs.PartitionPumpManager.lambda$startPartitionPump$2(PartitionPumpManager.java:216) + at reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:446) + at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:533) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) + at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) + at java.base/java.lang.Thread.run(Thread.java:1583) +Caused by: com.azure.messaging.eventhubs.implementation.PartitionProcessorException: Error in event processing callback + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:268) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvents(PartitionPumpManager.java:328) + ... 11 common frames omitted +Caused by: java.lang.RuntimeException: 이벤트 처리 실패 + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:81) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:28) + at com.azure.messaging.eventhubs.EventProcessorClientBuilder$1.processEvent(EventProcessorClientBuilder.java:881) + at com.azure.messaging.eventhubs.PartitionPumpManager.processEvent(PartitionPumpManager.java:258) + ... 12 common frames omitted +Caused by: java.lang.RuntimeException: 알림 이벤트 처리 실패 + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:209) + at com.unicorn.hgzero.notification.event.EventHandler.accept(EventHandler.java:69) + ... 15 common frames omitted +Caused by: org.springframework.retry.backoff.BackOffInterruptedException: Thread interrupted while sleeping + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:251) + at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:377) + at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230) + at com.unicorn.hgzero.notification.event.EventHandler.processNotificationRequestEvent(EventHandler.java:219) + at com.unicorn.hgzero.notification.event.EventHandler.handleNotificationEvent(EventHandler.java:201) + ... 16 common frames omitted +Caused by: java.lang.InterruptedException: sleep interrupted + at java.base/java.lang.Thread.sleep0(Native Method) + at java.base/java.lang.Thread.sleep(Thread.java:509) + at org.springframework.retry.backoff.ThreadWaitSleeper.sleep(ThreadWaitSleeper.java:31) + at org.springframework.retry.backoff.ExponentialBackOffPolicy.backOff(ExponentialBackOffPolicy.java:247) + ... 20 common frames omitted diff --git a/notification/logs/notification-service.log.2025-10-24.0.gz b/notification/logs/notification-service.log.2025-10-24.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..5658eb4cbb430f604fea973494499e3269c9bbf7 GIT binary patch literal 41300 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Πm;(s;n1Ya#G? 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 literal 0 HcmV?d00001 diff --git a/notification/logs/notification-service.log.2025-10-25.0.gz b/notification/logs/notification-service.log.2025-10-25.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..983a9a4f48545f196b9f0ffe8d4ad6032ce897aa GIT binary patch literal 236683 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

  • g(j!++ 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 bvIS9Mu1}gGQ(5f@X_(*}=oV)Yg~KWUKb~ra literal 0 HcmV?d00001 diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/config/BlobStorageConfig.java b/notification/src/main/java/com/unicorn/hgzero/notification/config/BlobStorageConfig.java index 3284d70..c982e9d 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/config/BlobStorageConfig.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/config/BlobStorageConfig.java @@ -4,6 +4,7 @@ import com.azure.storage.blob.BlobContainerAsyncClient; import com.azure.storage.blob.BlobContainerClientBuilder; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -19,6 +20,11 @@ import org.springframework.context.annotation.Configuration; */ @Slf4j @Configuration +@ConditionalOnProperty( + name = "azure.eventhub.enabled", + havingValue = "true", + matchIfMissing = false +) public class BlobStorageConfig { @Value("${azure.storage.connection-string}") diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/config/EventHubConfig.java b/notification/src/main/java/com/unicorn/hgzero/notification/config/EventHubConfig.java index e789ae5..f171247 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/config/EventHubConfig.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/config/EventHubConfig.java @@ -7,6 +7,7 @@ import com.azure.messaging.eventhubs.models.EventContext; import com.azure.storage.blob.BlobContainerAsyncClient; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -24,6 +25,11 @@ import java.util.function.Consumer; */ @Slf4j @Configuration +@ConditionalOnProperty( + name = "azure.eventhub.enabled", + havingValue = "true", + matchIfMissing = false +) public class EventHubConfig { @Value("${azure.eventhub.connection-string}") diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/domain/Notification.java b/notification/src/main/java/com/unicorn/hgzero/notification/domain/Notification.java index 748ce78..481994a 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/domain/Notification.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/domain/Notification.java @@ -218,7 +218,7 @@ public class Notification { * 알림 유형 Enum */ public enum NotificationType { - INVITATION, // 회의 초대 + MEETING_INVITATION, // 회의 초대 TODO_ASSIGNED, // Todo 할당 TODO_REMINDER, // Todo 리마인더 MEETING_REMINDER, // 회의 리마인더 diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/domain/NotificationSetting.java b/notification/src/main/java/com/unicorn/hgzero/notification/domain/NotificationSetting.java index c3e7e8b..3510937 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/domain/NotificationSetting.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/domain/NotificationSetting.java @@ -176,7 +176,7 @@ public class NotificationSetting { */ public boolean isNotificationTypeEnabled(Notification.NotificationType notificationType) { return switch (notificationType) { - case INVITATION -> invitationEnabled; + case MEETING_INVITATION -> invitationEnabled; case TODO_ASSIGNED -> todoAssignedEnabled; case TODO_REMINDER -> todoReminderEnabled; case MEETING_REMINDER -> meetingReminderEnabled; diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/event/EventHandler.java b/notification/src/main/java/com/unicorn/hgzero/notification/event/EventHandler.java index 77d902b..24c3ee0 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/event/EventHandler.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/event/EventHandler.java @@ -3,10 +3,12 @@ package com.unicorn.hgzero.notification.event; import com.azure.messaging.eventhubs.models.EventContext; import com.fasterxml.jackson.databind.ObjectMapper; import com.unicorn.hgzero.notification.event.event.MeetingCreatedEvent; +import com.unicorn.hgzero.notification.event.event.NotificationRequestEvent; import com.unicorn.hgzero.notification.event.event.TodoAssignedEvent; import com.unicorn.hgzero.notification.service.NotificationService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.retry.support.RetryTemplate; import org.springframework.stereotype.Component; @@ -26,6 +28,11 @@ import java.util.function.Consumer; @Slf4j @Component @RequiredArgsConstructor +@ConditionalOnProperty( + name = "azure.eventhub.enabled", + havingValue = "true", + matchIfMissing = false +) public class EventHandler implements Consumer { private final NotificationService notificationService; @@ -46,7 +53,7 @@ public class EventHandler implements Consumer { // 이벤트 속성 추출 Map properties = eventData.getProperties(); String topic = (String) properties.get("topic"); - String eventType = (String) properties.get("eventType"); + String eventType = (String) properties.get("type"); log.info("이벤트 수신 - Topic: {}, EventType: {}", topic, eventType); @@ -58,6 +65,8 @@ public class EventHandler implements Consumer { handleMeetingEvent(eventType, eventBody); } else if ("todo".equals(topic)) { handleTodoEvent(eventType, eventBody); + } else if ("notification".equals(topic)) { + handleNotificationEvent(eventType, eventBody); } else { log.warn("알 수 없는 토픽: {}", topic); } @@ -174,4 +183,47 @@ public class EventHandler implements Consumer { return null; }); } + + /** + * 알림 관련 이벤트 처리 + * + * @param eventType 이벤트 유형 + * @param eventBody 이벤트 본문 (JSON) + */ + private void handleNotificationEvent(String eventType, String eventBody) { + try { + switch (eventType) { + case "NOTIFICATION_REQUEST": + NotificationRequestEvent notificationEvent = objectMapper.readValue( + eventBody, + NotificationRequestEvent.class + ); + processNotificationRequestEvent(notificationEvent); + break; + + default: + log.warn("알 수 없는 알림 이벤트 유형: {}", eventType); + } + } catch (Exception e) { + log.error("알림 이벤트 처리 중 오류 발생 - EventType: {}", eventType, e); + throw new RuntimeException("알림 이벤트 처리 실패", e); + } + } + + /** + * 알림 요청 이벤트 처리 (재시도 지원) + * + * @param event 알림 요청 이벤트 + */ + private void processNotificationRequestEvent(NotificationRequestEvent event) { + retryTemplate.execute(context -> { + log.info("알림 발송 시작 - Type: {}, EventId: {}", + event.getNotificationType(), event.getEventId()); + + notificationService.processNotification(event); + + log.info("알림 발송 완료 - Type: {}", event.getNotificationType()); + return null; + }); + } } diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/event/event/NotificationRequestEvent.java b/notification/src/main/java/com/unicorn/hgzero/notification/event/event/NotificationRequestEvent.java new file mode 100644 index 0000000..363c15d --- /dev/null +++ b/notification/src/main/java/com/unicorn/hgzero/notification/event/event/NotificationRequestEvent.java @@ -0,0 +1,176 @@ +package com.unicorn.hgzero.notification.event.event; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +/** + * 알림 발송 요청 이벤트 DTO + * + * 범용 알림 발송 이벤트 + * 다양한 서비스에서 알림 발송 시 사용 + * + * @author 준호 (Backend Developer) + * @version 1.0 + * @since 2025-10-25 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class NotificationRequestEvent { + + /** + * 이벤트 고유 ID (중복 발송 방지용) + */ + private String eventId; + + /** + * 발송 채널 (EMAIL, SMS) + */ + private String channel; + + /** + * 알림 유형 (INVITATION, TODO_ASSIGNED, REMINDER 등) + */ + private String notificationType; + + /** + * 참조 대상 유형 (MEETING, TODO) + */ + private String referenceType; + + /** + * 참조 대상 ID + */ + private String referenceId; + + /** + * 관련 엔티티 유형 (이벤트 메시지의 relatedEntityType 매핑용) + */ + private String relatedEntityType; + + /** + * 관련 엔티티 ID (이벤트 메시지의 relatedEntityId 매핑용) + */ + private String relatedEntityId; + + /** + * 요청자 ID + */ + private String requestedBy; + + /** + * 요청자 이름 + */ + private String requestedByName; + + /** + * 우선순위 + */ + private String priority; + + /** + * 발신자 + */ + private String sender; + + /** + * 제목 (subject) + */ + private String subject; + + /** + * 예약 발송 시간 + */ + private LocalDateTime scheduledTime; + + /** + * 이벤트 발생 시간 (배열 형태로 수신) + */ + private java.util.List eventTime; + + /** + * 알림 제목 + */ + private String title; + + /** + * 알림 메시지 + */ + private String message; + + /** + * 수신자 목록 (다중 수신자용) + */ + private List recipients; + + /** + * 수신자 ID (단일 수신자용) + */ + private String recipientId; + + /** + * 수신자 이름 (단일 수신자용) + */ + private String recipientName; + + /** + * 수신자 이메일 (단일 수신자용) + */ + private String recipientEmail; + + /** + * 참여자 (단일 수신자용, recipients와 함께 사용 가능) + */ + private String participant; + + /** + * 템플릿 ID (이메일 템플릿) + */ + private String templateId; + + /** + * 템플릿 데이터 (템플릿 렌더링에 사용) + */ + private Map templateData; + + /** + * 추가 메타데이터 (회의 정보 등) + */ + private Map metadata; + + /** + * 이벤트 발행 일시 + */ + private LocalDateTime createdAt; + + /** + * 수신자 정보 DTO + */ + @Data + @NoArgsConstructor + @AllArgsConstructor + @Builder + public static class RecipientInfo { + /** + * 사용자 ID + */ + private String userId; + + /** + * 사용자 이름 + */ + private String name; + + /** + * 사용자 이메일 + */ + private String email; + } +} diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/event/processor/EventProcessorService.java b/notification/src/main/java/com/unicorn/hgzero/notification/event/processor/EventProcessorService.java index f05e2ae..556bb1a 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/event/processor/EventProcessorService.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/event/processor/EventProcessorService.java @@ -5,6 +5,7 @@ import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.retry.annotation.Backoff; import org.springframework.retry.annotation.Retryable; import org.springframework.stereotype.Service; @@ -22,6 +23,11 @@ import org.springframework.stereotype.Service; @Slf4j @Service @RequiredArgsConstructor +@ConditionalOnProperty( + name = "azure.eventhub.enabled", + havingValue = "true", + matchIfMissing = false +) public class EventProcessorService { private final EventProcessorClient eventProcessorClient; diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/service/EmailNotifier.java b/notification/src/main/java/com/unicorn/hgzero/notification/service/EmailNotifier.java new file mode 100644 index 0000000..40ab82e --- /dev/null +++ b/notification/src/main/java/com/unicorn/hgzero/notification/service/EmailNotifier.java @@ -0,0 +1,173 @@ +package com.unicorn.hgzero.notification.service; + +import jakarta.mail.MessagingException; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.retry.support.RetryTemplate; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 이메일 알림 발송 서비스 + * + * 템플릿 로드, 렌더링, 이메일 발송 통합 처리 + * 재시도 로직 포함 + * + * @author 준호 (Backend Developer) + * @version 1.0 + * @since 2025-10-25 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class EmailNotifier { + + private final EmailTemplateService templateService; + private final EmailClient emailClient; + private final RetryTemplate retryTemplate; + + /** + * 이메일 발송 (재시도 지원) + * + * @param recipientEmail 수신자 이메일 + * @param subject 이메일 제목 + * @param htmlContent 이메일 HTML 본문 + * @return 발송 성공 여부 + */ + public boolean sendEmail(String recipientEmail, String subject, String htmlContent) { + try { + return retryTemplate.execute(context -> { + try { + log.info("이메일 발송 시도 #{} - Email: {}", context.getRetryCount() + 1, recipientEmail); + + emailClient.sendHtmlEmail(recipientEmail, subject, htmlContent); + + log.info("이메일 발송 성공 - Email: {}", recipientEmail); + return true; + + } catch (MessagingException e) { + log.error("이메일 발송 실패 (재시도 #{}) - Email: {}", + context.getRetryCount() + 1, recipientEmail, e); + + if (context.getRetryCount() >= 2) { + log.error("최대 재시도 횟수 초과 - Email: {}", recipientEmail); + return false; + } + + throw new RuntimeException("이메일 발송 실패", e); + } + }); + + } catch (Exception e) { + log.error("이메일 발송 최종 실패 - Email: {}", recipientEmail, e); + return false; + } + } + + /** + * 템플릿 기반 이메일 발송 + * + * 템플릿을 로드하고 데이터를 렌더링하여 이메일 발송 + * + * @param recipientEmail 수신자 이메일 + * @param subject 이메일 제목 + * @param templateId 템플릿 ID + * @param templateData 템플릿 데이터 + * @return 발송 성공 여부 + */ + public boolean sendTemplateEmail( + String recipientEmail, + String subject, + String templateId, + Map templateData + ) { + try { + log.info("템플릿 이메일 발송 시작 - Template: {}, Email: {}", templateId, recipientEmail); + + // 템플릿 로드 및 렌더링 + String htmlContent = loadAndRenderTemplate(templateId, templateData); + + // 이메일 발송 + return sendEmail(recipientEmail, subject, htmlContent); + + } catch (Exception e) { + log.error("템플릿 이메일 발송 실패 - Template: {}, Email: {}", templateId, recipientEmail, e); + return false; + } + } + + /** + * 템플릿 로드 및 렌더링 + * + * @param templateId 템플릿 ID + * @param templateData 템플릿 데이터 + * @return 렌더링된 HTML 본문 + */ + public String loadAndRenderTemplate(String templateId, Map templateData) { + log.info("템플릿 로드 중 - TemplateId: {}", templateId); + + String htmlContent; + + switch (templateId) { + case "meeting-invitation": + htmlContent = templateService.renderMeetingInvitation(templateData); + break; + + case "todo-assigned": + htmlContent = templateService.renderTodoAssigned(templateData); + break; + + case "meeting-reminder": + // 향후 구현 + log.warn("회의 알림 템플릿은 아직 구현되지 않았습니다"); + htmlContent = renderDefaultTemplate(templateData); + break; + + case "todo-reminder": + // 향후 구현 + log.warn("Todo 알림 템플릿은 아직 구현되지 않았습니다"); + htmlContent = renderDefaultTemplate(templateData); + break; + + case "minutes-updated": + // 향후 구현 + log.warn("회의록 수정 템플릿은 아직 구현되지 않았습니다"); + htmlContent = renderDefaultTemplate(templateData); + break; + + default: + log.warn("알 수 없는 템플릿 ID: {} - 기본 템플릿 사용", templateId); + htmlContent = renderDefaultTemplate(templateData); + break; + } + + log.info("템플릿 렌더링 완료 - TemplateId: {}", templateId); + return htmlContent; + } + + /** + * 기본 템플릿 렌더링 + * + * @param templateData 템플릿 데이터 + * @return 렌더링된 HTML 본문 + */ + private String renderDefaultTemplate(Map templateData) { + String title = (String) templateData.getOrDefault("title", "알림"); + String message = (String) templateData.getOrDefault("message", ""); + + return String.format(""" + + + + + %s + + +

    %s

    +

    %s

    + + + """, title, title, message); + } +} diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationRouter.java b/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationRouter.java new file mode 100644 index 0000000..36582c8 --- /dev/null +++ b/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationRouter.java @@ -0,0 +1,127 @@ +package com.unicorn.hgzero.notification.service; + +import com.unicorn.hgzero.notification.domain.Notification; +import com.unicorn.hgzero.notification.domain.NotificationSetting; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 알림 채널 라우팅 서비스 + * + * 사용자 설정에 따라 적절한 알림 채널을 결정 + * 이메일 우선, SMS 백업 전략 사용 + * + * @author 준호 (Backend Developer) + * @version 1.0 + * @since 2025-10-25 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class NotificationRouter { + + private final EmailNotifier emailNotifier; + + /** + * 알림 라우팅 및 발송 + * + * @param eventId 이벤트 ID + * @param recipientEmail 수신자 이메일 + * @param recipientName 수신자 이름 + * @param subject 이메일 제목 + * @param htmlContent 이메일 HTML 본문 + * @param preferences 사용자 알림 설정 + * @param requestedChannel 요청된 채널 + * @return 발송 성공 여부 + */ + public boolean routeNotification( + String eventId, + String recipientEmail, + String recipientName, + String subject, + String htmlContent, + NotificationSetting preferences, + Notification.NotificationChannel requestedChannel + ) { + log.info("알림 라우팅 시작 - Email: {}, Channel: {}", recipientEmail, requestedChannel); + + // 채널 결정 + Notification.NotificationChannel selectedChannel = determineChannel(preferences, requestedChannel); + + log.info("선택된 채널: {}", selectedChannel); + + // 채널별 발송 + boolean success = false; + + switch (selectedChannel) { + case EMAIL: + success = emailNotifier.sendEmail(recipientEmail, subject, htmlContent); + break; + + case SMS: + // SMS 발송 로직 (향후 구현) + log.warn("SMS 채널은 아직 구현되지 않았습니다. 이메일로 대체 발송 시도"); + success = emailNotifier.sendEmail(recipientEmail, subject, htmlContent); + break; + + case PUSH: + // PUSH 알림 로직 (향후 구현) + log.warn("PUSH 채널은 아직 구현되지 않았습니다. 이메일로 대체 발송 시도"); + success = emailNotifier.sendEmail(recipientEmail, subject, htmlContent); + break; + + default: + log.error("알 수 없는 채널: {}", selectedChannel); + break; + } + + if (success) { + log.info("알림 발송 성공 - Email: {}, Channel: {}", recipientEmail, selectedChannel); + } else { + log.error("알림 발송 실패 - Email: {}, Channel: {}", recipientEmail, selectedChannel); + } + + return success; + } + + /** + * 채널 결정 로직 + * + * 사용자 설정과 요청 채널을 고려하여 최종 채널 결정 + * 이메일 우선, SMS 백업 전략 + * + * @param preferences 사용자 알림 설정 + * @param requestedChannel 요청된 채널 + * @return 선택된 채널 + */ + private Notification.NotificationChannel determineChannel( + NotificationSetting preferences, + Notification.NotificationChannel requestedChannel + ) { + // 사용자 설정이 없으면 요청된 채널 사용 + if (preferences == null) { + log.info("사용자 설정 없음 - 요청 채널 사용: {}", requestedChannel); + return requestedChannel != null ? requestedChannel : Notification.NotificationChannel.EMAIL; + } + + // 이메일 우선 전략 + if (requestedChannel == Notification.NotificationChannel.EMAIL && preferences.isChannelEnabled(Notification.NotificationChannel.EMAIL)) { + return Notification.NotificationChannel.EMAIL; + } + + // SMS 백업 전략 + if (requestedChannel == Notification.NotificationChannel.SMS && preferences.isChannelEnabled(Notification.NotificationChannel.SMS)) { + return Notification.NotificationChannel.SMS; + } + + // PUSH 알림 전략 + if (requestedChannel == Notification.NotificationChannel.PUSH && preferences.isChannelEnabled(Notification.NotificationChannel.PUSH)) { + return Notification.NotificationChannel.PUSH; + } + + // 기본값: 이메일 + log.info("요청된 채널 사용 불가 - 기본 이메일 채널 사용"); + return Notification.NotificationChannel.EMAIL; + } +} diff --git a/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationService.java b/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationService.java index 2f37f37..fc1b11f 100644 --- a/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationService.java +++ b/notification/src/main/java/com/unicorn/hgzero/notification/service/NotificationService.java @@ -4,6 +4,7 @@ import com.unicorn.hgzero.notification.domain.Notification; import com.unicorn.hgzero.notification.domain.NotificationRecipient; import com.unicorn.hgzero.notification.domain.NotificationSetting; import com.unicorn.hgzero.notification.event.event.MeetingCreatedEvent; +import com.unicorn.hgzero.notification.event.event.NotificationRequestEvent; import com.unicorn.hgzero.notification.event.event.TodoAssignedEvent; import com.unicorn.hgzero.notification.repository.NotificationRecipientRepository; import com.unicorn.hgzero.notification.repository.NotificationRepository; @@ -41,6 +42,8 @@ public class NotificationService { private final NotificationSettingRepository settingRepository; private final EmailTemplateService templateService; private final EmailClient emailClient; + private final NotificationRouter notificationRouter; + private final EmailNotifier emailNotifier; private static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); @@ -64,7 +67,7 @@ public class NotificationService { .eventId(event.getEventId()) .referenceId(event.getMeetingId()) .referenceType(Notification.ReferenceType.MEETING) - .notificationType(Notification.NotificationType.INVITATION) + .notificationType(Notification.NotificationType.MEETING_INVITATION) .title("회의 초대: " + event.getTitle()) .message(event.getDescription()) .status(Notification.NotificationStatus.PROCESSING) @@ -80,7 +83,7 @@ public class NotificationService { for (MeetingCreatedEvent.ParticipantInfo participant : event.getParticipants()) { try { // 3-1. 알림 설정 확인 - if (!canSendNotification(participant.getUserId(), Notification.NotificationType.INVITATION)) { + if (!canSendNotification(participant.getUserId(), Notification.NotificationType.MEETING_INVITATION)) { log.info("알림 설정에 의해 발송 제외 - UserId: {}", participant.getUserId()); continue; } @@ -251,6 +254,254 @@ public class NotificationService { log.info("Todo 할당 알림 처리 완료"); } + /** + * 범용 알림 발송 처리 + * + * NotificationRequest 이벤트를 처리하여 알림 발송 + * 중복 방지, 사용자 설정 확인, 채널 라우팅 포함 + * + * @param event 알림 발송 요청 이벤트 + */ + public void processNotification(NotificationRequestEvent event) { + // eventId가 없으면 UUID 생성 + String eventId = event.getEventId(); + if (eventId == null || eventId.isBlank()) { + eventId = java.util.UUID.randomUUID().toString(); + log.info("EventId가 없어 생성함 - EventId: {}", eventId); + } + + log.info("알림 발송 처리 시작 - EventId: {}, Type: {}", + eventId, event.getNotificationType()); + + // 1. 중복 발송 방지 체크 + if (notificationRepository.existsByEventId(eventId)) { + log.warn("이미 처리된 이벤트 - EventId: {}", eventId); + return; + } + + // 2. 알림 유형 및 참조 유형 변환 + Notification.NotificationType notificationType = parseNotificationType(event.getNotificationType()); + + // referenceType 또는 relatedEntityType 중 하나를 사용 + String referenceTypeStr = event.getReferenceType() != null + ? event.getReferenceType() + : event.getRelatedEntityType(); + Notification.ReferenceType referenceType = parseReferenceType(referenceTypeStr); + + // referenceId 또는 relatedEntityId 중 하나를 사용 + String referenceIdStr = event.getReferenceId() != null + ? event.getReferenceId() + : event.getRelatedEntityId(); + + Notification.NotificationChannel channel = parseChannel(event.getChannel()); + + // 3. 알림 엔티티 생성 + Notification notification = Notification.builder() + .eventId(eventId) + .referenceId(referenceIdStr) + .referenceType(referenceType) + .notificationType(notificationType) + .title(event.getTitle()) + .message(event.getMessage()) + .status(Notification.NotificationStatus.PROCESSING) + .channel(channel) + .build(); + + notificationRepository.save(notification); + + // 4. 수신자 리스트 구성 (단일 수신자 또는 다중 수신자) + java.util.List recipientList = new java.util.ArrayList<>(); + + // 4-1. 단일 수신자 필드가 있으면 추가 + if (event.getRecipientEmail() != null && !event.getRecipientEmail().isBlank()) { + NotificationRequestEvent.RecipientInfo singleRecipient = NotificationRequestEvent.RecipientInfo.builder() + .userId(event.getRecipientId()) + .name(event.getRecipientName()) + .email(event.getRecipientEmail()) + .build(); + recipientList.add(singleRecipient); + log.info("단일 수신자 처리 - Email: {}", event.getRecipientEmail()); + } + + // 4-2. recipients 리스트가 있으면 추가 + if (event.getRecipients() != null && !event.getRecipients().isEmpty()) { + recipientList.addAll(event.getRecipients()); + log.info("다중 수신자 처리 - Count: {}", event.getRecipients().size()); + } + + // 4-3. 수신자가 없으면 경고 후 종료 + if (recipientList.isEmpty()) { + log.warn("수신자가 없습니다 - EventId: {}", event.getEventId()); + notification.updateStatus(Notification.NotificationStatus.FAILED); + notificationRepository.save(notification); + return; + } + + // 5. 각 수신자에게 알림 발송 + int successCount = 0; + int failureCount = 0; + + for (NotificationRequestEvent.RecipientInfo recipient : recipientList) { + try { + // 5-1. 사용자 알림 설정 조회 + String userId = recipient.getUserId(); + Optional preferences = Optional.empty(); + + if (userId != null && !userId.isBlank()) { + preferences = settingRepository.findByUserId(userId); + + // 5-2. 알림 설정 확인 (userId가 있는 경우만) + if (!canSendNotification(userId, notificationType)) { + log.info("알림 설정에 의해 발송 제외 - UserId: {}", userId); + continue; + } + } + + // 5-3. 수신자 엔티티 생성 + NotificationRecipient recipientEntity = NotificationRecipient.builder() + .recipientUserId(userId) + .recipientName(recipient.getName()) + .recipientEmail(recipient.getEmail()) + .status(NotificationRecipient.RecipientStatus.PENDING) + .build(); + + notification.addRecipient(recipientEntity); + + // 5-4. 템플릿 렌더링 (템플릿 ID가 있는 경우) + String htmlContent; + if (event.getTemplateId() != null && event.getTemplateData() != null) { + htmlContent = emailNotifier.loadAndRenderTemplate( + event.getTemplateId(), + event.getTemplateData() + ); + } else { + // 기본 메시지 사용 + htmlContent = createDefaultHtmlContent(event.getTitle(), event.getMessage()); + } + + // 5-5. 채널 라우팅 및 발송 + boolean sent = notificationRouter.routeNotification( + eventId, + recipient.getEmail(), + recipient.getName(), + event.getTitle(), + htmlContent, + preferences.orElse(null), + channel + ); + + // 5-6. 발송 결과 처리 + if (sent) { + recipientEntity.markAsSent(); + notification.incrementSentCount(); + successCount++; + log.info("알림 발송 성공 - Email: {}", recipient.getEmail()); + } else { + recipientEntity.markAsFailed("발송 실패"); + notification.incrementFailedCount(); + failureCount++; + log.error("알림 발송 실패 - Email: {}", recipient.getEmail()); + } + + } catch (Exception e) { + // 5-7. 예외 처리 + NotificationRecipient recipientEntity = notification.getRecipients().stream() + .filter(r -> recipient.getEmail().equals(r.getRecipientEmail())) + .findFirst() + .orElse(null); + + if (recipientEntity != null) { + recipientEntity.markAsFailed(e.getMessage()); + notification.incrementFailedCount(); + } + + failureCount++; + log.error("알림 발송 중 오류 발생 - Email: {}", recipient.getEmail(), e); + } + } + + // 5. 알림 상태 업데이트 + if (successCount > 0 && failureCount == 0) { + notification.updateStatus(Notification.NotificationStatus.SENT); + } else if (successCount > 0 && failureCount > 0) { + notification.updateStatus(Notification.NotificationStatus.PARTIAL); + } else { + notification.updateStatus(Notification.NotificationStatus.FAILED); + } + + notificationRepository.save(notification); + + log.info("알림 발송 처리 완료 - 성공: {}, 실패: {}", successCount, failureCount); + } + + /** + * 알림 유형 문자열을 Enum으로 변환 + * + * @param typeString 알림 유형 문자열 + * @return 알림 유형 Enum + */ + private Notification.NotificationType parseNotificationType(String typeString) { + try { + return Notification.NotificationType.valueOf(typeString); + } catch (Exception e) { + log.warn("알 수 없는 알림 유형: {} - MEETING_INVITATION으로 기본 설정", typeString); + return Notification.NotificationType.MEETING_INVITATION; + } + } + + /** + * 참조 유형 문자열을 Enum으로 변환 + * + * @param typeString 참조 유형 문자열 + * @return 참조 유형 Enum + */ + private Notification.ReferenceType parseReferenceType(String typeString) { + try { + return Notification.ReferenceType.valueOf(typeString); + } catch (Exception e) { + log.warn("알 수 없는 참조 유형: {} - MEETING으로 기본 설정", typeString); + return Notification.ReferenceType.MEETING; + } + } + + /** + * 채널 문자열을 Enum으로 변환 + * + * @param channelString 채널 문자열 + * @return 채널 Enum + */ + private Notification.NotificationChannel parseChannel(String channelString) { + try { + return Notification.NotificationChannel.valueOf(channelString); + } catch (Exception e) { + log.warn("알 수 없는 채널: {} - EMAIL로 기본 설정", channelString); + return Notification.NotificationChannel.EMAIL; + } + } + + /** + * 기본 HTML 콘텐츠 생성 + * + * @param title 제목 + * @param message 메시지 + * @return HTML 본문 + */ + private String createDefaultHtmlContent(String title, String message) { + return String.format(""" + + + + + %s + + +

    %s

    +

    %s

    + + + """, title, title, message); + } + /** * 알림 발송 가능 여부 확인 * @@ -265,7 +516,7 @@ public class NotificationService { // 설정이 없으면 기본값으로 발송 허용 (이메일, 초대/할당 알림만) if (settingOpt.isEmpty()) { - return notificationType == Notification.NotificationType.INVITATION + return notificationType == Notification.NotificationType.MEETING_INVITATION || notificationType == Notification.NotificationType.TODO_ASSIGNED; } diff --git a/notification/src/main/resources/application.yml b/notification/src/main/resources/application.yml index 1ac7ed7..3dd5ec9 100644 --- a/notification/src/main/resources/application.yml +++ b/notification/src/main/resources/application.yml @@ -24,7 +24,7 @@ spring: format_sql: true use_sql_comments: true hibernate: - ddl-auto: ${JPA_DDL_AUTO:update} + ddl-auto: ${JPA_DDL_AUTO:none} # Redis Configuration data: @@ -83,6 +83,7 @@ cors: # Azure Event Hubs Configuration azure: eventhub: + enabled: ${AZURE_EVENTHUB_ENABLED:false} connection-string: ${EVENTHUB_CONNECTION_STRING:} name: ${EVENTHUB_NAME:notification-events} consumer-group: ${AZURE_EVENTHUB_CONSUMER_GROUP:$Default} @@ -90,7 +91,7 @@ azure: # Azure Blob Storage Configuration (for Event Hub Checkpoint) storage: connection-string: ${AZURE_STORAGE_CONNECTION_STRING:} - container-name: ${AZURE_STORAGE_CONTAINER_NAME:eventhub-checkpoints} + container-name: ${AZURE_STORAGE_CONTAINER_NAME:hgzero-checkpoints} # Notification Configuration notification: