JasonHHouse / gaps

Find the missing movies in your Plex Server
MIT License
569 stars 33 forks source link

Success at testing new Plex Connection but fails at saving on RaspberryPi Docker Image #285

Closed alejakun closed 2 years ago

alejakun commented 2 years ago

Describe the bug Just today I pulled the just updated image on my Raspberry Pi environment with Docker compose, as previously stated in a related issue (not quite the same stack trace, but similar symptoms), the connection is successful while testing but fails to save the new connection. For reference I include my current docker-compose:

  gaps:
    container_name: gaps
    image: housewrecker/gaps:arm-latest
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    networks:
      - traefik
     ports:
       - "8484:8484"
    volumes:
      - $PWD/gaps/data:/usr/data

So far I've tried with housewrecker/gaps:arm-latest and housewrecker/gaps:latest tags and a fresh environment (no previous configuration files) to no avail. I first thought it might be related to a permissions issue (I just migrated everything from a amd64 to this arm64), since I've had a lot of permissions issues in the past with other containers, but this does not seems to be the case since it can perfecly create the gaps.properties file when I create a TMDB token.

To Reproduce

Create the docker container in a raspberry pi environment.

Expected behavior To be able to add Plex Servers.

Desktop (please complete the following information):

Additional context For reference I include the full logs:

Enable SSL: false
Enable Login: false
Base URL: 
Jar File: gaps.jar

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

2022-01-13 23:49:44.716  INFO 7 --- [           main] com.jasonhhouse.gaps.GapsApplication     : Starting GapsApplication v0.9.12 using Java 17.0.1 on 027319200a31 with PID 7 (/usr/app/gaps.jar started by root in /usr/app)
2022-01-13 23:49:44.836  INFO 7 --- [           main] com.jasonhhouse.gaps.GapsApplication     : The following profiles are active: no-ssl-no-login
2022-01-13 23:50:29.942  INFO 7 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8484 (http)
2022-01-13 23:50:30.108  INFO 7 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2022-01-13 23:50:30.111  INFO 7 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.56]
2022-01-13 23:50:30.984  INFO 7 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2022-01-13 23:50:30.986  INFO 7 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 43610 ms
2022-01-13 23:50:47.947  INFO 7 --- [           main] com.jasonhhouse.gaps.RestartMonitor      : init()
2022-01-13 23:50:47.949  INFO 7 --- [           main] c.j.gaps.service.SchedulerService        : getRawSchedule()
2022-01-13 23:50:47.953  WARN 7 --- [           main] c.j.gaps.service.FileIoService           : Can't find json file '/usr/data/gaps.properties'. Most likely first run.
2022-01-13 23:50:47.974  INFO 7 --- [           main] com.jasonhhouse.gaps.RestartMonitor      : Setting saved schedule to cron job
2022-01-13 23:50:47.975  INFO 7 --- [           main] c.j.gaps.service.SchedulerService        : setSchedule( SchedulePayload{schedule=2, enabled=true} )
2022-01-13 23:50:47.982  WARN 7 --- [           main] c.j.gaps.service.FileIoService           : Can't find json file '/usr/data/gaps.properties'. Most likely first run.
2022-01-13 23:50:47.985  INFO 7 --- [           main] c.j.gaps.service.FileIoService           : writeProperties( PlexProperties{plexServers=[], movieDbApiKey='', password='', telegramProperties=TelegramProperties{botId='', chatId='', enabled='false', notificationTypes=[]}, pushBulletProperties=PushBulletProperties{channelTag='', accessToken='', enabled=false, notificationTypes=[]}, emailProperties=EmailProperties{username='', password='', mailTo='', mailFrom='', mailServer='', mailPort=0, mailTransportProtocol='', mailSmtpAuth='', mailSmtpTlsEnabled=false, enabled=false, notificationTypes=[]}, gotifyProperties=GotifyProperties{address='', token='', enabled=false, notificationTypes=[]}, slackProperties=SlackProperties{webHookUrl='', enabled=false, notificationTypes=[]}, pushOverProperties=PushOverProperties{token='', user='', priority=0, sound='', retry=0, expire=0, enabled=false, notificationTypes=[]}, discordProperties=DiscordProperties{webHookUrl=''}, schedule=Schedule{message='Weekly', cron='0 0 4 * * MON', id=2, enabled=true}} )
2022-01-13 23:50:49.773  INFO 7 --- [           main] c.j.gaps.service.SchedulerService        : Setting schedule for Weekly as cron '0 0 4 * * MON'
2022-01-13 23:50:49.776  INFO 7 --- [           main] c.j.gaps.service.SchedulerService        : Cron TimeZone sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
2022-01-13 23:50:51.118  INFO 7 --- [           main] com.jasonhhouse.gaps.WebSecurityConfig   : userDetailsService()
2022-01-13 23:50:53.467  INFO 7 --- [           main] com.jasonhhouse.gaps.WebSecurityConfig   : Name: Gaps
2022-01-13 23:50:53.471  INFO 7 --- [           main] com.jasonhhouse.gaps.WebSecurityConfig   : Description: Gaps searches through your Plex Server for all movies, then queries for known movies in the same collection. If those movies don't exist in your library, Gaps will recommend getting those movies, legally of course.
2022-01-13 23:50:53.477  INFO 7 --- [           main] com.jasonhhouse.gaps.WebSecurityConfig   : Version: 0.9.12
2022-01-13 23:50:53.483  INFO 7 --- [           main] com.jasonhhouse.gaps.WebSecurityConfig   : LoginEnabled: false
2022-01-13 23:50:53.534  INFO 7 --- [           main] o.s.s.web.DefaultSecurityFilterChain     : Will secure Ant [pattern='/resources/**'] with []
2022-01-13 23:50:53.543  INFO 7 --- [           main] o.s.s.web.DefaultSecurityFilterChain     : Will secure Ant [pattern='/static/**'] with []
2022-01-13 23:50:53.546  INFO 7 --- [           main] o.s.s.web.DefaultSecurityFilterChain     : Will secure Ant [pattern='/css/**'] with []
2022-01-13 23:50:53.549  INFO 7 --- [           main] o.s.s.web.DefaultSecurityFilterChain     : Will secure Ant [pattern='/js/**'] with []
2022-01-13 23:50:53.551  INFO 7 --- [           main] o.s.s.web.DefaultSecurityFilterChain     : Will secure Ant [pattern='/images/**'] with []
2022-01-13 23:51:02.132  INFO 7 --- [           main] o.s.b.a.w.s.WelcomePageHandlerMapping    : Adding welcome page template: index
2022-01-13 23:51:18.214  INFO 7 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 1 endpoint(s) beneath base path '/actuator'
2022-01-13 23:51:18.543  INFO 7 --- [           main] o.s.s.web.DefaultSecurityFilterChain     : Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@36f1046f, org.springframework.security.web.context.SecurityContextPersistenceFilter@15923407, org.springframework.security.web.header.HeaderWriterFilter@2571066a, org.springframework.web.filter.CorsFilter@56d93692, org.springframework.security.web.authentication.logout.LogoutFilter@31cb96e1, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@57540fd0, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1542af63, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@1686f0b4, org.springframework.security.web.session.SessionManagementFilter@40ee0a22, org.springframework.security.web.access.ExceptionTranslationFilter@25d3cfc8]
2022-01-13 23:51:27.847  INFO 7 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8484 (http) with context path ''
2022-01-13 23:51:27.883  INFO 7 --- [           main] o.s.m.s.b.SimpleBrokerMessageHandler     : Starting...
2022-01-13 23:51:27.900  INFO 7 --- [           main] o.s.m.s.b.SimpleBrokerMessageHandler     : BrokerAvailabilityEvent[available=true, SimpleBrokerMessageHandler [org.springframework.messaging.simp.broker.DefaultSubscriptionRegistry@23f3dbf0]]
2022-01-13 23:51:27.905  INFO 7 --- [           main] o.s.m.s.b.SimpleBrokerMessageHandler     : Started.
2022-01-13 23:51:28.277  INFO 7 --- [           main] com.jasonhhouse.gaps.GapsApplication     : Started GapsApplication in 117.878 seconds (JVM running for 131.798)
2022-01-13 23:51:28.970  INFO 7 --- [nio-8484-exec-5] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2022-01-13 23:51:28.972  INFO 7 --- [nio-8484-exec-5] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2022-01-13 23:51:29.000  INFO 7 --- [nio-8484-exec-5] o.s.web.servlet.DispatcherServlet        : Completed initialization in 22 ms
2022-01-13 23:52:17.313  INFO 7 --- [io-8484-exec-52] c.j.g.c.ConfigurationController          : getConfiguration()
2022-01-13 23:52:17.368  INFO 7 --- [io-8484-exec-52] c.j.gaps.service.SchedulerService        : getAllSchedules()
2022-01-13 23:52:18.770  INFO 7 --- [io-8484-exec-41] c.j.g.controller.NotificationController  : getPushOver()
2022-01-13 23:52:19.405  INFO 7 --- [io-8484-exec-41] c.j.gaps.controller.GapsController       : getSounds()
2022-01-13 23:52:19.463  INFO 7 --- [MessageBroker-1] o.s.w.s.c.WebSocketMessageBrokerStats    : WebSocketSession[0 current WS(0)-HttpStream(0)-HttpPoll(0), 0 total, 0 closed abnormally (0 connect failure, 0 send limit, 0 transport error)], stompSubProtocol[processed CONNECT(0)-CONNECTED(0)-DISCONNECT(0)], stompBrokerRelay[null], inboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], outboundChannel[pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0], sockJsScheduler[pool size = 1, active threads = 1, queued tasks = 0, completed tasks = 0]
2022-01-13 23:52:24.843  INFO 7 --- [io-8484-exec-37] c.j.gaps.controller.LibraryController    : getLibraries()
2022-01-13 23:52:24.926  WARN 7 --- [io-8484-exec-37] c.j.gaps.controller.LibraryController    : No owned movies found. Failed to read gaps properties.
2022-01-13 23:52:26.958  INFO 7 --- [io-8484-exec-37] c.jasonhhouse.gaps.MapToStringConverter  : print( {} )
2022-01-13 23:52:26.985  INFO 7 --- [io-8484-exec-37] c.j.gaps.PlexServerToStringConverter     : print( PlexServer{friendlyName='null', machineIdentifier='null', plexToken='null', address='null', port=null, plexLibraries=[]} )
2022-01-13 23:52:27.296  INFO 7 --- [io-8484-exec-37] c.j.gaps.PlexPropertiesFormatter         : print( PlexProperties{plexServers=[], movieDbApiKey='', password='', telegramProperties=TelegramProperties{botId='', chatId='', enabled='false', notificationTypes=[]}, pushBulletProperties=PushBulletProperties{channelTag='', accessToken='', enabled=false, notificationTypes=[]}, emailProperties=EmailProperties{username='', password='', mailTo='', mailFrom='', mailServer='', mailPort=0, mailTransportProtocol='', mailSmtpAuth='', mailSmtpTlsEnabled=false, enabled=false, notificationTypes=[]}, gotifyProperties=GotifyProperties{address='', token='', enabled=false, notificationTypes=[]}, slackProperties=SlackProperties{webHookUrl='', enabled=false, notificationTypes=[]}, pushOverProperties=PushOverProperties{token='', user='', priority=0, sound='', retry=0, expire=0, enabled=false, notificationTypes=[]}, discordProperties=DiscordProperties{webHookUrl=''}, schedule=Schedule{message='Weekly', cron='0 0 4 * * MON', id=2, enabled=true}}, es_MX )
2022-01-13 23:52:28.839  INFO 7 --- [io-8484-exec-31] c.j.g.c.ConfigurationController          : getConfiguration()
2022-01-13 23:52:28.854  INFO 7 --- [io-8484-exec-31] c.j.gaps.service.SchedulerService        : getAllSchedules()
2022-01-13 23:52:29.844  INFO 7 --- [io-8484-exec-36] c.j.g.controller.NotificationController  : getPushOver()
2022-01-13 23:52:29.955  INFO 7 --- [io-8484-exec-27] c.j.gaps.controller.GapsController       : getSounds()
2022-01-13 23:52:49.679  INFO 7 --- [io-8484-exec-19] c.j.g.c.ConfigurationController          : postTestTmdbKey( EDITED )
2022-01-13 23:52:49.682  INFO 7 --- [io-8484-exec-19] c.jasonhhouse.gaps.service.TmdbService   : testTmdbKey( EDITED )
2022-01-13 23:52:49.864  INFO 7 --- [io-8484-exec-19] c.jasonhhouse.gaps.service.TmdbService   : url: https://api.themoviedb.org/3/authentication/token/new?api_key=EDITED
2022-01-13 23:52:58.666  INFO 7 --- [io-8484-exec-19] c.jasonhhouse.gaps.service.TmdbService   : jsonBody: {"success":true,"expires_at":"2022-01-14 00:52:58 UTC","request_token":"EDITED"}
2022-01-13 23:53:00.152  INFO 7 --- [io-8484-exec-11] c.j.g.c.ConfigurationController          : postSaveTmdbKey( EDITED )
2022-01-13 23:53:00.164  INFO 7 --- [io-8484-exec-11] c.j.gaps.service.FileIoService           : writeProperties( PlexProperties{plexServers=[], movieDbApiKey='EDITED', password='', telegramProperties=TelegramProperties{botId='', chatId='', enabled='false', notificationTypes=[]}, pushBulletProperties=PushBulletProperties{channelTag='', accessToken='', enabled=false, notificationTypes=[]}, emailProperties=EmailProperties{username='', password='', mailTo='', mailFrom='', mailServer='', mailPort=0, mailTransportProtocol='', mailSmtpAuth='', mailSmtpTlsEnabled=false, enabled=false, notificationTypes=[]}, gotifyProperties=GotifyProperties{address='', token='', enabled=false, notificationTypes=[]}, slackProperties=SlackProperties{webHookUrl='', enabled=false, notificationTypes=[]}, pushOverProperties=PushOverProperties{token='', user='', priority=0, sound='', retry=0, expire=0, enabled=false, notificationTypes=[]}, discordProperties=DiscordProperties{webHookUrl=''}, schedule=Schedule{message='Weekly', cron='0 0 4 * * MON', id=2, enabled=true}} )
2022-01-13 23:53:09.899  WARN 7 --- [io-8484-exec-18] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class java.util.LinkedHashMap] with preset Content-Type 'text/event-stream;charset=UTF-8']
2022-01-13 23:53:20.249  WARN 7 --- [io-8484-exec-37] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class java.util.LinkedHashMap] with preset Content-Type 'text/event-stream;charset=UTF-8']
2022-01-13 23:53:20.732  INFO 7 --- [io-8484-exec-47] c.j.g.c.ConfigurationController          : putTestPlexServer( PlexServer{friendlyName='null', machineIdentifier='null', plexToken='EDITED', address='192.168.1.201', port=32400, plexLibraries=[]} )
2022-01-13 23:53:20.733  INFO 7 --- [io-8484-exec-47] c.j.gaps.service.PlexQueryImpl           : queryPlexLibraries( PlexServer{friendlyName='null', machineIdentifier='null', plexToken='EDITED', address='192.168.1.201', port=32400, plexLibraries=[]}} )
2022-01-13 23:53:25.801  INFO 7 --- [io-8484-exec-47] c.j.gaps.service.PlexQueryImpl           : friendlyName:NASty
2022-01-13 23:53:25.805  INFO 7 --- [io-8484-exec-47] c.j.gaps.service.PlexQueryImpl           : machineIdentifier:74c3d7034b37018d82ea4f72232f0ebefc11a16f
2022-01-13 23:53:27.231  INFO 7 --- [nio-8484-exec-4] c.j.g.c.ConfigurationController          : postAddPlexServer( PlexServer{friendlyName='null', machineIdentifier='null', plexToken='EDITED', address='192.168.1.201', port=32400, plexLibraries=[]} )
2022-01-13 23:53:27.265  INFO 7 --- [nio-8484-exec-4] c.j.gaps.service.PlexQueryImpl           : queryPlexLibraries( PlexServer{friendlyName='null', machineIdentifier='null', plexToken='EDITED', address='192.168.1.201', port=32400, plexLibraries=[]}} )
2022-01-13 23:53:27.346  INFO 7 --- [nio-8484-exec-4] c.j.gaps.service.PlexQueryImpl           : friendlyName:NASty
2022-01-13 23:53:27.348  INFO 7 --- [nio-8484-exec-4] c.j.gaps.service.PlexQueryImpl           : machineIdentifier:74c3d7034b37018d82ea4f72232f0ebefc11a16f
2022-01-13 23:53:27.354  INFO 7 --- [nio-8484-exec-4] c.j.gaps.service.PlexQueryImpl           : queryPlexLibraries()
2022-01-13 23:53:29.015 ERROR 7 --- [nio-8484-exec-4] c.s.x.b.v2.runtime.reflect.opt.Injector  : null

java.security.PrivilegedActionException: null
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:573) ~[na:na]
        at com.sun.xml.bind.v2.runtime.reflect.opt.Injector.<clinit>(Injector.java:197) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjector.prepare(AccessorInjector.java:81) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:179) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection.optimize(Accessor.java:285) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.property.ArrayProperty.<init>(ArrayProperty.java:68) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.<init>(ArrayERProperty.java:88) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.<init>(ArrayElementProperty.java:100) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.<init>(ArrayElementNodeProperty.java:62) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[na:na]
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[na:na]
        at com.sun.xml.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:128) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:181) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:514) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:331) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:139) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1156) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:165) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:297) ~[jaxb-api-2.3.0.jar!/:2.3.0]
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:286) ~[jaxb-api-2.3.0.jar!/:2.3.0]
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:409) ~[jaxb-api-2.3.0.jar!/:2.3.0]
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721) ~[jaxb-api-2.3.0.jar!/:2.3.0]
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662) ~[jaxb-api-2.3.0.jar!/:2.3.0]
        at com.jasonhhouse.gaps.service.PlexQueryImpl.getLibraries(PlexQueryImpl.java:111) ~[classes!/:0.9.12]
        at com.jasonhhouse.gaps.controller.ConfigurationController.postAddPlexServer(ConfigurationController.java:90) ~[classes!/:0.9.12]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) ~[spring-boot-actuator-2.6.2.jar!/:2.6.2]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
Caused by: java.lang.NoSuchMethodException: sun.misc.Unsafe.defineClass(java.lang.String,[B,int,int,java.lang.ClassLoader,java.security.ProtectionDomain)
        at java.base/java.lang.Class.getMethod(Class.java:2227) ~[na:na]
        at com.sun.xml.bind.v2.runtime.reflect.opt.Injector$3.run(Injector.java:201) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.reflect.opt.Injector$3.run(Injector.java:197) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569) ~[na:na]
        ... 123 common frames omitted

2022-01-13 23:53:29.088 ERROR 7 --- [nio-8484-exec-4] c.j.g.c.ConfigurationController          : Could not add plex server

java.lang.NullPointerException: Cannot invoke "java.lang.reflect.Method.invoke(Object, Object[])" because "com.sun.xml.bind.v2.runtime.reflect.opt.Injector.defineClass" is null
        at com.sun.xml.bind.v2.runtime.reflect.opt.Injector.inject(Injector.java:311) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.reflect.opt.Injector.inject(Injector.java:97) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjector.prepare(AccessorInjector.java:87) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:179) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection.optimize(Accessor.java:285) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.property.ArrayProperty.<init>(ArrayProperty.java:68) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.<init>(ArrayERProperty.java:88) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.<init>(ArrayElementProperty.java:100) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.<init>(ArrayElementNodeProperty.java:62) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[na:na]
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[na:na]
        at com.sun.xml.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:128) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:181) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:514) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:331) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:139) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1156) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:165) ~[jaxb-impl-2.3.0.jar!/:2.3.0]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:297) ~[jaxb-api-2.3.0.jar!/:2.3.0]
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:286) ~[jaxb-api-2.3.0.jar!/:2.3.0]
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:409) ~[jaxb-api-2.3.0.jar!/:2.3.0]
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721) ~[jaxb-api-2.3.0.jar!/:2.3.0]
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662) ~[jaxb-api-2.3.0.jar!/:2.3.0]
        at com.jasonhhouse.gaps.service.PlexQueryImpl.getLibraries(PlexQueryImpl.java:111) ~[classes!/:0.9.12]
        at com.jasonhhouse.gaps.controller.ConfigurationController.postAddPlexServer(ConfigurationController.java:90) ~[classes!/:0.9.12]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67) ~[spring-webmvc-5.3.14.jar!/:5.3.14]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183) ~[spring-security-web-5.6.1.jar!/:5.6.1]
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) ~[spring-boot-actuator-2.6.2.jar!/:2.6.2]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.14.jar!/:5.3.14]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.56.jar!/:na]
        at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]

2022-01-14 00:01:39.397  INFO 7 --- [io-8484-exec-14] c.j.gaps.controller.GapsController       : getAbout()
JasonHHouse commented 2 years ago

@alejakun Pull again please, I missed updating those containers with the fix the other day.

alejakun commented 2 years ago

Hi,

Successfully tested, one question, I seen in the "latest" tag it is also built for arm64, can I use this tag on the raspberry pi or do i specifically need to use the "arm-latest" tag?

Best reagards.

JasonHHouse commented 2 years ago

I would strongly recommend using housewrecker/gaps:latest. I package multiple OS/Arch's into a single release so you don't have to worry about stuff like that.

alejakun commented 2 years ago

Thanks for your quick response! I guess it's ok to close the issue now.

alejakun commented 2 years ago

Just one quick note, I've been testing and it does not seem to be fixed in the "latest" tag, just in the "arm-latest", I guess I'll be using "latest" for now and wait for the change to propagate to the other builds.

Thanks for the hard work, love the app.

JasonHHouse commented 2 years ago

I just tested on docker pull housewrecker/gaps and it worked. All builds should be updated. What build is not working?

alejakun commented 2 years ago

Exactly that one is not working on my Raspberry Pi, it works if I add the tag like this: housewrecker/gaps:arm-latest, but it's not working like this housewrecker/gaps. I'm using docker compose:

  gaps:
    container_name: gaps
    image: housewrecker/gaps:arm-latest
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    networks:
      - traefik
    volumes:
      - $PWD/gaps/data:/usr/data

Hope this helps

JasonHHouse commented 2 years ago

Try pulling housewrecker/gaps:latest I made a change to the build process. I don't plan on maintaining individual latest builds so I want to get this fixed for you. I'd like gaps:latest to cover most everything and then push version releases for people who want to lock in place.

alejakun commented 2 years ago

Tested, now it is working as expected with "latest" tag (or no tag at all).

JasonHHouse commented 2 years ago

Glad to hear it!