Skip to content

Trino getting-started: NoClassDefFoundError due to trino spi version mismatch #74

@adrdc

Description

@adrdc

Current latest trino pravega-connector code uses v359 of trino libraries
The getting started guide builds a docker image using trino:latest as the base image (I believe trino:latest is now v374).
As such the SPI has changed so the connector fails to load

2022-03-25T13:46:34.435Z	ERROR	main	io.trino.server.Server	io/trino/spi/connector/ConnectorTableLayoutHandle
java.lang.NoClassDefFoundError: io/trino/spi/connector/ConnectorTableLayoutHandle
	at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3137)
	at java.base/java.lang.Class.getDeclaredConstructors(Class.java:2357)
	at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:292)
	at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:117)
	at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:716)
	at com.google.inject.internal.UntargettedBindingProcessor$1.visit(UntargettedBindingProcessor.java:54)
	at com.google.inject.internal.UntargettedBindingProcessor$1.visit(UntargettedBindingProcessor.java:36)
	at com.google.inject.internal.UntargettedBindingImpl.acceptTargetVisitor(UntargettedBindingImpl.java:52)
	at com.google.inject.internal.UntargettedBindingProcessor.visit(UntargettedBindingProcessor.java:35)
	at com.google.inject.internal.UntargettedBindingProcessor.visit(UntargettedBindingProcessor.java:27)
	at com.google.inject.internal.BindingImpl.acceptVisitor(BindingImpl.java:99)
	at com.google.inject.internal.AbstractProcessor.lambda$process$0(AbstractProcessor.java:53)
	at java.base/java.util.ArrayList.removeIf(ArrayList.java:1712)
	at java.base/java.util.ArrayList.removeIf(ArrayList.java:1690)
	at com.google.inject.internal.AbstractProcessor.process(AbstractProcessor.java:50)
	at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:216)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
	at com.google.inject.Guice.createInjector(Guice.java:87)
	at io.airlift.bootstrap.Bootstrap.initialize(Bootstrap.java:270)
	at io.trino.plugin.pravega.PravegaConnectorFactory.create(PravegaConnectorFactory.java:91)
	at io.trino.connector.ConnectorManager.createConnector(ConnectorManager.java:403)
	at io.trino.connector.ConnectorManager.createCatalog(ConnectorManager.java:252)
	at io.trino.connector.ConnectorManager.createCatalog(ConnectorManager.java:241)
	at io.trino.connector.ConnectorManager.createCatalog(ConnectorManager.java:227)
	at io.trino.metadata.StaticCatalogStore.loadCatalog(StaticCatalogStore.java:88)
	at io.trino.metadata.StaticCatalogStore.loadCatalogs(StaticCatalogStore.java:68)
	at io.trino.server.Server.doStart(Server.java:128)
	at io.trino.server.Server.lambda$start$0(Server.java:80)
	at io.trino.$gen.Trino_374____20220325_134610_1.run(Unknown Source)
	at io.trino.server.Server.start(Server.java:80)
	at io.trino.server.TrinoServer.main(TrinoServer.java:38)
Caused by: java.lang.ClassNotFoundException: io.trino.spi.connector.ConnectorTableLayoutHandle
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at io.trino.server.PluginClassLoader.loadClass(PluginClassLoader.java:109)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	... 32 more

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions