Skip to content

Conversation

Copy link

Copilot AI commented Dec 14, 2025

Spring successfully initializes but skips all user beans (@Service, @Component) from dev.slne.* packages, causing NoSuchBeanDefinitionException. Only auto-configuration beans are registered.

Root Cause

The issue is caused by a Jackson version conflict between the OpenAI client and surf-cloud:

  • OpenAI client (com.openai:openai-java:4.11.0) requires Jackson 2.18+, which introduced OptBoolean as the return type for JsonProperty.isRequired()
  • surf-cloud provides Jackson pre-2.18 (via plugin), where JsonProperty.isRequired() returns boolean
  • At runtime, jackson-module-kotlin from OpenAI expects the newer API signature, causing NoSuchMethodError: 'com.fasterxml.jackson.annotation.OptBoolean com.fasterxml.jackson.annotation.JsonProperty.isRequired()'
  • Spring silently skips beans that fail during creation, resulting in no user beans being registered

The Jackson relocation in ShadowJar configuration compounded the issue by preventing the OpenAI client from finding Jackson classes, but the underlying problem was the version mismatch.

Changes

Three fixes were required:

  1. surf-chat-paper/build.gradle.kts: Removed unnecessary Jackson relocation

    // REMOVED - was preventing OpenAI from finding Jackson:
    tasks.shadowJar {
        relocate("com.fasterxml.jackson", "dev.slne.surf.chat.shadow.jackson")
    }
  2. surf-chat-core/surf-chat-core-common/build.gradle.kts: Added Jackson version alignment at submodule level

    // Force consistent Jackson versions to prevent NoSuchMethodError
    configurations.all {
        resolutionStrategy.eachDependency {
            if (requested.group.startsWith("com.fasterxml.jackson")) {
                useVersion("2.18.2")
                because("OpenAI client requires Jackson 2.18+ for OptBoolean support")
            }
        }
    }
  3. build.gradle.kts: Added Jackson version alignment at root level (critical for plugin-provided dependencies)

    allprojects {
        configurations.configureEach {
            resolutionStrategy.eachDependency {
                if (requested.group.startsWith("com.fasterxml.jackson")) {
                    useVersion("2.18.2")
                    because("OpenAI client requires Jackson 2.18+ for OptBoolean support")
                }
            }
        }
    }
  4. JACKSON_VERSION_CONFLICT_FIX.md: Comprehensive technical documentation covering:

    • Complete root cause analysis of the Jackson version conflict
    • Technical explanation of the API breaking change in Jackson 2.18
    • Why Spring fails silently during component scanning
    • All failed fix attempts and lessons learned
    • Critical insight about plugin-provided dependencies requiring root-level forcing
    • Debugging steps and prevention strategies for similar issues
    • Best practices for dependency version management

Why Root-Level Forcing is Critical

The key discovery was that Gradle plugin-provided dependencies bypass submodule-level resolution strategies:

  • surf-cloud provides Jackson through a Gradle plugin (withCloudClientPaper())
  • Submodule-level resolutionStrategy doesn't affect plugin-provided dependencies
  • Only root-level allprojects block with configurations.configureEach ensures all modules (including those configured by plugins) use the same Jackson version

Why This Works

  • No relocation: OpenAI client can find Jackson at the expected package location
  • Root-level enforcement: Applies to all subprojects and plugin configurations
  • Version alignment: All Jackson modules (core, databind, annotations, module-kotlin) use version 2.18.2
  • API compatibility: Jackson 2.18.2 provides the OptBoolean API that jackson-module-kotlin expects
  • Comprehensive coverage: Affects dependencies from both direct declarations and plugins

Why Silent Failure Occurred

Spring's component scanner gracefully handles errors by logging at DEBUG level and continuing to scan other classes. When beans fail to load due to NoSuchMethodError, Spring simply skips them without throwing exceptions during startup. The NoSuchBeanDefinitionException only appears later when code attempts to inject the missing beans.

Technical Details

Jackson 2.18 introduced a breaking change in the JsonProperty interface:

// Jackson 2.18+ (required by OpenAI)
public interface JsonProperty {
    OptBoolean isRequired();  // Returns enum
}

// Jackson pre-2.18 (provided by surf-cloud)
public interface JsonProperty {
    boolean isRequired();  // Returns primitive
}

This method signature change breaks binary compatibility at runtime, causing NoSuchMethodError when jackson-module-kotlin tries to call the method expecting OptBoolean but finds the old boolean return type.

Original prompt

I have a Spring Boot application running inside a Paper (Minecraft) plugin.
Everything works in branch feat/cloud, but in branch feat/ai-moderation Spring suddenly stops registering any of my own beans, although Spring itself starts normally.

Symptoms:

ApplicationContext contains only Spring / auto-configuration beans

No @service / @component from my packages (dev.slne...) are registered

NoSuchBeanDefinitionException: No bean named 'channelService' available

ChannelService is annotated with @service

The class exists, can be loaded via Class.forName, and uses the same PaperPluginClassLoader

Component scan worked before, without changes to package structure

Logs show:

Spring context is created successfully

ClassLoader setup appears correct

No explicit startup exception is printed

Facts:

The only changes between the branches are contained in the attached patch

Reverting unrelated changes does not fix the issue

Rebuilding feat/cloud still works

This strongly suggests a classpath / build / packaging / shadow-jar / dependency-resolution issue

Task:

Analyze this situation and explain how Spring can start successfully but skip all user beans

List concrete root causes (e.g. classpath linkage errors during scanning, missing runtime deps, META-INF corruption, Kotlin metadata issues, shadow exclusions)

Explain why no visible exception is thrown

Give precise debugging steps to identify the failing class or missing dependency

Suggest minimal fixes, not generic advice

Focus specifically on:

Kotlin + Spring Boot + ShadowJar

Classpath / NoClassDefFoundError during component scanning

META-INF / ServiceLoader / spring.factories / spring.components issues

Why auto-config beans appear but user beans do not

Assume the code itself is correct. The bug is structural.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 2 commits December 14, 2025 21:16
…scanning

Co-authored-by: twisti-dev <76837088+twisti-dev@users.noreply.github.com>
Co-authored-by: twisti-dev <76837088+twisti-dev@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix Spring bean registration issue in feat/ai-moderation Fix Spring component scanning by preserving Kotlin metadata in ShadowJar Dec 14, 2025
Copilot AI requested a review from twisti-dev December 14, 2025 21:20
@twisti-dev
Copy link
Contributor

@copilot Nein daran liegt es nicht. Kotlin wird durch das plugin surf-api bereitgestellt und spring durch das plugin surf-cloud. Es ging ja auch wie gesagt erst nicht mehr nachdem ich den openai client hinzugefügt habe

22:22:22 INFO]: Current classloader: PaperPluginClassLoader{libraryLoader=io.papermc.paper.plugin.entrypoint.classloader.BytecodeModifyingURLClassLoader@9294b14, seenIllegalAccess=[], loadedJavaPlugin=surf-chat-paper v1.21.10-4.1.5-SNAPSHOT}
[22:22:22 INFO]: ChannelService classloader: PaperPluginClassLoader{libraryLoader=io.papermc.paper.plugin.entrypoint.classloader.BytecodeModifyingURLClassLoader@9294b14, seenIllegalAccess=[], loadedJavaPlugin=surf-chat-paper v1.21.10-4.1.5-SNAPSHOT}
[22:22:22 INFO]: Context classloader: dev.slne.surf.cloud.api.common.util.classloader.JoinClassLoader@71bbf4b5
[22:22:22 INFO]: Find class in this classloader: class dev.slne.surf.chat.paper.channel.ChannelService
[22:22:22 INFO]: Find class in context loader: class dev.slne.surf.chat.paper.channel.ChannelService
[22:22:22 INFO]: Bean names: org.springframework.context.annotation.internalConfigurationAnnotationProcessor, org.springframework.context.annotation.internalAutowiredAnnotationProcessor, org.springframework.context.annotation.internalCommonAnnotationProcessor, org.springframework.context.event.internalEventListenerProcessor, org.springframework.context.event.internalEventListenerFactory, cloudEventBpp, loginValidationAutoRegistrationHandler, beforeStartTaskHandler, prePlayerJoinTaskAutoRegistrationHandler, chatApplication, nettyListenerRegistryProcessor, org.springframework.scheduling.annotation.SchedulingConfiguration, org.springframework.context.annotation.internalScheduledAnnotationProcessor, org.springframework.scheduling.annotation.ProxyAsyncConfiguration, org.springframework.context.annotation.internalAsyncAnnotationProcessor, org.springframework.cache.annotation.ProxyCachingConfiguration, org.springframework.cache.config.internalCacheAdvisor, cacheOperationSource, cacheInterceptor, org.springframework.boot.autoconfigure.domain.EntityScanPackages, org.springframework.boot.autoconfigure.AutoConfigurationPackages, org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration, propertySourcesPlaceholderConfigurer, org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$AspectJAutoProxyingConfiguration$CglibAutoProxyConfiguration, org.springframework.aop.config.internalAutoProxyCreator, org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$AspectJAutoProxyingConfiguration, org.springframework.boot.autoconfigure.aop.AopAutoConfiguration, org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration, applicationAvailability, org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration, standardJacksonObjectMapperBuilderCustomizer, org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor, org.springframework.boot.context.internalConfigurationPropertiesBinder, org.springframework.boot.context.properties.BoundConfigurationProperties, org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.methodValidationExcludeFilter, spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties, org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration, jacksonObjectMapperBuilder, org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperConfiguration, jacksonObjectMapper, org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonMixinConfiguration, jsonMixinModuleEntries, jsonMixinModule, org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration, jsonComponentModule, org.springframework.boot.autoconfigure.cache.CaffeineCacheConfiguration, cacheManager, org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration, cacheManagerCustomizers, cacheAutoConfigurationValidator, spring.cache-org.springframework.boot.autoconfigure.cache.CacheProperties, org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration, org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration, lifecycleProcessor, spring.lifecycle-org.springframework.boot.autoconfigure.context.LifecycleProperties, org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration, gsonBuilder, gson, standardGsonBuilderCustomizer, spring.gson-org.springframework.boot.autoconfigure.gson.GsonProperties, org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration, stringHttpMessageConverter, org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration, mappingJackson2HttpMessageConverter, org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration, org.springframework.boot.autoconfigure.http.GsonHttpMessageConvertersConfiguration, org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration, messageConverters, org.springframework.boot.autoconfigure.ssl.SslAutoConfiguration, fileWatcher, sslPropertiesSslBundleRegistrar, sslBundleRegistry, spring.ssl-org.springframework.boot.autoconfigure.ssl.SslProperties, org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration, clientHttpRequestFactoryBuilder, clientHttpRequestFactorySettings, spring.http.client-org.springframework.boot.autoconfigure.http.client.HttpClientProperties, org.springframework.boot.autoconfigure.reactor.netty.ReactorNettyConfigurations$ReactorResourceFactoryConfiguration, reactorResourceFactory, spring.reactor.netty-org.springframework.boot.autoconfigure.reactor.netty.ReactorNettyProperties, org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectorAutoConfiguration$ReactorNetty, reactorResourceFactoryClientHttpConnectorBuilderCustomizer, org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectorAutoConfiguration, clientHttpConnectorBuilder, clientHttpConnectorSettings, clientHttpConnector, spring.http.reactiveclient-org.springframework.boot.autoconfigure.http.client.reactive.HttpReactiveClientProperties, org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration, spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties, org.springframework.boot.autoconfigure.netty.NettyAutoConfiguration, nettyAutoConfigurationLazyInitializationExcludeFilter, spring.netty-org.springframework.boot.autoconfigure.netty.NettyProperties, org.springframework.boot.autoconfigure.reactor.ReactorAutoConfiguration, reactorAutoConfigurationLazyInitializationExcludeFilter, spring.reactor-org.springframework.boot.autoconfigure.reactor.ReactorProperties, org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration, spring.sql.init-org.springframework.boot.autoconfigure.sql.init.SqlInitializationProperties, org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor, org.springframework.boot.autoconfigure.task.TaskExecutorConfigurations$ThreadPoolTaskExecutorBuilderConfiguration, threadPoolTaskExecutorBuilder, org.springframework.boot.autoconfigure.task.TaskExecutorConfigurations$SimpleAsyncTaskExecutorBuilderConfiguration, simpleAsyncTaskExecutorBuilder, org.springframework.boot.autoconfigure.task.TaskExecutorConfigurations$AsyncConfigurerConfiguration, applicationTaskExecutorAsyncConfigurer, org.springframework.boot.autoconfigure.task.TaskExecutorConfigurations$TaskExecutorConfiguration, applicationTaskExecutor, org.springframework.boot.autoconfigure.task.TaskExecutorConfigurations$BootstrapExecutorConfiguration, bootstrapExecutorAliasPostProcessor, org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration, spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties, org.springframework.boot.autoconfigure.task.TaskSchedulingConfigurations$ThreadPoolTaskSchedulerBuilderConfiguration, threadPoolTaskSchedulerBuilder, org.springframework.boot.autoconfigure.task.TaskSchedulingConfigurations$SimpleAsyncTaskSchedulerBuilderConfiguration, simpleAsyncTaskSchedulerBuilder, org.springframework.boot.autoconfigure.task.TaskSchedulingConfigurations$TaskSchedulerConfiguration, taskScheduler, org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration, scheduledBeanLazyInitializationExcludeFilter, spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties, org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration, httpMessageConvertersRestClientCustomizer, restClientSsl, restClientBuilderConfigurer, restClientBuilder, org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration, restTemplateBuilderConfigurer, restTemplateBuilder
[22:22:22 ERROR]: Could not pass event AsyncChatEvent to surf-chat-paper v1.21.10-4.1.5-SNAPSHOT
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'channelService' available
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:978) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1381) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1272) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/dev.slne.surf.chat.paper.listener.AsyncChatListener.onAsyncChat(AsyncChatListener.kt:54) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[paper-api-1.21.10-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:71) ~[paper-api-1.21.10-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.21.10-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.adventure.ChatProcessor.post(ChatProcessor.java:378) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at io.papermc.paper.adventure.ChatProcessor.processModern(ChatProcessor.java:151) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at io.papermc.paper.adventure.ChatProcessor.process(ChatProcessor.java:115) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at net.minecraft.server.network.ServerGamePacketListenerImpl.chat(ServerGamePacketListenerImpl.java:2500) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at net.minecraft.server.network.ServerGamePacketListenerImpl.broadcastChatMessage(ServerGamePacketListenerImpl.java:2538) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChat$10(ServerGamePacketListenerImpl.java:2280) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at net.minecraft.util.FutureChain.lambda$append$1(FutureChain.java:25) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:718) ~[?:?]
at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
[22:22:22 INFO]: <Twisti_twixi> t

Copilot AI and others added 2 commits December 14, 2025 21:32
…icts

Co-authored-by: twisti-dev <76837088+twisti-dev@users.noreply.github.com>
Co-authored-by: twisti-dev <76837088+twisti-dev@users.noreply.github.com>
Copy link
Author

Copilot AI commented Dec 14, 2025

@copilot Nein daran liegt es nicht. Kotlin wird durch das plugin surf-api bereitgestellt und spring durch das plugin surf-cloud. Es ging ja auch wie gesagt erst nicht mehr nachdem ich den openai clien...

You're absolutely right! The issue is not with the Kotlin metadata exclusion.

The real problem is a Jackson relocation conflict caused by the OpenAI client. The ShadowJar relocates Jackson to dev.slne.surf.chat.shadow.jackson, but the OpenAI client's bytecode still references com.fasterxml.jackson. This causes silent NoClassDefFoundError during Spring component scanning.

Fixed in commit f348e79 by excluding Jackson from the OpenAI dependency so it uses the relocated Jackson provided by surf-cloud:

implementation("com.openai:openai-java:4.11.0") {
    // ... existing exclusions ...
    exclude(group = "com.fasterxml.jackson.core")
    exclude(group = "com.fasterxml.jackson.databind")
    exclude(group = "com.fasterxml.jackson.datatype")
    exclude(group = "com.fasterxml.jackson.module")
}

See JACKSON_RELOCATION_FIX.md for detailed analysis and debugging steps.

Copilot AI changed the title Fix Spring component scanning by preserving Kotlin metadata in ShadowJar Fix Spring component scanning by resolving Jackson relocation conflict with OpenAI client Dec 14, 2025
@twisti-dev
Copy link
Contributor

@copilot Jetzt kommt es beim starten zu diesem problem:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'chatProcessorRegistry' defined in URL [jar:file:/home/container/plugins/surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar!/dev/slne/surf/chat/api/processor/ChatProcessorRegistry.class]: Failed to instantiate [dev.slne.surf.chat.api.processor.ChatProcessorRegistry]: Constructor threw exception
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:321) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:309) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1221) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1187) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1123) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:987) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:149) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/dev.slne.surf.cloud.core.common.CloudCoreInstance.startSpringApplication$lambda$2(CloudCoreInstance.kt:241) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/dev.slne.surf.cloud.core.common.util.UtilKt.tempChangeSystemClassLoader(util.kt:27) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/dev.slne.surf.cloud.core.common.CloudCoreInstance.startSpringApplication(CloudCoreInstance.kt:169) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/dev.slne.surf.cloud.api.common.CloudInstance$Companion.startSpringApplication(CloudInstance.kt) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/dev.slne.surf.cloud.api.common.CloudInstanceKt.startSpringApplication(CloudInstance.kt:61) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/dev.slne.surf.cloud.api.common.CloudInstanceKt.startSpringApplication$default(CloudInstance.kt:56) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/dev.slne.surf.chat.paper.PaperBootstrap.bootstrap(PaperBootstrap.kt:16) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at io.papermc.paper.plugin.storage.BootstrapProviderStorage$1.load(BootstrapProviderStorage.java:36) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at io.papermc.paper.plugin.storage.BootstrapProviderStorage$1.load(BootstrapProviderStorage.java:24) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at io.papermc.paper.plugin.entrypoint.strategy.modern.ModernPluginLoadingStrategy.loadProviders(ModernPluginLoadingStrategy.java:117) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:38) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.enter(LaunchEntryPointHandler.java:39) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.enterBootstrappers(LaunchEntryPointHandler.java:29) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at net.minecraft.server.Bootstrap.bootStrap(Bootstrap.java:46) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at net.minecraft.server.Main.main(Main.java:111) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at io.papermc.paper.PaperBootstrap.boot(PaperBootstrap.java:21) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at org.bukkit.craftbukkit.Main.main(Main.java:242) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at io.papermc.paperclip.Paperclip.lambda$main$0(Paperclip.java:42) ~[app:?]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [dev.slne.surf.chat.api.processor.ChatProcessorRegistry]: Constructor threw exception
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:223) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
... 37 more
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'validateChatMessageWithAiProcessor' defined in URL [jar:file:/home/container/plugins/surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar!/dev/slne/surf/chat/paper/processor/post/ValidateChatMessageWithAiProcessor.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'openAiService' defined in URL [jar:file:/home/container/plugins/surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar!/dev/slne/surf/chat/core/common/ai/OpenAiService.class]: Failed to instantiate [dev.slne.surf.chat.core.common.ai.OpenAiService]: Constructor threw exception
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:804) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:2018) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1975) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1792) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1709) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.resolveStream(DefaultListableBeanFactory.java:2638) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.orderedStream(DefaultListableBeanFactory.java:2632) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/dev.slne.surf.chat.api.processor.ChatProcessorRegistry.(ChatProcessorRegistry.kt:16) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.calls.CallerImpl$Constructor.call(CallerImpl.kt:41) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:250) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.KCallableImpl.callBy(KCallableImpl.kt:155) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils$KotlinDelegate.instantiateClass(BeanUtils.java:943) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:191) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
... 37 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'openAiService' defined in URL [jar:file:/home/container/plugins/surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar!/dev/slne/surf/chat/core/common/ai/OpenAiService.class]: Failed to instantiate [dev.slne.surf.chat.core.common.ai.OpenAiService]: Constructor threw exception
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:321) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1698) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1643) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:2018) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1975) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1792) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1709) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.resolveStream(DefaultListableBeanFactory.java:2638) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.orderedStream(DefaultListableBeanFactory.java:2632) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/dev.slne.surf.chat.api.processor.ChatProcessorRegistry.(ChatProcessorRegistry.kt:16) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.calls.CallerImpl$Constructor.call(CallerImpl.kt:41) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:250) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.KCallableImpl.callBy(KCallableImpl.kt:155) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils$KotlinDelegate.instantiateClass(BeanUtils.java:943) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:191) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
... 37 more
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [dev.slne.surf.chat.core.common.ai.OpenAiService]: Constructor threw exception
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:223) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1698) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1643) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:2018) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1975) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1792) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1709) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.resolveStream(DefaultListableBeanFactory.java:2638) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.orderedStream(DefaultListableBeanFactory.java:2632) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/dev.slne.surf.chat.api.processor.ChatProcessorRegistry.(ChatProcessorRegistry.kt:16) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.calls.CallerImpl$Constructor.call(CallerImpl.kt:41) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:250) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.KCallableImpl.callBy(KCallableImpl.kt:155) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils$KotlinDelegate.instantiateClass(BeanUtils.java:943) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:191) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
... 37 more
Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/datatype/jdk8/Jdk8Module
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.ObjectMappers.jsonMapper(ObjectMappers.kt:34) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.ClientOptions$Builder.(ClientOptions.kt:173) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.ClientOptions$Companion.builder(ClientOptions.kt:158) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OpenAIOkHttpClientAsync$Builder.(OpenAIOkHttpClientAsync.kt:50) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OpenAIOkHttpClientAsync$Companion.builder(OpenAIOkHttpClientAsync.kt:37) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OpenAIOkHttpClientAsync$Companion.fromEnv(OpenAIOkHttpClientAsync.kt:44) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/dev.slne.surf.chat.core.common.ai.OpenAiService.(OpenAiService.kt:17) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.calls.CallerImpl$Constructor.call(CallerImpl.kt:41) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.KCallableImpl.call(KCallableImpl.kt:151) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils$KotlinDelegate.instantiateClass(BeanUtils.java:935) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:191) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1698) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1643) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:2018) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1975) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1792) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1709) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.resolveStream(DefaultListableBeanFactory.java:2638) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.orderedStream(DefaultListableBeanFactory.java:2632) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/dev.slne.surf.chat.api.processor.ChatProcessorRegistry.(ChatProcessorRegistry.kt:16) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.calls.CallerImpl$Constructor.call(CallerImpl.kt:41) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:250) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.KCallableImpl.callBy(KCallableImpl.kt:155) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils$KotlinDelegate.instantiateClass(BeanUtils.java:943) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:191) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
... 37 more
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.datatype.jdk8.Jdk8Module
at io.papermc.paper.plugin.entrypoint.classloader.PaperPluginClassLoader.loadClass(PaperPluginClassLoader.java:146) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at io.papermc.paper.plugin.entrypoint.classloader.PaperPluginClassLoader.loadClass(PaperPluginClassLoader.java:107) ~[paper-1.21.10.jar:1.21.10-113-9fc21bc]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[?:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.ObjectMappers.jsonMapper(ObjectMappers.kt:34) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.ClientOptions$Builder.(ClientOptions.kt:173) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.ClientOptions$Companion.builder(ClientOptions.kt:158) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OpenAIOkHttpClientAsync$Builder.(OpenAIOkHttpClientAsync.kt:50) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OpenAIOkHttpClientAsync$Companion.builder(OpenAIOkHttpClientAsync.kt:37) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OpenAIOkHttpClientAsync$Companion.fromEnv(OpenAIOkHttpClientAsync.kt:44) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/dev.slne.surf.chat.core.common.ai.OpenAiService.(OpenAiService.kt:17) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.calls.CallerImpl$Constructor.call(CallerImpl.kt:41) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.KCallableImpl.call(KCallableImpl.kt:151) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils$KotlinDelegate.instantiateClass(BeanUtils.java:935) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:191) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1698) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1643) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:913) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1395) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1232) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:2018) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1975) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveMultipleBeans(DefaultListableBeanFactory.java:1792) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1709) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.resolveStream(DefaultListableBeanFactory.java:2638) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.DefaultListableBeanFactory$DependencyObjectProvider.orderedStream(DefaultListableBeanFactory.java:2632) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/dev.slne.surf.chat.api.processor.ChatProcessorRegistry.(ChatProcessorRegistry.kt:16) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.calls.CallerImpl$Constructor.call(CallerImpl.kt:41) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:250) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.reflect.jvm.internal.KCallableImpl.callBy(KCallableImpl.kt:155) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils$KotlinDelegate.instantiateClass(BeanUtils.java:943) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:191) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
at surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar/org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:318) ~[surf-cloud-bukkit-1.21.10-1.0.0-SNAPSHOT-all.jar:?]
... 37 more

Copilot AI and others added 2 commits December 14, 2025 21:40
Co-authored-by: twisti-dev <76837088+twisti-dev@users.noreply.github.com>
Co-authored-by: twisti-dev <76837088+twisti-dev@users.noreply.github.com>
Copy link
Author

Copilot AI commented Dec 14, 2025

@copilot Jetzt kommt es beim starten zu diesem problem:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'chatProcessorRegistry' defined in URL [jar:file:/home/c...

The Jackson exclusion broke the OpenAI client because it needs Jackson to deserialize JSON responses.

Root cause: The Jackson relocation in surf-chat-paper/build.gradle.kts is the problem. ShadowJar relocates Jackson classes but doesn't rewrite OpenAI client's bytecode references, causing NoClassDefFoundError at runtime.

Fixed in commit 201497e by removing the Jackson relocation entirely:

// REMOVED from surf-chat-paper/build.gradle.kts:
tasks.shadowJar {
    relocate("com.fasterxml.jackson", "dev.slne.surf.chat.shadow.jackson")
}

There's no actual conflict - both OpenAI and Spring can share Jackson from surf-cloud. The relocation was unnecessary and created the problem.

See SPRING_BEAN_FIX_ANALYSIS.md for complete analysis.

Copilot AI changed the title Fix Spring component scanning by resolving Jackson relocation conflict with OpenAI client Fix Spring component scanning by removing unnecessary Jackson relocation Dec 14, 2025
@twisti-dev
Copy link
Contributor

@copilot Das bringt halt auch nur so halb was, also spring scannt die klassen jetzt wieder, aber es gibt jetzt das problem hier: Wahrscheinlich weil unterschiedliche fasterxml versionen benitzt werden

[22:52:37 ERROR]: [surf-chat-paper] This is not an error of MCCoroutine! See sub exception for details.
java.lang.NoSuchMethodError: 'com.fasterxml.jackson.annotation.OptBoolean com.fasterxml.jackson.annotation.JsonProperty.isRequired()'
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.forceRequiredByAnnotation(KotlinAnnotationIntrospector.kt:43) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.forceRequiredByAnnotation(KotlinAnnotationIntrospector.kt:49) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.getRequiredMarkerFromAccessorLikeMethod(KotlinAnnotationIntrospector.kt:140) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.hasRequiredMarker(KotlinAnnotationIntrospector.kt:127) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.access$hasRequiredMarker(KotlinAnnotationIntrospector.kt:28) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector$hasRequiredMarker$2$1.invoke(KotlinAnnotationIntrospector.kt:58) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector$hasRequiredMarker$2$1.invoke(KotlinAnnotationIntrospector.kt:54) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.ReflectionCache.javaMemberIsRequired(ReflectionCache.kt:87) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.hasRequiredMarker(KotlinAnnotationIntrospector.kt:54) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.hasRequiredMarker(AnnotationIntrospectorPair.java:319) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.hasRequiredMarker(AnnotationIntrospectorPair.java:319) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getMetadata(POJOPropertyBuilder.java:230) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._anyIndexed(POJOPropertiesCollector.java:1238) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._sortProperties(POJOPropertiesCollector.java:1140) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collectAll(POJOPropertiesCollector.java:470) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getJsonValueAccessor(POJOPropertiesCollector.java:270) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.BasicBeanDescription.findJsonValueAccessor(BasicBeanDescription.java:258) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.findSerializerByAnnotations(BasicSerializerFactory.java:391) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:224) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:173) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1495) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1443) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:544) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:822) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:308) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.ObjectMapper._writeValueAndClose(ObjectMapper.java:4568) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsBytes(ObjectMapper.java:3844) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.HttpRequestBodies$json$1$bytes$2.invoke(HttpRequestBodies.kt:22) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.HttpRequestBodies$json$1$bytes$2.invoke(HttpRequestBodies.kt:22) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.HttpRequestBodies$json$1.getBytes(HttpRequestBodies.kt:22) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.HttpRequestBodies$json$1.contentLength(HttpRequestBodies.kt:28) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OkHttpClient.toRequestBody(OkHttpClient.kt:160) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OkHttpClient.toRequest(OkHttpClient.kt:111) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OkHttpClient.newCall(OkHttpClient.kt:107) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OkHttpClient.executeAsync(OkHttpClient.kt:54) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.PhantomReachableClosingHttpClient.executeAsync(PhantomReachableClosingHttpClient.kt:23) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.RetryingHttpClient.executeAsync$executeWithRetries(RetryingHttpClient.kt:98) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.RetryingHttpClient.executeAsync(RetryingHttpClient.kt:130) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.services.async.ModerationServiceAsyncImpl$WithRawResponseImpl$create$1.invoke(ModerationServiceAsyncImpl.kt:72) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.services.async.ModerationServiceAsyncImpl$WithRawResponseImpl$create$1.invoke(ModerationServiceAsyncImpl.kt:72) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.services.async.ModerationServiceAsyncImpl$WithRawResponseImpl.create$lambda$0(ModerationServiceAsyncImpl.kt:72) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?]
at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483) ~[?:?]
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387) ~[?:?]
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312) ~[?:?]
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843) ~[?:?]
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808) ~[?:?]
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) ~[?:?]

Copilot AI and others added 2 commits December 14, 2025 21:57
Co-authored-by: twisti-dev <76837088+twisti-dev@users.noreply.github.com>
Co-authored-by: twisti-dev <76837088+twisti-dev@users.noreply.github.com>
Copy link
Author

Copilot AI commented Dec 14, 2025

@copilot Das bringt halt auch nur so halb was, also spring scannt die klassen jetzt wieder, aber es gibt jetzt das problem hier: Wahrscheinlich weil unterschiedliche fasterxml versionen benitzt werden...

You're correct - there's a Jackson version conflict. OpenAI client requires Jackson 2.18+ (which has OptBoolean API), but surf-cloud provides an older version.

Fixed in commit 9993285 by forcing all Jackson dependencies to version 2.18.2:

// In surf-chat-core-common/build.gradle.kts
configurations.all {
    resolutionStrategy.eachDependency {
        if (requested.group.startsWith("com.fasterxml.jackson")) {
            useVersion("2.18.2")
            because("OpenAI client requires Jackson 2.18+ for OptBoolean support")
        }
    }
}

This aligns all Jackson modules to the same version, preventing the NoSuchMethodError. See JACKSON_VERSION_CONFLICT_FIX.md for complete analysis.

Copilot AI changed the title Fix Spring component scanning by removing unnecessary Jackson relocation Fix Spring component scanning by resolving Jackson version conflict Dec 14, 2025
@twisti-dev
Copy link
Contributor

@copilot Hier das problem wieder:

[23:04:40 ERROR]: [surf-chat-paper] This is not an error of MCCoroutine! See sub exception for details.
java.lang.NoSuchMethodError: 'com.fasterxml.jackson.annotation.OptBoolean com.fasterxml.jackson.annotation.JsonProperty.isRequired()'
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.forceRequiredByAnnotation(KotlinAnnotationIntrospector.kt:43) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.forceRequiredByAnnotation(KotlinAnnotationIntrospector.kt:49) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.getRequiredMarkerFromAccessorLikeMethod(KotlinAnnotationIntrospector.kt:140) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.hasRequiredMarker(KotlinAnnotationIntrospector.kt:127) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.access$hasRequiredMarker(KotlinAnnotationIntrospector.kt:28) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector$hasRequiredMarker$2$1.invoke(KotlinAnnotationIntrospector.kt:58) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector$hasRequiredMarker$2$1.invoke(KotlinAnnotationIntrospector.kt:54) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.ReflectionCache.javaMemberIsRequired(ReflectionCache.kt:87) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.fasterxml.jackson.module.kotlin.KotlinAnnotationIntrospector.hasRequiredMarker(KotlinAnnotationIntrospector.kt:54) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.hasRequiredMarker(AnnotationIntrospectorPair.java:319) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair.hasRequiredMarker(AnnotationIntrospectorPair.java:319) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.getMetadata(POJOPropertyBuilder.java:230) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._anyIndexed(POJOPropertiesCollector.java:1238) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._sortProperties(POJOPropertiesCollector.java:1140) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collectAll(POJOPropertiesCollector.java:470) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getJsonValueAccessor(POJOPropertiesCollector.java:270) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.introspect.BasicBeanDescription.findJsonValueAccessor(BasicBeanDescription.java:258) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.findSerializerByAnnotations(BasicSerializerFactory.java:391) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:224) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:173) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1495) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1443) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:544) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:822) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:308) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.ObjectMapper._writeValueAndClose(ObjectMapper.java:4568) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsBytes(ObjectMapper.java:3844) ~[jackson-databind-2.13.4.2.jar:2.13.4.2]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.HttpRequestBodies$json$1$bytes$2.invoke(HttpRequestBodies.kt:22) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.HttpRequestBodies$json$1$bytes$2.invoke(HttpRequestBodies.kt:22) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar/kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86) ~[surf-api-bukkit-server-1.21.10-2.42.3-all (2).jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.HttpRequestBodies$json$1.getBytes(HttpRequestBodies.kt:22) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.HttpRequestBodies$json$1.contentLength(HttpRequestBodies.kt:28) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OkHttpClient.toRequestBody(OkHttpClient.kt:160) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OkHttpClient.toRequest(OkHttpClient.kt:111) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OkHttpClient.newCall(OkHttpClient.kt:107) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.client.okhttp.OkHttpClient.executeAsync(OkHttpClient.kt:54) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.PhantomReachableClosingHttpClient.executeAsync(PhantomReachableClosingHttpClient.kt:23) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.RetryingHttpClient.executeAsync$executeWithRetries(RetryingHttpClient.kt:98) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.core.http.RetryingHttpClient.executeAsync(RetryingHttpClient.kt:130) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.services.async.ModerationServiceAsyncImpl$WithRawResponseImpl$create$1.invoke(ModerationServiceAsyncImpl.kt:72) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.services.async.ModerationServiceAsyncImpl$WithRawResponseImpl$create$1.invoke(ModerationServiceAsyncImpl.kt:72) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar/com.openai.services.async.ModerationServiceAsyncImpl$WithRawResponseImpl.create$lambda$0(ModerationServiceAsyncImpl.kt:72) ~[surf-chat-paper-1.21.10-4.1.5-SNAPSHOT-all.jar:?]
at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?]
at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483) ~[?:?]
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387) ~[?:?]
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312) ~[?:?]
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843) ~[?:?]
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808) ~[?:?]
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) ~[?:?]

Co-authored-by: twisti-dev <76837088+twisti-dev@users.noreply.github.com>
Copy link
Author

Copilot AI commented Dec 14, 2025

@copilot Hier das problem wieder:

[23:04:40 ERROR]: [surf-chat-paper] This is not an error of MCCoroutine! See sub exception for details....

The previous fix only applied to the submodule level. Since surf-cloud provides Jackson through a plugin, the version forcing needs to be at the root level.

Fixed in commit c89e77a by applying Jackson version forcing in root build.gradle.kts:

allprojects {
    configurations.configureEach {
        resolutionStrategy.eachDependency {
            if (requested.group.startsWith("com.fasterxml.jackson")) {
                useVersion("2.18.2")
                because("OpenAI client requires Jackson 2.18+ for OptBoolean support")
            }
        }
    }
}

This ensures ALL modules including plugin-provided dependencies use Jackson 2.18.2.

Co-authored-by: twisti-dev <76837088+twisti-dev@users.noreply.github.com>
Copilot AI changed the title Fix Spring component scanning by resolving Jackson version conflict Fix Spring component scanning by resolving Jackson version conflict with root-level forcing Dec 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants