Java (Spring Boot) - IllegalStateException: Unable to load cache item

14,406

Solution 1

The issue was caused by trying to create a thread pool with 0 threads. We have a development VPS with 1 thread and we had a line of code like this:

public static final Executor EXECUTOR = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() - 1);

This caused the exception. In hindsight the exception stack trace gave us an obvious clue at the bottom

at redacted.Config.<clinit>(Config.java:43)

It literally pointed to the exact line that faulted.

Another thing you should definitely do is update the apt-cache with sudo apt-get update command install the latest OpenJDK verison.

Solution 2

Am not sure, but i think the problem caused by spring-core dependency. Can you try to remove spring-core dependency from pom.xml file and try to run it again.

Share:
14,406
Boško Bezik
Author by

Boško Bezik

Updated on June 22, 2022

Comments

  • Boško Bezik
    Boško Bezik almost 2 years

    We have a rather complex Spring Boot project and it works fine on Windows during development. However when we run the project on Ubuntu we get a bizzare exception

    LOGBACK: No context given for c.q.l.core.rolling.SizeAndTimeBasedRollingPolicy@310623126
      .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v2.2.8.RELEASE)
    2020-07-08 12:56:42.860  INFO 6 --- [           main] redacted.Application            : Starting Application v0.0.1-SNAPSHOT on c72273bf4d02 with PID 6 (/home/plugin/app.jar started by root in /home/plugin)
    2020-07-08 12:56:42.867  INFO 6 --- [           main] redacted.Application            : The following profiles are active: default
    2020-07-08 12:56:44.745  INFO 6 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
    2020-07-08 12:56:45.119  INFO 6 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 345ms. Found 13 JPA repository interfaces.
    2020-07-08 12:56:46.089 ERROR 6 --- [           main] o.s.boot.SpringApplication               : Application run failed
    java.lang.IllegalStateException: Unable to load cache item
            at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:79) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.cglib.core.internal.LoadingCache.get(LoadingCache.java:34) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:134) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:319) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:572) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:419) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.context.annotation.ConfigurationClassEnhancer.createClass(ConfigurationClassEnhancer.java:137) ~[spring-context-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:109) ~[spring-context-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:423) ~[spring-context-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:257) ~[spring-context-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:291) ~[spring-context-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:131) ~[spring-context-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:706) ~[spring-context-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532) ~[spring-context-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-2.3.0.RELEASE.jar!/:2.3.0.RELEASE]
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) [spring-boot-2.3.0.RELEASE.jar!/:2.3.0.RELEASE]
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) [spring-boot-2.3.0.RELEASE.jar!/:2.3.0.RELEASE]
            at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.3.0.RELEASE.jar!/:2.3.0.RELEASE]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.3.0.RELEASE.jar!/:2.3.0.RELEASE]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) [spring-boot-2.3.0.RELEASE.jar!/:2.3.0.RELEASE]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.3.0.RELEASE.jar!/:2.3.0.RELEASE]
            at redacted.Application.main(Application.java:61) [classes!/:0.0.1-SNAPSHOT]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111]
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_111]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_111]
            at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_111]
            at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) [redacted-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:109) [redacted-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) [redacted-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
            at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) [redacted-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
    Caused by: java.lang.ExceptionInInitializerError: null
            at java.lang.Class.forName0(Native Method) ~[na:1.8.0_111]
            at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_111]
            at org.springframework.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:571) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:363) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.cglib.proxy.Enhancer.generate(Enhancer.java:585) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:110) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:108) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at org.springframework.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_111]
            at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61) ~[spring-core-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
            ... 29 common frames omitted
    Caused by: java.lang.IllegalArgumentException: null
            at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:1307) ~[na:1.8.0_111]
            at java.util.concurrent.ThreadPoolExecutor.<init>(ThreadPoolExecutor.java:1195) ~[na:1.8.0_111]
            at java.util.concurrent.Executors.newFixedThreadPool(Executors.java:89) ~[na:1.8.0_111]
            at redacted.Config.<clinit>(Config.java:43) ~[classes!/:0.0.1-SNAPSHOT]
            ... 39 common frames omitted
    

    On Ubuntu we are using OpenJDK 11. It works on Windows with the same JDK, but it doesn't on Ubuntu. We also tried to run the project in a new Windows Sandbox instance and it worked flawlessly.