diff --git a/kontor-spring/.gitattributes b/kontor-spring/.gitattributes index 097f9f9..8af972c 100644 --- a/kontor-spring/.gitattributes +++ b/kontor-spring/.gitattributes @@ -1,9 +1,3 @@ -# -# https://help.github.com/articles/dealing-with-line-endings/ -# -# Linux start script should use lf -/gradlew text eol=lf - -# These are Windows script files and should use crlf -*.bat text eol=crlf - +/gradlew text eol=lf +*.bat text eol=crlf +*.jar binary diff --git a/kontor-spring/.gitignore b/kontor-spring/.gitignore index 9896012..ac0ef07 100644 --- a/kontor-spring/.gitignore +++ b/kontor-spring/.gitignore @@ -1,33 +1,38 @@ -.gradle/ -.settings/ +node_modules +HELP.md +.gradle build/ -bin/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ -# Ignore Gradle GUI config -gradle-app.setting - -# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) -!gradle-wrapper.jar - -.project +### STS ### +.apt_generated .classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### .vscode/ -.idea/ -*.lock -logs/ -frontend/generated -frontend/index.html -package*.json -tsconfig.json -types.d.ts -node_modules/ -vite.* -kontor*Db -tags* -kontorHSQLDB* -.vs/ -.winget -src/main/resources/application-local.properties -src/main/resources/application-prod.properties -src/main/resources/application-*.yml -/uploaded-files/ diff --git a/kontor-spring/Containerfile b/kontor-spring/Containerfile index 34017e6..cc3c763 100644 --- a/kontor-spring/Containerfile +++ b/kontor-spring/Containerfile @@ -1,5 +1,5 @@ # ----------------------------------------------------------------------- # -FROM docker.io/library/gradle:8.7-jdk AS builder +FROM docker.io/library/gradle:9.5-jdk AS builder WORKDIR / COPY ./src/main/ ./src/main/ COPY ./frontend/ ./frontend/ @@ -10,7 +10,7 @@ COPY ./gradle/libs.versions.toml ./gradle/ RUN gradle bootJar --no-daemon # ----------------------------------------------------------------------- # -FROM docker.io/alpine/java:21-jdk AS run +FROM docker.io/alpine/java:25-jdk AS run RUN mkdir -p /logs diff --git a/kontor-spring/Makefile b/kontor-spring/Makefile deleted file mode 100644 index 55728ed..0000000 --- a/kontor-spring/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -.PYHONY: all - -all: - ./gradlew build - -docker: - ./gradlew dockerImage - diff --git a/kontor-spring/README.md b/kontor-spring/README.md deleted file mode 100644 index f24bbcd..0000000 --- a/kontor-spring/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# kontor-spring - -Kontor Anwendung mit Spring Boot und Vaadin \ No newline at end of file diff --git a/kontor-spring/build.gradle b/kontor-spring/build.gradle index e49cbac..a399437 100644 --- a/kontor-spring/build.gradle +++ b/kontor-spring/build.gradle @@ -1,104 +1,61 @@ -buildscript { - configurations.classpath { - resolutionStrategy.eachDependency { DependencyResolveDetails details -> - if (details.requested.group == 'com.burgstaller' && details.requested.name == 'okhttp-digest' && details.requested.version == '1.10') { - details.useTarget "io.github.rburgst:${details.requested.name}:1.21" - details.because 'Dependency has moved' - } - } - } - repositories { - mavenCentral() - maven { setUrl("https://nexus.thpeetz.de/repository/maven-central") } - maven { setUrl("https://maven.vaadin.com/vaadin-prereleases") } - maven { setUrl("https://repo.spring.io/milestone") } - } -} - plugins { - id 'java' - id 'application' + id 'java' id 'maven-publish' - id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.0" - id 'jvm-test-suite' - id 'jacoco' - id 'test-report-aggregation' - id 'jacoco-report-aggregation' alias(libs.plugins.spring.boot) alias(libs.plugins.spring.dependencies) - alias(libs.plugins.vaadin) - alias(libs.plugins.lombok) - //alias(libs.plugins.asciidoctorPdf) - //alias(libs.plugins.asciidoctorConvert) - //alias(libs.plugins.asciidoctorGems) - //id "de.infolektuell.typst" version "0.8.0" + alias(libs.plugins.vaadin) +} + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(25) + } } repositories { maven { setUrl("https://nexus.thpeetz.de/repository/maven-central") } - mavenCentral() - //ruby.gems() - maven { setUrl("https://maven.vaadin.com/vaadin-prereleases") } - maven { setUrl("https://repo.spring.io/milestone") } - maven { setUrl("https://maven.vaadin.com/vaadin-addons") } + mavenCentral() } -java { - sourceCompatibility = JavaVersion.VERSION_21 -} - -configurations { - developmentOnly - runtimeClasspath { - extendsFrom developmentOnly - } +ext { + set('vaadinVersion', "25.2.6") } dependencies { - implementation 'com.vaadin:vaadin-core' - implementation 'com.vaadin:vaadin-spring-boot-starter' - implementation 'org.springframework.boot:spring-boot-starter-artemis' - implementation 'org.springframework.boot:spring-boot-starter-security' - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-validation' - implementation 'org.apache.camel.springboot:camel-spring-boot-starter' + implementation 'org.springframework.boot:spring-boot-starter-actuator' + implementation 'org.springframework.boot:spring-boot-starter-artemis' + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-security' + developmentOnly 'com.vaadin:vaadin-dev' + implementation 'com.vaadin:vaadin-spring-boot-starter' + implementation 'org.apache.camel.springboot:camel-spring-boot-starter:4.22.0' implementation 'org.apache.camel.springboot:camel-jms-starter' implementation 'org.apache.activemq:artemis-jakarta-client' - //implementation libs.artemis - implementation 'org.springframework.boot:spring-boot-starter-actuator' - developmentOnly 'org.springframework.boot:spring-boot-devtools' - implementation 'io.micrometer:micrometer-registry-prometheus' + implementation libs.hypersistence + implementation libs.mail + compileOnly 'org.projectlombok:lombok' + developmentOnly 'org.springframework.boot:spring-boot-devtools' + runtimeOnly 'io.micrometer:micrometer-registry-prometheus' implementation 'org.springframework.security:spring-security-oauth2-jose' implementation 'org.springframework.security:spring-security-oauth2-resource-server' - implementation 'com.h2database:h2' - implementation libs.hsqldb - implementation 'org.postgresql:postgresql' - //runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' - implementation libs.hypersistence - implementation libs.mail - implementation libs.jackson - implementation libs.gson - implementation libs.json - implementation 'org.hibernate.orm:hibernate-community-dialects' - testImplementation('org.springframework.boot:spring-boot-starter-test') { - exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' - } - testImplementation 'org.springframework.security:spring-security-test' - testImplementation 'com.vaadin:vaadin-testbench-junit5' - testImplementation 'io.projectreactor:reactor-test' - testImplementation 'org.apache.camel:camel-test-spring-junit5' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' - compileOnly 'org.projectlombok:lombok' - annotationProcessor 'org.projectlombok:lombok' - //asciidoctorGems libs.rouge - //asciidoctorGems libs.diagram + runtimeOnly 'org.postgresql:postgresql' + runtimeOnly 'org.xerial:sqlite-jdbc' + //implementation 'org.hibernate.orm:hibernate-community-dialects' + annotationProcessor 'org.projectlombok:lombok' + annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' + testImplementation 'org.springframework.boot:spring-boot-starter-artemis-test' + testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa-test' + testImplementation 'org.springframework.boot:spring-boot-starter-security-test' + testCompileOnly 'org.projectlombok:lombok' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testAnnotationProcessor 'org.projectlombok:lombok' } dependencyManagement { - imports { + imports { mavenBom libs.vaadin.bom.get().toString() mavenBom libs.camel.bom.get().toString() - } + } } publishing { @@ -117,112 +74,15 @@ publishing { password = project.findProperty('nexusPassword') } } -// maven { -// name = "gitlabPackageRegistry" -// url = uri("https://gitlab.com/api/v4/projects/64726715/packages/maven") -// credentials(PasswordCredentials) -// } } } -application { - mainClass = 'de.thpeetz.kontor.Application' -} - bootRun { args = ["--spring.profiles.active=${project.properties['profile'] ?: 'prod'}"] } -task dockerImage(type: Exec) { - dependsOn(bootJar) - commandLine "docker", "build", ".", "-t", "kontor:${project.version}" -} - -vaadin { - productionMode = true -} - -testing { - suites { - configureEach { - useJUnitJupiter() - dependencies { - implementation project() - implementation 'com.vaadin:vaadin-core' - implementation 'com.vaadin:vaadin-spring-boot-starter' - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'com.h2database:h2' - implementation libs.hsqldb - implementation libs.sqlite.jdbc - //runtimeOnly 'com.mysql:mysql-connector-j' - runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' - implementation('org.springframework.boot:spring-boot-starter-test') { - exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' - } - implementation 'org.springframework.security:spring-security-test' - implementation 'com.vaadin:vaadin-testbench-junit5' - implementation 'io.projectreactor:reactor-test' - runtimeOnly 'org.junit.platform:junit-platform-launcher' - } - } - test(JvmTestSuite) { - testType = TestSuiteType.UNIT_TEST - targets { - all { - testTask.configure { - reports { - junitXml { - outputPerTestCase = true // defaults to false - mergeReruns = true // defaults to false - } - } - finalizedBy(jacocoTestReport) - } - } - } - } - integrationTest(JvmTestSuite) { - testType = "view-test" - targets { - all { - testTask.configure { - shouldRunAfter(test) - finalizedBy(jacocoTestReport) - } - } - } - } - } -} - -tasks.named('check') { - dependsOn(testing.suites.integrationTest) - dependsOn(testing.suites.test) - dependsOn tasks.named('testAggregateTestReport', TestReport) - dependsOn tasks.named('integrationTestAggregateTestReport', TestReport) -} - - -jacocoTestReport { - dependsOn test, integrationTest - reports { - xml.required = true - csv.required = false - } -} - -reporting { - reports { - testAggregateTestReport(AggregateTestReport) { - testType = TestSuiteType.UNIT_TEST - } - integrationTestAggregateTestReport(AggregateTestReport) { - testType = "view-test" - } - integrationTestCodeCoverageReport(JacocoCoverageReport) { - testType = "view-test" - } - } +tasks.named('test') { + useJUnitPlatform() } wrapper { diff --git a/kontor-spring/frontend/themes/kontor/theme.json b/kontor-spring/frontend/themes/kontor/theme.json deleted file mode 100644 index 0f7a81f..0000000 --- a/kontor-spring/frontend/themes/kontor/theme.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "lumoImports" : [ "typography", "color", "spacing", "badge", "utility" ] -} \ No newline at end of file diff --git a/kontor-spring/gradle.properties b/kontor-spring/gradle.properties index 9a561e0..ab5afd3 100644 --- a/kontor-spring/gradle.properties +++ b/kontor-spring/gradle.properties @@ -3,3 +3,4 @@ version=0.3.0-SNAPSHOT group=de.thpeetz nexusUser=kontor nexusPassword=kontorNexus +profile=local \ No newline at end of file diff --git a/kontor-spring/gradle/libs.versions.toml b/kontor-spring/gradle/libs.versions.toml index c6b06d2..fdd8742 100644 --- a/kontor-spring/gradle/libs.versions.toml +++ b/kontor-spring/gradle/libs.versions.toml @@ -1,24 +1,15 @@ [versions] -gradle = "8.6" -args4j = "2.33" -commonscli = "1.5.0" +gradle = "9.5.1" +springdependencies = "1.1.7" +springboot = "4.1.0" +vaadin = "25.2.6" junit = "5.8.2" logback = "1.1.2" -mockito = "1.9.5" -picoli = "4.7.0" slf4j = "1.7.22" hsqldb = "2.7.1" sqlite = "3.25.2" spotbugs = "6.0.7" -#asciidoctor = "4.0.2" -#rouge = "3.15.0" -#diagram = "2.2.2" -#diagram = "2.3.1" sonarqube = "3.3" -cimtConventions = "1.0.0-SNAPSHOT" -springboot = "3.2.5" -springdependencies = "1.1.4" -vaadin = "24.4.23" camel = "4.10.6" artemis = "2.41.0" lombok = "8.11" @@ -26,16 +17,15 @@ gson = "2.9.0" jackson = "2.16.1" json_simple = "1.1.1" mail = "1.6.2" -hypersistence = "3.9.10" +hypersistence = "3.15.4" [libraries] -args4j = { module = "args4j:args4j", version.ref = "args4j" } -commonscli = { module = "commons-cli:commons-cli", version.ref = "commonscli" } +vaadin-bom = { group = "com.vaadin", name = "vaadin-bom", version.ref = "vaadin" } +camel-bom = { module = "org.apache.camel.springboot:camel-spring-boot-bom", version.ref = "camel"} +artemis = { module = "org.apache.activemq:artemis-jms-server", version.ref = "artemis" } junit = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" } logbackCore = { module = "ch.qos.logback:logback-core", version.ref = "logback" } logbackClassic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" } -mockito = { module = "org.mockito:mockito-all", version.ref = "mockito" } -picocli = { module = "info.picocli:picocli", version.ref = "picoli" } slf4j = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" } hsqldb = { module = "org.hsqldb:hsqldb", version.ref = "hsqldb" } gson = { module = "com.google.code.gson:gson", version.ref = "gson" } @@ -43,15 +33,7 @@ jackson = { module = "com.fasterxml.jackson.core:jackson-databind", version.ref json = { module = "com.googlecode.json-simple:json-simple", version.ref ="json_simple" } mail = { module = "com.sun.mail:javax.mail", version.ref ="mail" } sqlite-jdbc = { module = "org.xerial:sqlite-jdbc", version.ref = "sqlite" } -hypersistence = { module = "io.hypersistence:hypersistence-utils-hibernate-63", version.ref = "hypersistence" } -vaadin-bom = { module = "com.vaadin:vaadin-bom", version.ref = "vaadin" } -camel-bom = { module = "org.apache.camel.springboot:camel-spring-boot-bom", version.ref = "camel"} -artemis = { module = "org.apache.activemq:artemis-jms-server", version.ref = "artemis" } -#asciidoctorGradleJvmGems = { module = "org.asciidoctor:asciidoctor-gradle-jvm-gems", version.ref= "asciidoctor" } -#asciidoctorGradleJvm = { module = "org.asciidoctor:asciidoctor-gradle-jvm", version.ref= "asciidoctor" } -#asciidoctorGradleJvmPdf = { module = "org.asciidoctor:asciidoctor-gradle-jvm-pdf", version.ref= "asciidoctor" } -#rouge = { module = "rubygems:rouge", version.ref = "rouge" } -#diagram = { module = "rubygems:asciidoctor-diagram", version.ref = "diagram" } +hypersistence = { module = "io.hypersistence:hypersistence-utils-hibernate-73", version.ref = "hypersistence" } [bundles] logback = ["logbackCore", "logbackClassic"] @@ -59,13 +41,6 @@ logback = ["logbackCore", "logbackClassic"] [plugins] spotbugs = { id = "com.github.spotbugs", version.ref = "spotbugs" } sonarqube = { id = "org.sonarqube", version.ref = "sonarqube" } -#asciidoctorPdf = { id = "org.asciidoctor.jvm.pdf", version.ref = "asciidoctor" } -#asciidoctorConvert = { id = "org.asciidoctor.jvm.convert", version.ref = "asciidoctor" } -#asciidoctorGems = { id = "org.asciidoctor.jvm.gems", version.ref = "asciidoctor" } -javaConvention = { id = "de.cimt.java-conventions", version.ref = "cimtConventions" } -applicationConvention = { id = "de.cimt.application-conventions", version.ref = "cimtConventions" } -libraryConvention = { id = "de.cimt.library-conventions", version.ref = "cimtConventions" } -#asciidoctorConvention = { id = "de.cimt.asciidoctor-conventions", version.ref = "cimtConventions" } spring-boot = { id = "org.springframework.boot", version.ref = "springboot"} spring-dependencies = { id = "io.spring.dependency-management", version.ref = "springdependencies" } vaadin = { id = "com.vaadin", version.ref = "vaadin" } diff --git a/kontor-spring/gradle/wrapper/gradle-wrapper.jar b/kontor-spring/gradle/wrapper/gradle-wrapper.jar index d64cd49..b1b8ef5 100644 Binary files a/kontor-spring/gradle/wrapper/gradle-wrapper.jar and b/kontor-spring/gradle/wrapper/gradle-wrapper.jar differ diff --git a/kontor-spring/gradle/wrapper/gradle-wrapper.properties b/kontor-spring/gradle/wrapper/gradle-wrapper.properties index a80b22c..df6a6ad 100644 --- a/kontor-spring/gradle/wrapper/gradle-wrapper.properties +++ b/kontor-spring/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,9 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip networkTimeout=10000 +retries=0 +retryBackOffMs=500 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/kontor-spring/gradlew b/kontor-spring/gradlew index 1aa94a4..b9bb139 100755 --- a/kontor-spring/gradlew +++ b/kontor-spring/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -84,7 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -112,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -170,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -203,15 +203,14 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/kontor-spring/gradlew.bat b/kontor-spring/gradlew.bat index 25da30d..24c62d5 100644 --- a/kontor-spring/gradlew.bat +++ b/kontor-spring/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## @@ -21,8 +23,8 @@ @rem @rem ########################################################################## -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions set DIRNAME=%~dp0 if "%DIRNAME%"=="" set DIRNAME=. @@ -49,7 +51,7 @@ echo. 1>&2 echo Please set the JAVA_HOME variable in your environment to match the 1>&2 echo location of your Java installation. 1>&2 -goto fail +"%COMSPEC%" /c exit 1 :findJavaFromJavaHome set JAVA_HOME=%JAVA_HOME:"=% @@ -63,30 +65,18 @@ echo. 1>&2 echo Please set the JAVA_HOME variable in your environment to match the 1>&2 echo location of your Java installation. 1>&2 -goto fail +"%COMSPEC%" /c exit 1 :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL% diff --git a/kontor-spring/logs/spring-boot-logger.log b/kontor-spring/logs/spring-boot-logger.log new file mode 100644 index 0000000..aa3a532 --- /dev/null +++ b/kontor-spring/logs/spring-boot-logger.log @@ -0,0 +1,2904 @@ +2026-08-13 09:56:33,394 INFO o.s.b.StartupInfoLogger [Test worker] Starting KontorSpringApplicationTests using Java 25.0.2 with PID 1663976 (started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 09:56:33,398 INFO o.s.b.SpringApplication [Test worker] The following 4 profiles are active: "local", "dev", "test", "prod" +2026-08-13 09:56:35,117 INFO o.s.d.r.c.RepositoryConfigurationDelegate [Test worker] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 09:56:35,157 INFO o.s.d.r.c.RepositoryConfigurationDelegate [Test worker] Finished Spring Data repository scanning in 21 ms. Found 0 JPA repository interfaces. +2026-08-13 09:56:36,179 INFO o.h.j.i.u.LogHelper [Test worker] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 09:56:36,241 INFO o.h.Version [Test worker] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 09:56:36,935 INFO o.s.o.j.p.SpringPersistenceUnitInfo [Test worker] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 09:56:36,992 INFO c.z.h.HikariDataSource [Test worker] HikariPool-1 - Starting... +2026-08-13 09:56:37,273 INFO c.z.h.p.HikariPool [Test worker] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@be9bf2e +2026-08-13 09:56:37,277 INFO c.z.h.HikariDataSource [Test worker] HikariPool-1 - Start completed. +2026-08-13 09:56:37,361 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [Test worker] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 09:56:37,599 INFO o.h.v.i.u.Version [Test worker] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 09:56:37,955 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [Test worker] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 09:56:38,007 INFO o.s.o.j.AbstractEntityManagerFactoryBean [Test worker] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 09:56:38,148 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [Test worker] 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 +2026-08-13 09:56:39,715 DEBUG o.a.a.a.u.UUIDGenerator [Test worker] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 09:56:40,158 WARN o.s.b.s.a.UserDetailsServiceAutoConfiguration [Test worker] + +Using generated security password: e3296083-cd14-4a2c-b536-dfffa38120e7 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2026-08-13 09:56:40,189 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [Test worker] Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2026-08-13 09:56:40,437 INFO o.s.b.a.e.w.EndpointLinksResolver [Test worker] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 09:56:40,818 INFO o.a.c.i.e.AbstractCamelContext [Test worker] Apache Camel 4.10.6 (camel-1) is starting +2026-08-13 09:56:40,836 INFO o.a.c.i.e.AbstractCamelContext [Test worker] Routes startup (total:0) +2026-08-13 09:56:40,837 INFO o.a.c.i.e.AbstractCamelContext [Test worker] Apache Camel 4.10.6 (camel-1) started in 16ms (build:0ms init:0ms start:16ms boot:2s54ms) +2026-08-13 09:56:40,843 INFO o.s.b.StartupInfoLogger [Test worker] Started KontorSpringApplicationTests in 8.084 seconds (process running for 9.848) +2026-08-13 09:56:41,654 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) is shutting down (timeout:45s) +2026-08-13 09:56:41,658 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Routes stopped (total:0) +2026-08-13 09:56:41,663 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) shutdown in 9ms (uptime:0s) +2026-08-13 09:56:41,672 INFO o.s.o.j.AbstractEntityManagerFactoryBean [SpringApplicationShutdownHook] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 09:56:41,675 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown initiated... +2026-08-13 09:56:41,680 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown completed. +2026-08-13 09:56:43,166 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 1666082 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 09:56:43,170 INFO o.s.b.SpringApplication [restartedMain] The following 4 profiles are active: "local", "dev", "test", "prod" +2026-08-13 09:56:43,227 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 09:56:44,292 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 09:56:44,309 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 8 ms. Found 0 JPA repository interfaces. +2026-08-13 09:56:45,083 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 09:56:45,096 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 09:56:45,098 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 09:56:45,098 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 09:56:45,137 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1909 ms +2026-08-13 09:56:45,549 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 09:56:45,593 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 09:56:45,967 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 09:56:45,994 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 09:56:46,104 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@5a940c65 +2026-08-13 09:56:46,106 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 09:56:46,156 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 09:56:46,336 INFO o.h.v.i.u.Version [restartedMain] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 09:56:46,754 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [restartedMain] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 09:56:46,833 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 09:56:46,875 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [restartedMain] 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 +2026-08-13 09:56:47,623 DEBUG o.a.a.a.u.UUIDGenerator [restartedMain] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 09:56:47,773 WARN o.s.b.s.a.UserDetailsServiceAutoConfiguration [restartedMain] + +Using generated security password: 1c49f0f4-3a70-4576-b59e-30f0a9b9b6c2 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2026-08-13 09:56:47,799 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [restartedMain] Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2026-08-13 09:56:47,912 INFO o.s.b.a.e.w.EndpointLinksResolver [restartedMain] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 09:56:48,104 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /* +2026-08-13 09:56:48,105 INFO o.a.c.AtmosphereFramework [restartedMain] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler +2026-08-13 09:56:48,135 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation +2026-08-13 09:56:48,141 INFO o.a.u.ForkJoinPool [restartedMain] Using ForkJoinPool java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power. +2026-08-13 09:56:48,146 INFO o.a.c.AtmosphereFramework [restartedMain] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol +2026-08-13 09:56:48,150 INFO o.a.c.JSR356AsyncSupport [restartedMain] JSR 356 Mapping path /VAADIN/push +2026-08-13 09:56:48,160 INFO o.a.c.AtmosphereFramework [restartedMain] Installing Default AtmosphereInterceptors +2026-08-13 09:56:48,161 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support +2026-08-13 09:56:48,162 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor +2026-08-13 09:56:48,162 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support +2026-08-13 09:56:48,163 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support +2026-08-13 09:56:48,163 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support +2026-08-13 09:56:48,164 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support +2026-08-13 09:56:48,164 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support +2026-08-13 09:56:48,165 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol +2026-08-13 09:56:48,165 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor +2026-08-13 09:56:48,166 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection +2026-08-13 09:56:48,166 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor +2026-08-13 09:56:48,166 INFO o.a.c.AtmosphereFramework [restartedMain] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them. +2026-08-13 09:56:48,166 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT +2026-08-13 09:56:48,167 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT +2026-08-13 09:56:48,167 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT +2026-08-13 09:56:48,168 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT +2026-08-13 09:56:48,168 INFO o.a.i.HeartbeatInterceptor [restartedMain] HeartbeatInterceptor configured with padding value 'X', client frequency 0 seconds and server frequency 60 seconds +2026-08-13 09:56:48,168 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT +2026-08-13 09:56:48,168 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT +2026-08-13 09:56:48,168 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT +2026-08-13 09:56:48,168 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT +2026-08-13 09:56:48,168 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT +2026-08-13 09:56:48,168 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT +2026-08-13 09:56:48,168 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT +2026-08-13 09:56:48,169 INFO o.a.c.AtmosphereFramework [restartedMain] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper +2026-08-13 09:56:48,169 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache +2026-08-13 09:56:48,169 INFO o.a.c.AtmosphereFramework [restartedMain] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster +2026-08-13 09:56:48,169 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Shared List Resources: false +2026-08-13 09:56:48,170 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Polling Wait Time 100 +2026-08-13 09:56:48,170 INFO o.a.c.AtmosphereFramework [restartedMain] Shared ExecutorService supported: true +2026-08-13 09:56:48,170 INFO o.a.c.AtmosphereFramework [restartedMain] Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor +2026-08-13 09:56:48,170 INFO o.a.c.AtmosphereFramework [restartedMain] Async I/O Thread Pool Size: 200 +2026-08-13 09:56:48,170 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory +2026-08-13 09:56:48,171 INFO o.a.c.AtmosphereFramework [restartedMain] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory +2026-08-13 09:56:48,172 INFO o.a.c.AtmosphereFramework [restartedMain] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor +2026-08-13 09:56:48,174 INFO o.a.c.AtmosphereFramework [restartedMain] Invoke AtmosphereInterceptor on WebSocket message true +2026-08-13 09:56:48,175 INFO o.a.c.AtmosphereFramework [restartedMain] HttpSession supported: true +2026-08-13 09:56:48,175 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation +2026-08-13 09:56:48,175 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/11.0.24 using jakarta.servlet/3.0 and jsr356/WebSocket API +2026-08-13 09:56:48,176 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere Framework 3.0.5.slf4jvaadin1 started. +2026-08-13 09:56:48,180 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT +2026-08-13 09:56:48,222 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting ProtocolHandler ["http-nio-8085"] +2026-08-13 09:56:48,247 INFO c.v.f.s.DefaultDeploymentConfiguration [restartedMain] Vaadin is running in production mode. +2026-08-13 09:56:48,356 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat started on port 8085 (http) with context path '/' +2026-08-13 09:56:48,423 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) is starting +2026-08-13 09:56:48,431 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Routes startup (total:0) +2026-08-13 09:56:48,431 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) started in 7ms (build:0ms init:0ms start:7ms boot:1s226ms) +2026-08-13 09:56:48,434 INFO o.s.b.StartupInfoLogger [restartedMain] Started KontorApplication in 6.075 seconds (process running for 6.603) +2026-08-13 09:57:07,922 INFO o.s.b.t.GracefulShutdown [SpringApplicationShutdownHook] Commencing graceful shutdown. Waiting for active requests to complete +2026-08-13 09:57:07,924 INFO o.s.b.t.GracefulShutdown [tomcat-shutdown] Graceful shutdown complete +2026-08-13 09:57:07,927 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) is shutting down (timeout:45s) +2026-08-13 09:57:07,930 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Routes stopped (total:0) +2026-08-13 09:57:07,932 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) shutdown in 5ms (uptime:19s) +2026-08-13 09:57:07,937 INFO o.s.o.j.AbstractEntityManagerFactoryBean [SpringApplicationShutdownHook] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 09:57:07,939 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown initiated... +2026-08-13 09:57:07,942 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown completed. +2026-08-13 10:00:33,716 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 1701183 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 10:00:33,718 INFO o.s.b.SpringApplication [restartedMain] The following 4 profiles are active: "local", "dev", "test", "prod" +2026-08-13 10:00:33,753 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 10:00:34,526 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 10:00:34,540 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 7 ms. Found 0 JPA repository interfaces. +2026-08-13 10:00:35,123 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 10:00:35,132 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 10:00:35,134 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 10:00:35,134 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 10:00:35,162 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1407 ms +2026-08-13 10:00:37,685 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2339 ms +2026-08-13 10:00:37,744 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 10:00:37,773 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 106 classes. Took 16 ms. +2026-08-13 10:00:37,775 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 10:00:37,897 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 10:00:37,920 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 10:00:37,973 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 53 ms. +2026-08-13 10:00:38,003 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 10:00:38,035 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 10:00:38,298 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 10:00:38,319 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 10:00:38,400 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@4b540e7b +2026-08-13 10:00:38,401 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 10:00:38,444 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 10:00:38,554 INFO o.h.v.i.u.Version [restartedMain] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 10:00:38,826 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [restartedMain] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 10:00:38,873 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 10:00:38,931 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [restartedMain] 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 +2026-08-13 10:00:39,510 DEBUG o.a.a.a.u.UUIDGenerator [restartedMain] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 10:00:39,597 WARN o.s.b.s.a.UserDetailsServiceAutoConfiguration [restartedMain] + +Using generated security password: 8e8f195a-7cb8-4de8-bcbc-a240206ecbb3 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2026-08-13 10:00:39,616 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [restartedMain] Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2026-08-13 10:00:39,709 INFO o.s.b.a.e.w.EndpointLinksResolver [restartedMain] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 10:00:39,835 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /* +2026-08-13 10:00:39,836 INFO o.a.c.AtmosphereFramework [restartedMain] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler +2026-08-13 10:00:39,855 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation +2026-08-13 10:00:39,859 INFO o.a.u.ForkJoinPool [restartedMain] Using ForkJoinPool java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power. +2026-08-13 10:00:39,862 INFO o.a.c.AtmosphereFramework [restartedMain] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol +2026-08-13 10:00:39,865 INFO o.a.c.JSR356AsyncSupport [restartedMain] JSR 356 Mapping path /VAADIN/push +2026-08-13 10:00:39,872 INFO o.a.c.AtmosphereFramework [restartedMain] Installing Default AtmosphereInterceptors +2026-08-13 10:00:39,873 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support +2026-08-13 10:00:39,873 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor +2026-08-13 10:00:39,874 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support +2026-08-13 10:00:39,874 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support +2026-08-13 10:00:39,875 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support +2026-08-13 10:00:39,875 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support +2026-08-13 10:00:39,875 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support +2026-08-13 10:00:39,876 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol +2026-08-13 10:00:39,876 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor +2026-08-13 10:00:39,876 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection +2026-08-13 10:00:39,877 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor +2026-08-13 10:00:39,877 INFO o.a.c.AtmosphereFramework [restartedMain] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them. +2026-08-13 10:00:39,877 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT +2026-08-13 10:00:39,877 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT +2026-08-13 10:00:39,878 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:00:39,878 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:00:39,878 INFO o.a.i.HeartbeatInterceptor [restartedMain] HeartbeatInterceptor configured with padding value 'X', client frequency 0 seconds and server frequency 60 seconds +2026-08-13 10:00:39,878 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:00:39,878 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:00:39,878 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:00:39,878 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT +2026-08-13 10:00:39,879 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT +2026-08-13 10:00:39,879 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT +2026-08-13 10:00:39,879 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT +2026-08-13 10:00:39,879 INFO o.a.c.AtmosphereFramework [restartedMain] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper +2026-08-13 10:00:39,879 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache +2026-08-13 10:00:39,879 INFO o.a.c.AtmosphereFramework [restartedMain] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster +2026-08-13 10:00:39,880 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Shared List Resources: false +2026-08-13 10:00:39,880 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Polling Wait Time 100 +2026-08-13 10:00:39,880 INFO o.a.c.AtmosphereFramework [restartedMain] Shared ExecutorService supported: true +2026-08-13 10:00:39,880 INFO o.a.c.AtmosphereFramework [restartedMain] Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor +2026-08-13 10:00:39,880 INFO o.a.c.AtmosphereFramework [restartedMain] Async I/O Thread Pool Size: 200 +2026-08-13 10:00:39,880 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory +2026-08-13 10:00:39,880 INFO o.a.c.AtmosphereFramework [restartedMain] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory +2026-08-13 10:00:39,880 INFO o.a.c.AtmosphereFramework [restartedMain] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor +2026-08-13 10:00:39,881 INFO o.a.c.AtmosphereFramework [restartedMain] Invoke AtmosphereInterceptor on WebSocket message true +2026-08-13 10:00:39,881 INFO o.a.c.AtmosphereFramework [restartedMain] HttpSession supported: true +2026-08-13 10:00:39,882 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation +2026-08-13 10:00:39,882 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/11.0.24 using jakarta.servlet/3.0 and jsr356/WebSocket API +2026-08-13 10:00:39,882 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere Framework 3.0.5.slf4jvaadin1 started. +2026-08-13 10:00:39,884 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT +2026-08-13 10:00:39,911 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting ProtocolHandler ["http-nio-8085"] +2026-08-13 10:00:39,927 INFO c.v.f.s.DefaultDeploymentConfiguration [restartedMain] +Vaadin is running in DEVELOPMENT mode - do not use for production deployments. +2026-08-13 10:00:39,964 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat started on port 8085 (http) with context path '/' +2026-08-13 10:00:39,997 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) is starting +2026-08-13 10:00:40,003 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Routes startup (total:0) +2026-08-13 10:00:40,003 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) started in 5ms (build:0ms init:0ms start:5ms boot:825ms) +2026-08-13 10:00:40,005 INFO o.s.b.StartupInfoLogger [restartedMain] Started KontorApplication in 6.68 seconds (process running for 6.973) +2026-08-13 10:00:40,059 INFO c.v.b.d.DevModeHandlerManagerImpl [restartedMain] Application running at http://localhost:8085/ +2026-08-13 10:00:49,700 INFO o.s.b.t.GracefulShutdown [SpringApplicationShutdownHook] Commencing graceful shutdown. Waiting for active requests to complete +2026-08-13 10:00:49,702 INFO o.s.b.t.GracefulShutdown [tomcat-shutdown] Graceful shutdown complete +2026-08-13 10:00:49,705 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) is shutting down (timeout:45s) +2026-08-13 10:00:49,708 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Routes stopped (total:0) +2026-08-13 10:00:49,711 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) shutdown in 6ms (uptime:9s) +2026-08-13 10:00:49,717 INFO o.s.o.j.AbstractEntityManagerFactoryBean [SpringApplicationShutdownHook] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 10:00:49,720 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown initiated... +2026-08-13 10:00:49,722 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown completed. +2026-08-13 10:04:34,354 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 1726511 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 10:04:34,357 INFO o.s.b.SpringApplication [restartedMain] The following 4 profiles are active: "local", "dev", "test", "prod" +2026-08-13 10:04:34,407 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 10:04:35,289 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 10:04:35,302 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 7 ms. Found 0 JPA repository interfaces. +2026-08-13 10:04:35,842 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 10:04:35,851 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 10:04:35,852 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 10:04:35,853 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 10:04:35,880 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1472 ms +2026-08-13 10:04:38,713 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2664 ms +2026-08-13 10:04:38,788 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 10:04:38,820 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 106 classes. Took 18 ms. +2026-08-13 10:04:38,822 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 10:04:38,951 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 10:04:38,978 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 10:04:39,072 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 94 ms. +2026-08-13 10:04:39,081 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 10:04:39,118 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 10:04:39,456 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 10:04:39,478 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 10:04:39,576 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@4954ed7d +2026-08-13 10:04:39,577 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 10:04:39,621 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 10:04:39,742 INFO o.h.v.i.u.Version [restartedMain] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 10:04:39,995 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [restartedMain] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 10:04:40,038 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 10:04:40,102 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [restartedMain] 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 +2026-08-13 10:04:40,679 DEBUG o.a.a.a.u.UUIDGenerator [restartedMain] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 10:04:40,822 WARN o.s.b.s.a.UserDetailsServiceAutoConfiguration [restartedMain] + +Using generated security password: 3ef90a9f-2c7c-4111-82b2-99d2b8cc9cc2 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2026-08-13 10:04:40,852 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [restartedMain] Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2026-08-13 10:04:40,980 INFO o.s.b.a.e.w.EndpointLinksResolver [restartedMain] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 10:04:41,136 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /* +2026-08-13 10:04:41,137 INFO o.a.c.AtmosphereFramework [restartedMain] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler +2026-08-13 10:04:41,162 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation +2026-08-13 10:04:41,167 INFO o.a.u.ForkJoinPool [restartedMain] Using ForkJoinPool java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power. +2026-08-13 10:04:41,171 INFO o.a.c.AtmosphereFramework [restartedMain] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol +2026-08-13 10:04:41,175 INFO o.a.c.JSR356AsyncSupport [restartedMain] JSR 356 Mapping path /VAADIN/push +2026-08-13 10:04:41,184 INFO o.a.c.AtmosphereFramework [restartedMain] Installing Default AtmosphereInterceptors +2026-08-13 10:04:41,185 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support +2026-08-13 10:04:41,185 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor +2026-08-13 10:04:41,185 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support +2026-08-13 10:04:41,186 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support +2026-08-13 10:04:41,186 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support +2026-08-13 10:04:41,187 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support +2026-08-13 10:04:41,187 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support +2026-08-13 10:04:41,188 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol +2026-08-13 10:04:41,188 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor +2026-08-13 10:04:41,188 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection +2026-08-13 10:04:41,189 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor +2026-08-13 10:04:41,189 INFO o.a.c.AtmosphereFramework [restartedMain] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them. +2026-08-13 10:04:41,189 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT +2026-08-13 10:04:41,189 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT +2026-08-13 10:04:41,190 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:04:41,190 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:04:41,190 INFO o.a.i.HeartbeatInterceptor [restartedMain] HeartbeatInterceptor configured with padding value 'X', client frequency 0 seconds and server frequency 60 seconds +2026-08-13 10:04:41,190 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:04:41,190 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:04:41,191 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:04:41,191 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT +2026-08-13 10:04:41,191 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT +2026-08-13 10:04:41,191 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT +2026-08-13 10:04:41,191 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT +2026-08-13 10:04:41,192 INFO o.a.c.AtmosphereFramework [restartedMain] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper +2026-08-13 10:04:41,192 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache +2026-08-13 10:04:41,192 INFO o.a.c.AtmosphereFramework [restartedMain] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster +2026-08-13 10:04:41,192 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Shared List Resources: false +2026-08-13 10:04:41,192 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Polling Wait Time 100 +2026-08-13 10:04:41,193 INFO o.a.c.AtmosphereFramework [restartedMain] Shared ExecutorService supported: true +2026-08-13 10:04:41,193 INFO o.a.c.AtmosphereFramework [restartedMain] Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor +2026-08-13 10:04:41,193 INFO o.a.c.AtmosphereFramework [restartedMain] Async I/O Thread Pool Size: 200 +2026-08-13 10:04:41,193 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory +2026-08-13 10:04:41,193 INFO o.a.c.AtmosphereFramework [restartedMain] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory +2026-08-13 10:04:41,193 INFO o.a.c.AtmosphereFramework [restartedMain] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor +2026-08-13 10:04:41,195 INFO o.a.c.AtmosphereFramework [restartedMain] Invoke AtmosphereInterceptor on WebSocket message true +2026-08-13 10:04:41,195 INFO o.a.c.AtmosphereFramework [restartedMain] HttpSession supported: true +2026-08-13 10:04:41,195 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation +2026-08-13 10:04:41,195 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/11.0.24 using jakarta.servlet/3.0 and jsr356/WebSocket API +2026-08-13 10:04:41,195 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere Framework 3.0.5.slf4jvaadin1 started. +2026-08-13 10:04:41,198 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT +2026-08-13 10:04:41,236 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting ProtocolHandler ["http-nio-8085"] +2026-08-13 10:04:41,254 INFO c.v.f.s.DefaultDeploymentConfiguration [restartedMain] +Vaadin is running in DEVELOPMENT mode - do not use for production deployments. +2026-08-13 10:04:41,297 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat started on port 8085 (http) with context path '/' +2026-08-13 10:04:41,334 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) is starting +2026-08-13 10:04:41,340 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Routes startup (total:0) +2026-08-13 10:04:41,340 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) started in 6ms (build:0ms init:0ms start:6ms boot:972ms) +2026-08-13 10:04:41,343 INFO o.s.b.StartupInfoLogger [restartedMain] Started KontorApplication in 7.507 seconds (process running for 7.902) +2026-08-13 10:04:41,395 INFO c.v.b.d.DevModeHandlerManagerImpl [restartedMain] Application running at http://localhost:8085/ +2026-08-13 10:04:49,400 INFO o.a.j.l.DirectJDKLog [http-nio-8085-exec-2] Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-08-13 10:04:49,401 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-2] Initializing Servlet 'dispatcherServlet' +2026-08-13 10:04:49,404 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-2] Completed initialization in 3 ms +2026-08-13 10:05:46,135 INFO o.s.b.t.GracefulShutdown [SpringApplicationShutdownHook] Commencing graceful shutdown. Waiting for active requests to complete +2026-08-13 10:05:46,139 INFO o.s.b.t.GracefulShutdown [tomcat-shutdown] Graceful shutdown complete +2026-08-13 10:05:46,143 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) is shutting down (timeout:45s) +2026-08-13 10:05:46,151 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Routes stopped (total:0) +2026-08-13 10:05:46,155 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) shutdown in 12ms (uptime:1m4s) +2026-08-13 10:05:46,162 INFO o.s.o.j.AbstractEntityManagerFactoryBean [SpringApplicationShutdownHook] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 10:05:46,166 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown initiated... +2026-08-13 10:05:46,170 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown completed. +2026-08-13 10:07:18,092 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 1754166 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 10:07:18,095 INFO o.s.b.SpringApplication [restartedMain] The following 4 profiles are active: "local", "dev", "test", "prod" +2026-08-13 10:07:18,145 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 10:07:18,913 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 10:07:18,930 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 10 ms. Found 0 JPA repository interfaces. +2026-08-13 10:07:19,560 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 10:07:19,571 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 10:07:19,572 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 10:07:19,573 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 10:07:19,612 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1466 ms +2026-08-13 10:07:22,846 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2948 ms +2026-08-13 10:07:22,944 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 10:07:22,985 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 106 classes. Took 25 ms. +2026-08-13 10:07:22,987 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 10:07:23,170 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 10:07:23,203 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 10:07:23,282 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 79 ms. +2026-08-13 10:07:23,319 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 10:07:23,395 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 10:07:23,742 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 10:07:23,768 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 10:07:23,888 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@1c2b5f2b +2026-08-13 10:07:23,890 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 10:07:23,947 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 10:07:24,086 INFO o.h.v.i.u.Version [restartedMain] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 10:07:24,443 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [restartedMain] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 10:07:24,513 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 10:07:24,589 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [restartedMain] 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 +2026-08-13 10:07:25,392 DEBUG o.a.a.a.u.UUIDGenerator [restartedMain] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 10:07:25,522 WARN o.s.b.s.a.UserDetailsServiceAutoConfiguration [restartedMain] + +Using generated security password: 763bffb8-5405-4545-b39d-999c0d99dd8e + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2026-08-13 10:07:25,546 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [restartedMain] Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2026-08-13 10:07:25,651 INFO o.s.b.a.e.w.EndpointLinksResolver [restartedMain] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 10:07:25,794 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /* +2026-08-13 10:07:25,794 INFO o.a.c.AtmosphereFramework [restartedMain] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler +2026-08-13 10:07:25,817 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation +2026-08-13 10:07:25,823 INFO o.a.u.ForkJoinPool [restartedMain] Using ForkJoinPool java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power. +2026-08-13 10:07:25,826 INFO o.a.c.AtmosphereFramework [restartedMain] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol +2026-08-13 10:07:25,830 INFO o.a.c.JSR356AsyncSupport [restartedMain] JSR 356 Mapping path /VAADIN/push +2026-08-13 10:07:25,841 INFO o.a.c.AtmosphereFramework [restartedMain] Installing Default AtmosphereInterceptors +2026-08-13 10:07:25,842 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support +2026-08-13 10:07:25,842 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor +2026-08-13 10:07:25,843 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support +2026-08-13 10:07:25,843 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support +2026-08-13 10:07:25,844 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support +2026-08-13 10:07:25,844 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support +2026-08-13 10:07:25,844 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support +2026-08-13 10:07:25,845 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol +2026-08-13 10:07:25,845 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor +2026-08-13 10:07:25,846 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection +2026-08-13 10:07:25,846 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor +2026-08-13 10:07:25,855 INFO o.a.c.AtmosphereFramework [restartedMain] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them. +2026-08-13 10:07:25,856 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT +2026-08-13 10:07:25,856 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT +2026-08-13 10:07:25,857 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:07:25,857 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:07:25,857 INFO o.a.i.HeartbeatInterceptor [restartedMain] HeartbeatInterceptor configured with padding value 'X', client frequency 0 seconds and server frequency 60 seconds +2026-08-13 10:07:25,857 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:07:25,857 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:07:25,857 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:07:25,858 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT +2026-08-13 10:07:25,858 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT +2026-08-13 10:07:25,858 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT +2026-08-13 10:07:25,858 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT +2026-08-13 10:07:25,859 INFO o.a.c.AtmosphereFramework [restartedMain] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper +2026-08-13 10:07:25,859 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache +2026-08-13 10:07:25,859 INFO o.a.c.AtmosphereFramework [restartedMain] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster +2026-08-13 10:07:25,859 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Shared List Resources: false +2026-08-13 10:07:25,859 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Polling Wait Time 100 +2026-08-13 10:07:25,859 INFO o.a.c.AtmosphereFramework [restartedMain] Shared ExecutorService supported: true +2026-08-13 10:07:25,860 INFO o.a.c.AtmosphereFramework [restartedMain] Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor +2026-08-13 10:07:25,860 INFO o.a.c.AtmosphereFramework [restartedMain] Async I/O Thread Pool Size: 200 +2026-08-13 10:07:25,860 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory +2026-08-13 10:07:25,860 INFO o.a.c.AtmosphereFramework [restartedMain] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory +2026-08-13 10:07:25,860 INFO o.a.c.AtmosphereFramework [restartedMain] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor +2026-08-13 10:07:25,862 INFO o.a.c.AtmosphereFramework [restartedMain] Invoke AtmosphereInterceptor on WebSocket message true +2026-08-13 10:07:25,862 INFO o.a.c.AtmosphereFramework [restartedMain] HttpSession supported: true +2026-08-13 10:07:25,862 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation +2026-08-13 10:07:25,862 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/11.0.24 using jakarta.servlet/3.0 and jsr356/WebSocket API +2026-08-13 10:07:25,862 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere Framework 3.0.5.slf4jvaadin1 started. +2026-08-13 10:07:25,865 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT +2026-08-13 10:07:25,898 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting ProtocolHandler ["http-nio-8085"] +2026-08-13 10:07:25,919 INFO c.v.f.s.DefaultDeploymentConfiguration [restartedMain] +Vaadin is running in DEVELOPMENT mode - do not use for production deployments. +2026-08-13 10:07:25,960 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat started on port 8085 (http) with context path '/' +2026-08-13 10:07:26,000 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) is starting +2026-08-13 10:07:26,007 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Routes startup (total:0) +2026-08-13 10:07:26,008 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) started in 6ms (build:0ms init:0ms start:6ms boot:993ms) +2026-08-13 10:07:26,010 INFO o.s.b.StartupInfoLogger [restartedMain] Started KontorApplication in 8.431 seconds (process running for 9.0) +2026-08-13 10:07:26,068 INFO c.v.b.d.DevModeHandlerManagerImpl [restartedMain] Application running at http://localhost:8085/ +2026-08-13 10:08:11,297 INFO o.a.j.l.DirectJDKLog [http-nio-8085-exec-1] Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-08-13 10:08:11,297 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Initializing Servlet 'dispatcherServlet' +2026-08-13 10:08:11,299 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Completed initialization in 2 ms +2026-08-13 10:25:42,025 INFO o.s.b.t.GracefulShutdown [SpringApplicationShutdownHook] Commencing graceful shutdown. Waiting for active requests to complete +2026-08-13 10:25:42,028 INFO o.s.b.t.GracefulShutdown [tomcat-shutdown] Graceful shutdown complete +2026-08-13 10:25:42,031 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) is shutting down (timeout:45s) +2026-08-13 10:25:42,035 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Routes stopped (total:0) +2026-08-13 10:25:42,038 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) shutdown in 7ms (uptime:18m16s) +2026-08-13 10:25:42,044 INFO o.s.o.j.AbstractEntityManagerFactoryBean [SpringApplicationShutdownHook] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 10:25:42,047 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown initiated... +2026-08-13 10:25:42,049 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown completed. +2026-08-13 10:25:52,965 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 1917820 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 10:25:52,968 INFO o.s.b.SpringApplication [restartedMain] The following 4 profiles are active: "local", "dev", "test", "prod" +2026-08-13 10:25:53,003 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 10:25:53,693 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 10:25:53,777 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 78 ms. Found 5 JPA repository interfaces. +2026-08-13 10:25:54,293 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 10:25:54,302 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 10:25:54,304 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 10:25:54,304 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 10:25:54,344 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1340 ms +2026-08-13 10:25:57,260 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2699 ms +2026-08-13 10:25:57,339 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 10:25:57,365 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 106 classes. Took 14 ms. +2026-08-13 10:25:57,366 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 10:25:57,467 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 10:25:57,491 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 10:25:57,561 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 69 ms. +2026-08-13 10:25:57,592 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 10:25:57,625 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 10:25:57,986 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 10:25:58,016 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 10:25:58,129 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@33d48759 +2026-08-13 10:25:58,132 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 10:25:58,189 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 10:25:58,475 INFO o.h.v.i.u.Version [restartedMain] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 10:25:59,277 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [restartedMain] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 10:25:59,366 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 10:25:59,449 INFO o.s.d.j.r.q.QueryEnhancerFactories [restartedMain] Hibernate is in classpath; If applicable, HQL parser will be used. +2026-08-13 10:26:00,239 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [restartedMain] 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 +2026-08-13 10:26:00,651 DEBUG o.a.a.a.u.UUIDGenerator [restartedMain] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 10:26:00,800 WARN o.s.b.s.a.UserDetailsServiceAutoConfiguration [restartedMain] + +Using generated security password: 377b0862-d125-484b-a233-9496393a1ade + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2026-08-13 10:26:00,831 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [restartedMain] Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2026-08-13 10:26:00,983 INFO o.s.b.a.e.w.EndpointLinksResolver [restartedMain] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 10:26:01,131 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /* +2026-08-13 10:26:01,132 INFO o.a.c.AtmosphereFramework [restartedMain] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler +2026-08-13 10:26:01,154 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation +2026-08-13 10:26:01,159 INFO o.a.u.ForkJoinPool [restartedMain] Using ForkJoinPool java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power. +2026-08-13 10:26:01,163 INFO o.a.c.AtmosphereFramework [restartedMain] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol +2026-08-13 10:26:01,166 INFO o.a.c.JSR356AsyncSupport [restartedMain] JSR 356 Mapping path /VAADIN/push +2026-08-13 10:26:01,174 INFO o.a.c.AtmosphereFramework [restartedMain] Installing Default AtmosphereInterceptors +2026-08-13 10:26:01,175 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support +2026-08-13 10:26:01,176 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor +2026-08-13 10:26:01,176 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support +2026-08-13 10:26:01,176 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support +2026-08-13 10:26:01,177 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support +2026-08-13 10:26:01,177 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support +2026-08-13 10:26:01,177 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support +2026-08-13 10:26:01,178 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol +2026-08-13 10:26:01,178 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor +2026-08-13 10:26:01,179 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection +2026-08-13 10:26:01,179 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor +2026-08-13 10:26:01,179 INFO o.a.c.AtmosphereFramework [restartedMain] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them. +2026-08-13 10:26:01,180 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT +2026-08-13 10:26:01,180 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT +2026-08-13 10:26:01,181 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:26:01,181 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:26:01,181 INFO o.a.i.HeartbeatInterceptor [restartedMain] HeartbeatInterceptor configured with padding value 'X', client frequency 0 seconds and server frequency 60 seconds +2026-08-13 10:26:01,181 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:26:01,181 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:26:01,182 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:26:01,182 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT +2026-08-13 10:26:01,182 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT +2026-08-13 10:26:01,182 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT +2026-08-13 10:26:01,182 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT +2026-08-13 10:26:01,183 INFO o.a.c.AtmosphereFramework [restartedMain] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper +2026-08-13 10:26:01,183 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache +2026-08-13 10:26:01,183 INFO o.a.c.AtmosphereFramework [restartedMain] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster +2026-08-13 10:26:01,183 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Shared List Resources: false +2026-08-13 10:26:01,183 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Polling Wait Time 100 +2026-08-13 10:26:01,183 INFO o.a.c.AtmosphereFramework [restartedMain] Shared ExecutorService supported: true +2026-08-13 10:26:01,184 INFO o.a.c.AtmosphereFramework [restartedMain] Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor +2026-08-13 10:26:01,184 INFO o.a.c.AtmosphereFramework [restartedMain] Async I/O Thread Pool Size: 200 +2026-08-13 10:26:01,184 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory +2026-08-13 10:26:01,184 INFO o.a.c.AtmosphereFramework [restartedMain] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory +2026-08-13 10:26:01,184 INFO o.a.c.AtmosphereFramework [restartedMain] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor +2026-08-13 10:26:01,185 INFO o.a.c.AtmosphereFramework [restartedMain] Invoke AtmosphereInterceptor on WebSocket message true +2026-08-13 10:26:01,186 INFO o.a.c.AtmosphereFramework [restartedMain] HttpSession supported: true +2026-08-13 10:26:01,186 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation +2026-08-13 10:26:01,186 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/11.0.24 using jakarta.servlet/3.0 and jsr356/WebSocket API +2026-08-13 10:26:01,186 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere Framework 3.0.5.slf4jvaadin1 started. +2026-08-13 10:26:01,189 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT +2026-08-13 10:26:01,217 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting ProtocolHandler ["http-nio-8085"] +2026-08-13 10:26:01,232 INFO c.v.f.s.DefaultDeploymentConfiguration [restartedMain] +Vaadin is running in DEVELOPMENT mode - do not use for production deployments. +2026-08-13 10:26:01,277 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat started on port 8085 (http) with context path '/' +2026-08-13 10:26:01,384 WARN o.s.c.s.AbstractApplicationContext [restartedMain] Exception encountered during context initialization - cancelling refresh attempt: org.apache.camel.FailedToCreateRouteException: Failed to create route read-queue-media-link-add: Route(read-queue-media-link-add)[From[jms:queue:media.link.a... because of No endpoint could be found for: jms://queue:media.link.add, please check your classpath contains the needed Camel component jar. +2026-08-13 10:26:01,386 INFO o.s.b.t.GracefulShutdown [restartedMain] Commencing graceful shutdown. Waiting for active requests to complete +2026-08-13 10:26:01,387 INFO o.a.j.l.DirectJDKLog [tomcat-shutdown] Pausing ProtocolHandler ["http-nio-8085"] +2026-08-13 10:26:01,388 INFO o.s.b.t.GracefulShutdown [tomcat-shutdown] Graceful shutdown complete +2026-08-13 10:26:01,389 INFO o.a.j.l.DirectJDKLog [restartedMain] Stopping ProtocolHandler ["http-nio-8085"] +2026-08-13 10:26:01,394 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 10:26:01,396 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown initiated... +2026-08-13 10:26:01,398 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown completed. +2026-08-13 10:26:01,408 INFO o.s.b.a.l.ConditionEvaluationReportLogger [restartedMain] + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-08-13 10:26:01,418 ERROR o.s.b.SpringApplication [restartedMain] Application run failed +org.apache.camel.FailedToCreateRouteException: Failed to create route read-queue-media-link-add: Route(read-queue-media-link-add)[From[jms:queue:media.link.a... because of No endpoint could be found for: jms://queue:media.link.add, please check your classpath contains the needed Camel component jar. + at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:92) + at org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49) + at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:741) + at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:602) + at org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2470) + at org.apache.camel.support.service.BaseService.init(BaseService.java:85) + at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2100) + at org.apache.camel.support.service.BaseService.start(BaseService.java:115) + at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2119) + at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:211) + at org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:121) + at org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:153) + at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:180) + at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:173) + at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:151) + at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:448) + at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381) + at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:1016) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) + at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) + at de.thpeetz.kontor.KontorApplication.main(KontorApplication.java:21) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:52) +Caused by: org.apache.camel.NoSuchEndpointException: No endpoint could be found for: jms://queue:media.link.add, please check your classpath contains the needed Camel component jar. + at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:860) + at org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:741) + at org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:66) + at org.apache.camel.reifier.AbstractReifier.resolveEndpoint(AbstractReifier.java:199) + at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:106) + at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:86) + ... 28 common frames omitted +2026-08-13 10:29:21,522 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 1948403 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 10:29:21,525 INFO o.s.b.SpringApplication [restartedMain] The following 4 profiles are active: "local", "dev", "test", "prod" +2026-08-13 10:29:21,585 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 10:29:22,649 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 10:29:22,762 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 102 ms. Found 5 JPA repository interfaces. +2026-08-13 10:29:23,433 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 10:29:23,448 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 10:29:23,450 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 10:29:23,451 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 10:29:23,506 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1919 ms +2026-08-13 10:29:27,310 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 3474 ms +2026-08-13 10:29:27,371 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 10:29:27,403 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 106 classes. Took 16 ms. +2026-08-13 10:29:27,405 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 10:29:27,556 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 10:29:27,587 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 10:29:27,706 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 119 ms. +2026-08-13 10:29:27,742 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 10:29:27,820 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 10:29:28,335 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 10:29:28,366 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 10:29:28,481 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@62e72015 +2026-08-13 10:29:28,482 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 10:29:28,534 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 10:29:28,777 INFO o.h.v.i.u.Version [restartedMain] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 10:29:29,434 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [restartedMain] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 10:29:29,496 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 10:29:29,582 INFO o.s.d.j.r.q.QueryEnhancerFactories [restartedMain] Hibernate is in classpath; If applicable, HQL parser will be used. +2026-08-13 10:29:30,505 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [restartedMain] 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 +2026-08-13 10:29:30,984 DEBUG o.a.a.a.u.UUIDGenerator [restartedMain] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 10:29:31,092 WARN o.s.b.s.a.UserDetailsServiceAutoConfiguration [restartedMain] + +Using generated security password: f6a73213-b216-4901-8897-f0c68112c170 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2026-08-13 10:29:31,115 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [restartedMain] Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2026-08-13 10:29:31,225 INFO o.s.b.a.e.w.EndpointLinksResolver [restartedMain] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 10:29:31,366 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /* +2026-08-13 10:29:31,366 INFO o.a.c.AtmosphereFramework [restartedMain] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler +2026-08-13 10:29:31,391 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation +2026-08-13 10:29:31,396 INFO o.a.u.ForkJoinPool [restartedMain] Using ForkJoinPool java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power. +2026-08-13 10:29:31,401 INFO o.a.c.AtmosphereFramework [restartedMain] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol +2026-08-13 10:29:31,405 INFO o.a.c.JSR356AsyncSupport [restartedMain] JSR 356 Mapping path /VAADIN/push +2026-08-13 10:29:31,414 INFO o.a.c.AtmosphereFramework [restartedMain] Installing Default AtmosphereInterceptors +2026-08-13 10:29:31,415 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support +2026-08-13 10:29:31,415 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor +2026-08-13 10:29:31,415 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support +2026-08-13 10:29:31,416 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support +2026-08-13 10:29:31,416 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support +2026-08-13 10:29:31,417 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support +2026-08-13 10:29:31,417 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support +2026-08-13 10:29:31,418 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol +2026-08-13 10:29:31,418 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor +2026-08-13 10:29:31,418 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection +2026-08-13 10:29:31,418 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor +2026-08-13 10:29:31,418 INFO o.a.c.AtmosphereFramework [restartedMain] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them. +2026-08-13 10:29:31,419 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT +2026-08-13 10:29:31,419 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT +2026-08-13 10:29:31,419 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:29:31,419 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:29:31,420 INFO o.a.i.HeartbeatInterceptor [restartedMain] HeartbeatInterceptor configured with padding value 'X', client frequency 0 seconds and server frequency 60 seconds +2026-08-13 10:29:31,420 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:29:31,420 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:29:31,420 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT +2026-08-13 10:29:31,420 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT +2026-08-13 10:29:31,420 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT +2026-08-13 10:29:31,420 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT +2026-08-13 10:29:31,420 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT +2026-08-13 10:29:31,421 INFO o.a.c.AtmosphereFramework [restartedMain] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper +2026-08-13 10:29:31,421 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache +2026-08-13 10:29:31,421 INFO o.a.c.AtmosphereFramework [restartedMain] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster +2026-08-13 10:29:31,421 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Shared List Resources: false +2026-08-13 10:29:31,421 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Polling Wait Time 100 +2026-08-13 10:29:31,421 INFO o.a.c.AtmosphereFramework [restartedMain] Shared ExecutorService supported: true +2026-08-13 10:29:31,422 INFO o.a.c.AtmosphereFramework [restartedMain] Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor +2026-08-13 10:29:31,422 INFO o.a.c.AtmosphereFramework [restartedMain] Async I/O Thread Pool Size: 200 +2026-08-13 10:29:31,422 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory +2026-08-13 10:29:31,422 INFO o.a.c.AtmosphereFramework [restartedMain] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory +2026-08-13 10:29:31,423 INFO o.a.c.AtmosphereFramework [restartedMain] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor +2026-08-13 10:29:31,425 INFO o.a.c.AtmosphereFramework [restartedMain] Invoke AtmosphereInterceptor on WebSocket message true +2026-08-13 10:29:31,426 INFO o.a.c.AtmosphereFramework [restartedMain] HttpSession supported: true +2026-08-13 10:29:31,426 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation +2026-08-13 10:29:31,426 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/11.0.24 using jakarta.servlet/3.0 and jsr356/WebSocket API +2026-08-13 10:29:31,426 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere Framework 3.0.5.slf4jvaadin1 started. +2026-08-13 10:29:31,429 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT +2026-08-13 10:29:31,465 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting ProtocolHandler ["http-nio-8085"] +2026-08-13 10:29:31,485 INFO c.v.f.s.DefaultDeploymentConfiguration [restartedMain] +Vaadin is running in DEVELOPMENT mode - do not use for production deployments. +2026-08-13 10:29:31,530 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat started on port 8085 (http) with context path '/' +2026-08-13 10:29:31,721 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) is starting +2026-08-13 10:29:31,747 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying reconnection attempt 0/1 +2026-08-13 10:29:31,747 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying to connect with connectorFactory=org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory@30520b44 and currentConnectorConfig: TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 10:29:31,813 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Connector NettyConnector [host=localhost, port=61616, httpEnabled=false, httpUpgradeEnabled=false, useServlet=false, servletPath=/messaging/ActiveMQServlet, sslEnabled=false, useNio=true] using native epoll +2026-08-13 10:29:31,829 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Started EPOLL Netty Connector version 4.2.15.Final to localhost:61616 +2026-08-13 10:29:31,830 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Remote destination: localhost/127.0.0.1:61616 +2026-08-13 10:29:31,879 DEBUG o.a.a.a.c.r.i.n.NettyConnector$1 [Thread-0 (activemq-client-remoting)] Added ActiveMQClientChannelHandler to Channel with id = 63f6e354 +2026-08-13 10:29:31,889 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Connected with the currentConnectorConfig=TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 10:29:31,955 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Reconnection successful +2026-08-13 10:29:31,956 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] ClientSessionFactoryImpl received backup update for primary/backup pair = TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost / null but it didn't belong to TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 10:29:32,072 DEBUG o.s.j.c.SingleConnectionFactory [restartedMain] Established shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@6854e81e +2026-08-13 10:29:32,078 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Routes startup (total:3) +2026-08-13 10:29:32,078 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 10:29:32,078 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 10:29:32,079 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 10:29:32,079 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) started in 357ms (build:0ms init:0ms start:357ms boot:1s451ms) +2026-08-13 10:29:32,082 INFO o.s.b.StartupInfoLogger [restartedMain] Started KontorApplication in 11.114 seconds (process running for 11.638) +2026-08-13 10:29:32,085 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=1bac56e0-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=()]@10407167 +2026-08-13 10:29:32,086 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=1bad6851-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=()]@59b8f661 +2026-08-13 10:29:32,087 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=1baddd82-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=()]@7de1527c +2026-08-13 10:29:32,158 INFO c.v.b.d.DevModeHandlerManagerImpl [restartedMain] Application running at http://localhost:8085/ +2026-08-13 11:05:53,200 INFO o.s.b.t.GracefulShutdown [SpringApplicationShutdownHook] Commencing graceful shutdown. Waiting for active requests to complete +2026-08-13 11:05:53,205 INFO o.s.b.t.GracefulShutdown [tomcat-shutdown] Graceful shutdown complete +2026-08-13 11:05:53,212 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) is shutting down (timeout:45s) +2026-08-13 11:05:53,281 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=1bac56e0-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=()]@10407167 +2026-08-13 11:05:53,281 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Calling close on session ClientSessionImpl [name=1bac56e0-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=()]@10407167 +2026-08-13 11:05:53,285 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] calling cleanup on ClientSessionImpl [name=1bac56e0-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=()]@10407167 +2026-08-13 11:05:53,328 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=1bad6851-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=()]@59b8f661 +2026-08-13 11:05:53,328 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Calling close on session ClientSessionImpl [name=1bad6851-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=()]@59b8f661 +2026-08-13 11:05:53,329 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] calling cleanup on ClientSessionImpl [name=1bad6851-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=()]@59b8f661 +2026-08-13 11:05:53,333 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Routes stopped (total:3) +2026-08-13 11:05:53,334 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 11:05:53,334 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 11:05:53,334 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 11:05:53,340 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) shutdown in 127ms (uptime:36m21s) +2026-08-13 11:05:53,341 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [SpringApplicationShutdownHook] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=1baddd82-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=()]@7de1527c +2026-08-13 11:05:53,341 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=1baddd82-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=()]@7de1527c +2026-08-13 11:05:53,342 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=1baddd82-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=()]@7de1527c +2026-08-13 11:05:53,342 DEBUG o.s.j.c.SingleConnectionFactory [SpringApplicationShutdownHook] Closing shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@6854e81e +2026-08-13 11:05:53,343 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=1b9fd3bf-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=(jms-session=,)]@74289533 +2026-08-13 11:05:53,344 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=1b9fd3bf-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=(jms-session=,)]@74289533 +2026-08-13 11:05:53,347 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [Thread-1 (activemq-client-global)] Failure captured on connectionID=63f6e354, performing failover or reconnection now +org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException: [errorType=NOT_CONNECTED message=AMQ219006: Channel disconnected] + at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.connectionDestroyed(ClientSessionFactoryImpl.java:413) + at org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnector$Listener.lambda$connectionDestroyed$0(NettyConnector.java:1199) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:59) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) + at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:69) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120) +2026-08-13 11:05:53,352 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Session was already closed, giving up now, this=ClientSessionImpl [name=1b9fd3bf-96f1-11f1-a41c-5e5c628d27e5, username=artemis, closed=true, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@73d78468, metaData=(jms-session=,)]@74289533 +2026-08-13 11:05:53,359 INFO o.s.o.j.AbstractEntityManagerFactoryBean [SpringApplicationShutdownHook] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 11:05:53,363 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown initiated... +2026-08-13 11:05:53,365 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown completed. +2026-08-13 11:06:04,370 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 2266227 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 11:06:04,372 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "prod" +2026-08-13 11:06:04,411 INFO o.s.b.l.LogLevel [restartedMain] Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable +2026-08-13 11:06:04,411 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 11:06:05,121 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 11:06:05,209 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 82 ms. Found 6 JPA repository interfaces. +2026-08-13 11:06:05,749 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8100 (http) +2026-08-13 11:06:05,760 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8100"] +2026-08-13 11:06:05,762 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 11:06:05,762 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 11:06:05,796 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1384 ms +2026-08-13 11:06:08,293 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2296 ms +2026-08-13 11:06:08,349 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 11:06:08,379 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 106 classes. Took 16 ms. +2026-08-13 11:06:08,380 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 11:06:08,478 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 11:06:08,501 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 11:06:08,559 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 58 ms. +2026-08-13 11:06:08,591 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 11:06:08,625 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 11:06:08,893 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 11:06:08,912 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 11:06:20,551 WARN o.h.e.j.s.SqlExceptionHelper [restartedMain] HHH000247: ErrorCode: 0, SQLState: 08001 +2026-08-13 11:06:20,551 WARN o.h.e.j.s.SqlExceptionHelper [restartedMain] Der Verbindungsversuch schlug fehl. +2026-08-13 11:06:20,552 WARN o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH100046: Could not obtain connection to query JDBC database metadata +org.hibernate.exception.JDBCConnectionException: Unable to obtain isolated JDBC connection [Der Verbindungsversuch schlug fehl.] [n/a] + at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:80) + at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:34) + at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:115) + at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:101) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:51) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:366) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironment(JdbcEnvironmentInitiator.java:143) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:120) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:80) + at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:133) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:260) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:235) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:212) + at org.hibernate.boot.model.relational.Database.(Database.java:44) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:251) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.(InFlightMetadataCollectorImpl.java:203) + at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:180) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1388) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.populateSessionFactoryBuilder(EntityManagerFactoryBuilderImpl.java:1468) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1450) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:93) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:443) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:436) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:411) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:419) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1862) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1811) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:603) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:331) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:201) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:977) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:621) + at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) + at de.thpeetz.kontor.KontorApplication.main(KontorApplication.java:21) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:52) +Caused by: org.postgresql.util.PSQLException: Der Verbindungsversuch schlug fehl. + at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:437) + at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:52) + at org.postgresql.jdbc.PgConnection.(PgConnection.java:290) + at org.postgresql.Driver.makeConnection(Driver.java:448) + at org.postgresql.Driver.connect(Driver.java:298) + at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:144) + at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:373) + at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:210) + at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:488) + at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:576) + at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:97) + at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) + at org.hibernate.engine.jdbc.connections.internal.DataSourceConnectionProvider.getConnection(DataSourceConnectionProvider.java:149) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:508) + at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:48) + ... 40 common frames omitted +Caused by: java.net.UnknownHostException: postgres + at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:569) + at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:284) + at java.base/java.net.Socket.connect(Socket.java:659) + at org.postgresql.core.PGStream.createSocket(PGStream.java:271) + at org.postgresql.core.PGStream.(PGStream.java:132) + at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:219) + at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:365) + ... 54 common frames omitted +2026-08-13 11:06:20,554 ERROR o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Failed to initialize JPA EntityManagerFactory: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) +2026-08-13 11:06:20,555 WARN o.s.c.s.AbstractApplicationContext [restartedMain] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) +2026-08-13 11:06:20,558 INFO o.a.j.l.DirectJDKLog [restartedMain] Stopping service [Tomcat] +2026-08-13 11:06:20,561 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 11:06:20,561 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-2] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 11:06:20,561 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-3] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 11:06:20,567 INFO o.s.b.a.l.ConditionEvaluationReportLogger [restartedMain] + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-08-13 11:06:20,577 ERROR o.s.b.SpringApplication [restartedMain] Application run failed +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1815) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:603) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:331) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:201) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:977) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:621) + at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) + at de.thpeetz.kontor.KontorApplication.main(KontorApplication.java:21) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:52) +Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:273) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:235) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:212) + at org.hibernate.boot.model.relational.Database.(Database.java:44) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:251) + at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.(InFlightMetadataCollectorImpl.java:203) + at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:180) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1388) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.populateSessionFactoryBuilder(EntityManagerFactoryBuilderImpl.java:1468) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1450) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:93) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:443) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:436) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:411) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:419) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1862) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1811) + ... 18 common frames omitted +Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) + at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:190) + at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:86) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentWithDefaults(JdbcEnvironmentInitiator.java:200) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:452) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironment(JdbcEnvironmentInitiator.java:143) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:120) + at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:80) + at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:133) + at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:260) + ... 34 common frames omitted +2026-08-13 11:10:55,948 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 2309224 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 11:10:55,950 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 11:10:55,993 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 11:10:56,676 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 11:10:56,795 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 113 ms. Found 6 JPA repository interfaces. +2026-08-13 11:10:57,277 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 11:10:57,285 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 11:10:57,286 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 11:10:57,286 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 11:10:57,315 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1322 ms +2026-08-13 11:10:59,903 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2397 ms +2026-08-13 11:10:59,956 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 11:10:59,980 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 106 classes. Took 13 ms. +2026-08-13 11:10:59,981 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 11:11:00,075 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 11:11:00,097 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 11:11:00,158 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 61 ms. +2026-08-13 11:11:00,192 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 11:11:00,224 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 11:11:00,501 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 11:11:00,522 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 11:11:00,622 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@313a309b +2026-08-13 11:11:00,623 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 11:11:00,668 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 11:11:00,963 INFO o.h.v.i.u.Version [restartedMain] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 11:11:01,634 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [restartedMain] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 11:11:01,703 WARN o.h.e.j.s.SqlExceptionHelper$StandardWarningHandler [restartedMain] HHH000247: ErrorCode: 0, SQLState: 00000 +2026-08-13 11:11:01,703 WARN o.h.e.j.s.SqlExceptionHelper$StandardWarningHandler [restartedMain] constraint "ukedab2e5jckaaoq2nprg2nyc2j" of relation "media_lofi" does not exist, skipping +2026-08-13 11:11:01,717 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 11:11:01,788 INFO o.s.d.j.r.q.QueryEnhancerFactories [restartedMain] Hibernate is in classpath; If applicable, HQL parser will be used. +2026-08-13 11:11:02,527 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [restartedMain] 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 +2026-08-13 11:11:02,950 DEBUG o.a.a.a.u.UUIDGenerator [restartedMain] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 11:11:03,053 WARN o.s.b.s.a.UserDetailsServiceAutoConfiguration [restartedMain] + +Using generated security password: 04312a83-babb-4cb9-a101-0475a3b0a93b + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2026-08-13 11:11:03,071 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [restartedMain] Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager +2026-08-13 11:11:03,176 INFO o.s.b.a.e.w.EndpointLinksResolver [restartedMain] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 11:11:03,300 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /* +2026-08-13 11:11:03,301 INFO o.a.c.AtmosphereFramework [restartedMain] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler +2026-08-13 11:11:03,320 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation +2026-08-13 11:11:03,325 INFO o.a.u.ForkJoinPool [restartedMain] Using ForkJoinPool java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power. +2026-08-13 11:11:03,328 INFO o.a.c.AtmosphereFramework [restartedMain] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol +2026-08-13 11:11:03,332 INFO o.a.c.JSR356AsyncSupport [restartedMain] JSR 356 Mapping path /VAADIN/push +2026-08-13 11:11:03,340 INFO o.a.c.AtmosphereFramework [restartedMain] Installing Default AtmosphereInterceptors +2026-08-13 11:11:03,340 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support +2026-08-13 11:11:03,341 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor +2026-08-13 11:11:03,341 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support +2026-08-13 11:11:03,342 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support +2026-08-13 11:11:03,342 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support +2026-08-13 11:11:03,342 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support +2026-08-13 11:11:03,343 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support +2026-08-13 11:11:03,343 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol +2026-08-13 11:11:03,343 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor +2026-08-13 11:11:03,344 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection +2026-08-13 11:11:03,344 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor +2026-08-13 11:11:03,344 INFO o.a.c.AtmosphereFramework [restartedMain] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them. +2026-08-13 11:11:03,344 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT +2026-08-13 11:11:03,344 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT +2026-08-13 11:11:03,345 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT +2026-08-13 11:11:03,345 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT +2026-08-13 11:11:03,345 INFO o.a.i.HeartbeatInterceptor [restartedMain] HeartbeatInterceptor configured with padding value 'X', client frequency 0 seconds and server frequency 60 seconds +2026-08-13 11:11:03,345 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT +2026-08-13 11:11:03,345 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT +2026-08-13 11:11:03,345 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT +2026-08-13 11:11:03,345 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT +2026-08-13 11:11:03,346 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT +2026-08-13 11:11:03,346 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT +2026-08-13 11:11:03,346 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT +2026-08-13 11:11:03,346 INFO o.a.c.AtmosphereFramework [restartedMain] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper +2026-08-13 11:11:03,346 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache +2026-08-13 11:11:03,346 INFO o.a.c.AtmosphereFramework [restartedMain] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster +2026-08-13 11:11:03,346 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Shared List Resources: false +2026-08-13 11:11:03,347 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Polling Wait Time 100 +2026-08-13 11:11:03,347 INFO o.a.c.AtmosphereFramework [restartedMain] Shared ExecutorService supported: true +2026-08-13 11:11:03,347 INFO o.a.c.AtmosphereFramework [restartedMain] Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor +2026-08-13 11:11:03,347 INFO o.a.c.AtmosphereFramework [restartedMain] Async I/O Thread Pool Size: 200 +2026-08-13 11:11:03,347 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory +2026-08-13 11:11:03,347 INFO o.a.c.AtmosphereFramework [restartedMain] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory +2026-08-13 11:11:03,347 INFO o.a.c.AtmosphereFramework [restartedMain] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor +2026-08-13 11:11:03,348 INFO o.a.c.AtmosphereFramework [restartedMain] Invoke AtmosphereInterceptor on WebSocket message true +2026-08-13 11:11:03,349 INFO o.a.c.AtmosphereFramework [restartedMain] HttpSession supported: true +2026-08-13 11:11:03,349 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation +2026-08-13 11:11:03,349 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/11.0.24 using jakarta.servlet/3.0 and jsr356/WebSocket API +2026-08-13 11:11:03,349 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere Framework 3.0.5.slf4jvaadin1 started. +2026-08-13 11:11:03,352 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT +2026-08-13 11:11:03,376 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting ProtocolHandler ["http-nio-8085"] +2026-08-13 11:11:03,394 INFO c.v.f.s.DefaultDeploymentConfiguration [restartedMain] +Vaadin is running in DEVELOPMENT mode - do not use for production deployments. +2026-08-13 11:11:03,434 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat started on port 8085 (http) with context path '/' +2026-08-13 11:11:03,573 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) is starting +2026-08-13 11:11:03,589 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying reconnection attempt 0/1 +2026-08-13 11:11:03,590 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying to connect with connectorFactory=org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory@81a8546 and currentConnectorConfig: TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 11:11:03,636 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Connector NettyConnector [host=localhost, port=61616, httpEnabled=false, httpUpgradeEnabled=false, useServlet=false, servletPath=/messaging/ActiveMQServlet, sslEnabled=false, useNio=true] using native epoll +2026-08-13 11:11:03,646 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Started EPOLL Netty Connector version 4.2.15.Final to localhost:61616 +2026-08-13 11:11:03,647 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Remote destination: localhost/127.0.0.1:61616 +2026-08-13 11:11:03,687 DEBUG o.a.a.a.c.r.i.n.NettyConnector$1 [Thread-0 (activemq-client-remoting)] Added ActiveMQClientChannelHandler to Channel with id = 641029e9 +2026-08-13 11:11:03,694 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Connected with the currentConnectorConfig=TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 11:11:03,744 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Reconnection successful +2026-08-13 11:11:03,745 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] ClientSessionFactoryImpl received backup update for primary/backup pair = TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost / null but it didn't belong to TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 11:11:03,776 DEBUG o.s.j.c.SingleConnectionFactory [restartedMain] Established shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@788a057 +2026-08-13 11:11:03,781 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Routes startup (total:3) +2026-08-13 11:11:03,781 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 11:11:03,781 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 11:11:03,781 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 11:11:03,782 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) started in 208ms (build:0ms init:0ms start:208ms boot:1s258ms) +2026-08-13 11:11:03,784 INFO o.s.b.StartupInfoLogger [restartedMain] Started KontorApplication in 8.303 seconds (process running for 8.7) +2026-08-13 11:11:03,787 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=e8d80ba5-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=()]@62723837 +2026-08-13 11:11:03,788 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=e8d91d16-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=()]@73e20875 +2026-08-13 11:11:03,789 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=e8d96b37-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=()]@54780271 +2026-08-13 11:11:03,837 INFO c.v.b.d.DevModeHandlerManagerImpl [restartedMain] Application running at http://localhost:8085/ +2026-08-13 11:52:03,255 INFO o.s.b.t.GracefulShutdown [SpringApplicationShutdownHook] Commencing graceful shutdown. Waiting for active requests to complete +2026-08-13 11:52:03,260 INFO o.s.b.t.GracefulShutdown [tomcat-shutdown] Graceful shutdown complete +2026-08-13 11:52:03,265 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) is shutting down (timeout:45s) +2026-08-13 11:52:03,942 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=e8d91d16-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=()]@73e20875 +2026-08-13 11:52:03,943 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Calling close on session ClientSessionImpl [name=e8d91d16-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=()]@73e20875 +2026-08-13 11:52:03,945 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] calling cleanup on ClientSessionImpl [name=e8d91d16-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=()]@73e20875 +2026-08-13 11:52:04,213 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=e8d80ba5-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=()]@62723837 +2026-08-13 11:52:04,213 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Calling close on session ClientSessionImpl [name=e8d80ba5-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=()]@62723837 +2026-08-13 11:52:04,278 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] calling cleanup on ClientSessionImpl [name=e8d80ba5-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=()]@62723837 +2026-08-13 11:52:04,282 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Routes stopped (total:3) +2026-08-13 11:52:04,282 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 11:52:04,282 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 11:52:04,282 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 11:52:04,287 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) shutdown in 1s21ms (uptime:41m0s) +2026-08-13 11:52:04,287 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [SpringApplicationShutdownHook] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=e8d96b37-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=()]@54780271 +2026-08-13 11:52:04,288 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=e8d96b37-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=()]@54780271 +2026-08-13 11:52:04,289 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=e8d96b37-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=()]@54780271 +2026-08-13 11:52:04,290 DEBUG o.s.j.c.SingleConnectionFactory [SpringApplicationShutdownHook] Closing shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@788a057 +2026-08-13 11:52:04,290 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=e8d4b044-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=(jms-session=,)]@2607d088 +2026-08-13 11:52:04,291 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=e8d4b044-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=(jms-session=,)]@2607d088 +2026-08-13 11:52:04,294 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [Thread-2 (activemq-client-global)] Failure captured on connectionID=641029e9, performing failover or reconnection now +org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException: [errorType=NOT_CONNECTED message=AMQ219006: Channel disconnected] + at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.connectionDestroyed(ClientSessionFactoryImpl.java:413) + at org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnector$Listener.lambda$connectionDestroyed$0(NettyConnector.java:1199) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:59) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) + at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:69) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120) +2026-08-13 11:52:04,298 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Session was already closed, giving up now, this=ClientSessionImpl [name=e8d4b044-96f6-11f1-81da-5e5c628d27e5, username=artemis, closed=true, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4039560f, metaData=(jms-session=,)]@2607d088 +2026-08-13 11:52:04,305 INFO o.s.o.j.AbstractEntityManagerFactoryBean [SpringApplicationShutdownHook] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 11:52:04,310 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown initiated... +2026-08-13 11:52:04,312 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown completed. +2026-08-13 12:33:45,583 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 3036523 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 12:33:45,585 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 12:33:45,642 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 12:33:46,296 WARN o.s.c.s.AbstractApplicationContext [restartedMain] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'userDetailsService' defined in class path resource [de/thpeetz/kontor/security/SecurityConfig.class]: Cannot register bean definition [Root bean: class=null; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=securityConfig; factoryMethodName=userDetailsService; initMethodNames=null; destroyMethodNames=[(inferred)]; defined in class path resource [de/thpeetz/kontor/security/SecurityConfig.class]] for bean 'userDetailsService' since there is already [Generic bean: class=de.thpeetz.kontor.services.KontorUserDetailsService; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; fallback=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in file [/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main/de/thpeetz/kontor/services/KontorUserDetailsService.class]] bound. +2026-08-13 12:33:46,301 INFO o.s.b.a.l.ConditionEvaluationReportLogger [restartedMain] + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-08-13 12:33:46,312 ERROR o.s.b.d.LoggingFailureAnalysisReporter [restartedMain] + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +The bean 'userDetailsService', defined in class path resource [de/thpeetz/kontor/security/SecurityConfig.class], could not be registered. A bean with that name has already been defined in file [/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main/de/thpeetz/kontor/services/KontorUserDetailsService.class] and overriding is disabled. + +Action: + +Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true + +2026-08-13 12:35:23,136 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 3054141 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 12:35:23,138 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 12:35:23,186 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 12:35:24,145 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 12:35:24,279 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 127 ms. Found 34 JPA repository interfaces. +2026-08-13 12:35:24,873 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 12:35:24,883 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 12:35:24,884 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 12:35:24,885 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 12:35:24,916 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1730 ms +2026-08-13 12:35:27,768 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2554 ms +2026-08-13 12:35:27,834 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 12:35:27,865 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 182 classes. Took 17 ms. +2026-08-13 12:35:27,866 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 12:35:27,969 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 12:35:27,992 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 12:35:28,050 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 57 ms. +2026-08-13 12:35:28,095 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 12:35:28,130 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 12:35:28,300 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 12:35:28,391 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@f0011b1 +2026-08-13 12:35:28,393 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 12:35:28,441 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 12:35:28,449 WARN o.s.c.s.AbstractApplicationContext [restartedMain] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: org/hibernate/query/BindableType +2026-08-13 12:35:28,451 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown initiated... +2026-08-13 12:35:28,452 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown completed. +2026-08-13 12:35:28,454 INFO o.a.j.l.DirectJDKLog [restartedMain] Stopping service [Tomcat] +2026-08-13 12:35:28,460 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:35:28,461 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-2] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:35:28,461 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-3] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:35:28,469 INFO o.s.b.a.l.ConditionEvaluationReportLogger [restartedMain] + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-08-13 12:35:28,478 ERROR o.s.b.SpringApplication [restartedMain] Application run failed +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: org/hibernate/query/BindableType + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1815) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:603) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:331) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:201) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:977) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:621) + at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) + at de.thpeetz.kontor.KontorApplication.main(KontorApplication.java:21) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:52) +Caused by: java.lang.NoClassDefFoundError: org/hibernate/query/BindableType + at java.base/java.lang.ClassLoader.defineClass1(Native Method) + at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) + at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144) + at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776) + at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + at java.base/java.lang.ClassLoader.defineClass1(Native Method) + at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) + at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144) + at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776) + at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + at io.hypersistence.utils.hibernate.type.HibernateTypesContributor.contribute(HibernateTypesContributor.java:113) + at org.hibernate.boot.internal.MetadataBuilderImpl.applyTypes(MetadataBuilderImpl.java:299) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1118) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.applyTypeContributors(EntityManagerFactoryBuilderImpl.java:1359) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.applyMetamodelBuilderSettings(EntityManagerFactoryBuilderImpl.java:1336) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:226) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:164) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:93) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:443) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:436) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:411) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:419) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1862) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1811) + ... 18 common frames omitted +Caused by: java.lang.ClassNotFoundException: org.hibernate.query.BindableType + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + ... 49 common frames omitted +2026-08-13 12:36:52,828 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 3071130 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 12:36:52,831 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 12:36:52,882 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 12:36:53,749 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 12:36:53,897 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 139 ms. Found 34 JPA repository interfaces. +2026-08-13 12:36:54,434 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 12:36:54,443 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 12:36:54,444 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 12:36:54,444 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 12:36:54,488 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1604 ms +2026-08-13 12:36:57,283 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2493 ms +2026-08-13 12:36:57,336 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 12:36:57,361 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 182 classes. Took 15 ms. +2026-08-13 12:36:57,362 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 12:36:57,456 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 12:36:57,478 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 12:36:57,567 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 89 ms. +2026-08-13 12:36:57,595 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 12:36:57,634 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 12:36:57,829 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 12:36:57,917 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@53794ff0 +2026-08-13 12:36:57,918 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 12:36:57,959 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 12:36:57,967 WARN o.s.c.s.AbstractApplicationContext [restartedMain] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: org/hibernate/query/BindableType +2026-08-13 12:36:57,968 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown initiated... +2026-08-13 12:36:57,969 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown completed. +2026-08-13 12:36:57,971 INFO o.a.j.l.DirectJDKLog [restartedMain] Stopping service [Tomcat] +2026-08-13 12:36:57,975 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:36:57,975 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-2] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:36:57,975 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-3] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:36:57,982 INFO o.s.b.a.l.ConditionEvaluationReportLogger [restartedMain] + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-08-13 12:36:57,992 ERROR o.s.b.SpringApplication [restartedMain] Application run failed +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: org/hibernate/query/BindableType + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1815) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:603) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:331) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:201) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:977) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:621) + at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) + at de.thpeetz.kontor.KontorApplication.main(KontorApplication.java:21) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:52) +Caused by: java.lang.NoClassDefFoundError: org/hibernate/query/BindableType + at java.base/java.lang.ClassLoader.defineClass1(Native Method) + at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) + at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144) + at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776) + at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + at java.base/java.lang.ClassLoader.defineClass1(Native Method) + at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) + at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144) + at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776) + at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + at io.hypersistence.utils.hibernate.type.HibernateTypesContributor.contribute(HibernateTypesContributor.java:113) + at org.hibernate.boot.internal.MetadataBuilderImpl.applyTypes(MetadataBuilderImpl.java:299) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1118) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.applyTypeContributors(EntityManagerFactoryBuilderImpl.java:1359) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.applyMetamodelBuilderSettings(EntityManagerFactoryBuilderImpl.java:1336) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:226) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:164) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:93) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:443) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:436) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:411) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:419) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1862) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1811) + ... 18 common frames omitted +Caused by: java.lang.ClassNotFoundException: org.hibernate.query.BindableType + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + ... 49 common frames omitted +2026-08-13 12:38:08,093 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 3085008 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 12:38:08,096 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 12:38:08,154 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 12:38:09,890 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 12:38:10,017 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 121 ms. Found 34 JPA repository interfaces. +2026-08-13 12:38:10,742 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 12:38:10,767 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 12:38:10,772 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 12:38:10,773 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 12:38:10,870 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 2715 ms +2026-08-13 12:38:14,245 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2938 ms +2026-08-13 12:38:14,312 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 12:38:14,346 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 182 classes. Took 17 ms. +2026-08-13 12:38:14,348 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 12:38:14,459 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 12:38:14,488 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 12:38:14,587 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 98 ms. +2026-08-13 12:38:14,665 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 12:38:14,737 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 12:38:15,045 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 12:38:15,168 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@1f1c2db0 +2026-08-13 12:38:15,170 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 12:38:15,257 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 12:38:15,273 WARN o.s.c.s.AbstractApplicationContext [restartedMain] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: org/hibernate/query/BindableType +2026-08-13 12:38:15,275 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown initiated... +2026-08-13 12:38:15,321 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown completed. +2026-08-13 12:38:15,324 INFO o.a.j.l.DirectJDKLog [restartedMain] Stopping service [Tomcat] +2026-08-13 12:38:15,330 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:38:15,330 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-2] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:38:15,330 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-3] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:38:15,342 INFO o.s.b.a.l.ConditionEvaluationReportLogger [restartedMain] + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-08-13 12:38:15,356 ERROR o.s.b.SpringApplication [restartedMain] Application run failed +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: org/hibernate/query/BindableType + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1815) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:603) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:331) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:201) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:977) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:621) + at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) + at de.thpeetz.kontor.KontorApplication.main(KontorApplication.java:21) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:52) +Caused by: java.lang.NoClassDefFoundError: org/hibernate/query/BindableType + at java.base/java.lang.ClassLoader.defineClass1(Native Method) + at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) + at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144) + at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776) + at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + at java.base/java.lang.ClassLoader.defineClass1(Native Method) + at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) + at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144) + at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776) + at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + at io.hypersistence.utils.hibernate.type.HibernateTypesContributor.contribute(HibernateTypesContributor.java:113) + at org.hibernate.boot.internal.MetadataBuilderImpl.applyTypes(MetadataBuilderImpl.java:299) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1118) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.applyTypeContributors(EntityManagerFactoryBuilderImpl.java:1359) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.applyMetamodelBuilderSettings(EntityManagerFactoryBuilderImpl.java:1336) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:226) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:164) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:93) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:443) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:436) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:411) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:419) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1862) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1811) + ... 18 common frames omitted +Caused by: java.lang.ClassNotFoundException: org.hibernate.query.BindableType + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + ... 49 common frames omitted +2026-08-13 12:41:18,869 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 3122398 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 12:41:18,871 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 12:41:18,943 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 12:41:19,907 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 12:41:20,042 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 128 ms. Found 34 JPA repository interfaces. +2026-08-13 12:41:20,593 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 12:41:20,602 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 12:41:20,603 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 12:41:20,604 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 12:41:20,633 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1689 ms +2026-08-13 12:41:23,609 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2624 ms +2026-08-13 12:41:23,674 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 12:41:23,707 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 182 classes. Took 18 ms. +2026-08-13 12:41:23,709 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 12:41:23,817 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 12:41:23,843 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 12:41:23,905 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 62 ms. +2026-08-13 12:41:23,943 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 12:41:23,985 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 12:41:24,196 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 12:41:24,290 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@7894fe0a +2026-08-13 12:41:24,291 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 12:41:24,340 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 12:41:24,350 WARN o.s.c.s.AbstractApplicationContext [restartedMain] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: org/hibernate/query/BindableType +2026-08-13 12:41:24,351 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown initiated... +2026-08-13 12:41:24,352 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown completed. +2026-08-13 12:41:24,355 INFO o.a.j.l.DirectJDKLog [restartedMain] Stopping service [Tomcat] +2026-08-13 12:41:24,358 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:41:24,359 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-2] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:41:24,359 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-3] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:41:24,375 INFO o.s.b.a.l.ConditionEvaluationReportLogger [restartedMain] + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-08-13 12:41:24,386 ERROR o.s.b.SpringApplication [restartedMain] Application run failed +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: org/hibernate/query/BindableType + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1815) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:603) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:331) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:201) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:977) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:621) + at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) + at de.thpeetz.kontor.KontorApplication.main(KontorApplication.java:21) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:52) +Caused by: java.lang.NoClassDefFoundError: org/hibernate/query/BindableType + at java.base/java.lang.ClassLoader.defineClass1(Native Method) + at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) + at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144) + at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776) + at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + at java.base/java.lang.ClassLoader.defineClass1(Native Method) + at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) + at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144) + at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776) + at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + at io.hypersistence.utils.hibernate.type.HibernateTypesContributor.contribute(HibernateTypesContributor.java:113) + at org.hibernate.boot.internal.MetadataBuilderImpl.applyTypes(MetadataBuilderImpl.java:299) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1118) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.applyTypeContributors(EntityManagerFactoryBuilderImpl.java:1359) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.applyMetamodelBuilderSettings(EntityManagerFactoryBuilderImpl.java:1336) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:226) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:164) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:93) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:443) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:436) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:411) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:419) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1862) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1811) + ... 18 common frames omitted +Caused by: java.lang.ClassNotFoundException: org.hibernate.query.BindableType + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + ... 49 common frames omitted +2026-08-13 12:42:55,320 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 3137155 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 12:42:55,322 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 12:42:55,410 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 12:42:56,380 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 12:42:56,529 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 142 ms. Found 34 JPA repository interfaces. +2026-08-13 12:42:57,105 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 12:42:57,114 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 12:42:57,115 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 12:42:57,115 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 12:42:57,149 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1737 ms +2026-08-13 12:43:00,028 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2547 ms +2026-08-13 12:43:00,083 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 12:43:00,117 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 182 classes. Took 23 ms. +2026-08-13 12:43:00,119 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 12:43:00,229 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 12:43:00,254 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 12:43:00,307 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 53 ms. +2026-08-13 12:43:00,349 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 12:43:00,394 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 12:43:00,544 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 12:43:00,624 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@464030bb +2026-08-13 12:43:00,626 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 12:43:00,666 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 12:43:00,674 WARN o.s.c.s.AbstractApplicationContext [restartedMain] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: org/hibernate/query/BindableType +2026-08-13 12:43:00,676 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown initiated... +2026-08-13 12:43:00,677 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown completed. +2026-08-13 12:43:00,679 INFO o.a.j.l.DirectJDKLog [restartedMain] Stopping service [Tomcat] +2026-08-13 12:43:00,682 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:43:00,683 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-2] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:43:00,683 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-3] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 12:43:00,690 INFO o.s.b.a.l.ConditionEvaluationReportLogger [restartedMain] + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-08-13 12:43:00,699 ERROR o.s.b.SpringApplication [restartedMain] Application run failed +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: org/hibernate/query/BindableType + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1815) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:603) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:331) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:201) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:977) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:621) + at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) + at de.thpeetz.kontor.KontorApplication.main(KontorApplication.java:21) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:52) +Caused by: java.lang.NoClassDefFoundError: org/hibernate/query/BindableType + at java.base/java.lang.ClassLoader.defineClass1(Native Method) + at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) + at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144) + at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776) + at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + at java.base/java.lang.ClassLoader.defineClass1(Native Method) + at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) + at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144) + at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776) + at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + at io.hypersistence.utils.hibernate.type.HibernateTypesContributor.contribute(HibernateTypesContributor.java:113) + at org.hibernate.boot.internal.MetadataBuilderImpl.applyTypes(MetadataBuilderImpl.java:299) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1118) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.applyTypeContributors(EntityManagerFactoryBuilderImpl.java:1359) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.applyMetamodelBuilderSettings(EntityManagerFactoryBuilderImpl.java:1336) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:226) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:164) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:93) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:443) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:436) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:411) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:419) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1862) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1811) + ... 18 common frames omitted +Caused by: java.lang.ClassNotFoundException: org.hibernate.query.BindableType + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + ... 49 common frames omitted +2026-08-13 13:23:34,908 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 3540422 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 13:23:34,918 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 13:23:34,973 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 13:23:35,893 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 13:23:36,031 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 130 ms. Found 34 JPA repository interfaces. +2026-08-13 13:23:36,566 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 13:23:36,574 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 13:23:36,575 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 13:23:36,576 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 13:23:36,606 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1632 ms +2026-08-13 13:23:39,539 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2653 ms +2026-08-13 13:23:39,602 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 13:23:39,633 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 182 classes. Took 18 ms. +2026-08-13 13:23:39,634 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 13:23:39,778 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 13:23:39,816 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 13:23:39,885 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 68 ms. +2026-08-13 13:23:39,943 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 13:23:39,988 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 13:23:40,184 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 13:23:40,274 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@5c76d624 +2026-08-13 13:23:40,276 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 13:23:40,326 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 13:23:40,335 WARN o.s.c.s.AbstractApplicationContext [restartedMain] Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: org/hibernate/query/BindableType +2026-08-13 13:23:40,336 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown initiated... +2026-08-13 13:23:40,337 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Shutdown completed. +2026-08-13 13:23:40,339 INFO o.a.j.l.DirectJDKLog [restartedMain] Stopping service [Tomcat] +2026-08-13 13:23:40,345 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 13:23:40,345 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-2] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 13:23:40,346 WARN o.a.j.l.DirectJDKLog [restartedMain] The web application [ROOT] appears to have started a thread named [vaadin-file-watcher-3] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: + java.base/jdk.internal.misc.Unsafe.park(Native Method) + java.base/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408) + java.base/java.util.concurrent.LinkedTransferQueue$DualNode.await(LinkedTransferQueue.java:452) + java.base/java.util.concurrent.SynchronousQueue$Transferer.xferLifo(SynchronousQueue.java:194) + java.base/java.util.concurrent.SynchronousQueue.xfer(SynchronousQueue.java:235) + java.base/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:338) + java.base/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1015) + java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) + java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + java.base/java.lang.Thread.run(Thread.java:1474) +2026-08-13 13:23:40,355 INFO o.s.b.a.l.ConditionEvaluationReportLogger [restartedMain] + +Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. +2026-08-13 13:23:40,373 ERROR o.s.b.SpringApplication [restartedMain] Application run failed +org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: org/hibernate/query/BindableType + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1815) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:603) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:525) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:331) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:201) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:977) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:621) + at org.springframework.boot.web.server.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:756) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:445) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:321) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) + at de.thpeetz.kontor.KontorApplication.main(KontorApplication.java:21) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:52) +Caused by: java.lang.NoClassDefFoundError: org/hibernate/query/BindableType + at java.base/java.lang.ClassLoader.defineClass1(Native Method) + at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) + at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144) + at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776) + at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + at java.base/java.lang.ClassLoader.defineClass1(Native Method) + at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:962) + at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:144) + at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:776) + at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:691) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:620) + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:578) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + at io.hypersistence.utils.hibernate.type.HibernateTypesContributor.contribute(HibernateTypesContributor.java:113) + at org.hibernate.boot.internal.MetadataBuilderImpl.applyTypes(MetadataBuilderImpl.java:299) + at java.base/java.lang.Iterable.forEach(Iterable.java:75) + at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1118) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.applyTypeContributors(EntityManagerFactoryBuilderImpl.java:1359) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.applyMetamodelBuilderSettings(EntityManagerFactoryBuilderImpl.java:1336) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:226) + at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.(EntityManagerFactoryBuilderImpl.java:164) + at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:93) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:443) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:436) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:411) + at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:419) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1862) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1811) + ... 18 common frames omitted +Caused by: java.lang.ClassNotFoundException: org.hibernate.query.BindableType + at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) + at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490) + ... 49 common frames omitted +2026-08-13 13:30:46,933 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 3605359 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 13:30:46,935 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 13:30:46,987 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 13:30:47,825 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 13:30:47,959 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 127 ms. Found 34 JPA repository interfaces. +2026-08-13 13:30:48,480 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 13:30:48,490 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 13:30:48,491 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 13:30:48,492 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 13:30:48,526 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1538 ms +2026-08-13 13:30:51,344 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2533 ms +2026-08-13 13:30:51,401 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 13:30:51,438 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 182 classes. Took 22 ms. +2026-08-13 13:30:51,440 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 13:30:51,543 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 13:30:51,569 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 13:30:51,632 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 62 ms. +2026-08-13 13:30:51,683 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 13:30:51,731 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 13:30:51,924 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 13:30:52,013 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@39cfc66 +2026-08-13 13:30:52,014 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 13:30:52,054 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 13:30:52,219 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 13:30:52,571 INFO o.h.v.i.u.Version [restartedMain] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 13:30:53,447 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [restartedMain] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 13:30:53,522 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 13:30:53,591 INFO o.s.d.j.r.q.QueryEnhancerFactories [restartedMain] Hibernate is in classpath; If applicable, HQL parser will be used. +2026-08-13 13:30:54,673 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [restartedMain] 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 +2026-08-13 13:30:54,749 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [restartedMain] Global AuthenticationManager configured with UserDetailsService bean with name userDetailsService +2026-08-13 13:30:55,202 DEBUG o.a.a.a.u.UUIDGenerator [restartedMain] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 13:30:55,374 INFO o.s.b.a.e.w.EndpointLinksResolver [restartedMain] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 13:30:55,502 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /* +2026-08-13 13:30:55,503 INFO o.a.c.AtmosphereFramework [restartedMain] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler +2026-08-13 13:30:55,529 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation +2026-08-13 13:30:55,535 INFO o.a.u.ForkJoinPool [restartedMain] Using ForkJoinPool java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power. +2026-08-13 13:30:55,539 INFO o.a.c.AtmosphereFramework [restartedMain] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol +2026-08-13 13:30:55,544 INFO o.a.c.JSR356AsyncSupport [restartedMain] JSR 356 Mapping path /VAADIN/push +2026-08-13 13:30:55,554 INFO o.a.c.AtmosphereFramework [restartedMain] Installing Default AtmosphereInterceptors +2026-08-13 13:30:55,555 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support +2026-08-13 13:30:55,555 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor +2026-08-13 13:30:55,556 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support +2026-08-13 13:30:55,557 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support +2026-08-13 13:30:55,557 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support +2026-08-13 13:30:55,558 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support +2026-08-13 13:30:55,558 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support +2026-08-13 13:30:55,559 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol +2026-08-13 13:30:55,560 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor +2026-08-13 13:30:55,560 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection +2026-08-13 13:30:55,560 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor +2026-08-13 13:30:55,561 INFO o.a.c.AtmosphereFramework [restartedMain] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them. +2026-08-13 13:30:55,561 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT +2026-08-13 13:30:55,562 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT +2026-08-13 13:30:55,562 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:30:55,562 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:30:55,562 INFO o.a.i.HeartbeatInterceptor [restartedMain] HeartbeatInterceptor configured with padding value 'X', client frequency 0 seconds and server frequency 60 seconds +2026-08-13 13:30:55,563 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:30:55,563 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:30:55,563 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:30:55,564 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT +2026-08-13 13:30:55,564 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT +2026-08-13 13:30:55,564 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT +2026-08-13 13:30:55,564 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT +2026-08-13 13:30:55,565 INFO o.a.c.AtmosphereFramework [restartedMain] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper +2026-08-13 13:30:55,566 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache +2026-08-13 13:30:55,566 INFO o.a.c.AtmosphereFramework [restartedMain] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster +2026-08-13 13:30:55,567 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Shared List Resources: false +2026-08-13 13:30:55,568 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Polling Wait Time 100 +2026-08-13 13:30:55,568 INFO o.a.c.AtmosphereFramework [restartedMain] Shared ExecutorService supported: true +2026-08-13 13:30:55,569 INFO o.a.c.AtmosphereFramework [restartedMain] Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor +2026-08-13 13:30:55,569 INFO o.a.c.AtmosphereFramework [restartedMain] Async I/O Thread Pool Size: 200 +2026-08-13 13:30:55,569 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory +2026-08-13 13:30:55,569 INFO o.a.c.AtmosphereFramework [restartedMain] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory +2026-08-13 13:30:55,570 INFO o.a.c.AtmosphereFramework [restartedMain] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor +2026-08-13 13:30:55,572 INFO o.a.c.AtmosphereFramework [restartedMain] Invoke AtmosphereInterceptor on WebSocket message true +2026-08-13 13:30:55,572 INFO o.a.c.AtmosphereFramework [restartedMain] HttpSession supported: true +2026-08-13 13:30:55,573 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation +2026-08-13 13:30:55,573 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/11.0.24 using jakarta.servlet/3.0 and jsr356/WebSocket API +2026-08-13 13:30:55,573 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere Framework 3.0.5.slf4jvaadin1 started. +2026-08-13 13:30:55,576 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT +2026-08-13 13:30:55,622 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting ProtocolHandler ["http-nio-8085"] +2026-08-13 13:30:55,644 INFO c.v.f.s.DefaultDeploymentConfiguration [restartedMain] +Vaadin is running in DEVELOPMENT mode - do not use for production deployments. +2026-08-13 13:30:55,708 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat started on port 8085 (http) with context path '/' +2026-08-13 13:30:55,894 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) is starting +2026-08-13 13:30:55,915 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying reconnection attempt 0/1 +2026-08-13 13:30:55,915 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying to connect with connectorFactory=org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory@719ec6dc and currentConnectorConfig: TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:30:55,977 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Connector NettyConnector [host=localhost, port=61616, httpEnabled=false, httpUpgradeEnabled=false, useServlet=false, servletPath=/messaging/ActiveMQServlet, sslEnabled=false, useNio=true] using native epoll +2026-08-13 13:30:55,994 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Started EPOLL Netty Connector version 4.2.15.Final to localhost:61616 +2026-08-13 13:30:55,995 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Remote destination: localhost/127.0.0.1:61616 +2026-08-13 13:30:56,051 DEBUG o.a.a.a.c.r.i.n.NettyConnector$1 [Thread-0 (activemq-client-remoting)] Added ActiveMQClientChannelHandler to Channel with id = 8d4af4e5 +2026-08-13 13:30:56,060 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Connected with the currentConnectorConfig=TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:30:56,118 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Reconnection successful +2026-08-13 13:30:56,119 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] ClientSessionFactoryImpl received backup update for primary/backup pair = TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost / null but it didn't belong to TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:30:56,166 DEBUG o.s.j.c.SingleConnectionFactory [restartedMain] Established shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@6d470f33 +2026-08-13 13:30:56,173 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Routes startup (total:3) +2026-08-13 13:30:56,173 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 13:30:56,173 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 13:30:56,174 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 13:30:56,174 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) started in 278ms (build:0ms init:0ms start:278ms boot:1s747ms) +2026-08-13 13:30:56,177 INFO d.t.k.s.SetupModuleBookshelf [restartedMain] Set up Bookshelf data +2026-08-13 13:30:56,178 INFO d.t.k.s.SetupModuleComics [restartedMain] Set up Comics data +2026-08-13 13:30:56,179 INFO d.t.k.s.SetupModuleMedia [restartedMain] Set up Media data +2026-08-13 13:30:56,179 INFO d.t.k.s.SetupModuleTysc [restartedMain] Setp up TYSC data +2026-08-13 13:30:56,181 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=7319491d-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=()]@2dd836eb +2026-08-13 13:30:56,183 INFO o.s.b.StartupInfoLogger [restartedMain] Started KontorApplication in 9.682 seconds (process running for 10.044) +2026-08-13 13:30:56,183 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=731a819e-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=()]@4b89065c +2026-08-13 13:30:56,186 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=731b44ef-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=()]@7526bf52 +2026-08-13 13:30:56,252 INFO c.v.b.d.DevModeHandlerManagerImpl [restartedMain] Application running at http://localhost:8085/ +2026-08-13 13:31:20,840 INFO o.a.j.l.DirectJDKLog [http-nio-8085-exec-1] Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-08-13 13:31:20,841 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Initializing Servlet 'dispatcherServlet' +2026-08-13 13:31:20,843 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Completed initialization in 2 ms +2026-08-13 13:32:13,988 INFO o.s.b.t.GracefulShutdown [SpringApplicationShutdownHook] Commencing graceful shutdown. Waiting for active requests to complete +2026-08-13 13:32:13,990 INFO o.s.b.t.GracefulShutdown [tomcat-shutdown] Graceful shutdown complete +2026-08-13 13:32:13,993 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) is shutting down (timeout:45s) +2026-08-13 13:32:14,354 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=7319491d-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=()]@2dd836eb +2026-08-13 13:32:14,354 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=731b44ef-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=()]@7526bf52 +2026-08-13 13:32:14,354 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Calling close on session ClientSessionImpl [name=7319491d-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=()]@2dd836eb +2026-08-13 13:32:14,356 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] calling cleanup on ClientSessionImpl [name=7319491d-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=()]@2dd836eb +2026-08-13 13:32:14,364 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Calling close on session ClientSessionImpl [name=731b44ef-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=()]@7526bf52 +2026-08-13 13:32:14,365 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] calling cleanup on ClientSessionImpl [name=731b44ef-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=()]@7526bf52 +2026-08-13 13:32:14,368 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Routes stopped (total:3) +2026-08-13 13:32:14,368 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 13:32:14,368 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 13:32:14,368 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 13:32:14,371 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) shutdown in 378ms (uptime:1m18s) +2026-08-13 13:32:14,371 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [SpringApplicationShutdownHook] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=731a819e-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=()]@4b89065c +2026-08-13 13:32:14,371 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=731a819e-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=()]@4b89065c +2026-08-13 13:32:14,372 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=731a819e-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=()]@4b89065c +2026-08-13 13:32:14,373 DEBUG o.s.j.c.SingleConnectionFactory [SpringApplicationShutdownHook] Closing shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@6d470f33 +2026-08-13 13:32:14,373 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=73148e2c-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=(jms-session=,)]@6a4cf06b +2026-08-13 13:32:14,374 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=73148e2c-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=(jms-session=,)]@6a4cf06b +2026-08-13 13:32:14,376 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [Thread-1 (activemq-client-global)] Failure captured on connectionID=8d4af4e5, performing failover or reconnection now +org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException: [errorType=NOT_CONNECTED message=AMQ219006: Channel disconnected] + at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.connectionDestroyed(ClientSessionFactoryImpl.java:413) + at org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnector$Listener.lambda$connectionDestroyed$0(NettyConnector.java:1199) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:59) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) + at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:69) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120) +2026-08-13 13:32:14,379 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Session was already closed, giving up now, this=ClientSessionImpl [name=73148e2c-970a-11f1-a9d0-5e5c628d27e5, username=artemis, closed=true, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@7bd72835, metaData=(jms-session=,)]@6a4cf06b +2026-08-13 13:32:14,387 INFO o.s.o.j.AbstractEntityManagerFactoryBean [SpringApplicationShutdownHook] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 13:32:14,390 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown initiated... +2026-08-13 13:32:14,393 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown completed. +2026-08-13 13:32:46,746 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 3625944 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 13:32:46,748 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 13:32:46,808 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 13:32:47,713 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 13:32:47,887 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 166 ms. Found 34 JPA repository interfaces. +2026-08-13 13:32:48,437 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 13:32:48,446 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 13:32:48,448 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 13:32:48,448 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 13:32:48,484 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1675 ms +2026-08-13 13:32:51,317 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2545 ms +2026-08-13 13:32:51,376 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 13:32:51,407 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 182 classes. Took 18 ms. +2026-08-13 13:32:51,409 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 13:32:51,524 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 13:32:51,548 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 13:32:51,622 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 73 ms. +2026-08-13 13:32:51,670 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 13:32:51,719 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 13:32:51,904 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 13:32:51,992 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@16174d06 +2026-08-13 13:32:51,994 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 13:32:52,037 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 13:32:52,198 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 13:32:52,586 INFO o.h.v.i.u.Version [restartedMain] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 13:32:53,494 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [restartedMain] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 13:32:53,562 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 13:32:53,630 INFO o.s.d.j.r.q.QueryEnhancerFactories [restartedMain] Hibernate is in classpath; If applicable, HQL parser will be used. +2026-08-13 13:32:54,714 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [restartedMain] 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 +2026-08-13 13:32:54,775 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [restartedMain] Global AuthenticationManager configured with UserDetailsService bean with name userDetailsService +2026-08-13 13:32:55,256 DEBUG o.a.a.a.u.UUIDGenerator [restartedMain] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 13:32:55,430 INFO o.s.b.a.e.w.EndpointLinksResolver [restartedMain] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 13:32:55,546 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /* +2026-08-13 13:32:55,546 INFO o.a.c.AtmosphereFramework [restartedMain] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler +2026-08-13 13:32:55,573 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation +2026-08-13 13:32:55,579 INFO o.a.u.ForkJoinPool [restartedMain] Using ForkJoinPool java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power. +2026-08-13 13:32:55,584 INFO o.a.c.AtmosphereFramework [restartedMain] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol +2026-08-13 13:32:55,587 INFO o.a.c.JSR356AsyncSupport [restartedMain] JSR 356 Mapping path /VAADIN/push +2026-08-13 13:32:55,600 INFO o.a.c.AtmosphereFramework [restartedMain] Installing Default AtmosphereInterceptors +2026-08-13 13:32:55,601 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support +2026-08-13 13:32:55,602 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor +2026-08-13 13:32:55,602 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support +2026-08-13 13:32:55,603 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support +2026-08-13 13:32:55,603 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support +2026-08-13 13:32:55,604 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support +2026-08-13 13:32:55,604 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support +2026-08-13 13:32:55,605 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol +2026-08-13 13:32:55,605 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor +2026-08-13 13:32:55,605 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection +2026-08-13 13:32:55,606 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor +2026-08-13 13:32:55,606 INFO o.a.c.AtmosphereFramework [restartedMain] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them. +2026-08-13 13:32:55,606 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT +2026-08-13 13:32:55,606 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT +2026-08-13 13:32:55,607 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:32:55,607 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:32:55,607 INFO o.a.i.HeartbeatInterceptor [restartedMain] HeartbeatInterceptor configured with padding value 'X', client frequency 0 seconds and server frequency 60 seconds +2026-08-13 13:32:55,607 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:32:55,608 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:32:55,608 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:32:55,608 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT +2026-08-13 13:32:55,608 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT +2026-08-13 13:32:55,608 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT +2026-08-13 13:32:55,609 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT +2026-08-13 13:32:55,609 INFO o.a.c.AtmosphereFramework [restartedMain] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper +2026-08-13 13:32:55,610 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache +2026-08-13 13:32:55,610 INFO o.a.c.AtmosphereFramework [restartedMain] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster +2026-08-13 13:32:55,610 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Shared List Resources: false +2026-08-13 13:32:55,610 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Polling Wait Time 100 +2026-08-13 13:32:55,611 INFO o.a.c.AtmosphereFramework [restartedMain] Shared ExecutorService supported: true +2026-08-13 13:32:55,611 INFO o.a.c.AtmosphereFramework [restartedMain] Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor +2026-08-13 13:32:55,611 INFO o.a.c.AtmosphereFramework [restartedMain] Async I/O Thread Pool Size: 200 +2026-08-13 13:32:55,611 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory +2026-08-13 13:32:55,611 INFO o.a.c.AtmosphereFramework [restartedMain] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory +2026-08-13 13:32:55,612 INFO o.a.c.AtmosphereFramework [restartedMain] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor +2026-08-13 13:32:55,614 INFO o.a.c.AtmosphereFramework [restartedMain] Invoke AtmosphereInterceptor on WebSocket message true +2026-08-13 13:32:55,614 INFO o.a.c.AtmosphereFramework [restartedMain] HttpSession supported: true +2026-08-13 13:32:55,615 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation +2026-08-13 13:32:55,615 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/11.0.24 using jakarta.servlet/3.0 and jsr356/WebSocket API +2026-08-13 13:32:55,615 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere Framework 3.0.5.slf4jvaadin1 started. +2026-08-13 13:32:55,618 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT +2026-08-13 13:32:55,655 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting ProtocolHandler ["http-nio-8085"] +2026-08-13 13:32:55,672 INFO c.v.f.s.DefaultDeploymentConfiguration [restartedMain] +Vaadin is running in DEVELOPMENT mode - do not use for production deployments. +2026-08-13 13:32:55,736 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat started on port 8085 (http) with context path '/' +2026-08-13 13:32:55,913 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) is starting +2026-08-13 13:32:55,930 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying reconnection attempt 0/1 +2026-08-13 13:32:55,930 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying to connect with connectorFactory=org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory@1b544b69 and currentConnectorConfig: TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:32:55,981 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Connector NettyConnector [host=localhost, port=61616, httpEnabled=false, httpUpgradeEnabled=false, useServlet=false, servletPath=/messaging/ActiveMQServlet, sslEnabled=false, useNio=true] using native epoll +2026-08-13 13:32:55,994 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Started EPOLL Netty Connector version 4.2.15.Final to localhost:61616 +2026-08-13 13:32:55,994 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Remote destination: localhost/127.0.0.1:61616 +2026-08-13 13:32:56,049 DEBUG o.a.a.a.c.r.i.n.NettyConnector$1 [Thread-0 (activemq-client-remoting)] Added ActiveMQClientChannelHandler to Channel with id = afabb530 +2026-08-13 13:32:56,066 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Connected with the currentConnectorConfig=TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:32:56,136 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Reconnection successful +2026-08-13 13:32:56,137 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] ClientSessionFactoryImpl received backup update for primary/backup pair = TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost / null but it didn't belong to TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:32:56,162 DEBUG o.s.j.c.SingleConnectionFactory [restartedMain] Established shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@4b9df579 +2026-08-13 13:32:56,168 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Routes startup (total:3) +2026-08-13 13:32:56,168 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 13:32:56,168 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 13:32:56,168 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 13:32:56,168 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) started in 255ms (build:0ms init:0ms start:255ms boot:1s724ms) +2026-08-13 13:32:56,170 INFO d.t.k.s.SetupModuleBookshelf [restartedMain] Set up Bookshelf data +2026-08-13 13:32:56,170 INFO d.t.k.s.SetupModuleComics [restartedMain] Set up Comics data +2026-08-13 13:32:56,170 INFO d.t.k.s.SetupModuleMedia [restartedMain] Set up Media data +2026-08-13 13:32:56,170 INFO d.t.k.s.SetupModuleTysc [restartedMain] Setp up TYSC data +2026-08-13 13:32:56,172 INFO o.s.b.StartupInfoLogger [restartedMain] Started KontorApplication in 9.917 seconds (process running for 10.282) +2026-08-13 13:32:56,175 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=ba9f121e-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=()]@6bf4a04a +2026-08-13 13:32:56,175 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=baa04a9f-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=()]@149b8951 +2026-08-13 13:32:56,177 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=baa098c0-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=()]@6e775f21 +2026-08-13 13:32:56,233 INFO c.v.b.d.DevModeHandlerManagerImpl [restartedMain] Application running at http://localhost:8085/ +2026-08-13 13:33:00,085 INFO o.a.j.l.DirectJDKLog [http-nio-8085-exec-1] Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-08-13 13:33:00,086 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Initializing Servlet 'dispatcherServlet' +2026-08-13 13:33:00,089 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Completed initialization in 2 ms +2026-08-13 13:35:39,946 INFO o.s.b.t.GracefulShutdown [SpringApplicationShutdownHook] Commencing graceful shutdown. Waiting for active requests to complete +2026-08-13 13:35:39,949 INFO o.s.b.t.GracefulShutdown [tomcat-shutdown] Graceful shutdown complete +2026-08-13 13:35:39,952 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) is shutting down (timeout:45s) +2026-08-13 13:35:40,417 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=baa04a9f-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=()]@149b8951 +2026-08-13 13:35:40,417 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=baa098c0-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=()]@6e775f21 +2026-08-13 13:35:40,417 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Calling close on session ClientSessionImpl [name=baa04a9f-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=()]@149b8951 +2026-08-13 13:35:40,418 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] calling cleanup on ClientSessionImpl [name=baa04a9f-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=()]@149b8951 +2026-08-13 13:35:40,427 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Calling close on session ClientSessionImpl [name=baa098c0-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=()]@6e775f21 +2026-08-13 13:35:40,428 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] calling cleanup on ClientSessionImpl [name=baa098c0-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=()]@6e775f21 +2026-08-13 13:35:40,431 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Routes stopped (total:3) +2026-08-13 13:35:40,431 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 13:35:40,431 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 13:35:40,431 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 13:35:40,434 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) shutdown in 481ms (uptime:2m44s) +2026-08-13 13:35:40,434 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [SpringApplicationShutdownHook] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=ba9f121e-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=()]@6bf4a04a +2026-08-13 13:35:40,434 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=ba9f121e-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=()]@6bf4a04a +2026-08-13 13:35:40,436 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=ba9f121e-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=()]@6bf4a04a +2026-08-13 13:35:40,436 DEBUG o.s.j.c.SingleConnectionFactory [SpringApplicationShutdownHook] Closing shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@4b9df579 +2026-08-13 13:35:40,437 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=ba9c7a0d-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=(jms-session=,)]@1d94192f +2026-08-13 13:35:40,437 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=ba9c7a0d-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=(jms-session=,)]@1d94192f +2026-08-13 13:35:40,439 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [Thread-1 (activemq-client-global)] Failure captured on connectionID=afabb530, performing failover or reconnection now +org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException: [errorType=NOT_CONNECTED message=AMQ219006: Channel disconnected] + at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.connectionDestroyed(ClientSessionFactoryImpl.java:413) + at org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnector$Listener.lambda$connectionDestroyed$0(NettyConnector.java:1199) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:59) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) + at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:69) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120) +2026-08-13 13:35:40,441 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Session was already closed, giving up now, this=ClientSessionImpl [name=ba9c7a0d-970a-11f1-bd12-5e5c628d27e5, username=artemis, closed=true, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@5a14362b, metaData=(jms-session=,)]@1d94192f +2026-08-13 13:35:40,450 INFO o.s.o.j.AbstractEntityManagerFactoryBean [SpringApplicationShutdownHook] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 13:35:40,453 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown initiated... +2026-08-13 13:35:40,455 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown completed. +2026-08-13 13:35:50,744 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 3657920 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 13:35:50,746 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 13:35:50,789 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 13:35:51,593 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 13:35:51,747 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 147 ms. Found 34 JPA repository interfaces. +2026-08-13 13:35:52,297 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 13:35:52,306 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 13:35:52,308 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 13:35:52,308 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 13:35:52,344 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1554 ms +2026-08-13 13:35:55,254 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2564 ms +2026-08-13 13:35:55,316 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 13:35:55,347 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 182 classes. Took 18 ms. +2026-08-13 13:35:55,349 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 13:35:55,459 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 13:35:55,494 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 13:35:55,574 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 79 ms. +2026-08-13 13:35:55,643 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 13:35:55,711 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 13:35:55,920 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 13:35:56,032 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@76c48272 +2026-08-13 13:35:56,034 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 13:35:56,109 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 13:35:56,283 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 13:35:56,655 INFO o.h.v.i.u.Version [restartedMain] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 13:35:57,587 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [restartedMain] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 13:35:57,657 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 13:35:57,756 INFO o.s.d.j.r.q.QueryEnhancerFactories [restartedMain] Hibernate is in classpath; If applicable, HQL parser will be used. +2026-08-13 13:35:58,786 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [restartedMain] 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 +2026-08-13 13:35:58,841 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [restartedMain] Global AuthenticationManager configured with UserDetailsService bean with name userDetailsService +2026-08-13 13:35:59,262 DEBUG o.a.a.a.u.UUIDGenerator [restartedMain] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 13:35:59,421 INFO o.s.b.a.e.w.EndpointLinksResolver [restartedMain] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 13:35:59,539 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /* +2026-08-13 13:35:59,540 INFO o.a.c.AtmosphereFramework [restartedMain] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler +2026-08-13 13:35:59,566 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation +2026-08-13 13:35:59,571 INFO o.a.u.ForkJoinPool [restartedMain] Using ForkJoinPool java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power. +2026-08-13 13:35:59,575 INFO o.a.c.AtmosphereFramework [restartedMain] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol +2026-08-13 13:35:59,578 INFO o.a.c.JSR356AsyncSupport [restartedMain] JSR 356 Mapping path /VAADIN/push +2026-08-13 13:35:59,587 INFO o.a.c.AtmosphereFramework [restartedMain] Installing Default AtmosphereInterceptors +2026-08-13 13:35:59,588 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support +2026-08-13 13:35:59,588 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor +2026-08-13 13:35:59,589 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support +2026-08-13 13:35:59,589 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support +2026-08-13 13:35:59,590 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support +2026-08-13 13:35:59,590 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support +2026-08-13 13:35:59,590 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support +2026-08-13 13:35:59,591 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol +2026-08-13 13:35:59,591 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor +2026-08-13 13:35:59,592 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection +2026-08-13 13:35:59,592 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor +2026-08-13 13:35:59,592 INFO o.a.c.AtmosphereFramework [restartedMain] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them. +2026-08-13 13:35:59,592 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT +2026-08-13 13:35:59,593 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT +2026-08-13 13:35:59,593 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:35:59,593 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:35:59,593 INFO o.a.i.HeartbeatInterceptor [restartedMain] HeartbeatInterceptor configured with padding value 'X', client frequency 0 seconds and server frequency 60 seconds +2026-08-13 13:35:59,594 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:35:59,594 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:35:59,594 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:35:59,594 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT +2026-08-13 13:35:59,594 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT +2026-08-13 13:35:59,594 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT +2026-08-13 13:35:59,595 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT +2026-08-13 13:35:59,595 INFO o.a.c.AtmosphereFramework [restartedMain] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper +2026-08-13 13:35:59,596 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache +2026-08-13 13:35:59,596 INFO o.a.c.AtmosphereFramework [restartedMain] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster +2026-08-13 13:35:59,596 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Shared List Resources: false +2026-08-13 13:35:59,596 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Polling Wait Time 100 +2026-08-13 13:35:59,596 INFO o.a.c.AtmosphereFramework [restartedMain] Shared ExecutorService supported: true +2026-08-13 13:35:59,596 INFO o.a.c.AtmosphereFramework [restartedMain] Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor +2026-08-13 13:35:59,597 INFO o.a.c.AtmosphereFramework [restartedMain] Async I/O Thread Pool Size: 200 +2026-08-13 13:35:59,597 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory +2026-08-13 13:35:59,597 INFO o.a.c.AtmosphereFramework [restartedMain] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory +2026-08-13 13:35:59,597 INFO o.a.c.AtmosphereFramework [restartedMain] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor +2026-08-13 13:35:59,599 INFO o.a.c.AtmosphereFramework [restartedMain] Invoke AtmosphereInterceptor on WebSocket message true +2026-08-13 13:35:59,599 INFO o.a.c.AtmosphereFramework [restartedMain] HttpSession supported: true +2026-08-13 13:35:59,599 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation +2026-08-13 13:35:59,599 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/11.0.24 using jakarta.servlet/3.0 and jsr356/WebSocket API +2026-08-13 13:35:59,599 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere Framework 3.0.5.slf4jvaadin1 started. +2026-08-13 13:35:59,602 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT +2026-08-13 13:35:59,636 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting ProtocolHandler ["http-nio-8085"] +2026-08-13 13:35:59,655 INFO c.v.f.s.DefaultDeploymentConfiguration [restartedMain] +Vaadin is running in DEVELOPMENT mode - do not use for production deployments. +2026-08-13 13:35:59,723 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat started on port 8085 (http) with context path '/' +2026-08-13 13:35:59,908 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) is starting +2026-08-13 13:35:59,928 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying reconnection attempt 0/1 +2026-08-13 13:35:59,928 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying to connect with connectorFactory=org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory@31223d3f and currentConnectorConfig: TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:35:59,985 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Connector NettyConnector [host=localhost, port=61616, httpEnabled=false, httpUpgradeEnabled=false, useServlet=false, servletPath=/messaging/ActiveMQServlet, sslEnabled=false, useNio=true] using native epoll +2026-08-13 13:36:00,001 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Started EPOLL Netty Connector version 4.2.15.Final to localhost:61616 +2026-08-13 13:36:00,001 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Remote destination: localhost/127.0.0.1:61616 +2026-08-13 13:36:00,067 DEBUG o.a.a.a.c.r.i.n.NettyConnector$1 [Thread-0 (activemq-client-remoting)] Added ActiveMQClientChannelHandler to Channel with id = 92e42703 +2026-08-13 13:36:00,085 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Connected with the currentConnectorConfig=TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:36:00,156 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Reconnection successful +2026-08-13 13:36:00,157 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] ClientSessionFactoryImpl received backup update for primary/backup pair = TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost / null but it didn't belong to TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:36:00,191 DEBUG o.s.j.c.SingleConnectionFactory [restartedMain] Established shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@4a0c795b +2026-08-13 13:36:00,199 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Routes startup (total:3) +2026-08-13 13:36:00,200 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 13:36:00,200 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 13:36:00,200 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 13:36:00,200 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) started in 291ms (build:0ms init:0ms start:291ms boot:1s608ms) +2026-08-13 13:36:00,202 INFO d.t.k.s.SetupModuleBookshelf [restartedMain] Set up Bookshelf data +2026-08-13 13:36:00,202 INFO d.t.k.s.SetupModuleComics [restartedMain] Set up Comics data +2026-08-13 13:36:00,203 INFO d.t.k.s.SetupModuleMedia [restartedMain] Set up Media data +2026-08-13 13:36:00,203 INFO d.t.k.s.SetupModuleTysc [restartedMain] Setp up TYSC data +2026-08-13 13:36:00,205 INFO o.s.b.StartupInfoLogger [restartedMain] Started KontorApplication in 9.886 seconds (process running for 10.268) +2026-08-13 13:36:00,206 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=284fd163-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=()]@1667f37a +2026-08-13 13:36:00,207 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=285130f4-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=()]@377aa2ab +2026-08-13 13:36:00,209 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=2851a625-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=()]@67dfc9b4 +2026-08-13 13:36:00,279 INFO c.v.b.d.DevModeHandlerManagerImpl [restartedMain] Application running at http://localhost:8085/ +2026-08-13 13:36:11,131 INFO o.a.j.l.DirectJDKLog [http-nio-8085-exec-1] Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-08-13 13:36:11,132 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Initializing Servlet 'dispatcherServlet' +2026-08-13 13:36:11,134 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Completed initialization in 2 ms +2026-08-13 13:36:11,159 WARN c.v.f.s.a.AnnotatedViewAccessChecker [http-nio-8085-exec-1] Denied access to view 'de.thpeetz.kontor.views.common.MainView' due to parent layout 'de.thpeetz.kontor.views.common.MainLayout' access rules The view allows broader access than the layout, which is likely a configuration error. +2026-08-13 13:36:11,879 WARN c.v.f.s.a.AnnotatedViewAccessChecker [http-nio-8085-exec-3] Denied access to view 'de.thpeetz.kontor.views.common.MainView' due to parent layout 'de.thpeetz.kontor.views.common.MainLayout' access rules The view allows broader access than the layout, which is likely a configuration error. +2026-08-13 13:36:25,874 WARN c.v.f.s.a.AnnotatedViewAccessChecker [http-nio-8085-exec-7] Denied access to view 'de.thpeetz.kontor.views.common.MainView' due to parent layout 'de.thpeetz.kontor.views.common.MainLayout' access rules The view allows broader access than the layout, which is likely a configuration error. +2026-08-13 13:38:08,718 INFO o.s.b.t.GracefulShutdown [SpringApplicationShutdownHook] Commencing graceful shutdown. Waiting for active requests to complete +2026-08-13 13:38:08,720 INFO o.s.b.t.GracefulShutdown [tomcat-shutdown] Graceful shutdown complete +2026-08-13 13:38:08,724 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) is shutting down (timeout:45s) +2026-08-13 13:38:09,407 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=2851a625-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=()]@67dfc9b4 +2026-08-13 13:38:09,407 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Calling close on session ClientSessionImpl [name=2851a625-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=()]@67dfc9b4 +2026-08-13 13:38:09,407 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=284fd163-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=()]@1667f37a +2026-08-13 13:38:09,408 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] calling cleanup on ClientSessionImpl [name=2851a625-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=()]@67dfc9b4 +2026-08-13 13:38:09,415 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Calling close on session ClientSessionImpl [name=284fd163-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=()]@1667f37a +2026-08-13 13:38:09,416 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] calling cleanup on ClientSessionImpl [name=284fd163-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=()]@1667f37a +2026-08-13 13:38:09,418 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Routes stopped (total:3) +2026-08-13 13:38:09,418 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 13:38:09,419 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 13:38:09,419 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 13:38:09,422 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) shutdown in 697ms (uptime:2m9s) +2026-08-13 13:38:09,423 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [SpringApplicationShutdownHook] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=285130f4-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=()]@377aa2ab +2026-08-13 13:38:09,423 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=285130f4-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=()]@377aa2ab +2026-08-13 13:38:09,424 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=285130f4-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=()]@377aa2ab +2026-08-13 13:38:09,424 DEBUG o.s.j.c.SingleConnectionFactory [SpringApplicationShutdownHook] Closing shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@4a0c795b +2026-08-13 13:38:09,424 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=284c27e2-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=(jms-session=,)]@637f0b4d +2026-08-13 13:38:09,425 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=284c27e2-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=(jms-session=,)]@637f0b4d +2026-08-13 13:38:09,426 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [Thread-1 (activemq-client-global)] Failure captured on connectionID=92e42703, performing failover or reconnection now +org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException: [errorType=NOT_CONNECTED message=AMQ219006: Channel disconnected] + at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.connectionDestroyed(ClientSessionFactoryImpl.java:413) + at org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnector$Listener.lambda$connectionDestroyed$0(NettyConnector.java:1199) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:59) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) + at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:69) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120) +2026-08-13 13:38:09,429 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Session was already closed, giving up now, this=ClientSessionImpl [name=284c27e2-970b-11f1-a4e7-5e5c628d27e5, username=artemis, closed=true, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@3f971105, metaData=(jms-session=,)]@637f0b4d +2026-08-13 13:38:09,437 INFO o.s.o.j.AbstractEntityManagerFactoryBean [SpringApplicationShutdownHook] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 13:38:09,439 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown initiated... +2026-08-13 13:38:09,441 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown completed. +2026-08-13 13:38:24,110 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 3686148 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 13:38:24,112 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 13:38:24,153 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 13:38:24,986 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 13:38:25,132 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 138 ms. Found 34 JPA repository interfaces. +2026-08-13 13:38:25,747 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 13:38:25,760 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 13:38:25,763 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 13:38:25,764 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 13:38:25,803 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1648 ms +2026-08-13 13:38:28,805 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2679 ms +2026-08-13 13:38:28,872 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 13:38:28,903 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 182 classes. Took 17 ms. +2026-08-13 13:38:28,905 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 13:38:29,032 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 13:38:29,063 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 13:38:29,139 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 75 ms. +2026-08-13 13:38:29,203 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 13:38:29,241 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 13:38:29,436 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 13:38:29,532 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@77756ff6 +2026-08-13 13:38:29,534 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 13:38:29,586 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 13:38:29,785 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 13:38:30,204 INFO o.h.v.i.u.Version [restartedMain] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 13:38:31,336 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [restartedMain] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 13:38:31,418 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 13:38:31,503 INFO o.s.d.j.r.q.QueryEnhancerFactories [restartedMain] Hibernate is in classpath; If applicable, HQL parser will be used. +2026-08-13 13:38:32,759 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [restartedMain] 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 +2026-08-13 13:38:32,823 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [restartedMain] Global AuthenticationManager configured with UserDetailsService bean with name userDetailsService +2026-08-13 13:38:33,296 DEBUG o.a.a.a.u.UUIDGenerator [restartedMain] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 13:38:33,455 INFO o.s.b.a.e.w.EndpointLinksResolver [restartedMain] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 13:38:33,585 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /* +2026-08-13 13:38:33,585 INFO o.a.c.AtmosphereFramework [restartedMain] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler +2026-08-13 13:38:33,610 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation +2026-08-13 13:38:33,616 INFO o.a.u.ForkJoinPool [restartedMain] Using ForkJoinPool java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power. +2026-08-13 13:38:33,620 INFO o.a.c.AtmosphereFramework [restartedMain] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol +2026-08-13 13:38:33,624 INFO o.a.c.JSR356AsyncSupport [restartedMain] JSR 356 Mapping path /VAADIN/push +2026-08-13 13:38:33,633 INFO o.a.c.AtmosphereFramework [restartedMain] Installing Default AtmosphereInterceptors +2026-08-13 13:38:33,633 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support +2026-08-13 13:38:33,634 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor +2026-08-13 13:38:33,634 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support +2026-08-13 13:38:33,635 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support +2026-08-13 13:38:33,635 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support +2026-08-13 13:38:33,636 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support +2026-08-13 13:38:33,636 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support +2026-08-13 13:38:33,636 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol +2026-08-13 13:38:33,637 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor +2026-08-13 13:38:33,637 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection +2026-08-13 13:38:33,637 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor +2026-08-13 13:38:33,638 INFO o.a.c.AtmosphereFramework [restartedMain] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them. +2026-08-13 13:38:33,638 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT +2026-08-13 13:38:33,638 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT +2026-08-13 13:38:33,638 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:38:33,639 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:38:33,639 INFO o.a.i.HeartbeatInterceptor [restartedMain] HeartbeatInterceptor configured with padding value 'X', client frequency 0 seconds and server frequency 60 seconds +2026-08-13 13:38:33,639 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:38:33,639 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:38:33,639 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:38:33,639 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT +2026-08-13 13:38:33,640 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT +2026-08-13 13:38:33,640 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT +2026-08-13 13:38:33,640 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT +2026-08-13 13:38:33,640 INFO o.a.c.AtmosphereFramework [restartedMain] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper +2026-08-13 13:38:33,641 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache +2026-08-13 13:38:33,641 INFO o.a.c.AtmosphereFramework [restartedMain] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster +2026-08-13 13:38:33,641 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Shared List Resources: false +2026-08-13 13:38:33,641 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Polling Wait Time 100 +2026-08-13 13:38:33,641 INFO o.a.c.AtmosphereFramework [restartedMain] Shared ExecutorService supported: true +2026-08-13 13:38:33,641 INFO o.a.c.AtmosphereFramework [restartedMain] Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor +2026-08-13 13:38:33,641 INFO o.a.c.AtmosphereFramework [restartedMain] Async I/O Thread Pool Size: 200 +2026-08-13 13:38:33,641 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory +2026-08-13 13:38:33,641 INFO o.a.c.AtmosphereFramework [restartedMain] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory +2026-08-13 13:38:33,641 INFO o.a.c.AtmosphereFramework [restartedMain] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor +2026-08-13 13:38:33,643 INFO o.a.c.AtmosphereFramework [restartedMain] Invoke AtmosphereInterceptor on WebSocket message true +2026-08-13 13:38:33,643 INFO o.a.c.AtmosphereFramework [restartedMain] HttpSession supported: true +2026-08-13 13:38:33,644 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation +2026-08-13 13:38:33,644 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/11.0.24 using jakarta.servlet/3.0 and jsr356/WebSocket API +2026-08-13 13:38:33,644 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere Framework 3.0.5.slf4jvaadin1 started. +2026-08-13 13:38:33,646 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT +2026-08-13 13:38:33,689 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting ProtocolHandler ["http-nio-8085"] +2026-08-13 13:38:33,728 INFO c.v.f.s.DefaultDeploymentConfiguration [restartedMain] +Vaadin is running in DEVELOPMENT mode - do not use for production deployments. +2026-08-13 13:38:33,808 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat started on port 8085 (http) with context path '/' +2026-08-13 13:38:34,037 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) is starting +2026-08-13 13:38:34,065 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying reconnection attempt 0/1 +2026-08-13 13:38:34,066 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying to connect with connectorFactory=org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory@c62579b and currentConnectorConfig: TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:38:34,125 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Connector NettyConnector [host=localhost, port=61616, httpEnabled=false, httpUpgradeEnabled=false, useServlet=false, servletPath=/messaging/ActiveMQServlet, sslEnabled=false, useNio=true] using native epoll +2026-08-13 13:38:34,138 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Started EPOLL Netty Connector version 4.2.15.Final to localhost:61616 +2026-08-13 13:38:34,139 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Remote destination: localhost/127.0.0.1:61616 +2026-08-13 13:38:34,183 DEBUG o.a.a.a.c.r.i.n.NettyConnector$1 [Thread-0 (activemq-client-remoting)] Added ActiveMQClientChannelHandler to Channel with id = 6518389c +2026-08-13 13:38:34,192 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Connected with the currentConnectorConfig=TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:38:34,249 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Reconnection successful +2026-08-13 13:38:34,250 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] ClientSessionFactoryImpl received backup update for primary/backup pair = TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost / null but it didn't belong to TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:38:34,279 DEBUG o.s.j.c.SingleConnectionFactory [restartedMain] Established shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@5c305084 +2026-08-13 13:38:34,285 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Routes startup (total:3) +2026-08-13 13:38:34,285 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 13:38:34,285 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 13:38:34,285 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 13:38:34,285 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) started in 246ms (build:0ms init:0ms start:246ms boot:1s854ms) +2026-08-13 13:38:34,288 INFO d.t.k.s.SetupModuleBookshelf [restartedMain] Set up Bookshelf data +2026-08-13 13:38:34,289 INFO d.t.k.s.SetupModuleComics [restartedMain] Set up Comics data +2026-08-13 13:38:34,290 INFO d.t.k.s.SetupModuleMedia [restartedMain] Set up Media data +2026-08-13 13:38:34,290 INFO d.t.k.s.SetupModuleTysc [restartedMain] Setp up TYSC data +2026-08-13 13:38:34,295 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=8427a13e-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=()]@278b931f +2026-08-13 13:38:34,296 INFO o.s.b.StartupInfoLogger [restartedMain] Started KontorApplication in 10.608 seconds (process running for 10.99) +2026-08-13 13:38:34,295 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=842927df-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=()]@18682432 +2026-08-13 13:38:34,298 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=84299d10-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=()]@200c535d +2026-08-13 13:38:34,366 INFO c.v.b.d.DevModeHandlerManagerImpl [restartedMain] Application running at http://localhost:8085/ +2026-08-13 13:38:38,605 INFO o.a.j.l.DirectJDKLog [http-nio-8085-exec-1] Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-08-13 13:38:38,606 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Initializing Servlet 'dispatcherServlet' +2026-08-13 13:38:38,608 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Completed initialization in 2 ms +2026-08-13 13:40:36,303 INFO o.s.b.t.GracefulShutdown [SpringApplicationShutdownHook] Commencing graceful shutdown. Waiting for active requests to complete +2026-08-13 13:40:36,306 INFO o.s.b.t.GracefulShutdown [tomcat-shutdown] Graceful shutdown complete +2026-08-13 13:40:36,310 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) is shutting down (timeout:45s) +2026-08-13 13:40:36,484 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=8427a13e-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=()]@278b931f +2026-08-13 13:40:36,484 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Calling close on session ClientSessionImpl [name=8427a13e-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=()]@278b931f +2026-08-13 13:40:36,485 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] calling cleanup on ClientSessionImpl [name=8427a13e-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=()]@278b931f +2026-08-13 13:40:36,488 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=842927df-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=()]@18682432 +2026-08-13 13:40:36,493 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Calling close on session ClientSessionImpl [name=842927df-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=()]@18682432 +2026-08-13 13:40:36,494 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] calling cleanup on ClientSessionImpl [name=842927df-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=()]@18682432 +2026-08-13 13:40:36,496 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Routes stopped (total:3) +2026-08-13 13:40:36,496 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 13:40:36,497 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 13:40:36,497 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 13:40:36,499 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) shutdown in 188ms (uptime:2m2s) +2026-08-13 13:40:36,499 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [SpringApplicationShutdownHook] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=84299d10-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=()]@200c535d +2026-08-13 13:40:36,500 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=84299d10-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=()]@200c535d +2026-08-13 13:40:36,500 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=84299d10-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=()]@200c535d +2026-08-13 13:40:36,501 DEBUG o.s.j.c.SingleConnectionFactory [SpringApplicationShutdownHook] Closing shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@5c305084 +2026-08-13 13:40:36,501 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=8424bb0d-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=(jms-session=,)]@4df6cb30 +2026-08-13 13:40:36,502 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=8424bb0d-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=(jms-session=,)]@4df6cb30 +2026-08-13 13:40:36,503 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [Thread-1 (activemq-client-global)] Failure captured on connectionID=6518389c, performing failover or reconnection now +org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException: [errorType=NOT_CONNECTED message=AMQ219006: Channel disconnected] + at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.connectionDestroyed(ClientSessionFactoryImpl.java:413) + at org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnector$Listener.lambda$connectionDestroyed$0(NettyConnector.java:1199) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:59) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) + at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:69) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120) +2026-08-13 13:40:36,505 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Session was already closed, giving up now, this=ClientSessionImpl [name=8424bb0d-970b-11f1-aa6c-5e5c628d27e5, username=artemis, closed=true, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@4fa149d6, metaData=(jms-session=,)]@4df6cb30 +2026-08-13 13:40:36,514 INFO o.s.o.j.AbstractEntityManagerFactoryBean [SpringApplicationShutdownHook] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 13:40:36,516 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown initiated... +2026-08-13 13:40:36,518 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown completed. +2026-08-13 13:40:48,685 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 3714000 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 13:40:48,687 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 13:40:48,762 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 13:40:49,727 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 13:40:49,905 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 167 ms. Found 34 JPA repository interfaces. +2026-08-13 13:40:50,741 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 13:40:50,758 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 13:40:50,761 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 13:40:50,762 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 13:40:50,806 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 2042 ms +2026-08-13 13:40:53,694 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2496 ms +2026-08-13 13:40:53,756 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 13:40:53,786 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 182 classes. Took 18 ms. +2026-08-13 13:40:53,788 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 13:40:53,890 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 13:40:53,919 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 13:40:53,983 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 63 ms. +2026-08-13 13:40:54,014 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 13:40:54,050 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 13:40:54,212 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 13:40:54,298 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@7743fdcd +2026-08-13 13:40:54,299 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 13:40:54,343 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 13:40:54,494 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 13:40:54,892 INFO o.h.v.i.u.Version [restartedMain] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 13:40:56,212 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [restartedMain] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 13:40:56,304 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 13:40:56,402 INFO o.s.d.j.r.q.QueryEnhancerFactories [restartedMain] Hibernate is in classpath; If applicable, HQL parser will be used. +2026-08-13 13:40:57,801 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [restartedMain] 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 +2026-08-13 13:40:57,868 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [restartedMain] Global AuthenticationManager configured with UserDetailsService bean with name userDetailsService +2026-08-13 13:40:58,474 DEBUG o.a.a.a.u.UUIDGenerator [restartedMain] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 13:40:58,785 INFO o.s.b.a.e.w.EndpointLinksResolver [restartedMain] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 13:40:58,955 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /* +2026-08-13 13:40:58,955 INFO o.a.c.AtmosphereFramework [restartedMain] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler +2026-08-13 13:40:58,989 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation +2026-08-13 13:40:58,996 INFO o.a.u.ForkJoinPool [restartedMain] Using ForkJoinPool java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power. +2026-08-13 13:40:59,000 INFO o.a.c.AtmosphereFramework [restartedMain] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol +2026-08-13 13:40:59,006 INFO o.a.c.JSR356AsyncSupport [restartedMain] JSR 356 Mapping path /VAADIN/push +2026-08-13 13:40:59,019 INFO o.a.c.AtmosphereFramework [restartedMain] Installing Default AtmosphereInterceptors +2026-08-13 13:40:59,020 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support +2026-08-13 13:40:59,020 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor +2026-08-13 13:40:59,021 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support +2026-08-13 13:40:59,022 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support +2026-08-13 13:40:59,022 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support +2026-08-13 13:40:59,023 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support +2026-08-13 13:40:59,023 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support +2026-08-13 13:40:59,024 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol +2026-08-13 13:40:59,025 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor +2026-08-13 13:40:59,025 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection +2026-08-13 13:40:59,025 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor +2026-08-13 13:40:59,026 INFO o.a.c.AtmosphereFramework [restartedMain] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them. +2026-08-13 13:40:59,026 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT +2026-08-13 13:40:59,026 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT +2026-08-13 13:40:59,027 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:40:59,027 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:40:59,027 INFO o.a.i.HeartbeatInterceptor [restartedMain] HeartbeatInterceptor configured with padding value 'X', client frequency 0 seconds and server frequency 60 seconds +2026-08-13 13:40:59,027 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:40:59,028 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:40:59,028 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:40:59,028 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT +2026-08-13 13:40:59,028 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT +2026-08-13 13:40:59,028 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT +2026-08-13 13:40:59,028 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT +2026-08-13 13:40:59,029 INFO o.a.c.AtmosphereFramework [restartedMain] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper +2026-08-13 13:40:59,030 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache +2026-08-13 13:40:59,030 INFO o.a.c.AtmosphereFramework [restartedMain] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster +2026-08-13 13:40:59,030 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Shared List Resources: false +2026-08-13 13:40:59,030 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Polling Wait Time 100 +2026-08-13 13:40:59,030 INFO o.a.c.AtmosphereFramework [restartedMain] Shared ExecutorService supported: true +2026-08-13 13:40:59,030 INFO o.a.c.AtmosphereFramework [restartedMain] Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor +2026-08-13 13:40:59,030 INFO o.a.c.AtmosphereFramework [restartedMain] Async I/O Thread Pool Size: 200 +2026-08-13 13:40:59,030 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory +2026-08-13 13:40:59,031 INFO o.a.c.AtmosphereFramework [restartedMain] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory +2026-08-13 13:40:59,031 INFO o.a.c.AtmosphereFramework [restartedMain] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor +2026-08-13 13:40:59,033 INFO o.a.c.AtmosphereFramework [restartedMain] Invoke AtmosphereInterceptor on WebSocket message true +2026-08-13 13:40:59,033 INFO o.a.c.AtmosphereFramework [restartedMain] HttpSession supported: true +2026-08-13 13:40:59,033 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation +2026-08-13 13:40:59,034 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/11.0.24 using jakarta.servlet/3.0 and jsr356/WebSocket API +2026-08-13 13:40:59,034 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere Framework 3.0.5.slf4jvaadin1 started. +2026-08-13 13:40:59,037 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT +2026-08-13 13:40:59,076 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting ProtocolHandler ["http-nio-8085"] +2026-08-13 13:40:59,096 INFO c.v.f.s.DefaultDeploymentConfiguration [restartedMain] +Vaadin is running in DEVELOPMENT mode - do not use for production deployments. +2026-08-13 13:40:59,151 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat started on port 8085 (http) with context path '/' +2026-08-13 13:40:59,364 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) is starting +2026-08-13 13:40:59,388 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying reconnection attempt 0/1 +2026-08-13 13:40:59,389 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying to connect with connectorFactory=org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory@544440b1 and currentConnectorConfig: TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:40:59,460 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Connector NettyConnector [host=localhost, port=61616, httpEnabled=false, httpUpgradeEnabled=false, useServlet=false, servletPath=/messaging/ActiveMQServlet, sslEnabled=false, useNio=true] using native epoll +2026-08-13 13:40:59,484 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Started EPOLL Netty Connector version 4.2.15.Final to localhost:61616 +2026-08-13 13:40:59,487 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Remote destination: localhost/127.0.0.1:61616 +2026-08-13 13:40:59,549 DEBUG o.a.a.a.c.r.i.n.NettyConnector$1 [Thread-0 (activemq-client-remoting)] Added ActiveMQClientChannelHandler to Channel with id = 1a76c6d7 +2026-08-13 13:40:59,560 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Connected with the currentConnectorConfig=TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:40:59,650 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Reconnection successful +2026-08-13 13:40:59,651 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] ClientSessionFactoryImpl received backup update for primary/backup pair = TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost / null but it didn't belong to TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:40:59,690 DEBUG o.s.j.c.SingleConnectionFactory [restartedMain] Established shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@6ea778e0 +2026-08-13 13:40:59,698 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Routes startup (total:3) +2026-08-13 13:40:59,698 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 13:40:59,698 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 13:40:59,698 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 13:40:59,699 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) started in 334ms (build:0ms init:0ms start:334ms boot:2s259ms) +2026-08-13 13:40:59,701 INFO d.t.k.s.SetupModuleBookshelf [restartedMain] Set up Bookshelf data +2026-08-13 13:40:59,702 INFO d.t.k.s.SetupModuleComics [restartedMain] Set up Comics data +2026-08-13 13:40:59,702 INFO d.t.k.s.SetupModuleMedia [restartedMain] Set up Media data +2026-08-13 13:40:59,702 INFO d.t.k.s.SetupModuleTysc [restartedMain] Setp up TYSC data +2026-08-13 13:40:59,705 INFO o.s.b.StartupInfoLogger [restartedMain] Started KontorApplication in 11.524 seconds (process running for 11.886) +2026-08-13 13:40:59,707 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=dad3bd3e-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=()]@22262260 +2026-08-13 13:40:59,707 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=dad56aef-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=()]@1e6b70d6 +2026-08-13 13:40:59,709 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=dad5b910-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=()]@a6e4d23 +2026-08-13 13:40:59,791 INFO c.v.b.d.DevModeHandlerManagerImpl [restartedMain] Application running at http://localhost:8085/ +2026-08-13 13:41:05,609 INFO o.a.j.l.DirectJDKLog [http-nio-8085-exec-1] Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-08-13 13:41:05,609 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Initializing Servlet 'dispatcherServlet' +2026-08-13 13:41:05,614 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Completed initialization in 4 ms +2026-08-13 13:45:02,660 INFO o.s.b.t.GracefulShutdown [SpringApplicationShutdownHook] Commencing graceful shutdown. Waiting for active requests to complete +2026-08-13 13:45:02,665 INFO o.s.b.t.GracefulShutdown [tomcat-shutdown] Graceful shutdown complete +2026-08-13 13:45:02,668 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) is shutting down (timeout:45s) +2026-08-13 13:45:03,037 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=dad5b910-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=()]@a6e4d23 +2026-08-13 13:45:03,037 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=dad56aef-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=()]@1e6b70d6 +2026-08-13 13:45:03,037 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Calling close on session ClientSessionImpl [name=dad5b910-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=()]@a6e4d23 +2026-08-13 13:45:03,038 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] calling cleanup on ClientSessionImpl [name=dad5b910-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=()]@a6e4d23 +2026-08-13 13:45:03,048 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Calling close on session ClientSessionImpl [name=dad56aef-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=()]@1e6b70d6 +2026-08-13 13:45:03,049 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] calling cleanup on ClientSessionImpl [name=dad56aef-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=()]@1e6b70d6 +2026-08-13 13:45:03,052 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Routes stopped (total:3) +2026-08-13 13:45:03,053 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 13:45:03,053 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 13:45:03,053 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 13:45:03,056 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) shutdown in 387ms (uptime:4m3s) +2026-08-13 13:45:03,056 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [SpringApplicationShutdownHook] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=dad3bd3e-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=()]@22262260 +2026-08-13 13:45:03,056 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=dad3bd3e-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=()]@22262260 +2026-08-13 13:45:03,057 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=dad3bd3e-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=()]@22262260 +2026-08-13 13:45:03,057 DEBUG o.s.j.c.SingleConnectionFactory [SpringApplicationShutdownHook] Closing shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@6ea778e0 +2026-08-13 13:45:03,058 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=dacfc59d-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=(jms-session=,)]@39cb73a4 +2026-08-13 13:45:03,058 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=dacfc59d-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=(jms-session=,)]@39cb73a4 +2026-08-13 13:45:03,060 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [Thread-1 (activemq-client-global)] Failure captured on connectionID=1a76c6d7, performing failover or reconnection now +org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException: [errorType=NOT_CONNECTED message=AMQ219006: Channel disconnected] + at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.connectionDestroyed(ClientSessionFactoryImpl.java:413) + at org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnector$Listener.lambda$connectionDestroyed$0(NettyConnector.java:1199) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:59) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) + at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:69) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120) +2026-08-13 13:45:03,063 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Session was already closed, giving up now, this=ClientSessionImpl [name=dacfc59d-970b-11f1-afdc-5e5c628d27e5, username=artemis, closed=true, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@51c43b1b, metaData=(jms-session=,)]@39cb73a4 +2026-08-13 13:45:03,071 INFO o.s.o.j.AbstractEntityManagerFactoryBean [SpringApplicationShutdownHook] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 13:45:03,078 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown initiated... +2026-08-13 13:45:03,080 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown completed. +2026-08-13 13:45:13,339 INFO o.s.b.StartupInfoLogger [restartedMain] Starting KontorApplication using Java 25.0.2 with PID 3745007 (/home/tpeetz/projects/kontor/kontor-spring/build/classes/java/main started by tpeetz in /home/tpeetz/projects/kontor/kontor-spring) +2026-08-13 13:45:13,342 INFO o.s.b.SpringApplication [restartedMain] The following 1 profile is active: "local" +2026-08-13 13:45:13,394 INFO o.s.b.l.LogLevel [restartedMain] For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2026-08-13 13:45:14,373 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-08-13 13:45:14,556 INFO o.s.d.r.c.RepositoryConfigurationDelegate [restartedMain] Finished Spring Data repository scanning in 172 ms. Found 34 JPA repository interfaces. +2026-08-13 13:45:15,134 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat initialized with port 8085 (http) +2026-08-13 13:45:15,143 INFO o.a.j.l.DirectJDKLog [restartedMain] Initializing ProtocolHandler ["http-nio-8085"] +2026-08-13 13:45:15,145 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting service [Tomcat] +2026-08-13 13:45:15,145 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting Servlet engine: [Apache Tomcat/11.0.24] +2026-08-13 13:45:15,198 INFO o.s.b.w.c.s.WebApplicationContextInitializer [restartedMain] Root WebApplicationContext: initialization completed in 1802 ms +2026-08-13 13:45:18,176 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener [restartedMain] Search for subclasses and classes with annotations took 2610 ms +2026-08-13 13:45:18,238 INFO c.v.b.d.s.DevModeInitializer [restartedMain] Starting dev-mode updaters in /home/tpeetz/projects/kontor/kontor-spring folder. +2026-08-13 13:45:18,270 INFO c.v.f.s.f.s.FullDependenciesScanner [restartedMain] Visited 182 classes. Took 20 ms. +2026-08-13 13:45:18,272 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] Checking if a development mode bundle build is needed +2026-08-13 13:45:18,371 INFO c.v.f.s.f.BundleValidationUtil [restartedMain] A development mode bundle build is not needed +2026-08-13 13:45:18,393 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Copying frontend resources from jar files ... +2026-08-13 13:45:18,456 INFO c.v.f.s.f.TaskCopyFrontendFiles [vaadin-dev-server-1] Visited 20 resources. Took 62 ms. +2026-08-13 13:45:18,504 INFO o.h.j.i.u.LogHelper [restartedMain] HHH008540: Processing PersistenceUnitInfo [name: default] +2026-08-13 13:45:18,538 INFO o.h.Version [restartedMain] HHH000001: Hibernate ORM core version 7.4.1.Final +2026-08-13 13:45:18,694 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Starting... +2026-08-13 13:45:18,802 INFO c.z.h.p.HikariPool [restartedMain] HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@4048a12e +2026-08-13 13:45:18,804 INFO c.z.h.HikariDataSource [restartedMain] HikariPool-1 - Start completed. +2026-08-13 13:45:18,856 INFO o.h.e.j.e.i.JdbcEnvironmentInitiator [restartedMain] HHH10001005: Database info: + Database JDBC URL [jdbc:postgresql://localhost:5432/kontor] + Database driver: PostgreSQL JDBC Driver + Database dialect: PostgreSQLDialect + Database version: 17.7 + Default catalog/schema: kontor/public + Autocommit mode: undefined/unknown + Isolation level: READ_COMMITTED [default READ_COMMITTED] + JDBC fetch size: none + Pool: DataSourceConnectionProvider + Minimum pool size: undefined/unknown + Maximum pool size: undefined/unknown +2026-08-13 13:45:19,017 INFO o.s.o.j.p.SpringPersistenceUnitInfo [restartedMain] No LoadTimeWeaver setup: ignoring JPA class transformer +2026-08-13 13:45:19,391 INFO o.h.v.i.u.Version [restartedMain] HV000001: Hibernate Validator 9.1.0.Final +2026-08-13 13:45:20,288 INFO o.h.e.t.j.p.i.JtaPlatformInitiator [restartedMain] HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-08-13 13:45:20,361 INFO o.s.o.j.AbstractEntityManagerFactoryBean [restartedMain] Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 13:45:20,440 INFO o.s.d.j.r.q.QueryEnhancerFactories [restartedMain] Hibernate is in classpath; If applicable, HQL parser will be used. +2026-08-13 13:45:21,752 WARN o.s.b.j.a.JpaBaseConfiguration$JpaWebConfiguration [restartedMain] 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 +2026-08-13 13:45:21,812 INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer [restartedMain] Global AuthenticationManager configured with UserDetailsService bean with name userDetailsService +2026-08-13 13:45:22,342 DEBUG o.a.a.a.u.UUIDGenerator [restartedMain] using hardware address 5e:5c:62:ffffff8d:27:-27 +2026-08-13 13:45:22,529 INFO o.s.b.a.e.w.EndpointLinksResolver [restartedMain] Exposing 5 endpoints beneath base path '/actuator' +2026-08-13 13:45:22,656 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler mapped to context-path: /* +2026-08-13 13:45:22,657 INFO o.a.c.AtmosphereFramework [restartedMain] Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.flow.server.communication.PushAtmosphereHandler +2026-08-13 13:45:22,683 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.util.VoidAnnotationProcessor for processing annotation +2026-08-13 13:45:22,688 INFO o.a.u.ForkJoinPool [restartedMain] Using ForkJoinPool java.util.concurrent.ForkJoinPool. Set the org.atmosphere.cpr.broadcaster.maxAsyncWriteThreads to -1 to fully use its power. +2026-08-13 13:45:22,701 INFO o.a.c.AtmosphereFramework [restartedMain] Installed WebSocketProtocol org.atmosphere.websocket.protocol.SimpleHttpProtocol +2026-08-13 13:45:22,706 INFO o.a.c.JSR356AsyncSupport [restartedMain] JSR 356 Mapping path /VAADIN/push +2026-08-13 13:45:22,724 INFO o.a.c.AtmosphereFramework [restartedMain] Installing Default AtmosphereInterceptors +2026-08-13 13:45:22,725 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CorsInterceptor : CORS Interceptor Support +2026-08-13 13:45:22,726 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.CacheHeadersInterceptor : Default Response's Headers Interceptor +2026-08-13 13:45:22,726 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.PaddingAtmosphereInterceptor : Browser Padding Interceptor Support +2026-08-13 13:45:22,727 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.AndroidAtmosphereInterceptor : Android Interceptor Support +2026-08-13 13:45:22,728 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.HeartbeatInterceptor : Heartbeat Interceptor Support +2026-08-13 13:45:22,729 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.SSEAtmosphereInterceptor : SSE Interceptor Support +2026-08-13 13:45:22,730 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JSONPAtmosphereInterceptor : JSONP Interceptor Support +2026-08-13 13:45:22,731 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.JavaScriptProtocol : Atmosphere JavaScript Protocol +2026-08-13 13:45:22,731 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor : org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor +2026-08-13 13:45:22,732 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.OnDisconnectInterceptor : Browser disconnection detection +2026-08-13 13:45:22,732 INFO o.a.c.AtmosphereFramework [restartedMain] org.atmosphere.interceptor.IdleResourceInterceptor : org.atmosphere.interceptor.IdleResourceInterceptor +2026-08-13 13:45:22,732 INFO o.a.c.AtmosphereFramework [restartedMain] Set org.atmosphere.cpr.AtmosphereInterceptor.disableDefaults to disable them. +2026-08-13 13:45:22,732 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor CORS Interceptor Support with priority FIRST_BEFORE_DEFAULT +2026-08-13 13:45:22,733 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Default Response's Headers Interceptor with priority AFTER_DEFAULT +2026-08-13 13:45:22,734 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser Padding Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:45:22,734 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Android Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:45:22,734 INFO o.a.i.HeartbeatInterceptor [restartedMain] HeartbeatInterceptor configured with padding value 'X', client frequency 0 seconds and server frequency 60 seconds +2026-08-13 13:45:22,734 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Heartbeat Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:45:22,735 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor SSE Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:45:22,735 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor JSONP Interceptor Support with priority AFTER_DEFAULT +2026-08-13 13:45:22,735 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Atmosphere JavaScript Protocol with priority AFTER_DEFAULT +2026-08-13 13:45:22,736 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.WebSocketMessageSuspendInterceptor with priority AFTER_DEFAULT +2026-08-13 13:45:22,736 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Browser disconnection detection with priority AFTER_DEFAULT +2026-08-13 13:45:22,736 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor org.atmosphere.interceptor.IdleResourceInterceptor with priority BEFORE_DEFAULT +2026-08-13 13:45:22,737 INFO o.a.c.AtmosphereFramework [restartedMain] Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper +2026-08-13 13:45:22,738 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache +2026-08-13 13:45:22,738 INFO o.a.c.AtmosphereFramework [restartedMain] Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster +2026-08-13 13:45:22,738 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Shared List Resources: false +2026-08-13 13:45:22,738 INFO o.a.c.AtmosphereFramework [restartedMain] Broadcaster Polling Wait Time 100 +2026-08-13 13:45:22,738 INFO o.a.c.AtmosphereFramework [restartedMain] Shared ExecutorService supported: true +2026-08-13 13:45:22,739 INFO o.a.c.AtmosphereFramework [restartedMain] Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor +2026-08-13 13:45:22,739 INFO o.a.c.AtmosphereFramework [restartedMain] Async I/O Thread Pool Size: 200 +2026-08-13 13:45:22,739 INFO o.a.c.AtmosphereFramework [restartedMain] Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory +2026-08-13 13:45:22,739 INFO o.a.c.AtmosphereFramework [restartedMain] Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory +2026-08-13 13:45:22,739 INFO o.a.c.AtmosphereFramework [restartedMain] Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor +2026-08-13 13:45:22,741 INFO o.a.c.AtmosphereFramework [restartedMain] Invoke AtmosphereInterceptor on WebSocket message true +2026-08-13 13:45:22,742 INFO o.a.c.AtmosphereFramework [restartedMain] HttpSession supported: true +2026-08-13 13:45:22,742 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation +2026-08-13 13:45:22,742 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/11.0.24 using jakarta.servlet/3.0 and jsr356/WebSocket API +2026-08-13 13:45:22,743 INFO o.a.c.AtmosphereFramework [restartedMain] Atmosphere Framework 3.0.5.slf4jvaadin1 started. +2026-08-13 13:45:22,749 INFO o.a.c.AtmosphereFramework [restartedMain] Installed AtmosphereInterceptor Track Message Size Interceptor using | with priority BEFORE_DEFAULT +2026-08-13 13:45:22,797 INFO o.a.j.l.DirectJDKLog [restartedMain] Starting ProtocolHandler ["http-nio-8085"] +2026-08-13 13:45:22,821 INFO c.v.f.s.DefaultDeploymentConfiguration [restartedMain] +Vaadin is running in DEVELOPMENT mode - do not use for production deployments. +2026-08-13 13:45:22,893 INFO o.s.b.t.TomcatWebServer [restartedMain] Tomcat started on port 8085 (http) with context path '/' +2026-08-13 13:45:23,051 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) is starting +2026-08-13 13:45:23,072 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying reconnection attempt 0/1 +2026-08-13 13:45:23,072 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Trying to connect with connectorFactory=org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory@6c1b90a9 and currentConnectorConfig: TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:45:23,122 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Connector NettyConnector [host=localhost, port=61616, httpEnabled=false, httpUpgradeEnabled=false, useServlet=false, servletPath=/messaging/ActiveMQServlet, sslEnabled=false, useNio=true] using native epoll +2026-08-13 13:45:23,134 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Started EPOLL Netty Connector version 4.2.15.Final to localhost:61616 +2026-08-13 13:45:23,134 DEBUG o.a.a.a.c.r.i.n.NettyConnector [restartedMain] Remote destination: localhost/127.0.0.1:61616 +2026-08-13 13:45:23,177 DEBUG o.a.a.a.c.r.i.n.NettyConnector$1 [Thread-0 (activemq-client-remoting)] Added ActiveMQClientChannelHandler to Channel with id = f8743e10 +2026-08-13 13:45:23,186 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Connected with the currentConnectorConfig=TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:45:23,241 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] Reconnection successful +2026-08-13 13:45:23,242 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [restartedMain] ClientSessionFactoryImpl received backup update for primary/backup pair = TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost / null but it didn't belong to TransportConfiguration(name=null, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)?port=61616&host=localhost +2026-08-13 13:45:23,267 DEBUG o.s.j.c.SingleConnectionFactory [restartedMain] Established shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@7b381ebb +2026-08-13 13:45:23,273 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Routes startup (total:3) +2026-08-13 13:45:23,273 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 13:45:23,273 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 13:45:23,273 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Started read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 13:45:23,273 INFO o.a.c.i.e.AbstractCamelContext [restartedMain] Apache Camel 4.10.6 (camel-1) started in 221ms (build:0ms init:0ms start:221ms boot:1s902ms) +2026-08-13 13:45:23,275 INFO d.t.k.s.SetupModuleBookshelf [restartedMain] Set up Bookshelf data +2026-08-13 13:45:23,276 INFO d.t.k.s.SetupModuleComics [restartedMain] Set up Comics data +2026-08-13 13:45:23,276 INFO d.t.k.s.SetupModuleMedia [restartedMain] Set up Media data +2026-08-13 13:45:23,276 INFO d.t.k.s.SetupModuleTysc [restartedMain] Setp up TYSC data +2026-08-13 13:45:23,279 INFO o.s.b.StartupInfoLogger [restartedMain] Started KontorApplication in 10.453 seconds (process running for 10.859) +2026-08-13 13:45:23,280 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=77ee3ed4-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=()]@49b2a0eb +2026-08-13 13:45:23,282 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=77ef9e65-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=()]@231fccf8 +2026-08-13 13:45:23,284 DEBUG o.s.j.c.CachingConnectionFactory [Camel (camel-1) thread #3 - JmsConsumer[media.video.add]] Registering cached JMS Session for mode 1: ActiveMQSession->ClientSessionImpl [name=77f01396-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=()]@7a8d41ad +2026-08-13 13:45:23,349 INFO c.v.b.d.DevModeHandlerManagerImpl [restartedMain] Application running at http://localhost:8085/ +2026-08-13 13:45:55,253 INFO o.a.j.l.DirectJDKLog [http-nio-8085-exec-1] Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-08-13 13:45:55,254 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Initializing Servlet 'dispatcherServlet' +2026-08-13 13:45:55,256 INFO o.s.w.s.FrameworkServlet [http-nio-8085-exec-1] Completed initialization in 2 ms +2026-08-13 13:48:53,647 INFO o.s.b.t.GracefulShutdown [SpringApplicationShutdownHook] Commencing graceful shutdown. Waiting for active requests to complete +2026-08-13 13:48:53,649 INFO o.s.b.t.GracefulShutdown [tomcat-shutdown] Graceful shutdown complete +2026-08-13 13:48:53,652 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) is shutting down (timeout:45s) +2026-08-13 13:48:54,550 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=77ee3ed4-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=()]@49b2a0eb +2026-08-13 13:48:54,550 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=77ef9e65-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=()]@231fccf8 +2026-08-13 13:48:54,551 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] Calling close on session ClientSessionImpl [name=77ee3ed4-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=()]@49b2a0eb +2026-08-13 13:48:54,551 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #1 - JmsConsumer[media.link.add]] calling cleanup on ClientSessionImpl [name=77ee3ed4-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=()]@49b2a0eb +2026-08-13 13:48:54,558 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] Calling close on session ClientSessionImpl [name=77ef9e65-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=()]@231fccf8 +2026-08-13 13:48:54,559 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [Camel (camel-1) thread #2 - JmsConsumer[media.lofi.add]] calling cleanup on ClientSessionImpl [name=77ef9e65-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=()]@231fccf8 +2026-08-13 13:48:54,562 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Routes stopped (total:3) +2026-08-13 13:48:54,562 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-video-add (jms://queue:media.video.add) +2026-08-13 13:48:54,562 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-lofi-add (jms://queue:media.lofi.add) +2026-08-13 13:48:54,562 INFO o.a.c.s.CamelLogger [SpringApplicationShutdownHook] Stopped read-queue-media-link-add (jms://queue:media.link.add) +2026-08-13 13:48:54,564 INFO o.a.c.i.e.AbstractCamelContext [SpringApplicationShutdownHook] Apache Camel 4.10.6 (camel-1) shutdown in 911ms (uptime:3m31s) +2026-08-13 13:48:54,564 DEBUG o.s.j.c.CachingConnectionFactory$CachedSessionInvocationHandler [SpringApplicationShutdownHook] Closing cached Session: ActiveMQSession->ClientSessionImpl [name=77f01396-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=()]@7a8d41ad +2026-08-13 13:48:54,565 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=77f01396-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=()]@7a8d41ad +2026-08-13 13:48:54,566 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=77f01396-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=()]@7a8d41ad +2026-08-13 13:48:54,566 DEBUG o.s.j.c.SingleConnectionFactory [SpringApplicationShutdownHook] Closing shared JMS Connection: org.apache.activemq.artemis.jms.client.ActiveMQConnection@7b381ebb +2026-08-13 13:48:54,566 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Calling close on session ClientSessionImpl [name=77ebcdd3-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=(jms-session=,)]@74d11287 +2026-08-13 13:48:54,567 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] calling cleanup on ClientSessionImpl [name=77ebcdd3-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=false, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=(jms-session=,)]@74d11287 +2026-08-13 13:48:54,569 DEBUG o.a.a.a.c.c.i.ClientSessionFactoryImpl [Thread-2 (activemq-client-global)] Failure captured on connectionID=f8743e10, performing failover or reconnection now +org.apache.activemq.artemis.api.core.ActiveMQNotConnectedException: [errorType=NOT_CONNECTED message=AMQ219006: Channel disconnected] + at org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.connectionDestroyed(ClientSessionFactoryImpl.java:413) + at org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnector$Listener.lambda$connectionDestroyed$0(NettyConnector.java:1199) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:59) + at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32) + at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:69) + at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090) + at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614) + at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120) +2026-08-13 13:48:54,571 DEBUG o.a.a.a.c.c.i.ClientSessionImpl [SpringApplicationShutdownHook] Session was already closed, giving up now, this=ClientSessionImpl [name=77ebcdd3-970c-11f1-8e68-5e5c628d27e5, username=artemis, closed=true, factory = org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl@55ca2337, metaData=(jms-session=,)]@74d11287 +2026-08-13 13:48:54,578 INFO o.s.o.j.AbstractEntityManagerFactoryBean [SpringApplicationShutdownHook] Closing JPA EntityManagerFactory for persistence unit 'default' +2026-08-13 13:48:54,581 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown initiated... +2026-08-13 13:48:54,590 INFO c.z.h.HikariDataSource [SpringApplicationShutdownHook] HikariPool-1 - Shutdown completed. diff --git a/kontor-spring/settings.gradle b/kontor-spring/settings.gradle index 226b285..a4b36c8 100644 --- a/kontor-spring/settings.gradle +++ b/kontor-spring/settings.gradle @@ -1,25 +1 @@ -pluginManagement { - resolutionStrategy { - eachPlugin { - if (requested.id.id == 'org.springframework.boot') { - useModule("org.springframework.boot:spring-boot-gradle-plugin:${requested.version}") - } - if (requested.id.id == 'org.gradle.toolchains.foojay-resolver') { - useModule("org.gradle.toolchains.foojay-resolver-convention:0.4.0") - } - } - } - repositories { - gradlePluginPortal() - maven { setUrl("https://nexus.thpeetz.de/repository/maven-central") } - mavenCentral() - maven { setUrl("https://maven.vaadin.com/vaadin-prereleases") } - maven { setUrl("https://repo.spring.io/milestone") } - maven { url 'https://plugins.gradle.org/m2/' } - } -// plugins { -// id 'com.vaadin' version "${vaadinVersion}" -// } -} - rootProject.name = 'kontor-spring' diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/ArtistViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/ArtistViewTest.java deleted file mode 100644 index b9874b1..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/ArtistViewTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package de.thpeetz.kontor.comics.views; - -import static org.junit.jupiter.api.Assertions.*; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.comics.Artist; -import de.thpeetz.kontor.views.comics.ArtistForm; -import de.thpeetz.kontor.views.comics.ArtistView; - -@SpringBootTest -class ArtistViewTest { - - @Autowired - private ArtistView artistView; - - @Test - void formShownWhenArtistSelected() { - Grid grid = artistView.getGrid(); - Artist firstArtist = getFirstItem(grid); - - ArtistForm form = artistView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstArtist); - assertTrue(form.isVisible()); - assertEquals(firstArtist.getName(), form.name.getValue()); - } - - private Artist getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List artists = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(5, count); - return artists.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/ArtistformTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/ArtistformTest.java deleted file mode 100644 index 395f16a..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/ArtistformTest.java +++ /dev/null @@ -1,64 +0,0 @@ -package de.thpeetz.kontor.comics.views; - -import static org.junit.jupiter.api.Assertions.*; - -import java.util.concurrent.atomic.AtomicReference; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -import de.thpeetz.kontor.data.comics.Artist; -import de.thpeetz.kontor.views.comics.ArtistForm; - -@SpringBootTest -class ArtistformTest { - - private Artist artist1; - private static final String ARTISTNAME= "Lee, Stan"; - - @BeforeEach - void setupData() { - artist1 = new Artist(); - artist1.setName(ARTISTNAME); - } - - @Test - void formFieldsPopulated() { - ArtistForm form = new ArtistForm(); - form.setArtist(artist1); - assertEquals(ARTISTNAME, form.name.getValue()); - } - - @Test - void saveEventHasCorrectValues() { - ArtistForm form = new ArtistForm(); - Artist artist = new Artist(); - form.setArtist(artist); - form.name.setValue(ARTISTNAME); - - AtomicReference savedArtistReference = new AtomicReference<>(null); - form.addSaveListener(e -> { - savedArtistReference.set(e.getArtist()); - }); - form.save.click(); - Artist savedArtist = savedArtistReference.get(); - assertEquals(ARTISTNAME, savedArtist.getName()); - } - - @Test - void deleteEventHasCorrectValues() { - ArtistForm form = new ArtistForm(); - Artist artist = new Artist(); - form.setArtist(artist); - form.name.setValue(ARTISTNAME); - - AtomicReference deletedArtistReference = new AtomicReference<>(null); - form.addDeleteListener(e -> { - deletedArtistReference.set(e.getArtist()); - }); - form.delete.click(); - Artist deletedArtist = deletedArtistReference.get(); - assertEquals(ARTISTNAME, deletedArtist.getName()); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/ComicViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/ComicViewTest.java deleted file mode 100644 index e31f9b7..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/ComicViewTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.thpeetz.kontor.comics.views; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.comics.Comic; -import de.thpeetz.kontor.views.comics.ComicForm; -import de.thpeetz.kontor.views.comics.ComicView; - -@SpringBootTest -public class ComicViewTest { - - @Autowired - private ComicView comicView; - - @Test - void formShownWhenComicSelected() { - Grid grid = comicView.getGrid(); - Comic firstComic = getFirstItem(grid); - - ComicForm form = comicView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstComic); - assertTrue(form.isVisible()); - assertEquals(firstComic.getTitle(), form.title.getValue()); - } - - private Comic getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List comics = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(169, count); - return comics.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/ComicWorkViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/ComicWorkViewTest.java deleted file mode 100644 index 891963f..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/ComicWorkViewTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.thpeetz.kontor.comics.views; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.comics.ComicWork; -import de.thpeetz.kontor.views.comics.ComicWorkForm; -import de.thpeetz.kontor.views.comics.ComicWorkView; - -@SpringBootTest -class ComicWorkViewTest { - - @Autowired - private ComicWorkView comicWorkView; - - @Test - void formShownWhenComicSelected() { - Grid grid = comicWorkView.getGrid(); - ComicWork firstComicWork = getFirstItem(grid); - - ComicWorkForm form = comicWorkView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstComicWork); - assertTrue(form.isVisible()); - assertEquals(firstComicWork.getComic(), form.comic.getValue()); - } - - private ComicWork getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List comicWorks = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(18, count); - return comicWorks.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/IssueViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/IssueViewTest.java deleted file mode 100644 index baaa465..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/IssueViewTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.thpeetz.kontor.comics.views; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.comics.Issue; -import de.thpeetz.kontor.views.comics.IssueForm; -import de.thpeetz.kontor.views.comics.IssueView; - -@SpringBootTest -public class IssueViewTest { - - @Autowired - private IssueView issueView; - - @Test - void formShownWhenIssueSelected() { - Grid grid = issueView.getGrid(); - Issue firstIssue = getFirstItem(grid); - - IssueForm form = issueView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstIssue); - assertTrue(form.isVisible()); - assertEquals(firstIssue.getIssueNumber(), form.issueNumber.getValue()); - } - - private Issue getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List issues = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(750, count); - return issues.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/PublisherViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/PublisherViewTest.java deleted file mode 100644 index 174221a..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/PublisherViewTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package de.thpeetz.kontor.comics.views; - -import static org.junit.jupiter.api.Assertions.*; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.comics.Publisher; -import de.thpeetz.kontor.views.comics.PublisherForm; -import de.thpeetz.kontor.views.comics.PublisherView; - -@SpringBootTest -class PublisherViewTest { - - @Autowired - private PublisherView publisherView; - - @Test - void formShownWhenPublisherSelected() { - Grid grid = publisherView.getGrid(); - Publisher firstPublisher = getFirstItem(grid); - - PublisherForm form = publisherView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstPublisher); - assertTrue(form.isVisible()); - assertEquals(firstPublisher.getName(), form.name.getValue()); - } - - private Publisher getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List publishers = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(18, count); - return publishers.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/StoryArcViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/StoryArcViewTest.java deleted file mode 100644 index 2375f43..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/StoryArcViewTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.thpeetz.kontor.comics.views; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.comics.StoryArc; -import de.thpeetz.kontor.views.comics.StoryArcForm; -import de.thpeetz.kontor.views.comics.StoryArcView; - -@SpringBootTest -class StoryArcViewTest { - - @Autowired - private StoryArcView storyArcView; - - @Test - void formShownWhenStoryArcSelected() { - Grid grid = storyArcView.getGrid(); - StoryArc firstStoryArc = getFirstItem(grid); - - StoryArcForm form = storyArcView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstStoryArc); - assertTrue(form.isVisible()); - assertEquals(firstStoryArc.getName(), form.name.getValue()); - } - - private StoryArc getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List storyArcs = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(3, count); - return storyArcs.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/TradePaperbackViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/TradePaperbackViewTest.java deleted file mode 100644 index 4652018..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/TradePaperbackViewTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package de.thpeetz.kontor.comics.views; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.comics.TradePaperback; -import de.thpeetz.kontor.views.comics.TradePaperBackForm; -import de.thpeetz.kontor.views.comics.TradePaperbackView; - -@SpringBootTest -class TradePaperbackViewTest { - - @Autowired - private TradePaperbackView tradePaperbackView; - - @Test - void formShownWhenVolumeSelected() { - Grid grid = tradePaperbackView.getGrid(); - - TradePaperback firstTradePaperback = getFirstItem(grid); - - TradePaperBackForm form = tradePaperbackView.getForm(); - assertFalse(form.isVisible()); - - if (firstTradePaperback != null) { - grid.asSingleSelect().setValue(firstTradePaperback); - assertTrue(form.isVisible()); - assertEquals(firstTradePaperback.getName(), form.name.getValue()); - } - } - - private TradePaperback getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List tradePaperbacks = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(40, count); - return tradePaperbacks.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/VolumeViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/VolumeViewTest.java deleted file mode 100644 index eaf0d73..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/VolumeViewTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package de.thpeetz.kontor.comics.views; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.comics.Volume; -import de.thpeetz.kontor.views.comics.VolumeForm; -import de.thpeetz.kontor.views.comics.VolumeView; - -@SpringBootTest -class VolumeViewTest { - - @Autowired - private VolumeView volumeView; - - @Test - void formShownWhenVolumeSelected() { - Grid grid = volumeView.getGrid(); - - Volume firstVolume = getFirstItem(grid); - - VolumeForm form = volumeView.getForm(); - assertFalse(form.isVisible()); - - if (firstVolume != null) { - grid.asSingleSelect().setValue(firstVolume); - assertTrue(form.isVisible()); - assertEquals(firstVolume.getName(), form.name.getValue()); - } - } - - private Volume getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List volumes = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(0, count); - if (count > 0) { - return volumes.get(0); - } else { - return null; - } - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/WorktypeViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/WorktypeViewTest.java deleted file mode 100644 index 05bf459..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/comics/views/WorktypeViewTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package de.thpeetz.kontor.comics.views; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.comics.Worktype; -import de.thpeetz.kontor.views.comics.WorktypeForm; -import de.thpeetz.kontor.views.comics.WorktypeView; -import lombok.extern.slf4j.Slf4j; - -@Slf4j -@SpringBootTest -class WorktypeViewTest { - - @Autowired - private WorktypeView worktypeView; - - @Test - void formShownWhenWorktypeSelected() { - Grid grid = worktypeView.getGrid(); - - Worktype firstWorktype = getFirstItem(grid); - - WorktypeForm form = worktypeView.getForm(); - assertFalse(form.isVisible()); - - if (firstWorktype != null) { - grid.asSingleSelect().setValue(firstWorktype); - assertTrue(form.isVisible()); - assertEquals(firstWorktype.getName(), form.name.getValue()); - } - } - - private Worktype getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List worktypes = grid.getListDataView().getItems().collect(Collectors.toList()); - log.info("found worktypes: {}", worktypes); - assertEquals(3, count); - return worktypes.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/CardSetViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/CardSetViewTest.java deleted file mode 100644 index 980c236..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/CardSetViewTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.thpeetz.kontor.views.tysc; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.tysc.CardSet; -import de.thpeetz.kontor.views.tysc.CardSetForm; -import de.thpeetz.kontor.views.tysc.CardSetView; - -@SpringBootTest -class CardSetViewTest { - - @Autowired - private CardSetView cardSetView; - - @Test - void formShownWhenCardSetSelected() { - Grid grid = cardSetView.getGrid(); - CardSet firstCardSet = getFirstItem(grid); - - CardSetForm form = cardSetView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstCardSet); - assertTrue(form.isVisible()); - assertEquals(firstCardSet.getName(), form.name.getValue()); - } - - private CardSet getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List cardSets = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(15, count); - return cardSets.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/CardViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/CardViewTest.java deleted file mode 100644 index d2a70ee..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/CardViewTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.thpeetz.kontor.views.tysc; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.tysc.Card; -import de.thpeetz.kontor.views.tysc.CardForm; -import de.thpeetz.kontor.views.tysc.CardView; - -@SpringBootTest -class CardViewTest { - - @Autowired - private CardView cardView; - - @Test - void formShownWhenCardSelected() { - Grid grid = cardView.getGrid(); - Card firstCard = getFirstItem(grid); - - CardForm form = cardView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstCard); - assertTrue(form.isVisible()); - assertEquals(String.valueOf(firstCard.getCardNumber()), form.cardNumber.getValue()); - } - - private Card getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List cards = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(10, count); - return cards.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/FieldPositionViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/FieldPositionViewTest.java deleted file mode 100644 index 845044e..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/FieldPositionViewTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.thpeetz.kontor.views.tysc; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.tysc.FieldPosition; -import de.thpeetz.kontor.views.tysc.PositionForm; -import de.thpeetz.kontor.views.tysc.PositionView; - -@SpringBootTest -class FieldPositionViewTest { - - @Autowired - private PositionView positionView; - - @Test - void formShownWhenPositionSelected() { - Grid grid = positionView.getGrid(); - FieldPosition firstFieldPosition = getFirstItem(grid); - - PositionForm form = positionView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstFieldPosition); - assertTrue(form.isVisible()); - assertEquals(firstFieldPosition.getName(), form.name.getValue()); - } - - private FieldPosition getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List positions = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(44, count); - return positions.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/PlayerViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/PlayerViewTest.java deleted file mode 100644 index d93da8d..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/PlayerViewTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package de.thpeetz.kontor.views.tysc; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.tysc.Player; -import de.thpeetz.kontor.views.tysc.PlayerForm; -import de.thpeetz.kontor.views.tysc.PlayerView; - -@SpringBootTest -class PlayerViewTest { - - @Autowired - private PlayerView playerView; - - @Test - void formShownWhenPlayerSelected() { - Grid grid = playerView.getGrid(); - Player firstPlayer = getFirstItem(grid); - - PlayerForm form = playerView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstPlayer); - assertTrue(form.isVisible()); - assertEquals(firstPlayer.getLastName(), form.lastName.getValue()); - assertEquals(firstPlayer.getFirstName(), form.firstName.getValue()); - } - - private Player getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List players = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(38, count); - return players.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/RoosterViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/RoosterViewTest.java deleted file mode 100644 index c900305..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/RoosterViewTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.thpeetz.kontor.views.tysc; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.tysc.Rooster; -import de.thpeetz.kontor.views.tysc.RoosterForm; -import de.thpeetz.kontor.views.tysc.RoosterView; - -@SpringBootTest -class RoosterViewTest { - - @Autowired - private RoosterView roosterView; - - @Test - void formShownWhenRoosterSelected() { - Grid grid = roosterView.getGrid(); - Rooster firstRooster = getFirstItem(grid); - - RoosterForm form = roosterView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstRooster); - assertTrue(form.isVisible()); - assertEquals(firstRooster.getYear(), form.year.getValue()); - } - - private Rooster getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List roosters = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(11, count); - return roosters.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/SportViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/SportViewTest.java deleted file mode 100644 index ec83ff3..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/SportViewTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.thpeetz.kontor.views.tysc; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.tysc.Sport; -import de.thpeetz.kontor.views.tysc.SportForm; -import de.thpeetz.kontor.views.tysc.SportView; - -@SpringBootTest -class SportViewTest { - - @Autowired - private SportView sportView; - - @Test - void formShownWhenSportSelected() { - Grid grid = sportView.getGrid(); - Sport firstSport = getFirstItem(grid); - - SportForm form = sportView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstSport); - assertTrue(form.isVisible()); - assertEquals(firstSport.getName(), form.name.getValue()); - } - - private Sport getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List sports = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(4, count); - return sports.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/TeamViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/TeamViewTest.java deleted file mode 100644 index 9e99a27..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/TeamViewTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.thpeetz.kontor.views.tysc; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.tysc.Team; -import de.thpeetz.kontor.views.tysc.TeamForm; -import de.thpeetz.kontor.views.tysc.TeamView; - -@SpringBootTest -class TeamViewTest { - - @Autowired - private TeamView teamView; - - @Test - void formShownWhenTeamSelected() { - Grid grid = teamView.getGrid(); - Team firstTeam = getFirstItem(grid); - - TeamForm form = teamView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstTeam); - assertTrue(form.isVisible()); - assertEquals(firstTeam.getName(), form.name.getValue()); - } - - private Team getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List teams = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(122, count); - return teams.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/VendorViewTest.java b/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/VendorViewTest.java deleted file mode 100644 index 9e99cee..0000000 --- a/kontor-spring/src/integrationTest/java/de/thpeetz/kontor/views/tysc/VendorViewTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package de.thpeetz.kontor.views.tysc; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.List; -import java.util.stream.Collectors; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; - -import com.vaadin.flow.component.grid.Grid; - -import de.thpeetz.kontor.data.tysc.Vendor; -import de.thpeetz.kontor.views.tysc.VendorForm; -import de.thpeetz.kontor.views.tysc.VendorView; - -@SpringBootTest -class VendorViewTest { - - @Autowired - private VendorView vendorView; - - @Test - void formShownWhenVendorSelected() { - Grid grid = vendorView.getGrid(); - Vendor firstVendor = getFirstItem(grid); - - VendorForm form = vendorView.getForm(); - - assertFalse(form.isVisible()); - grid.asSingleSelect().setValue(firstVendor); - assertTrue(form.isVisible()); - assertEquals(firstVendor.getName(), form.name.getValue()); - } - - private Vendor getFirstItem(Grid grid) { - int count = grid.getListDataView().getItemCount(); - List vendors = grid.getListDataView().getItems().collect(Collectors.toList()); - assertEquals(9, count); - return vendors.get(0); - } -} diff --git a/kontor-spring/src/integrationTest/resources/application.properties b/kontor-spring/src/integrationTest/resources/application.properties deleted file mode 100644 index 27a1935..0000000 --- a/kontor-spring/src/integrationTest/resources/application.properties +++ /dev/null @@ -1,30 +0,0 @@ -server.port=8085 - -spring.hibernate.dialect=org.hibernate.dialect.HSQLDialect -spring.jpa.database-platform=org.hibernate.dialect.HSQLDialect -spring.datasource.driverClassName=org.hsqldb.jdbc.JDBCDriver -spring.datasource.url=jdbc:hsqldb:mem:itDb -spring.datasource.username=sa -spring.datasource.password=sa - -#spring.jpa.database-platform=org.hibernate.community.dialect.SQLiteDialect -#spring.datasource.driverClassName=org.sqlite.JDBC -#spring.datasource.url=jdbc:sqlite:file:./kontorITDb?cache=shared -#spring.datasource.username=sa -#spring.datasource.password=sa - -spring.jpa.defer-datasource-initialization = true -#spring.jpa.hibernate.ddl-auto=create-drop -spring.jpa.hibernate.ddl-auto=update -spring.jpa.show-sql=false -spring.sql.init.mode=always - -spring.mustache.check-template-location = false - -logging.level.org.atmosphere=INFO -logging.level.org.springframework.web=INFO -logging.level.guru.springframework.controllers=DEBUG -logging.level.org.hibernate=INFO -logging.level.de.thpeetz=DEBUG - -jwt.auth.secret=J6GOtcwC2NJI1l0VkHu20PacPFGTxpirBxWwynoHjsc= diff --git a/kontor-spring/src/main/frontend/generated/app-shell-imports.d.ts b/kontor-spring/src/main/frontend/generated/app-shell-imports.d.ts new file mode 100644 index 0000000..693da49 --- /dev/null +++ b/kontor-spring/src/main/frontend/generated/app-shell-imports.d.ts @@ -0,0 +1 @@ +export {} \ No newline at end of file diff --git a/kontor-spring/src/main/frontend/generated/app-shell-imports.js b/kontor-spring/src/main/frontend/generated/app-shell-imports.js new file mode 100644 index 0000000..e69de29 diff --git a/kontor-spring/src/main/frontend/generated/css.generated.d.ts b/kontor-spring/src/main/frontend/generated/css.generated.d.ts new file mode 100644 index 0000000..ba07dc0 --- /dev/null +++ b/kontor-spring/src/main/frontend/generated/css.generated.d.ts @@ -0,0 +1 @@ +export declare const applyCss: (target: Node) => void; \ No newline at end of file diff --git a/kontor-spring/src/main/frontend/generated/flow/Flow.tsx b/kontor-spring/src/main/frontend/generated/flow/Flow.tsx new file mode 100644 index 0000000..7172685 --- /dev/null +++ b/kontor-spring/src/main/frontend/generated/flow/Flow.tsx @@ -0,0 +1,707 @@ +/* + * Copyright 2000-2026 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +/// +import { Flow as _Flow } from 'Frontend/generated/jar-resources/Flow.js'; +import React, { useCallback, useEffect, useReducer, useRef, useState, type ReactNode } from 'react'; +import { matchRoutes, useBlocker, useLocation, useNavigate, type NavigateOptions, useHref } from 'react-router'; +import { createPortal } from 'react-dom'; + +const flow = new _Flow({ + imports: () => import('Frontend/generated/flow/generated-flow-imports.js') +}); + +const router = { + render() { + return Promise.resolve(); + } +}; + +const flowReact : { active: boolean } = { + active: false, +} + +// ClickHandler for vaadin-router-go event is copied from vaadin/router click.js +// @ts-ignore +function getAnchorOrigin(anchor) { + // IE11: on HTTP and HTTPS the default port is not included into + // window.location.origin, so won't include it here either. + const port = anchor.port; + const protocol = anchor.protocol; + const defaultHttp = protocol === 'http:' && port === '80'; + const defaultHttps = protocol === 'https:' && port === '443'; + const host = + defaultHttp || defaultHttps + ? anchor.hostname // does not include the port number (e.g. www.example.org) + : anchor.host; // does include the port number (e.g. www.example.org:80) + return `${protocol}//${host}`; +} + +function normalizeURL(url: URL): void | string { + // ignore click if baseURI does not match the document (external) + if (!url.href.startsWith(document.baseURI)) { + return; + } + + // Normalize path against baseURI + return '/' + url.href.slice(document.baseURI.length); +} + +function extractURL(event: MouseEvent): void | URL { + // ignore the click if the default action is prevented + if (event.defaultPrevented) { + return; + } + + // ignore the click if not with the primary mouse button + if (event.button !== 0) { + return; + } + + // ignore the click if a modifier key is pressed + if (event.shiftKey || event.ctrlKey || event.altKey || event.metaKey) { + return; + } + + // find the element that the click is at (or within) + let maybeAnchor = event.target; + const path = event.composedPath + ? event.composedPath() + : // @ts-ignore + event.path || []; + + // example to check: `for...of` loop here throws the "Not yet implemented" error + for (let i = 0; i < path.length; i++) { + const target = path[i]; + if (target.nodeName && target.nodeName.toLowerCase() === 'a') { + maybeAnchor = target; + break; + } + } + + // @ts-ignore + while (maybeAnchor && maybeAnchor.nodeName.toLowerCase() !== 'a') { + // @ts-ignore + maybeAnchor = maybeAnchor.parentNode; + } + + // ignore the click if not at an element + // @ts-ignore + if (!maybeAnchor || maybeAnchor.nodeName.toLowerCase() !== 'a') { + return; + } + + const anchor = maybeAnchor as HTMLAnchorElement; + + // ignore the click if the element has a non-default target + if (anchor.target && anchor.target.toLowerCase() !== '_self') { + return; + } + + // ignore the click if the element has the 'download' attribute + if (anchor.hasAttribute('download')) { + return; + } + + // ignore the click if the element has the 'router-ignore' attribute + if (anchor.hasAttribute('router-ignore')) { + return; + } + + // ignore the click if the target URL is a fragment on the current page + if (anchor.pathname === window.location.pathname && anchor.hash !== '') { + // @ts-ignore + window.location.hash = anchor.hash; + return; + } + + // ignore the click if the target is external to the app + // In IE11 HTMLAnchorElement does not have the `origin` property + // @ts-ignore + const origin = anchor.origin || getAnchorOrigin(anchor); + if (origin !== window.location.origin) { + return; + } + + return new URL(anchor.href, anchor.baseURI); +} + +function extractPath(event: MouseEvent): void | string { + const url = extractURL(event); + if (!url) { + return; + } + return normalizeURL(url); +} + +export const registerGlobalClickHandler = () => { + window.addEventListener('click', (event: MouseEvent) => { + if (flowReact.active) { + return; + } + const url = extractURL(event); + if (!url) { + return; + } + // ignore click if baseURI does not match the document (external) + if (!url.href.startsWith(document.baseURI)) { + return; + } + if (event && event.preventDefault) { + event.preventDefault(); + } + + // Normalize path against baseURI + const path = url.pathname + url.search + url.hash; + const state = {...window.history.state} + if (state.idx !== undefined) { + state.idx = state.idx + 1; + } + window.history.pushState(state, '', path); + window.dispatchEvent(new PopStateEvent('popstate')); + }, { capture: false }); +}; + +/** + * Fire 'vaadin-navigated' event to inform components of navigation. + * @param pathname pathname of navigation + * @param search search of navigation + */ +function fireNavigated(pathname: string, search: string) { + setTimeout(() => { + window.dispatchEvent( + new CustomEvent('vaadin-navigated', { + detail: { + pathname, + search + } + }) + ); + // @ts-ignore + delete window.Vaadin.Flow.navigation; + }); +} + +function postpone() {} + +const prevent = () => postpone; + +type RouterContainer = Awaited>; + +type PortalEntry = { + readonly children: ReactNode; + readonly domNode: HTMLElement; +}; + +type FlowPortalProps = React.PropsWithChildren< + Readonly<{ + domNode: HTMLElement; + onRemove(): void; + }> +>; + +function FlowPortal({ children, domNode, onRemove }: FlowPortalProps) { + useEffect(() => { + domNode.addEventListener( + 'flow-portal-remove', + (event: Event) => { + event.preventDefault(); + onRemove(); + }, + { once: true } + ); + }, []); + + return createPortal(children, domNode); +} + +const ADD_FLOW_PORTAL = 'ADD_FLOW_PORTAL'; + +type AddFlowPortalAction = Readonly<{ + type: typeof ADD_FLOW_PORTAL; + portal: React.ReactElement; +}>; + +function addFlowPortal(portal: React.ReactElement): AddFlowPortalAction { + return { + type: ADD_FLOW_PORTAL, + portal + }; +} + +const REMOVE_FLOW_PORTAL = 'REMOVE_FLOW_PORTAL'; + +type RemoveFlowPortalAction = Readonly<{ + type: typeof REMOVE_FLOW_PORTAL; + key: string; +}>; + +function removeFlowPortal(key: string): RemoveFlowPortalAction { + return { + type: REMOVE_FLOW_PORTAL, + key + }; +} + +function flowPortalsReducer( + portals: readonly React.ReactElement[], + action: AddFlowPortalAction | RemoveFlowPortalAction +) { + switch (action.type) { + case ADD_FLOW_PORTAL: + return [...portals, action.portal]; + case REMOVE_FLOW_PORTAL: + return portals.filter(({ key }) => key !== action.key); + default: + return portals; + } +} + +type NavigateOpts = { + to: string; + callback: boolean; + opts?: NavigateOptions; +}; + +type NavigateFn = (to: string, callback: boolean, opts?: NavigateOptions) => void; + +let navigateInProgress = false; +/** + * A hook providing the `navigate(path: string, opts?: NavigateOptions)` function + * with React Router API that has more consistent history updates. Uses internal + * queue for processing navigate calls. + */ +function useQueuedNavigate( + waitReference: React.MutableRefObject | undefined>, + navigated: React.MutableRefObject +): NavigateFn { + const navigate = useNavigate(); + const navigateQueue = useRef([]).current; + const [navigateQueueLength, setNavigateQueueLength] = useState(0); + + const dequeueNavigation = useCallback(() => { + if (navigateInProgress) { + dequeueNavigationAfterCurrentTask(); + return; + } + + const navigateArgs = navigateQueue.shift(); + if (navigateArgs === undefined) { + // Empty queue, do nothing. + return; + } + + const blockingNavigate = async () => { + if (waitReference.current) { + await waitReference.current; + waitReference.current = undefined; + } + navigated.current = !navigateArgs.callback; + navigateInProgress = true; + navigate(navigateArgs.to, navigateArgs.opts); + setNavigateQueueLength(navigateQueue.length); + }; + blockingNavigate(); + }, [navigate, setNavigateQueueLength]); + + const dequeueNavigationAfterCurrentTask = useCallback(() => { + setTimeout(dequeueNavigation, 0); + }, [dequeueNavigation]); + + const enqueueNavigation = useCallback( + (to: string, callback: boolean, opts?: NavigateOptions) => { + navigateQueue.push({ to: to, callback: callback, opts: opts }); + setNavigateQueueLength(navigateQueue.length); + if (navigateQueue.length === 1) { + // The first navigation can be started right after any pending sync + // jobs, which could add more navigations to the queue. + dequeueNavigationAfterCurrentTask(); + } + }, + [setNavigateQueueLength, dequeueNavigationAfterCurrentTask] + ); + + useEffect( + () => () => { + // The Flow component has rendered, but history might not be + // updated yet, as React Router does it asynchronously. + // Use microtask callback for history consistency. + dequeueNavigationAfterCurrentTask(); + }, + [navigateQueueLength, dequeueNavigationAfterCurrentTask] + ); + + return enqueueNavigation; +} + +const flowNavigation = () => { + // @ts-ignore + window.Vaadin.Flow.navigation = true; +}; + +function Flow() { + const ref = useRef(null); + const navigate = useNavigate(); + const blocker = useBlocker(({ currentLocation, nextLocation }) => { + navigated.current = + navigated.current || + (nextLocation.pathname === currentLocation.pathname && + nextLocation.search === currentLocation.search && + nextLocation.hash === currentLocation.hash); + return true; + }); + const location = useLocation(); + const navigated = useRef(false); + const blockerHandled = useRef(false); + const fromAnchor = useRef(false); + const containerRef = useRef(undefined); + const roundTrip = useRef | undefined>(undefined); + const queuedNavigate = useQueuedNavigate(roundTrip, navigated); + const basename = useHref('/'); + + // portalsReducer function is used as state outside the Flow component. + const [portals, dispatchPortalAction] = useReducer(flowPortalsReducer, []); + + const addPortalEventHandler = useCallback( + (event: CustomEvent) => { + event.preventDefault(); + + const key = Math.random().toString(36).slice(2); + dispatchPortalAction( + addFlowPortal( + dispatchPortalAction(removeFlowPortal(key))} + > + {event.detail.children} + + ) + ); + }, + [dispatchPortalAction] + ); + + const navigateEventHandler = useCallback( + (event: MouseEvent) => { + const path = extractPath(event); + if (!path) { + return; + } + + if (event && event.preventDefault) { + event.preventDefault(); + } + navigated.current = false; + // When navigation is triggered by click on a link, fromAnchor is set to true + // in order to get a server round-trip even when navigating to the same URL again + fromAnchor.current = true; + // @ts-ignore + window.Vaadin.Flow.navigation = true; + navigate(path); + // Dispatch close event for overlay drawer on click navigation. + window.dispatchEvent(new CustomEvent('close-overlay-drawer')); + }, + [navigate] + ); + + const vaadinRouterGoEventHandler = useCallback( + (event: CustomEvent) => { + const url = event.detail; + const path = normalizeURL(url); + if (!path) { + return; + } + + event.preventDefault(); + navigate(path); + }, + [navigate] + ); + + const vaadinNavigateEventHandler = useCallback( + (event: CustomEvent<{ state: unknown; url: string; replace?: boolean; callback: boolean }>) => { + // @ts-ignore + window.Vaadin.Flow.navigation = true; + // clean base uri away if for instance redirected to http://localhost/path/user?id=10 + // else the whole http... will be appended to the url see #19580 + const path = event.detail.url.startsWith(document.baseURI) + ? '/' + event.detail.url.slice(document.baseURI.length) + : '/' + event.detail.url; + fromAnchor.current = false; + queuedNavigate(path, event.detail.callback, { state: event.detail.state, replace: event.detail.replace }); + }, + [navigate] + ); + + const redirect = useCallback( + (path: string) => { + return () => { + navigate(path, { replace: true }); + }; + }, + [navigate] + ); + + useEffect(() => { + // @ts-ignore + window.addEventListener('vaadin-router-go', vaadinRouterGoEventHandler); + // @ts-ignore + window.addEventListener('vaadin-navigate', vaadinNavigateEventHandler); + + return () => { + // @ts-ignore + window.removeEventListener('vaadin-router-go', vaadinRouterGoEventHandler); + // @ts-ignore + window.removeEventListener('vaadin-navigate', vaadinNavigateEventHandler); + }; + }, [vaadinRouterGoEventHandler, vaadinNavigateEventHandler]); + + useEffect(() => { + // @ts-ignore + window.addEventListener("popstate", flowNavigation); + window.addEventListener('click', navigateEventHandler); + flowReact.active = true; + + return () => { + containerRef.current?.parentNode?.removeChild(containerRef.current); + containerRef.current?.removeEventListener('flow-portal-add', addPortalEventHandler as EventListener); + containerRef.current = undefined; + // @ts-ignore + window.removeEventListener("popstate", flowNavigation); + window.removeEventListener('click', navigateEventHandler); + flowReact.active = false; + }; + }, []); + + useEffect(() => { + if (blocker.state === 'blocked') { + if (blockerHandled.current) { + // Blocker is handled and the new navigation + // gets queued to be executed after the current handling ends. + const { pathname, state } = blocker.location; + // Clear base name to not get /baseName/basename/path + const pathNoBase = pathname.substring(basename.length); + // path should always start with / else react-router will append to current url + queuedNavigate(pathNoBase.startsWith('/') ? pathNoBase : '/' + pathNoBase, true, { + state: state, + replace: true + }); + return; + } + blockerHandled.current = true; + let blockingPromise: any; + roundTrip.current = new Promise( + (resolve, reject) => (blockingPromise = { resolve: resolve, reject: reject }) + ); + // Release blocker handling after promise is fulfilled + roundTrip.current.then( + () => (blockerHandled.current = false), + () => (blockerHandled.current = false) + ); + + // Proceed to the blocked location, unless the navigation originates from a click on a link. + // In that case continue with function execution and perform a server round-trip + if (navigated.current && !fromAnchor.current) { + blocker.proceed(); + blockingPromise.resolve(); + navigateInProgress = false; + return; + } + fromAnchor.current = false; + const { pathname, search } = blocker.location; + const routes = ((window as any)?.Vaadin?.routesConfig || []) as any[]; + let matched = matchRoutes(Array.from(routes), pathname); + + // Navigation between server routes + // @ts-ignore + if (matched && matched.filter((path) => path.route?.element?.type?.name === Flow.name).length != 0) { + containerRef.current?.onBeforeEnter?.call( + containerRef?.current, + { pathname, search }, + { + prevent() { + blocker.reset(); + blockingPromise.resolve(); + navigateInProgress = false; + navigated.current = false; + }, + redirect, + continue() { + blocker.proceed(); + blockingPromise.resolve(); + navigateInProgress = false; + } + }, + router + ); + navigated.current = true; + } else { + // For covering the 'server -> client' use case + Promise.resolve( + containerRef.current?.onBeforeLeave?.call( + containerRef?.current, + { + pathname, + search + }, + { prevent }, + router + ) + ).then((cmd: unknown) => { + if (cmd === postpone && containerRef.current) { + // postponed navigation: expose existing blocker to Flow + containerRef.current.serverConnected = (cancel) => { + if (cancel) { + blocker.reset(); + } else { + blocker.proceed(); + } + blockingPromise.resolve(); + navigateInProgress = false; + }; + } else { + // permitted navigation: proceed with the blocker + blocker.proceed(); + blockingPromise.resolve(); + navigateInProgress = false; + } + }); + } + } + }, [blocker.state, blocker.location]); + + useEffect(() => { + if (blocker.state === 'blocked') { + return; + } + if (navigated.current) { + navigated.current = false; + fireNavigated(location.pathname, location.search); + return; + } + flow.serverSideRoutes[0] + .action({ pathname: location.pathname, search: location.search }) + .then((container) => { + const outlet = ref.current?.parentNode; + if (outlet && outlet !== container.parentNode) { + outlet.append(container); + container.addEventListener('flow-portal-add', addPortalEventHandler as EventListener); + containerRef.current = container; + } + return container.onBeforeEnter?.call( + container, + // Always add base to path as it is cleaned in getFlowRoutePath and will break a route starting with basename + { pathname: basename + location.pathname, search: location.search }, + { + prevent, + redirect, + continue() { + fireNavigated(location.pathname, location.search); + } + }, + router + ); + }) + .then((result: unknown) => { + if (typeof result === 'function') { + result(); + } + }); + }, [location]); + + return ( + <> + + {portals} + + ); +} +Flow.type = 'FlowContainer'; // This is for copilot to recognize this + +export const serverSideRoutes = [{ path: '/*', element: }]; + +/** + * Load the script for an exported WebComponent with the given tag + * + * @param tag name of the exported web-component to load + * + * @returns Promise(resolve, reject) that is fulfilled on script load + */ +export const loadComponentScript = (tag: String): Promise => { + return new Promise((resolve, reject) => { + useEffect(() => { + const script = document.createElement('script'); + script.src = `/web-component/${tag}.js`; + script.onload = function () { + resolve(); + }; + script.onerror = function (err) { + reject(err); + }; + document.head.appendChild(script); + + return () => { + document.head.removeChild(script); + }; + }, []); + }); +}; + +interface Properties { + [key: string]: string; +} + +/** + * Load WebComponent script and create a React element for the WebComponent. + * + * @param tag custom web-component tag name. + * @param props optional Properties object to create element attributes with + * @param onload optional callback to be called for script onload + * @param onerror optional callback for error loading the script + */ +export const reactElement = (tag: string, props?: Properties, onload?: () => void, onerror?: (err: any) => void) => { + loadComponentScript(tag).then( + () => onload?.(), + (err) => { + if (onerror) { + onerror(err); + } else { + console.error(`Failed to load script for ${tag}.`, err); + } + } + ); + + if (props) { + return React.createElement(tag, props); + } + return React.createElement(tag); +}; + +export default Flow; + +// @ts-ignore +if (import.meta.hot) { + // @ts-ignore + import.meta.hot.accept((newModule) => { + // A hot module replace for Flow.tsx happens when any JS/TS imported through @JsModule + // or similar is updated because this updates generated-flow-imports.js and that in turn + // is imported by this file. We have no means of hot replacing those files, e.g. some + // custom lit element so we need to reload the page. */ + if (newModule) { + window.location.reload(); + } + }); +} diff --git a/kontor-spring/src/main/frontend/generated/flow/ReactAdapter.tsx b/kontor-spring/src/main/frontend/generated/flow/ReactAdapter.tsx new file mode 100644 index 0000000..479b506 --- /dev/null +++ b/kontor-spring/src/main/frontend/generated/flow/ReactAdapter.tsx @@ -0,0 +1,329 @@ +/* + * Copyright 2000-2026 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +import { createRoot, Root } from 'react-dom/client'; +import { createElement, type Dispatch, type ReactElement, type ReactNode, useEffect, useReducer } from 'react'; + +type FlowStateKeyChangedAction = Readonly<{ + type: 'stateKeyChanged'; + key: K; + value: V; +}>; + +type FlowStateReducerAction = FlowStateKeyChangedAction; + +function stateReducer>>(state: S, action: FlowStateReducerAction): S { + switch (action.type) { + case 'stateKeyChanged': + const { value } = action; + return { + ...state, + key: value + } as S; + default: + return state; + } +} + +type DispatchEvent = T extends undefined ? () => boolean : (value: T) => boolean; + +const emptyAction: Dispatch = () => {}; + +/** + * An object with APIs exposed for using in the {@link ReactAdapterElement#render} + * implementation. + */ +export type RenderHooks = { + /** + * A hook API for using stateful JS properties of the Web Component from + * the React `render()`. + * + * @typeParam T - Type of the state value + * + * @param key - Web Component property name, which is used for two-way + * value propagation from the server and back. + * @param initialValue - Fallback initial value (optional). Only applies if + * the Java component constructor does not invoke `setState`. + * @returns A tuple with two values: + * 1. The current state. + * 2. The `set` function for changing the state and triggering render + * @protected + */ + readonly useState: ReactAdapterElement['useState']; + + /** + * A hook helper to simplify dispatching a `CustomEvent` on the Web + * Component from React. + * + * @typeParam T - The type for `event.detail` value (optional). + * + * @param type - The `CustomEvent` type string. + * @param options - The settings for the `CustomEvent`. + * @returns The `dispatch` function. The function parameters change + * depending on the `T` generic type: + * - For `undefined` type (default), has no parameters. + * - For other types, has one parameter for the `event.detail` value of that type. + * @protected + */ + readonly useCustomEvent: ReactAdapterElement['useCustomEvent']; + + /** + * A hook helper to generate the content element with name attribute to bind + * the server-side Flow element for this component. + * + * This is used together with {@link ReactAdapterComponent::getContentElement} + * to have server-side component attach to the correct client element. + * + * Usage as follows: + * + * const content = hooks.useContent('content'); + * return <> + * {content} + * ; + * + * Note! Not adding the 'content' element into the dom will have the + * server throw a IllegalStateException for element with tag name not found. + * + * @param name - The name attribute of the element + */ + readonly useContent: ReactAdapterElement['useContent']; +}; + +interface ReadyCallbackFunction { + (): void; +} + +/** + * A base class for Web Components that render using React. Enables creating + * adapters for integrating React components with Flow. Intended for use with + * `ReactAdapterComponent` Flow Java class. + */ +export abstract class ReactAdapterElement extends HTMLElement { + #root: Root | undefined = undefined; + #rootRendered: boolean = false; + #rendering: ReactNode | undefined = undefined; + + #state: Record = Object.create(null); + #stateSetters = new Map>(); + #customEvents = new Map>(); + #dispatchFlowState: Dispatch = emptyAction; + + #readyCallback = new Map(); + + readonly #renderHooks: RenderHooks; + + readonly #Wrapper: () => ReactElement | null; + + #unmounting?: Promise; + + constructor() { + super(); + this.#renderHooks = { + useState: this.useState.bind(this), + useCustomEvent: this.useCustomEvent.bind(this), + useContent: this.useContent.bind(this) + }; + this.#Wrapper = this.#renderWrapper.bind(this); + this.#markAsUsed(); + } + + public async connectedCallback() { + this.#rendering = createElement(this.#Wrapper); + const createNewRoot = this.dispatchEvent( + new CustomEvent('flow-portal-add', { + bubbles: true, + cancelable: true, + composed: true, + detail: { + children: this.#rendering, + domNode: this + } + }) + ); + + if (!createNewRoot || this.#root) { + return; + } + + await this.#unmounting; + + this.#root = createRoot(this); + this.#maybeRenderRoot(); + this.#root.render(this.#rendering); + } + + /** + * Add a callback for specified element identifier to be called when + * react element is ready. + *

+ * For internal use only. May be renamed or removed in a future release. + * + * @param id element identifier that callback is for + * @param readyCallback callback method to be informed on element ready state + * @internal + */ + public addReadyCallback(id: string, readyCallback: ReadyCallbackFunction) { + this.#readyCallback.set(id, readyCallback); + } + + public async disconnectedCallback() { + if (!this.#root) { + this.dispatchEvent( + new CustomEvent('flow-portal-remove', { + bubbles: true, + cancelable: true, + composed: true, + detail: { + children: this.#rendering, + domNode: this + } + }) + ); + } else { + this.#unmounting = Promise.resolve(); + await this.#unmounting; + this.#root.unmount(); + this.#root = undefined; + } + this.#rootRendered = false; + this.#rendering = undefined; + } + + /** + * A hook API for using stateful JS properties of the Web Component from + * the React `render()`. + * + * @typeParam T - Type of the state value + * + * @param key - Web Component property name, which is used for two-way + * value propagation from the server and back. + * @param initialValue - Fallback initial value (optional). Only applies if + * the Java component constructor does not invoke `setState`. + * @returns A tuple with two values: + * 1. The current state. + * 2. The `set` function for changing the state and triggering render + * @protected + */ + protected useState(key: string, initialValue?: T): [value: T, setValue: Dispatch] { + if (this.#stateSetters.has(key)) { + return [this.#state[key] as T, this.#stateSetters.get(key)!]; + } + + const value = ((this as Record)[key] as T) ?? initialValue!; + this.#state[key] = value; + Object.defineProperty(this, key, { + enumerable: true, + get(): T { + return this.#state[key]; + }, + set(nextValue: T) { + this.#state[key] = nextValue; + this.#dispatchFlowState({ type: 'stateKeyChanged', key, value }); + } + }); + + const dispatchChangedEvent = this.useCustomEvent<{ value: T }>(`${key}-changed`, { detail: { value } }); + const setValue = (value: T) => { + this.#state[key] = value; + dispatchChangedEvent({ value }); + this.#dispatchFlowState({ type: 'stateKeyChanged', key, value }); + }; + this.#stateSetters.set(key, setValue as Dispatch); + return [value, setValue]; + } + + /** + * A hook helper to simplify dispatching a `CustomEvent` on the Web + * Component from React. + * + * @typeParam T - The type for `event.detail` value (optional). + * + * @param type - The `CustomEvent` type string. + * @param options - The settings for the `CustomEvent`. + * @returns The `dispatch` function. The function parameters change + * depending on the `T` generic type: + * - For `undefined` type (default), has no parameters. + * - For other types, has one parameter for the `event.detail` value of that type. + * @protected + */ + protected useCustomEvent(type: string, options: CustomEventInit = {}): DispatchEvent { + if (!this.#customEvents.has(type)) { + const dispatch = ((detail?: T) => { + const eventInitDict = + detail === undefined + ? options + : { + ...options, + detail + }; + const event = new CustomEvent(type, eventInitDict); + return this.dispatchEvent(event); + }) as DispatchEvent; + this.#customEvents.set(type, dispatch as DispatchEvent); + return dispatch; + } + return this.#customEvents.get(type)! as DispatchEvent; + } + + /** + * The Web Component render function. To be implemented by users with React. + * + * @param hooks - the adapter APIs exposed for the implementation. + * @protected + */ + protected abstract render(hooks: RenderHooks): ReactElement | null; + + /** + * Prepare content container for Flow to bind server Element to. + * + * @param name container name attribute matching server name attribute + * @protected + */ + protected useContent(name: string): ReactElement | null { + useEffect(() => { + this.#readyCallback.get(name)?.(); + }, []); + return createElement('flow-content-container', { name, style: { display: 'contents' } }); + } + + #maybeRenderRoot() { + if (this.#rootRendered || !this.#root) { + return; + } + + this.#root.render(createElement(this.#Wrapper)); + this.#rootRendered = true; + } + + #renderWrapper(): ReactElement | null { + const [state, dispatchFlowState] = useReducer(stateReducer, this.#state); + this.#state = state; + this.#dispatchFlowState = dispatchFlowState; + return this.render(this.#renderHooks); + } + + #markAsUsed(): void { + // @ts-ignore + let vaadinObject = window.Vaadin || {}; + // @ts-ignore + if (vaadinObject.developmentMode) { + vaadinObject.registrations = vaadinObject.registrations || []; + vaadinObject.registrations.push({ + is: 'ReactAdapterElement', + version: '25.2.6' + }); + } + } +} diff --git a/kontor-spring/src/main/frontend/generated/flow/generated-flow-imports.d.ts b/kontor-spring/src/main/frontend/generated/flow/generated-flow-imports.d.ts new file mode 100644 index 0000000..693da49 --- /dev/null +++ b/kontor-spring/src/main/frontend/generated/flow/generated-flow-imports.d.ts @@ -0,0 +1 @@ +export {} \ No newline at end of file diff --git a/kontor-spring/src/main/frontend/generated/flow/generated-flow-imports.js b/kontor-spring/src/main/frontend/generated/flow/generated-flow-imports.js new file mode 100644 index 0000000..f9b97a8 --- /dev/null +++ b/kontor-spring/src/main/frontend/generated/flow/generated-flow-imports.js @@ -0,0 +1,105 @@ +import '@vaadin/field-highlighter/src/vaadin-field-highlighter.js'; +import '@vaadin/common-frontend/ConnectionIndicator.js'; +import '@vaadin/accordion/src/vaadin-accordion.js'; +import '@vaadin/details/src/vaadin-details.js'; +import '@vaadin/accordion/src/vaadin-accordion-panel.js'; +import '@vaadin/app-layout/src/vaadin-app-layout.js'; +import '@vaadin/button/src/vaadin-button.js'; +import '@vaadin/app-layout/src/vaadin-drawer-toggle.js'; +import '@vaadin/avatar/src/vaadin-avatar.js'; +import '@vaadin/avatar-group/src/vaadin-avatar-group.js'; +import '@vaadin/badge/src/vaadin-badge.js'; +import '@vaadin/breadcrumbs/src/vaadin-breadcrumbs-item.js'; +import '@vaadin/card/src/vaadin-card.js'; +import '@vaadin/checkbox/src/vaadin-checkbox.js'; +import '@vaadin/checkbox-group/src/vaadin-checkbox-group.js'; +import '@vaadin/combo-box/src/vaadin-combo-box.js'; +import 'Frontend/generated/jar-resources/flow-component-renderer.js'; +import 'Frontend/generated/jar-resources/flow-component-directive.js'; +import 'Frontend/generated/jar-resources/comboBoxConnector.js'; +import '@vaadin/multi-select-combo-box/src/vaadin-multi-select-combo-box.js'; +import '@vaadin/confirm-dialog/src/vaadin-confirm-dialog.js'; +import '@vaadin/context-menu/src/vaadin-context-menu.js'; +import '@vaadin/tooltip/src/vaadin-tooltip.js'; +import 'Frontend/generated/jar-resources/contextMenuConnector.js'; +import 'Frontend/generated/jar-resources/contextMenuTargetConnector.js'; +import '@vaadin/custom-field/src/vaadin-custom-field.js'; +import '@vaadin/date-picker/src/vaadin-date-picker.js'; +import 'Frontend/generated/jar-resources/datepickerConnector.js'; +import '@vaadin/date-time-picker/src/vaadin-date-time-picker.js'; +import '@vaadin/time-picker/src/vaadin-time-picker.js'; +import 'Frontend/generated/jar-resources/vaadin-time-picker/timepickerConnector.js'; +import 'Frontend/generated/jar-resources/vaadin-time-picker/helpers.js'; +import '@vaadin/dialog/src/vaadin-dialog.js'; +import 'Frontend/generated/jar-resources/dndConnector.js'; +import '@vaadin/form-layout/src/vaadin-form-layout.js'; +import '@vaadin/form-layout/src/vaadin-form-item.js'; +import '@vaadin/form-layout/src/vaadin-form-row.js'; +import '@vaadin/grid/src/vaadin-grid-column-group.js'; +import '@vaadin/grid/src/vaadin-grid.js'; +import '@vaadin/grid/src/vaadin-grid-column.js'; +import '@vaadin/grid/src/vaadin-grid-sorter.js'; +import 'Frontend/generated/jar-resources/gridConnector.ts'; +import 'Frontend/generated/jar-resources/vaadin-grid-flow-selection-column.js'; +import '@vaadin/icon/src/vaadin-icon.js'; +import '@vaadin/icons/vaadin-iconset.js'; +import '@vaadin/list-box/src/vaadin-list-box.js'; +import '@vaadin/item/src/vaadin-item.js'; +import '@vaadin/login/src/vaadin-login-form.js'; +import '@vaadin/login/src/vaadin-login-overlay.js'; +import '@vaadin/markdown/src/vaadin-markdown.js'; +import '@vaadin/master-detail-layout/src/vaadin-master-detail-layout.js'; +import 'Frontend/generated/jar-resources/menubarConnector.js'; +import '@vaadin/menu-bar/src/vaadin-menu-bar.js'; +import '@vaadin/message-input/src/vaadin-message-input.js'; +import 'Frontend/generated/jar-resources/messageListConnector.js'; +import '@vaadin/message-list/src/vaadin-message-list.js'; +import '@vaadin/notification/src/vaadin-notification.js'; +import '@vaadin/horizontal-layout/src/vaadin-horizontal-layout.js'; +import '@vaadin/scroller/src/vaadin-scroller.js'; +import '@vaadin/vertical-layout/src/vaadin-vertical-layout.js'; +import '@vaadin/popover/src/vaadin-popover.js'; +import 'Frontend/generated/jar-resources/vaadin-popover/popover.ts'; +import '@vaadin/progress-bar/src/vaadin-progress-bar.js'; +import '@vaadin/radio-group/src/vaadin-radio-button.js'; +import '@vaadin/radio-group/src/vaadin-radio-group.js'; +import 'Frontend/generated/jar-resources/ReactRouterOutletElement.tsx'; +import '@vaadin/select/src/vaadin-select.js'; +import 'Frontend/generated/jar-resources/selectConnector.js'; +import 'Frontend/generated/jar-resources/tooltip.ts'; +import 'Frontend/generated/jar-resources/disableOnClickFunctions.js'; +import '@vaadin/side-nav/src/vaadin-side-nav.js'; +import '@vaadin/side-nav/src/vaadin-side-nav-item.js'; +import '@vaadin/slider/src/vaadin-range-slider.js'; +import '@vaadin/slider/src/vaadin-slider.js'; +import '@vaadin/split-layout/src/vaadin-split-layout.js'; +import '@vaadin/tabs/src/vaadin-tab.js'; +import '@vaadin/tabsheet/src/vaadin-tabsheet.js'; +import '@vaadin/tabs/src/vaadin-tabs.js'; +import 'Frontend/generated/jar-resources/vaadin-big-decimal-field.js'; +import '@vaadin/email-field/src/vaadin-email-field.js'; +import '@vaadin/integer-field/src/vaadin-integer-field.js'; +import '@vaadin/number-field/src/vaadin-number-field.js'; +import '@vaadin/password-field/src/vaadin-password-field.js'; +import '@vaadin/text-area/src/vaadin-text-area.js'; +import '@vaadin/text-field/src/vaadin-text-field.js'; +import 'Frontend/generated/jar-resources/lit-renderer.ts'; +import '@vaadin/grid/src/vaadin-grid-tree-toggle.js'; +import 'Frontend/generated/jar-resources/treeGridConnector.ts'; +import '@vaadin/upload/src/vaadin-upload.js'; +import '@vaadin/upload/src/vaadin-upload-button.js'; +import '@vaadin/upload/src/vaadin-upload-drop-zone.js'; +import '@vaadin/upload/src/vaadin-upload-file-list.js'; +import 'Frontend/generated/jar-resources/vaadin-upload-manager-connector.ts'; +import '@vaadin/virtual-list/src/vaadin-virtual-list.js'; +import 'Frontend/generated/jar-resources/virtualListConnector.js'; +import '@vaadin/vaadin-lumo-styles/vaadin-iconset.js'; +const loadOnDemand = (key) => { return Promise.resolve(0); } +window.Vaadin = window.Vaadin || {}; +window.Vaadin.Flow = window.Vaadin.Flow || {}; +window.Vaadin.Flow.loadOnDemand = loadOnDemand; +window.Vaadin.Flow.resetFocus = () => { + let ae=document.activeElement; + while(ae&&ae.shadowRoot) ae = ae.shadowRoot.activeElement; + return !ae || ae.blur() || ae.focus() || true; +} \ No newline at end of file diff --git a/kontor-spring/src/main/frontend/generated/flow/generated-flow-webcomponent-imports.js b/kontor-spring/src/main/frontend/generated/flow/generated-flow-webcomponent-imports.js new file mode 100644 index 0000000..ede4b1a --- /dev/null +++ b/kontor-spring/src/main/frontend/generated/flow/generated-flow-webcomponent-imports.js @@ -0,0 +1,107 @@ +import { injectGlobalWebcomponentCss } from 'Frontend/generated/jar-resources/theme-util.js'; + +import '@vaadin/field-highlighter/src/vaadin-field-highlighter.js'; +import '@vaadin/common-frontend/ConnectionIndicator.js'; +import '@vaadin/accordion/src/vaadin-accordion.js'; +import '@vaadin/details/src/vaadin-details.js'; +import '@vaadin/accordion/src/vaadin-accordion-panel.js'; +import '@vaadin/app-layout/src/vaadin-app-layout.js'; +import '@vaadin/button/src/vaadin-button.js'; +import '@vaadin/app-layout/src/vaadin-drawer-toggle.js'; +import '@vaadin/avatar/src/vaadin-avatar.js'; +import '@vaadin/avatar-group/src/vaadin-avatar-group.js'; +import '@vaadin/badge/src/vaadin-badge.js'; +import '@vaadin/breadcrumbs/src/vaadin-breadcrumbs-item.js'; +import '@vaadin/card/src/vaadin-card.js'; +import '@vaadin/checkbox/src/vaadin-checkbox.js'; +import '@vaadin/checkbox-group/src/vaadin-checkbox-group.js'; +import '@vaadin/combo-box/src/vaadin-combo-box.js'; +import 'Frontend/generated/jar-resources/flow-component-renderer.js'; +import 'Frontend/generated/jar-resources/flow-component-directive.js'; +import 'Frontend/generated/jar-resources/comboBoxConnector.js'; +import '@vaadin/multi-select-combo-box/src/vaadin-multi-select-combo-box.js'; +import '@vaadin/confirm-dialog/src/vaadin-confirm-dialog.js'; +import '@vaadin/context-menu/src/vaadin-context-menu.js'; +import '@vaadin/tooltip/src/vaadin-tooltip.js'; +import 'Frontend/generated/jar-resources/contextMenuConnector.js'; +import 'Frontend/generated/jar-resources/contextMenuTargetConnector.js'; +import '@vaadin/custom-field/src/vaadin-custom-field.js'; +import '@vaadin/date-picker/src/vaadin-date-picker.js'; +import 'Frontend/generated/jar-resources/datepickerConnector.js'; +import '@vaadin/date-time-picker/src/vaadin-date-time-picker.js'; +import '@vaadin/time-picker/src/vaadin-time-picker.js'; +import 'Frontend/generated/jar-resources/vaadin-time-picker/timepickerConnector.js'; +import 'Frontend/generated/jar-resources/vaadin-time-picker/helpers.js'; +import '@vaadin/dialog/src/vaadin-dialog.js'; +import 'Frontend/generated/jar-resources/dndConnector.js'; +import '@vaadin/form-layout/src/vaadin-form-layout.js'; +import '@vaadin/form-layout/src/vaadin-form-item.js'; +import '@vaadin/form-layout/src/vaadin-form-row.js'; +import '@vaadin/grid/src/vaadin-grid-column-group.js'; +import '@vaadin/grid/src/vaadin-grid.js'; +import '@vaadin/grid/src/vaadin-grid-column.js'; +import '@vaadin/grid/src/vaadin-grid-sorter.js'; +import 'Frontend/generated/jar-resources/gridConnector.ts'; +import 'Frontend/generated/jar-resources/vaadin-grid-flow-selection-column.js'; +import '@vaadin/icon/src/vaadin-icon.js'; +import '@vaadin/icons/vaadin-iconset.js'; +import '@vaadin/list-box/src/vaadin-list-box.js'; +import '@vaadin/item/src/vaadin-item.js'; +import '@vaadin/login/src/vaadin-login-form.js'; +import '@vaadin/login/src/vaadin-login-overlay.js'; +import '@vaadin/markdown/src/vaadin-markdown.js'; +import '@vaadin/master-detail-layout/src/vaadin-master-detail-layout.js'; +import 'Frontend/generated/jar-resources/menubarConnector.js'; +import '@vaadin/menu-bar/src/vaadin-menu-bar.js'; +import '@vaadin/message-input/src/vaadin-message-input.js'; +import 'Frontend/generated/jar-resources/messageListConnector.js'; +import '@vaadin/message-list/src/vaadin-message-list.js'; +import '@vaadin/notification/src/vaadin-notification.js'; +import '@vaadin/horizontal-layout/src/vaadin-horizontal-layout.js'; +import '@vaadin/scroller/src/vaadin-scroller.js'; +import '@vaadin/vertical-layout/src/vaadin-vertical-layout.js'; +import '@vaadin/popover/src/vaadin-popover.js'; +import 'Frontend/generated/jar-resources/vaadin-popover/popover.ts'; +import '@vaadin/progress-bar/src/vaadin-progress-bar.js'; +import '@vaadin/radio-group/src/vaadin-radio-button.js'; +import '@vaadin/radio-group/src/vaadin-radio-group.js'; +import 'Frontend/generated/jar-resources/ReactRouterOutletElement.tsx'; +import '@vaadin/select/src/vaadin-select.js'; +import 'Frontend/generated/jar-resources/selectConnector.js'; +import 'Frontend/generated/jar-resources/tooltip.ts'; +import 'Frontend/generated/jar-resources/disableOnClickFunctions.js'; +import '@vaadin/side-nav/src/vaadin-side-nav.js'; +import '@vaadin/side-nav/src/vaadin-side-nav-item.js'; +import '@vaadin/slider/src/vaadin-range-slider.js'; +import '@vaadin/slider/src/vaadin-slider.js'; +import '@vaadin/split-layout/src/vaadin-split-layout.js'; +import '@vaadin/tabs/src/vaadin-tab.js'; +import '@vaadin/tabsheet/src/vaadin-tabsheet.js'; +import '@vaadin/tabs/src/vaadin-tabs.js'; +import 'Frontend/generated/jar-resources/vaadin-big-decimal-field.js'; +import '@vaadin/email-field/src/vaadin-email-field.js'; +import '@vaadin/integer-field/src/vaadin-integer-field.js'; +import '@vaadin/number-field/src/vaadin-number-field.js'; +import '@vaadin/password-field/src/vaadin-password-field.js'; +import '@vaadin/text-area/src/vaadin-text-area.js'; +import '@vaadin/text-field/src/vaadin-text-field.js'; +import 'Frontend/generated/jar-resources/lit-renderer.ts'; +import '@vaadin/grid/src/vaadin-grid-tree-toggle.js'; +import 'Frontend/generated/jar-resources/treeGridConnector.ts'; +import '@vaadin/upload/src/vaadin-upload.js'; +import '@vaadin/upload/src/vaadin-upload-button.js'; +import '@vaadin/upload/src/vaadin-upload-drop-zone.js'; +import '@vaadin/upload/src/vaadin-upload-file-list.js'; +import 'Frontend/generated/jar-resources/vaadin-upload-manager-connector.ts'; +import '@vaadin/virtual-list/src/vaadin-virtual-list.js'; +import 'Frontend/generated/jar-resources/virtualListConnector.js'; +import '@vaadin/vaadin-lumo-styles/vaadin-iconset.js'; +const loadOnDemand = (key) => { return Promise.resolve(0); } +window.Vaadin = window.Vaadin || {}; +window.Vaadin.Flow = window.Vaadin.Flow || {}; +window.Vaadin.Flow.loadOnDemand = loadOnDemand; +window.Vaadin.Flow.resetFocus = () => { + let ae=document.activeElement; + while(ae&&ae.shadowRoot) ae = ae.shadowRoot.activeElement; + return !ae || ae.blur() || ae.focus() || true; +} \ No newline at end of file diff --git a/kontor-spring/src/main/frontend/generated/generated-flow-files.txt b/kontor-spring/src/main/frontend/generated/generated-flow-files.txt new file mode 100644 index 0000000..8028436 --- /dev/null +++ b/kontor-spring/src/main/frontend/generated/generated-flow-files.txt @@ -0,0 +1,132 @@ +app-shell-imports.d.ts +app-shell-imports.js +css.generated.d.ts +flow/Flow.tsx +flow/ReactAdapter.tsx +flow/generated-flow-imports.d.ts +flow/generated-flow-imports.js +flow/generated-flow-webcomponent-imports.js +index.tsx +jar-resources/Clipboard.d.ts +jar-resources/Clipboard.js +jar-resources/Clipboard.js.map +jar-resources/Download.d.ts +jar-resources/Download.js +jar-resources/Download.js.map +jar-resources/ElementResize.d.ts +jar-resources/ElementResize.js +jar-resources/ElementResize.js.map +jar-resources/Flow.d.ts +jar-resources/Flow.js +jar-resources/Flow.js.map +jar-resources/FlowBootstrap.d.ts +jar-resources/FlowBootstrap.js +jar-resources/FlowClient.d.ts +jar-resources/FlowClient.js +jar-resources/FlowShortcut.js +jar-resources/Fullscreen.d.ts +jar-resources/Fullscreen.js +jar-resources/Fullscreen.js.map +jar-resources/Geolocation.d.ts +jar-resources/Geolocation.js +jar-resources/Geolocation.js.map +jar-resources/PageVisibility.d.ts +jar-resources/PageVisibility.js +jar-resources/PageVisibility.js.map +jar-resources/ReactRouterOutletElement.tsx +jar-resources/ScreenOrientation.d.ts +jar-resources/ScreenOrientation.js +jar-resources/ScreenOrientation.js.map +jar-resources/WakeLock.d.ts +jar-resources/WakeLock.js +jar-resources/WakeLock.js.map +jar-resources/WebShare.d.ts +jar-resources/WebShare.js +jar-resources/WebShare.js.map +jar-resources/comboBoxConnector.js +jar-resources/contextMenuConnector.js +jar-resources/contextMenuTargetConnector.js +jar-resources/copilot-version.js +jar-resources/copilot.d.ts +jar-resources/copilot.js +jar-resources/copilot/base-panel-Fr0D1ZcU.js +jar-resources/copilot/chunk-DiqZc92J.js +jar-resources/copilot/consts-CSALuSsm.js +jar-resources/copilot/copilot-development-setup-user-guide-Db31eO1T.js +jar-resources/copilot/copilot-development-setup-user-guide-utils-DzEVQbWO.js +jar-resources/copilot/copilot-devtools-CYwy4U79.js +jar-resources/copilot/copilot-error-handler-9OpssAH1.js +jar-resources/copilot/copilot-features-plugin-DwQSwtbQ.js +jar-resources/copilot/copilot-feedback-plugin-JMYrBCmQ.js +jar-resources/copilot/copilot-focus-trap-CaZw1c70.js +jar-resources/copilot/copilot-global-vars-later-CWkvR40X.js +jar-resources/copilot/copilot-impersonator-plugin-iN25IekB.js +jar-resources/copilot/copilot-info-plugin-9l6uSELy.js +jar-resources/copilot/copilot-init-step2-tqpZOWcn.js +jar-resources/copilot/copilot-log-plugin-CmwIHcBw.js +jar-resources/copilot/copilot-message-box-CVAh5PSs.js +jar-resources/copilot/copilot-modes-wJyMqHUb.js +jar-resources/copilot/copilot-notification-CCNJdNg4.js +jar-resources/copilot/copilot-notification-UcomqPI8.js +jar-resources/copilot/copilot-server-communicator-impl-B7YDzJpM.js +jar-resources/copilot/copilot-settings-panel-qUN2f6RH.js +jar-resources/copilot/copilot-shortcuts-BzZuUtjW.js +jar-resources/copilot/copilot-stored-machine-state-D6qB_Peh.js +jar-resources/copilot/copilot-tree-impl-DxBvMTRa.js +jar-resources/copilot/copilot-ui-state-Dc6l_5DA.js +jar-resources/copilot/copilot-userinfo-C0s6T_kB.js +jar-resources/copilot/copilot-vaadin-versions-CkxDkDmp.js +jar-resources/copilot/copy-to-clipboard-4Y12mBRr.js +jar-resources/copilot/directive-DWLihZIi.js +jar-resources/copilot/directive-helpers-BTt8P8-5.js +jar-resources/copilot/dom-utils-Cuv93-tQ.js +jar-resources/copilot/early-project-state-LGwavSyI.js +jar-resources/copilot/figma-public/figma-api.d.ts +jar-resources/copilot/icons-CwakCZgK.js +jar-resources/copilot/lit-renderer-fa_B9boC.js +jar-resources/copilot/section-panel-ui-state-hOj_RfX_.js +jar-resources/copilot/shared/copilot-plugin-support.d.ts +jar-resources/copilot/shared/flow-utils.d.ts +jar-resources/copilot/stats-CRkPKCLQ.js +jar-resources/copilot/track-active-mode-event-DkX0nsC6.js +jar-resources/copilot/typescript-BkEBjsia.js +jar-resources/datepickerConnector.js +jar-resources/disableOnClickFunctions.js +jar-resources/dndConnector.js +jar-resources/flow-component-directive.js +jar-resources/flow-component-renderer.js +jar-resources/gridConnector.ts +jar-resources/index.d.ts +jar-resources/index.js +jar-resources/index.js.map +jar-resources/lit-renderer.ts +jar-resources/menubarConnector.js +jar-resources/messageListConnector.js +jar-resources/selectConnector.js +jar-resources/theme-util.js +jar-resources/tooltip.ts +jar-resources/treeGridConnector.ts +jar-resources/vaadin-big-decimal-field.js +jar-resources/vaadin-dev-tools/License.d.ts +jar-resources/vaadin-dev-tools/connection.d.ts +jar-resources/vaadin-dev-tools/hotswap-scroll.d.ts +jar-resources/vaadin-dev-tools/live-reload-connection.d.ts +jar-resources/vaadin-dev-tools/pre-trial-splash-screen.d.ts +jar-resources/vaadin-dev-tools/vaadin-dev-tools.d.ts +jar-resources/vaadin-dev-tools/vaadin-dev-tools.js +jar-resources/vaadin-dev-tools/vaadin-dev-tools.js.map +jar-resources/vaadin-dev-tools/websocket-connection.d.ts +jar-resources/vaadin-grid-flow-selection-column.js +jar-resources/vaadin-popover/popover.ts +jar-resources/vaadin-time-picker/helpers.js +jar-resources/vaadin-time-picker/timepickerConnector.js +jar-resources/vaadin-upload-manager-connector.ts +jar-resources/virtualListConnector.js +jsx-dev-transform/index.ts +jsx-dev-transform/jsx-dev-runtime.ts +jsx-dev-transform/jsx-runtime.ts +layouts.json +routes.tsx +vaadin-featureflags.js +vaadin-react.tsx +vaadin.ts \ No newline at end of file diff --git a/kontor-spring/src/main/frontend/generated/index.tsx b/kontor-spring/src/main/frontend/generated/index.tsx new file mode 100644 index 0000000..8c8a71a --- /dev/null +++ b/kontor-spring/src/main/frontend/generated/index.tsx @@ -0,0 +1,26 @@ +/****************************************************************************** + * This file is auto-generated by Vaadin. + * If you want to customize the entry point, you can copy this file or create + * your own `index.tsx` in your frontend directory. + * By default, the `index.tsx` file should be in `./frontend/` folder. + * + * NOTE: + * - You need to restart the dev-server after adding the new `index.tsx` file. + * After that, all modifications to `index.tsx` are recompiled automatically. + * - `index.js` is also supported if you don't want to use TypeScript. + ******************************************************************************/ + +import { createElement } from 'react'; +import { createRoot } from 'react-dom/client'; +import { RouterProvider } from 'react-router'; +import { router } from 'Frontend/generated/routes.js'; + +function App() { + return ; +} + +const outlet = document.getElementById('outlet')!; +let root = (outlet as any)._root ?? createRoot(outlet); +(outlet as any)._root = root; +root.render(createElement(App)); + diff --git a/kontor-spring/src/main/frontend/generated/jar-resources/Clipboard.d.ts b/kontor-spring/src/main/frontend/generated/jar-resources/Clipboard.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/kontor-spring/src/main/frontend/generated/jar-resources/Clipboard.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/kontor-spring/src/main/frontend/generated/jar-resources/Clipboard.js b/kontor-spring/src/main/frontend/generated/jar-resources/Clipboard.js new file mode 100644 index 0000000..97ed1b1 --- /dev/null +++ b/kontor-spring/src/main/frontend/generated/jar-resources/Clipboard.js @@ -0,0 +1,199 @@ +/* + * Copyright 2000-2026 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +/** + * Reads the first item from the system clipboard and returns its text/plain + * and text/html representations. Either field is {@code null} if the + * corresponding MIME type is not present. + * + * The caller is expected to be inside a transient user gesture and to have + * been granted the {@code clipboard-read} permission; otherwise + * {@code navigator.clipboard.read} rejects and this function propagates the + * rejection. + */ +async function readClipboardPayload() { + const items = await navigator.clipboard.read(); + if (!items.length) { + return null; + } + const item = items[0]; + const get = async (type) => item.types.includes(type) ? (await item.getType(type)).text() : null; + return { + text: await get('text/plain'), + html: await get('text/html') + }; +} +/** + * Re-encodes the given {@code } as {@code image/png} via a canvas + * round-trip. The source can be any rasterisable format the browser already + * decodes ({@code image/png}, {@code image/jpeg}, {@code image/svg+xml}, ...); + * the output is always a {@code Promise} of {@code image/png}, the only + * image MIME type every browser's asynchronous Clipboard API accepts on write. + * + * Cross-origin images need {@code crossorigin="anonymous"} on the {@code } + * plus matching CORS headers, otherwise the canvas is tainted and + * {@code toBlob} throws. + */ +function imageToPngBlob(img) { + return new Promise((resolve, reject) => { + const draw = () => { + try { + const width = img.naturalWidth || img.width; + const height = img.naturalHeight || img.height; + if (!width || !height) { + reject(new Error('image has no intrinsic size')); + return; + } + const canvas = document.createElement('canvas'); + canvas.width = width; + canvas.height = height; + const ctx = canvas.getContext('2d'); + if (!ctx) { + reject(new Error('2D canvas context not available')); + return; + } + ctx.drawImage(img, 0, 0, width, height); + canvas.toBlob((png) => (png ? resolve(png) : reject(new Error('canvas.toBlob returned null'))), 'image/png'); + } + catch (err) { + reject(err); + } + }; + if (img.complete) { + // `complete` is also true for an image that already failed to load or has + // an empty src; those have naturalWidth === 0 and their load/error events + // have already fired and will never fire again, so we must settle here + // rather than wait for an event that never comes. + if (img.naturalWidth > 0) { + draw(); + } + else { + reject(new Error('image failed to load or has empty src')); + } + } + else { + img.addEventListener('load', draw, { once: true }); + img.addEventListener('error', () => reject(new Error('image load failed')), { once: true }); + } + }); +} +/** + * Writes any combination of text/plain, text/html and image/png to the system + * clipboard as a single ClipboardItem. Any argument may be {@code null} to omit + * that MIME type; at least one is expected to be non-null (the caller enforces + * this). The image argument is the source {@code }; it is re-encoded as + * {@code image/png} via {@link imageToPngBlob} and the resulting + * {@code Promise} is fed directly to {@code ClipboardItem} so the + * {@code navigator.clipboard.write} call stays synchronous inside the user + * gesture (Safari otherwise loses activation on the first await). + * + * The caller is expected to be inside a transient user gesture; otherwise + * {@code navigator.clipboard.write} rejects and this function propagates the + * rejection. + * + * Resolves with the {@code text/plain} value if present, otherwise with the + * {@code text/html} value, otherwise with {@code null} (image-only case). + */ +async function writeClipboardPayload(text, html, image) { + const entries = {}; + if (text !== null) { + entries['text/plain'] = text; + } + if (html !== null) { + entries['text/html'] = html; + } + if (image !== null) { + entries['image/png'] = imageToPngBlob(image); + } + await navigator.clipboard.write([new ClipboardItem(entries)]); + return text !== null ? text : html; +} +/** + * Posts each file from a {@code paste} event's {@code clipboardData.files} as + * its own XHR to the URL stored as the named attribute on {@code element}. The + * wire format matches vaadin-upload: raw body, percent-encoded {@code X-Filename} + * header, MIME type in {@code Content-Type}. + * + * Each upload is processed in its own HTTP request, so the UI changes the + * server-side UploadHandler makes through {@code UI.access} are applied to the + * state tree but not sent to the client by the upload response itself. Once + * every upload of the paste has settled this helper dispatches a + * {@code vaadin-paste-upload-finished} event back on {@code element}; a + * server-side listener for that event triggers a normal Flow round trip that + * flushes those pending UI changes — so the API works without {@code @Push}, + * exactly like a regular upload completing through the Upload component. + * + * Editable targets ({@code }, {@code