After upgrading from 1.4.2 to 1.4.4, I get the following exception when loading an exchange rate provider:
Exception
2024-04-08 10:15:47 [vert.x-eventloop-thread-0] ERROR VertxIsolatedDeployer - Failed in deploying verticle
java.util.ServiceConfigurationError: javax.money.spi.MonetaryConversionsSingletonSpi: Provider org.javamoney.moneta.convert.DefaultMonetaryConversionsSingletonSpi could not be instantiated
at java.util.ServiceLoader.fail(ServiceLoader.java:586) ~[?:?]
at java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:813) ~[?:?]
at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) ~[?:?]
at java.util.ServiceLoader$3.next(ServiceLoader.java:1403) ~[?:?]
at org.javamoney.moneta.spi.PriorityAwareServiceProvider.loadServices(PriorityAwareServiceProvider.java:99) ~[moneta-core-1.4.2.jar:1.4.2]
at org.javamoney.moneta.spi.PriorityAwareServiceProvider.getServices(PriorityAwareServiceProvider.java:66) ~[moneta-core-1.4.2.jar:1.4.2]
at javax.money.spi.Bootstrap.getService(Bootstrap.java:121) ~[money-api-1.1.jar:1.1]
at javax.money.convert.MonetaryConversions.getMonetaryConversionsSpi(MonetaryConversions.java:65) ~[money-api-1.1.jar:1.1]
at javax.money.convert.MonetaryConversions.getExchangeRateProvider(MonetaryConversions.java:176) ~[money-api-1.1.jar:1.1]
at javax.money.convert.MonetaryConversions.getExchangeRateProvider(MonetaryConversions.java:204) ~[money-api-1.1.jar:1.1]
at x.y.z.item.search.utils.MoneyUtils.(MoneyUtils.kt:19) ~[classes/:?]
at x.y.z.business.InitVerticle.start(InitVerticle.kt:16) ~[classes/:?]
at io.vertx.kotlin.coroutines.CoroutineVerticle$start$1.invokeSuspend(CoroutineVerticle.kt:53) ~[vertx-lang-kotlin-coroutines-4.5.3.jar:4.5.3]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlin-stdlib-1.9.22.jar:1.9.22-release-704]
at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:367) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:30) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default(Cancellable.kt:25) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:110) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.BuildersKt.launch(Unknown Source) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at io.vertx.kotlin.coroutines.CoroutineVerticle.start(CoroutineVerticle.kt:51) ~[vertx-lang-kotlin-coroutines-4.5.3.jar:4.5.3]
at io.vertx.core.impl.DeploymentManager.lambda$doDeploy$5(DeploymentManager.java:210) ~[vertx-core-4.5.3.jar:4.5.3]
at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:276) ~[vertx-core-4.5.3.jar:4.5.3]
at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:258) ~[vertx-core-4.5.3.jar:4.5.3]
at io.vertx.core.impl.ContextInternal.lambda$runOnContext$0(ContextInternal.java:56) ~[vertx-core-4.5.3.jar:4.5.3]
at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) [netty-transport-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.NoClassDefFoundError: org/javamoney/moneta/spi/loader/LoaderService$Listener
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:467) ~[?:?]
at java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1217) ~[?:?]
at java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1228) ~[?:?]
at java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273) ~[?:?]
at java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309) ~[?:?]
at java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393) ~[?:?]
at org.javamoney.moneta.spi.PriorityAwareServiceProvider.loadServices(PriorityAwareServiceProvider.java:99) ~[moneta-core-1.4.2.jar:1.4.2]
at org.javamoney.moneta.spi.PriorityAwareServiceProvider.getServices(PriorityAwareServiceProvider.java:66) ~[moneta-core-1.4.2.jar:1.4.2]
at javax.money.spi.Bootstrap.getServices(Bootstrap.java:110) ~[money-api-1.1.jar:1.1]
at org.javamoney.moneta.convert.DefaultMonetaryConversionsSingletonSpi.reload(DefaultMonetaryConversionsSingletonSpi.java:64) ~[moneta-convert-1.4.4.jar:1.4.4]
at org.javamoney.moneta.convert.DefaultMonetaryConversionsSingletonSpi.(DefaultMonetaryConversionsSingletonSpi.java:56) ~[moneta-convert-1.4.4.jar:1.4.4]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
at java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) ~[?:?]
... 36 more
Caused by: java.lang.ClassNotFoundException: org.javamoney.moneta.spi.loader.LoaderService$Listener
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:467) ~[?:?]
at java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1217) ~[?:?]
at java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1228) ~[?:?]
at java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273) ~[?:?]
at java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309) ~[?:?]
at java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393) ~[?:?]
at org.javamoney.moneta.spi.PriorityAwareServiceProvider.loadServices(PriorityAwareServiceProvider.java:99) ~[moneta-core-1.4.2.jar:1.4.2]
at org.javamoney.moneta.spi.PriorityAwareServiceProvider.getServices(PriorityAwareServiceProvider.java:66) ~[moneta-core-1.4.2.jar:1.4.2]
at javax.money.spi.Bootstrap.getServices(Bootstrap.java:110) ~[money-api-1.1.jar:1.1]
at org.javamoney.moneta.convert.DefaultMonetaryConversionsSingletonSpi.reload(DefaultMonetaryConversionsSingletonSpi.java:64) ~[moneta-convert-1.4.4.jar:1.4.4]
at org.javamoney.moneta.convert.DefaultMonetaryConversionsSingletonSpi.(DefaultMonetaryConversionsSingletonSpi.java:56) ~[moneta-convert-1.4.4.jar:1.4.4]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
at java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) ~[?:?]
... 36 more
This is the code (kotlin) that causes the exception, running in a vert.x context:
After upgrading from 1.4.2 to 1.4.4, I get the following exception when loading an exchange rate provider:
Exception
2024-04-08 10:15:47 [vert.x-eventloop-thread-0] ERROR VertxIsolatedDeployer - Failed in deploying verticle java.util.ServiceConfigurationError: javax.money.spi.MonetaryConversionsSingletonSpi: Provider org.javamoney.moneta.convert.DefaultMonetaryConversionsSingletonSpi could not be instantiated at java.util.ServiceLoader.fail(ServiceLoader.java:586) ~[?:?] at java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:813) ~[?:?] at java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:729) ~[?:?] at java.util.ServiceLoader$3.next(ServiceLoader.java:1403) ~[?:?] at org.javamoney.moneta.spi.PriorityAwareServiceProvider.loadServices(PriorityAwareServiceProvider.java:99) ~[moneta-core-1.4.2.jar:1.4.2] at org.javamoney.moneta.spi.PriorityAwareServiceProvider.getServices(PriorityAwareServiceProvider.java:66) ~[moneta-core-1.4.2.jar:1.4.2] at javax.money.spi.Bootstrap.getService(Bootstrap.java:121) ~[money-api-1.1.jar:1.1] at javax.money.convert.MonetaryConversions.getMonetaryConversionsSpi(MonetaryConversions.java:65) ~[money-api-1.1.jar:1.1] at javax.money.convert.MonetaryConversions.getExchangeRateProvider(MonetaryConversions.java:176) ~[money-api-1.1.jar:1.1] at javax.money.convert.MonetaryConversions.getExchangeRateProvider(MonetaryConversions.java:204) ~[money-api-1.1.jar:1.1] at x.y.z.item.search.utils.MoneyUtils.(MoneyUtils.kt:19) ~[classes/:?]
at x.y.z.business.InitVerticle.start(InitVerticle.kt:16) ~[classes/:?]
at io.vertx.kotlin.coroutines.CoroutineVerticle$start$1.invokeSuspend(CoroutineVerticle.kt:53) ~[vertx-lang-kotlin-coroutines-4.5.3.jar:4.5.3]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlin-stdlib-1.9.22.jar:1.9.22-release-704]
at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:367) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:30) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable$default(Cancellable.kt:25) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:110) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.BuildersKt.launch(Unknown Source) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source) ~[kotlinx-coroutines-core-jvm-1.7.3.jar:?]
at io.vertx.kotlin.coroutines.CoroutineVerticle.start(CoroutineVerticle.kt:51) ~[vertx-lang-kotlin-coroutines-4.5.3.jar:4.5.3]
at io.vertx.core.impl.DeploymentManager.lambda$doDeploy$5(DeploymentManager.java:210) ~[vertx-core-4.5.3.jar:4.5.3]
at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:276) ~[vertx-core-4.5.3.jar:4.5.3]
at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:258) ~[vertx-core-4.5.3.jar:4.5.3]
at io.vertx.core.impl.ContextInternal.lambda$runOnContext$0(ContextInternal.java:56) ~[vertx-core-4.5.3.jar:4.5.3]
at io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:173) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:166) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) [netty-transport-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.106.Final.jar:4.1.106.Final]
at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.NoClassDefFoundError: org/javamoney/moneta/spi/loader/LoaderService$Listener
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:467) ~[?:?]
at java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1217) ~[?:?]
at java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1228) ~[?:?]
at java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273) ~[?:?]
at java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309) ~[?:?]
at java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393) ~[?:?]
at org.javamoney.moneta.spi.PriorityAwareServiceProvider.loadServices(PriorityAwareServiceProvider.java:99) ~[moneta-core-1.4.2.jar:1.4.2]
at org.javamoney.moneta.spi.PriorityAwareServiceProvider.getServices(PriorityAwareServiceProvider.java:66) ~[moneta-core-1.4.2.jar:1.4.2]
at javax.money.spi.Bootstrap.getServices(Bootstrap.java:110) ~[money-api-1.1.jar:1.1]
at org.javamoney.moneta.convert.DefaultMonetaryConversionsSingletonSpi.reload(DefaultMonetaryConversionsSingletonSpi.java:64) ~[moneta-convert-1.4.4.jar:1.4.4]
at org.javamoney.moneta.convert.DefaultMonetaryConversionsSingletonSpi.(DefaultMonetaryConversionsSingletonSpi.java:56) ~[moneta-convert-1.4.4.jar:1.4.4]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
at java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) ~[?:?]
... 36 more
Caused by: java.lang.ClassNotFoundException: org.javamoney.moneta.spi.loader.LoaderService$Listener
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) ~[?:?]
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:467) ~[?:?]
at java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1217) ~[?:?]
at java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1228) ~[?:?]
at java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273) ~[?:?]
at java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309) ~[?:?]
at java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393) ~[?:?]
at org.javamoney.moneta.spi.PriorityAwareServiceProvider.loadServices(PriorityAwareServiceProvider.java:99) ~[moneta-core-1.4.2.jar:1.4.2]
at org.javamoney.moneta.spi.PriorityAwareServiceProvider.getServices(PriorityAwareServiceProvider.java:66) ~[moneta-core-1.4.2.jar:1.4.2]
at javax.money.spi.Bootstrap.getServices(Bootstrap.java:110) ~[money-api-1.1.jar:1.1]
at org.javamoney.moneta.convert.DefaultMonetaryConversionsSingletonSpi.reload(DefaultMonetaryConversionsSingletonSpi.java:64) ~[moneta-convert-1.4.4.jar:1.4.4]
at org.javamoney.moneta.convert.DefaultMonetaryConversionsSingletonSpi.(DefaultMonetaryConversionsSingletonSpi.java:56) ~[moneta-convert-1.4.4.jar:1.4.4]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
at java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:789) ~[?:?]
... 36 more
This is the code (kotlin) that causes the exception, running in a vert.x context: