wildmountainfarms/solarthing

bootRun running first time

Closed this issue · 1 comments

> Task :graphql:bootRun

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

2022-06-09 21:18:14.097  INFO [           main] m.r.s.r.SolarThingGraphQLApplication     : Starting SolarThingGraphQLApplication using Java 17.0.3 on eidolon1138.local with PID 22553 (/Users/dgoodman/workspace/solarthing/graphql/build/classes/java/main started by dgoodman in /Users/dgoodman/workspace/solarthing/program/graphql)
2022-06-09 21:18:14.116 DEBUG [           main] m.r.s.r.SolarThingGraphQLApplication     : Running with Spring Boot v2.6.6, Spring v5.3.18
2022-06-09 21:18:14.119  INFO [           main] m.r.s.r.SolarThingGraphQLApplication     : No active profile set, falling back to 1 default profile: "default"
2022-06-09 21:18:16.692  INFO [           main] o.s.b.w.e.t.TomcatWebServer              : Tomcat initialized with port(s): 8080 (http)
2022-06-09 21:18:16.751  INFO [           main] o.a.c.h.Http11NioProtocol                : Initializing ProtocolHandler ["http-nio-8080"]
2022-06-09 21:18:16.754  INFO [           main] o.a.c.c.StandardService                  : Starting service [Tomcat]
2022-06-09 21:18:16.755  INFO [           main] o.a.c.c.StandardEngine                   : Starting Servlet engine: [Apache Tomcat/9.0.60]
2022-06-09 21:18:17.075  INFO [           main] o.a.c.c.C.[.[.[/]                        : Initializing Spring embedded WebApplicationContext
2022-06-09 21:18:17.077  INFO [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2768 ms
2022-06-09 21:18:17.367 DEBUG [           main] m.r.s.r.CommonProvider                   : Using defaultInstanceOptions=DefaultInstanceOptions(defaultSourceId='<UNUSED SOURCE ID THAT WILL NEVER BE IN A PACKET>', defaultFragmentId=0)
2022-06-09 21:18:17.368 DEBUG [           main] m.r.s.r.CommonProvider                   : Database file: /Users/dgoodman/workspace/solarthing/program/graphql/../config/couchdb.json
2022-06-09 21:18:17.369 DEBUG [           main] m.r.s.r.CommonProvider                   : Working directory: /Users/dgoodman/workspace/solarthing/program/graphql/.
2022-06-09 21:18:18.354 DEBUG [           main] m.r.s.r.c.CommandHandlerProvider         : No command configuration file. No one will be authorized to send commands.
2022-06-09 21:18:18.384  WARN [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'graphQLProvider': Invocation of init method failed; nested exception is java.lang.RuntimeException: java.lang.NoSuchFieldException: modifiers
2022-06-09 21:18:18.390  INFO [           main] o.a.c.c.StandardService                  : Stopping service [Tomcat]
2022-06-09 21:18:18.418  INFO [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-06-09 21:18:18.453 ERROR [           main] o.s.b.SpringApplication                  : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'graphQLProvider': Invocation of init method failed; nested exception is java.lang.RuntimeException: java.lang.NoSuchFieldException: modifiers
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:160) ~[spring-beans-5.3.18.jar:5.3.18]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:440) ~[spring-beans-5.3.18.jar:5.3.18]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796) ~[spring-beans-5.3.18.jar:5.3.18]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.18.jar:5.3.18]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.18.jar:5.3.18]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.18.jar:5.3.18]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.18.jar:5.3.18]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.18.jar:5.3.18]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.18.jar:5.3.18]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:953) ~[spring-beans-5.3.18.jar:5.3.18]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.18.jar:5.3.18]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.18.jar:5.3.18]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.6.6.jar:2.6.6]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:740) ~[spring-boot-2.6.6.jar:2.6.6]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:415) ~[spring-boot-2.6.6.jar:2.6.6]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) ~[spring-boot-2.6.6.jar:2.6.6]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) ~[spring-boot-2.6.6.jar:2.6.6]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) ~[spring-boot-2.6.6.jar:2.6.6]
	at me.retrodaredevil.solarthing.rest.SolarThingGraphQLApplication.main(SolarThingGraphQLApplication.java:10) ~[main/:?]
Caused by: java.lang.RuntimeException: java.lang.NoSuchFieldException: modifiers
	at me.retrodaredevil.solarthing.rest.graphql.GraphQLProvider.init(GraphQLProvider.java:82) ~[main/:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) ~[spring-beans-5.3.18.jar:5.3.18]
Caused by: java.lang.RuntimeException: java.lang.NoSuchFieldException: modifiers

	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) ~[spring-beans-5.3.18.jar:5.3.18]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ~[spring-beans-5.3.18.jar:5.3.18]
	... 18 more
Caused by: java.lang.NoSuchFieldException: modifiers
	at java.lang.Class.getDeclaredField(Class.java:2610) ~[?:?]
	at me.retrodaredevil.solarthing.rest.graphql.GraphQLProvider.updateNonNull(GraphQLProvider.java:67) ~[main/:?]
Caused by: java.lang.NoSuchFieldException: modifiers

	at me.retrodaredevil.solarthing.rest.graphql.GraphQLProvider.init(GraphQLProvider.java:80) ~[main/:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:389) ~[spring-beans-5.3.18.jar:5.3.18]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:333) ~[spring-beans-5.3.18.jar:5.3.18]
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:157) ~[spring-beans-5.3.18.jar:5.3.18]
	... 18 more


> Task :graphql:bootRun FAILED

Execution failed for task ':graphql:bootRun'.
> Process 'command '/Users/dgoodman/Library/Java/JavaVirtualMachines/corretto-17.0.3/Contents/Home/bin/java'' finished with non-zero exit value 1

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.


This bug was present when running SolarThing GraphQL with Java 12 or above as explained here: https://stackoverflow.com/questions/69124839/jdk11-to-jdk12-migration-java-lang-nosuchfieldexception-modifiers.

The update doesn't require mutating a static final field now.