[ https://issues.apache.org/jira/browse/TIKA-3817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andre Nel updated TIKA-3817: ---------------------------- Description: Azure Graph conflict on jackson. Both Tika-app 2.4.1 and Azure-core 1.30.0 use jars with classes of the same name JsonGenerator (com.fasterxml.jackson.core.JsonGenerator) when fetching the jackson version, of which jackson-core 2.13.3 is desired and set in the pom. This results in version conflict - where tika changes the jackson version from the desired 2.13.3 to tika's version 2.4.1, which doesn't even exist for jackson and would be far too old a version of jackson. ERROR [main] 12:03:19,483 com.azure.core.implementation.jackson.JacksonVersion Version '2.4.1' of package 'jackson-annotations' is not supported (older than earliest supported version - `2.10.0`), please upgrade. ERROR [main] 12:03:19,489 com.azure.core.implementation.jackson.JacksonVersion Version '2.4.1' of package 'jackson-core' is not supported (older than earliest supported version - `2.10.0`), please upgrade. ERROR [main] 12:03:19,489 com.azure.core.implementation.jackson.JacksonVersion Version '2.4.1' of package 'jackson-databind' is not supported (older than earliest supported version - `2.10.0`), please upgrade. INFO [main] 12:03:19,491 com.azure.core.implementation.jackson.JacksonVersion Package versions: jackson-annotations=2.4.1, jackson-core=2.4.1, jackson-databind=2.4.1, jackson-dataformat-xml=unknown, jackson-datatype-jsr310=2.13.3, azure-core=1.30.0, Troubleshooting version conflicts: [https://aka.ms/azsdk/java/dependency/troubleshoot] ERROR [main] 12:03:19,494 com.azure.core.implementation.jackson.ObjectMapperShim Package versions: jackson-annotations=2.4.1, jackson-core=2.4.1, jackson-databind=2.4.1, jackson-dataformat-xml=unknown, jackson-datatype-jsr310=2.13.3, azure-core=1.30.0, Troubleshooting version conflicts: [https://aka.ms/azsdk/java/dependency/troubleshoot] Exception in thread "main" java.lang.LinkageError: Package versions: jackson-annotations=2.4.1, jackson-core=2.4.1, jackson-databind=2.4.1, jackson-dataformat-xml=unknown, jackson-datatype-jsr310=2.13.3, azure-core=1.30.0, Troubleshooting version conflicts: [https://aka.ms/azsdk/java/dependency/troubleshoot] at com.azure.core.implementation.jackson.ObjectMapperShim.createHeaderMapper(ObjectMapperShim.java:138) at com.azure.core.util.serializer.JacksonAdapter.<init>(JacksonAdapter.java:81) at com.azure.core.util.serializer.JacksonAdapter.<init>(JacksonAdapter.java:59) at com.azure.core.util.serializer.JacksonAdapter$SerializerAdapterHolder.<clinit>(JacksonAdapter.java:114) at com.azure.core.util.serializer.JacksonAdapter.createDefaultSerializerAdapter(JacksonAdapter.java:123) at com.azure.identity.implementation.IdentityClient.<clinit>(IdentityClient.java:104) at com.azure.identity.implementation.IdentityClientBuilder.build(IdentityClientBuilder.java:158) at com.azure.identity.ClientSecretCredential.<init>(ClientSecretCredential.java:68) at com.azure.identity.ClientSecretCredentialBuilder.build(ClientSecretCredentialBuilder.java:93) at main.java.emailtranslator.EmailTranslator.connectOffice365MicrosoftGraph My offending code: final ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder() .clientId(clientId) .clientSecret(clientSecret) .tenantId(tenantId) .build(); final TokenCredentialAuthProvider tokenCredentialAuthProvider = new TokenCredentialAuthProvider(scopes, clientSecretCredential); final GraphServiceClient graphClient = GraphServiceClient .builder() .authenticationProvider(tokenCredentialAuthProvider) .buildClient(); final User me = graphClient.me().buildRequest().get(); which calls azure-core-1.30.0.jar -> com.azure.core.implementation.jackson -> JacksonVersion.class line 43 onwards: private JacksonVersion() { annotationsVersion = SemanticVersion.getPackageVersionForClass("com.fasterxml.jackson.annotation.JsonProperty"); coreVersion = SemanticVersion.getPackageVersionForClass("com.fasterxml.jackson.core.JsonGenerator"); databindVersion = SemanticVersion.getPackageVersionForClass("com.fasterxml.jackson.databind.ObjectMapper"); xmlVersion = SemanticVersion.getPackageVersionForClass("com.fasterxml.jackson.dataformat.xml.XmlMapper"); jsr310Version = SemanticVersion.getPackageVersionForClass("com.fasterxml.jackson.datatype.jsr310.JavaTimeModule"); was: Azure Graph conflict on jackson. Both Tika-app 2.4.1 and Azure-core 1.30.0 use jars with classes of the same name JsonGenerator (com.fasterxml.jackson.core.JsonGenerator) when fetching the jackson version, of which jackson-core 2.13.3 is desired and set in the pom. This results in version conflict - where tika changes the jackson version from the desired 2.13.3 to tika's version 2.4.1, which doesn't even exist for jackson and would be far too old a version of jackson. ERROR [main] 12:03:19,483 com.azure.core.implementation.jackson.JacksonVersion Version '2.4.1' of package 'jackson-annotations' is not supported (older than earliest supported version - `2.10.0`), please upgrade. ERROR [main] 12:03:19,489 com.azure.core.implementation.jackson.JacksonVersion Version '2.4.1' of package 'jackson-core' is not supported (older than earliest supported version - `2.10.0`), please upgrade. ERROR [main] 12:03:19,489 com.azure.core.implementation.jackson.JacksonVersion Version '2.4.1' of package 'jackson-databind' is not supported (older than earliest supported version - `2.10.0`), please upgrade. INFO [main] 12:03:19,491 com.azure.core.implementation.jackson.JacksonVersion Package versions: jackson-annotations=2.4.1, jackson-core=2.4.1, jackson-databind=2.4.1, jackson-dataformat-xml=unknown, jackson-datatype-jsr310=2.13.3, azure-core=1.30.0, Troubleshooting version conflicts: [https://aka.ms/azsdk/java/dependency/troubleshoot] ERROR [main] 12:03:19,494 com.azure.core.implementation.jackson.ObjectMapperShim Package versions: jackson-annotations=2.4.1, jackson-core=2.4.1, jackson-databind=2.4.1, jackson-dataformat-xml=unknown, jackson-datatype-jsr310=2.13.3, azure-core=1.30.0, Troubleshooting version conflicts: [https://aka.ms/azsdk/java/dependency/troubleshoot] Exception in thread "main" java.lang.LinkageError: Package versions: jackson-annotations=2.4.1, jackson-core=2.4.1, jackson-databind=2.4.1, jackson-dataformat-xml=unknown, jackson-datatype-jsr310=2.13.3, azure-core=1.30.0, Troubleshooting version conflicts: [https://aka.ms/azsdk/java/dependency/troubleshoot] at com.azure.core.implementation.jackson.ObjectMapperShim.createHeaderMapper(ObjectMapperShim.java:138) at com.azure.core.util.serializer.JacksonAdapter.<init>(JacksonAdapter.java:81) at com.azure.core.util.serializer.JacksonAdapter.<init>(JacksonAdapter.java:59) at com.azure.core.util.serializer.JacksonAdapter$SerializerAdapterHolder.<clinit>(JacksonAdapter.java:114) at com.azure.core.util.serializer.JacksonAdapter.createDefaultSerializerAdapter(JacksonAdapter.java:123) at com.azure.identity.implementation.IdentityClient.<clinit>(IdentityClient.java:104) at com.azure.identity.implementation.IdentityClientBuilder.build(IdentityClientBuilder.java:158) at com.azure.identity.ClientSecretCredential.<init>(ClientSecretCredential.java:68) at com.azure.identity.ClientSecretCredentialBuilder.build(ClientSecretCredentialBuilder.java:93) at main.java.emailtranslator.EmailTranslator.connectOffice365MicrosoftGraph Offending code: final ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder() .clientId(clientId) .clientSecret(clientSecret) .tenantId(tenantId) .build(); final TokenCredentialAuthProvider tokenCredentialAuthProvider = new TokenCredentialAuthProvider(scopes, clientSecretCredential); final GraphServiceClient graphClient = GraphServiceClient .builder() .authenticationProvider(tokenCredentialAuthProvider) .buildClient(); final User me = graphClient.me().buildRequest().get(); > Azure Graph conflict with Tika-app on jackson (JsonGenerator) version - > changing from 2.13.3 to 2.4.1 > ----------------------------------------------------------------------------------------------------- > > Key: TIKA-3817 > URL: https://issues.apache.org/jira/browse/TIKA-3817 > Project: Tika > Issue Type: Bug > Components: app > Affects Versions: 2.4.1 > Environment: Java 1.8 Maven Pom > <dependencyManagement> > <dependencies> > <dependency> > <groupId>com.fasterxml.jackson.core</groupId> > <artifactId>jackson-annotations</artifactId> > <version>2.13.3</version> > </dependency> > <dependency> > <groupId>com.fasterxml.jackson.core</groupId> > <artifactId>jackson-core</artifactId> > <version>2.13.3</version> > </dependency> > <dependency> > <groupId>com.fasterxml.jackson.core</groupId> > <artifactId>jackson-databind</artifactId> > <version>2.13.3</version> > </dependency> > <dependency> > <groupId>com.fasterxml.jackson.dataformat</groupId> > <artifactId>jackson-dataformat-xml</artifactId> > <version>2.13.3</version> > </dependency> > <dependency> > <groupId>com.fasterxml.jackson.datatype</groupId> > <artifactId>jackson-datatype-jsr310</artifactId> > <version>2.13.3</version> > </dependency> > </dependencies> > </dependencyManagement> > > <!-- https://mvnrepository.com/artifact/com.azure/azure-core --> > <dependency> > <groupId>com.azure</groupId> > <artifactId>azure-core</artifactId> > <version>1.30.0</version><!--Jun, 2022--> > <exclusions> > <exclusion> > <groupId>com.fasterxml.jackson.core</groupId> > <artifactId>jackson-annotations</artifactId> > </exclusion> > <exclusion> > <groupId>com.fasterxml.jackson.core</groupId> > <artifactId>jackson-core</artifactId> > </exclusion> > <exclusion> > <groupId>com.fasterxml.jackson.core</groupId> > <artifactId>jackson-databind</artifactId> > </exclusion> > <exclusion> > <groupId>com.fasterxml.jackson.dataformat</groupId> > <artifactId>jackson-dataformat-xml</artifactId> > </exclusion> > <exclusion> > <groupId>com.fasterxml.jackson.datatype</groupId> > <artifactId>jackson-datatype-jsr310</artifactId> > </exclusion> > </exclusions> > </dependency> > > <!-- > https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations > --> > <dependency> > <groupId>com.fasterxml.jackson.core</groupId> > <artifactId>jackson-annotations</artifactId> > <version>2.13.3</version> > <scope>provided</scope> > </dependency> > <!-- > https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> > <dependency> > <groupId>com.fasterxml.jackson.core</groupId> > <artifactId>jackson-core</artifactId> > <version>2.13.3</version> > <scope>provided</scope> > </dependency> > <!-- > https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind > --> > <dependency> > <groupId>com.fasterxml.jackson.core</groupId> > <artifactId>jackson-databind</artifactId> > <version>2.13.3</version> > <scope>provided</scope> > </dependency> > <!-- > https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml > --> > <dependency> > <groupId>com.fasterxml.jackson.dataformat</groupId> > <artifactId>jackson-dataformat-xml</artifactId> > <version>2.13.3</version> > <scope>provided</scope> > </dependency> > <!-- > https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310 > --> > <dependency> > <groupId>com.fasterxml.jackson.datatype</groupId> > <artifactId>jackson-datatype-jsr310</artifactId> > <version>2.13.3</version> > <scope>provided</scope> > </dependency> > > <dependency> > <groupId>org.apache.tika</groupId> > <artifactId>tika-app</artifactId> > <version>2.4.1</version><!--Jun, 2022--> > <exclusions> > <exclusion> > <groupId>com.fasterxml.jackson.core</groupId> > <artifactId>jackson-annotations</artifactId> > </exclusion> > <exclusion> > <groupId>com.fasterxml.jackson.core</groupId> > <artifactId>jackson-core</artifactId> > </exclusion> > <exclusion> > <groupId>com.fasterxml.jackson.core</groupId> > <artifactId>jackson-databind</artifactId> > </exclusion> > <exclusion> > <groupId>com.fasterxml.jackson.dataformat</groupId> > <artifactId>jackson-dataformat-xml</artifactId> > </exclusion> > <exclusion> > <groupId>com.fasterxml.jackson.datatype</groupId> > <artifactId>jackson-datatype-jsr310</artifactId> > </exclusion> > </exclusions> > </dependency> > Reporter: Andre Nel > Priority: Major > Labels: Azure, jackson, tika-app, version > > Azure Graph conflict on jackson. > Both Tika-app 2.4.1 and Azure-core 1.30.0 use jars with classes of the same > name JsonGenerator (com.fasterxml.jackson.core.JsonGenerator) when fetching > the jackson version, of which jackson-core 2.13.3 is desired and set in the > pom. This results in version conflict - where tika changes the jackson > version from the desired 2.13.3 to tika's version 2.4.1, which doesn't even > exist for jackson and would be far too old a version of jackson. > > ERROR [main] 12:03:19,483 > com.azure.core.implementation.jackson.JacksonVersion Version '2.4.1' of > package 'jackson-annotations' is not supported (older than earliest supported > version - `2.10.0`), please upgrade. > ERROR [main] 12:03:19,489 > com.azure.core.implementation.jackson.JacksonVersion Version '2.4.1' of > package 'jackson-core' is not supported (older than earliest supported > version - `2.10.0`), please upgrade. > ERROR [main] 12:03:19,489 > com.azure.core.implementation.jackson.JacksonVersion Version '2.4.1' of > package 'jackson-databind' is not supported (older than earliest supported > version - `2.10.0`), please upgrade. > INFO [main] 12:03:19,491 > com.azure.core.implementation.jackson.JacksonVersion Package versions: > jackson-annotations=2.4.1, jackson-core=2.4.1, jackson-databind=2.4.1, > jackson-dataformat-xml=unknown, jackson-datatype-jsr310=2.13.3, > azure-core=1.30.0, Troubleshooting version conflicts: > [https://aka.ms/azsdk/java/dependency/troubleshoot] > ERROR [main] 12:03:19,494 > com.azure.core.implementation.jackson.ObjectMapperShim Package versions: > jackson-annotations=2.4.1, jackson-core=2.4.1, jackson-databind=2.4.1, > jackson-dataformat-xml=unknown, jackson-datatype-jsr310=2.13.3, > azure-core=1.30.0, Troubleshooting version conflicts: > [https://aka.ms/azsdk/java/dependency/troubleshoot] > Exception in thread "main" java.lang.LinkageError: Package versions: > jackson-annotations=2.4.1, jackson-core=2.4.1, jackson-databind=2.4.1, > jackson-dataformat-xml=unknown, jackson-datatype-jsr310=2.13.3, > azure-core=1.30.0, Troubleshooting version conflicts: > [https://aka.ms/azsdk/java/dependency/troubleshoot] > at > com.azure.core.implementation.jackson.ObjectMapperShim.createHeaderMapper(ObjectMapperShim.java:138) > at > com.azure.core.util.serializer.JacksonAdapter.<init>(JacksonAdapter.java:81) > at > com.azure.core.util.serializer.JacksonAdapter.<init>(JacksonAdapter.java:59) > at > com.azure.core.util.serializer.JacksonAdapter$SerializerAdapterHolder.<clinit>(JacksonAdapter.java:114) > at > com.azure.core.util.serializer.JacksonAdapter.createDefaultSerializerAdapter(JacksonAdapter.java:123) > at > com.azure.identity.implementation.IdentityClient.<clinit>(IdentityClient.java:104) > at > com.azure.identity.implementation.IdentityClientBuilder.build(IdentityClientBuilder.java:158) > at > com.azure.identity.ClientSecretCredential.<init>(ClientSecretCredential.java:68) > at > com.azure.identity.ClientSecretCredentialBuilder.build(ClientSecretCredentialBuilder.java:93) > at > main.java.emailtranslator.EmailTranslator.connectOffice365MicrosoftGraph > > My offending code: > final ClientSecretCredential clientSecretCredential = new > ClientSecretCredentialBuilder() > .clientId(clientId) > .clientSecret(clientSecret) > .tenantId(tenantId) > .build(); > final TokenCredentialAuthProvider tokenCredentialAuthProvider = > new TokenCredentialAuthProvider(scopes, clientSecretCredential); > final GraphServiceClient graphClient = > GraphServiceClient > .builder() > .authenticationProvider(tokenCredentialAuthProvider) > .buildClient(); > final User me = graphClient.me().buildRequest().get(); > > which calls azure-core-1.30.0.jar -> com.azure.core.implementation.jackson -> > JacksonVersion.class line 43 onwards: > private JacksonVersion() { > annotationsVersion = > SemanticVersion.getPackageVersionForClass("com.fasterxml.jackson.annotation.JsonProperty"); > coreVersion = > SemanticVersion.getPackageVersionForClass("com.fasterxml.jackson.core.JsonGenerator"); > databindVersion = > SemanticVersion.getPackageVersionForClass("com.fasterxml.jackson.databind.ObjectMapper"); > xmlVersion = > SemanticVersion.getPackageVersionForClass("com.fasterxml.jackson.dataformat.xml.XmlMapper"); > jsr310Version = > SemanticVersion.getPackageVersionForClass("com.fasterxml.jackson.datatype.jsr310.JavaTimeModule"); -- This message was sent by Atlassian Jira (v8.20.10#820010)