hawkbit
hawkbit copied to clipboard
Does the Simple UI depend on file based artifact files?
In my local docker compose (hawkbit-update-server monolith version) setup I changed from a local filesystem based artifact repo to a minio based artifact repo. Since then the Simple UI raises the following exception:
hawkbit-simple-ui-1 | 2025-09-16T07:15:10.478Z ERROR 1 --- [hawkbit-simple-ui] [:] [ main] o.a.util.annotation.AnnotationDetector : Unable to scan classes
hawkbit-simple-ui-1 |
hawkbit-simple-ui-1 | java.io.FileNotFoundException: ./proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/1/cwd/proc/self/task/32/root/BOOT-INF/classes/org/eclipse/hawkbit/ui/simple/view/RolloutView$Actions.class (Symbolic link loop)
hawkbit-simple-ui-1 | at java.base/java.io.FileInputStream.open0(Native Method) ~[na:na]
hawkbit-simple-ui-1 | at java.base/java.io.FileInputStream.open(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at java.base/java.io.FileInputStream.<init>(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at org.atmosphere.util.annotation.ClassFileIterator.next(ClassFileIterator.java:142) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]
hawkbit-simple-ui-1 | at org.atmosphere.util.annotation.AnnotationDetector.detect(AnnotationDetector.java:393) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]
hawkbit-simple-ui-1 | at org.atmosphere.util.annotation.AnnotationDetector.detect(AnnotationDetector.java:269) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]
hawkbit-simple-ui-1 | at org.atmosphere.cpr.DefaultAnnotationProcessor$BytecodeBasedAnnotationProcessor.scanAll(DefaultAnnotationProcessor.java:401) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]
hawkbit-simple-ui-1 | at org.atmosphere.cpr.DefaultAnnotationProcessor.scanAll(DefaultAnnotationProcessor.java:226) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]
hawkbit-simple-ui-1 | at org.atmosphere.cpr.AtmosphereFramework.autoConfigureService(AtmosphereFramework.java:2840) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]
hawkbit-simple-ui-1 | at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:897) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]
hawkbit-simple-ui-1 | at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:832) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]
hawkbit-simple-ui-1 | at org.atmosphere.cpr.AtmosphereFrameworkInitializer.configureFramework(AtmosphereFrameworkInitializer.java:76) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]
hawkbit-simple-ui-1 | at org.atmosphere.cpr.AtmosphereServlet.configureFramework(AtmosphereServlet.java:83) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]
hawkbit-simple-ui-1 | at org.atmosphere.cpr.AtmosphereServlet.configureFramework(AtmosphereServlet.java:79) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]
hawkbit-simple-ui-1 | at org.atmosphere.cpr.AtmosphereServlet.init(AtmosphereServlet.java:74) ~[atmosphere-runtime-3.0.5.slf4jvaadin1.jar:3.0.5.slf4jvaadin1]
hawkbit-simple-ui-1 | at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:843) ~[tomcat-embed-core-10.1.42.jar:10.1.42]
hawkbit-simple-ui-1 | at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:707) ~[tomcat-embed-core-10.1.42.jar:10.1.42]
hawkbit-simple-ui-1 | at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedContext.load(TomcatEmbeddedContext.java:84) ~[spring-boot-3.5.3.jar:3.5.3]
hawkbit-simple-ui-1 | at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at java.base/java.util.stream.ReferencePipeline$Head.forEach(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at java.base/java.util.stream.ReferencePipeline$7$1.accept(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at java.base/java.util.TreeMap$ValueSpliterator.forEachRemaining(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedContext.lambda$deferredLoadOnStartup$0(TomcatEmbeddedContext.java:67) ~[spring-boot-3.5.3.jar:3.5.3]
hawkbit-simple-ui-1 | at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedContext.doWithThreadContextClassLoader(TomcatEmbeddedContext.java:108) ~[spring-boot-3.5.3.jar:3.5.3]
hawkbit-simple-ui-1 | at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedContext.deferredLoadOnStartup(TomcatEmbeddedContext.java:66) ~[spring-boot-3.5.3.jar:3.5.3]
hawkbit-simple-ui-1 | at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.performDeferredLoadOnStartup(TomcatWebServer.java:333) ~[spring-boot-3.5.3.jar:3.5.3]
hawkbit-simple-ui-1 | at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:239) ~[spring-boot-3.5.3.jar:3.5.3]
hawkbit-simple-ui-1 | at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:44) ~[spring-boot-3.5.3.jar:3.5.3]
hawkbit-simple-ui-1 | at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:405) ~[spring-context-6.2.8.jar:6.2.8]
hawkbit-simple-ui-1 | at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:394) ~[spring-context-6.2.8.jar:6.2.8]
hawkbit-simple-ui-1 | at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:586) ~[spring-context-6.2.8.jar:6.2.8]
hawkbit-simple-ui-1 | at java.base/java.lang.Iterable.forEach(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:364) ~[spring-context-6.2.8.jar:6.2.8]
hawkbit-simple-ui-1 | at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:310) ~[spring-context-6.2.8.jar:6.2.8]
hawkbit-simple-ui-1 | at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:1006) ~[spring-context-6.2.8.jar:6.2.8]
hawkbit-simple-ui-1 | at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:630) ~[spring-context-6.2.8.jar:6.2.8]
hawkbit-simple-ui-1 | at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.5.3.jar:3.5.3]
hawkbit-simple-ui-1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.5.3.jar:3.5.3]
hawkbit-simple-ui-1 | at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.5.3.jar:3.5.3]
hawkbit-simple-ui-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.5.3.jar:3.5.3]
hawkbit-simple-ui-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.5.3.jar:3.5.3]
hawkbit-simple-ui-1 | at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.5.3.jar:3.5.3]
hawkbit-simple-ui-1 | at org.eclipse.hawkbit.ui.simple.SimpleUIApp.main(SimpleUIApp.java:82) ~[classes/:0.9.0]
hawkbit-simple-ui-1 | at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
hawkbit-simple-ui-1 | at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) ~[file:/:na]
hawkbit-simple-ui-1 | at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[file:/:na]
hawkbit-simple-ui-1 | at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[file:/:na]
Does the Simple UI depend on a local filesystem based artifact repository and does not support S3-compatible repositories yet? Would be helpful to know if it's better to stick to using hawkbit in an head-less mode for now...