Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NoSuchMethod error with Java SDK basic project #104

Open
franck102 opened this issue Jun 7, 2023 · 11 comments
Open

NoSuchMethod error with Java SDK basic project #104

franck102 opened this issue Jun 7, 2023 · 11 comments
Labels
wontfix This will not be worked on

Comments

@franck102
Copy link

franck102 commented Jun 7, 2023

Describe the bug
A basic java SDK project trying to create a location generates an okhttp NoSuchMethodError with the first payment API request.

Expected behavior
The _client.getLocationsApi().createLocation(request) call should succeed.

To Reproduce
Steps to reproduce the bug:

_client = new SquareClient.Builder()
                .environment(Environment.SANDBOX).accessToken(accessToken).build();
CreateLocationRequest request = new CreateLocationRequest.Builder().
                            location(new Location.Builder().name(venue.getName()).
                                    build()).build();
_client.getLocationsApi().createLocation(request)

Square SDK version

 <dependency>
      <groupId>com.squareup</groupId>
      <artifactId>square</artifactId>
      <version>29.0.0.20230517</version>
    </dependency>

** What I tried **

I tried downgrading to 28.0.0.20230419 (as shown in the dependency tree below), same exception.

By default there is a dependency convergence issue with io.apimatic:io.apimatic; adding this entry in dependencyManagement solves the convergence issue, but the exception still occurs:

 <dependency>
        <groupId>io.apimatic</groupId>
        <artifactId>io.apimatic</artifactId>
        <version>0.1.7</version>
        <scope>compile</scope>
      </dependency>

** What I tried: without dependency convergence **

Exception raised:


 17:10:33 ERROR [or.jb.re.re.co.co.AbstractResteasyReactiveContext] (executor-thread-3) Request failed: java.lang.NoSuchMethodError: 'okhttp3.RequestBody okhttp3.RequestBody.create(byte[], okhttp3.MediaType)'
 	at io.apimatic.okhttpclient.adapter.OkClient.convertRequest(OkClient.java:420)
 	at io.apimatic.okhttpclient.adapter.OkClient.execute(OkClient.java:258)
 	at io.apimatic.core.ApiCall.execute(ApiCall.java:65)
 	at com.squareup.square.api.DefaultLocationsApi.createLocation(DefaultLocationsApi.java:98)

Maven dependency tree:

[INFO] --- dependency:2.8:tree (default-cli) @ ep-payment ---
[WARNING] Parameter 'localRepository' is deprecated core expression; Avoid use of ArtifactRepository type. If you need access to local repository, switch to '${repositorySystemSession}' expression and get LRM from it instead.
[INFO] com.easypass:ep-payment:jar:0.5.34
[INFO] +- com.easypass:ep-common:jar:0.5.34:compile
[INFO] |  +- com.googlecode.libphonenumber:libphonenumber:jar:8.13.2:compile
[INFO] |  +- io.quarkus:quarkus-oidc:jar:2.14.2.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-vertx-http:jar:2.14.2.Final:compile
[INFO] |  |  |  +- io.quarkus:quarkus-security-runtime-spi:jar:2.14.2.Final:compile
[INFO] |  |  |  +- io.quarkus:quarkus-credentials:jar:2.14.2.Final:compile
[INFO] |  |  |  +- io.quarkus:quarkus-vertx-http-dev-console-runtime-spi:jar:2.14.2.Final:compile
[INFO] |  |  |  +- io.quarkus.security:quarkus-security:jar:1.1.4.Final:compile
[INFO] |  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-web:jar:2.27.0:compile
[INFO] |  |  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-web-common:jar:2.27.0:compile
[INFO] |  |  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-auth-common:jar:2.27.0:compile
[INFO] |  |  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-bridge-common:jar:2.27.0:compile
[INFO] |  |  |  |  \- io.smallrye.reactive:smallrye-mutiny-vertx-uri-template:jar:2.27.0:compile
[INFO] |  |  |  |     \- io.vertx:vertx-uri-template:jar:4.3.4:compile
[INFO] |  |  |  +- io.vertx:vertx-web:jar:4.3.4:compile
[INFO] |  |  |  |  +- io.vertx:vertx-web-common:jar:4.3.4:compile
[INFO] |  |  |  |  +- io.vertx:vertx-auth-common:jar:4.3.4:compile
[INFO] |  |  |  |  \- io.vertx:vertx-bridge-common:jar:4.3.4:compile
[INFO] |  |  |  \- io.github.crac:org-crac:jar:0.1.1:compile
[INFO] |  |  +- io.quarkus:quarkus-security:jar:2.14.2.Final:compile
[INFO] |  |  |  \- jakarta.interceptor:jakarta.interceptor-api:jar:1.2.5:compile
[INFO] |  |  +- io.quarkus:quarkus-jsonp:jar:2.14.2.Final:compile
[INFO] |  |  |  \- org.glassfish:jakarta.json:jar:1.1.6:compile
[INFO] |  |  +- io.quarkus:quarkus-oidc-common:jar:2.14.2.Final:compile
[INFO] |  |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-web-client:jar:2.27.0:compile
[INFO] |  |  |  |  \- io.vertx:vertx-web-client:jar:4.3.4:compile
[INFO] |  |  |  \- io.quarkus:quarkus-smallrye-jwt-build:jar:2.14.2.Final:compile
[INFO] |  |  |     \- io.smallrye:smallrye-jwt-build:jar:3.5.4:compile
[INFO] |  |  +- io.smallrye:smallrye-jwt:jar:3.5.4:compile
[INFO] |  |  |  +- org.eclipse.microprofile.config:microprofile-config-api:jar:2.0.1:compile
[INFO] |  |  |  +- org.bitbucket.b_c:jose4j:jar:0.8.0:compile
[INFO] |  |  |  \- io.smallrye:smallrye-jwt-common:jar:3.5.4:compile
[INFO] |  |  \- jakarta.annotation:jakarta.annotation-api:jar:1.3.5:compile
[INFO] |  +- io.quarkus:quarkus-resteasy-reactive-jackson:jar:2.14.2.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-resteasy-reactive:jar:2.14.2.Final:compile
[INFO] |  |  |  +- io.quarkus:quarkus-resteasy-reactive-common:jar:2.14.2.Final:compile
[INFO] |  |  |  |  \- io.quarkus.resteasy.reactive:resteasy-reactive-common:jar:2.14.2.Final:compile
[INFO] |  |  |  |     \- io.quarkus.resteasy.reactive:resteasy-reactive-common-types:jar:2.14.2.Final:compile
[INFO] |  |  |  \- io.quarkus.resteasy.reactive:resteasy-reactive-vertx:jar:2.14.2.Final:compile
[INFO] |  |  |     +- io.quarkus.resteasy.reactive:resteasy-reactive:jar:2.14.2.Final:compile
[INFO] |  |  |     \- org.jboss.spec.javax.ws.rs:jboss-jaxrs-api_2.1_spec:jar:2.0.1.Final:compile
[INFO] |  |  \- io.quarkus:quarkus-resteasy-reactive-jackson-common:jar:2.14.2.Final:compile
[INFO] |  |     +- io.quarkus.resteasy.reactive:resteasy-reactive-jackson:jar:2.14.2.Final:compile
[INFO] |  |     \- io.quarkus:quarkus-jackson:jar:2.14.2.Final:compile
[INFO] |  |        +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.4:compile
[INFO] |  |        +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.13.4:compile
[INFO] |  |        \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.13.4:compile
[INFO] |  +- org.apache.commons:commons-jcs3-core:jar:3.1:compile
[INFO] |  +- org.eclipse.microprofile.jwt:microprofile-jwt-auth-api:jar:1.2:compile
[INFO] |  \- org.mybatis:mybatis:jar:3.5.10:compile
[INFO] +- com.easypass:ep-core:jar:0.5.34:compile
[INFO] |  +- at.favre.lib:bcrypt:jar:0.9.0:compile
[INFO] |  |  \- at.favre.lib:bytes:jar:1.3.0:compile
[INFO] |  +- commons-io:commons-io:jar:2.11.0:compile
[INFO] |  +- commons-validator:commons-validator:jar:1.7:compile
[INFO] |  |  +- commons-beanutils:commons-beanutils:jar:1.9.4:compile
[INFO] |  |  +- commons-digester:commons-digester:jar:2.1:compile
[INFO] |  |  \- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] |  +- io.quarkiverse.mybatis:quarkus-mybatis:jar:1.0.4:compile
[INFO] |  |  \- io.quarkus:quarkus-agroal:jar:2.14.2.Final:compile
[INFO] |  |     +- io.quarkus:quarkus-datasource:jar:2.14.2.Final:compile
[INFO] |  |     +- io.agroal:agroal-api:jar:1.16:compile
[INFO] |  |     +- io.agroal:agroal-narayana:jar:1.16:compile
[INFO] |  |     \- io.agroal:agroal-pool:jar:1.16:compile
[INFO] |  +- io.quarkus:quarkus-jdbc-postgresql:jar:2.14.2.Final:compile
[INFO] |  |  \- org.postgresql:postgresql:jar:42.5.1:compile
[INFO] |  +- io.quarkus:quarkus-keycloak-admin-client-reactive:jar:2.14.2.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-rest-client-reactive-jackson:jar:2.14.2.Final:compile
[INFO] |  |  |  \- io.quarkus:quarkus-rest-client-reactive:jar:2.14.2.Final:compile
[INFO] |  |  |     +- io.quarkus:quarkus-jaxrs-client-reactive:jar:2.14.2.Final:compile
[INFO] |  |  |     |  \- io.quarkus.resteasy.reactive:resteasy-reactive-client:jar:2.14.2.Final:compile
[INFO] |  |  |     +- io.quarkus:quarkus-smallrye-stork:jar:2.14.2.Final:compile
[INFO] |  |  |     +- io.quarkus:quarkus-rest-client-config:jar:2.14.2.Final:compile
[INFO] |  |  |     +- io.smallrye.stork:stork-api:jar:1.3.0:compile
[INFO] |  |  |     +- io.smallrye.stork:stork-core:jar:1.3.0:compile
[INFO] |  |  |     \- org.eclipse.microprofile.rest.client:microprofile-rest-client-api:jar:2.0:compile
[INFO] |  |  +- org.keycloak:keycloak-core:jar:19.0.3:compile
[INFO] |  |  |  \- org.keycloak:keycloak-common:jar:19.0.3:compile
[INFO] |  |  +- com.sun.activation:jakarta.activation:jar:1.2.1:compile
[INFO] |  |  +- org.keycloak:keycloak-admin-client:jar:19.0.3:compile
[INFO] |  |  +- org.jboss.logging:commons-logging-jboss-logging:jar:1.0.0.Final:compile
[INFO] |  |  \- io.quarkus:quarkus-keycloak-admin-client-common:jar:2.14.2.Final:compile
[INFO] |  +- io.quarkus:quarkus-liquibase:jar:2.14.2.Final:compile
[INFO] |  |  +- org.liquibase:liquibase-core:jar:4.16.1:compile
[INFO] |  |  |  \- com.opencsv:opencsv:jar:5.6:compile
[INFO] |  |  |     +- org.apache.commons:commons-text:jar:1.10.0:compile
[INFO] |  |  |     \- org.apache.commons:commons-collections4:jar:4.4:compile
[INFO] |  |  +- org.osgi:osgi.core:jar:6.0.0:compile
[INFO] |  |  +- org.yaml:snakeyaml:jar:1.33:compile
[INFO] |  |  +- io.quarkus:quarkus-jaxb:jar:2.14.2.Final:compile
[INFO] |  |  |  +- io.quarkus:quarkus-jaxp:jar:2.14.2.Final:compile
[INFO] |  |  |  \- org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec:jar:2.0.0.Final:compile
[INFO] |  |  \- io.quarkus:quarkus-datasource-common:jar:2.14.2.Final:compile
[INFO] |  +- io.quarkus:quarkus-smallrye-health:jar:2.14.2.Final:compile
[INFO] |  |  +- io.smallrye:smallrye-health:jar:3.3.0:compile
[INFO] |  |  |  +- org.eclipse.microprofile.health:microprofile-health-api:jar:3.1:compile
[INFO] |  |  |  \- io.smallrye:smallrye-health-api:jar:3.3.0:compile
[INFO] |  |  \- io.smallrye:smallrye-health-provided-checks:jar:3.3.0:compile
[INFO] |  +- org.apache.commons:commons-csv:jar:1.9.0:compile
[INFO] |  \- org.mybatis.dynamic-sql:mybatis-dynamic-sql:jar:1.4.1:compile
[INFO] +- com.squareup:square:jar:29.0.0.20230517:compile
[INFO] |  +- io.apimatic:core-interfaces:jar:0.1.7:compile
[INFO] |  |  \- com.squareup.okhttp3:okhttp:jar:3.14.9:compile
[INFO] |  |     \- com.squareup.okio:okio:jar:1.17.2:compile
[INFO] |  +- io.apimatic:core:jar:0.4.5:compile (version selected from constraint [0.4,0.5))
[INFO] |  |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.2:compile
[INFO] |  |  +- junit:junit:jar:4.13.2:compile
[INFO] |  |  |  \- org.hamcrest:hamcrest-core:jar:1.3:compile
[INFO] |  |  +- javax.xml.bind:jaxb-api:jar:2.4.0-b180830.0359:compile
[INFO] |  |  |  \- javax.activation:javax.activation-api:jar:1.2.0:compile
[INFO] |  |  +- org.glassfish.jaxb:jaxb-runtime:jar:2.3.3-b02:compile
[INFO] |  |  |  +- jakarta.xml.bind:jakarta.xml.bind-api:jar:2.3.3:compile
[INFO] |  |  |  +- org.glassfish.jaxb:txw2:jar:2.3.3-b02:compile
[INFO] |  |  |  \- com.sun.istack:istack-commons-runtime:jar:3.0.10:compile
[INFO] |  |  +- com.fasterxml.jackson.core:jackson-core:jar:2.13.4:compile
[INFO] |  |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.4:compile
[INFO] |  |  +- org.slf4j:slf4j-api:jar:1.7.36:compile
[INFO] |  |  \- org.glassfish:javax.json:jar:1.1.4:compile
[INFO] |  \- io.apimatic:okhttp-client-adapter:jar:0.1.6:compile (version selected from constraint [0.1,0.2))
[INFO] |     \- org.hamcrest:hamcrest-all:jar:1.3:compile
[INFO] +- io.quarkus:quarkus-arc:jar:2.14.2.Final:compile
[INFO] |  +- io.quarkus.arc:arc:jar:2.14.2.Final:compile
[INFO] |  |  +- jakarta.enterprise:jakarta.enterprise.cdi-api:jar:2.0.2:compile
[INFO] |  |  |  \- jakarta.el:jakarta.el-api:jar:3.0.3:compile
[INFO] |  |  +- io.smallrye.reactive:mutiny:jar:1.8.0:compile
[INFO] |  |  \- org.jboss.logging:jboss-logging:jar:3.5.0.Final:compile
[INFO] |  +- io.quarkus:quarkus-core:jar:2.14.2.Final:compile
[INFO] |  |  +- jakarta.inject:jakarta.inject-api:jar:1.0:compile
[INFO] |  |  +- io.quarkus:quarkus-ide-launcher:jar:2.14.2.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-development-mode-spi:jar:2.14.2.Final:compile
[INFO] |  |  +- io.smallrye.config:smallrye-config:jar:2.12.1:compile
[INFO] |  |  |  \- io.smallrye.config:smallrye-config-core:jar:2.12.1:compile
[INFO] |  |  |     +- io.smallrye.common:smallrye-common-expression:jar:1.13.2:compile
[INFO] |  |  |     |  \- io.smallrye.common:smallrye-common-function:jar:1.13.2:compile
[INFO] |  |  |     +- io.smallrye.common:smallrye-common-classloader:jar:1.13.2:compile
[INFO] |  |  |     \- io.smallrye.config:smallrye-config-common:jar:2.12.1:compile
[INFO] |  |  +- org.jboss.logmanager:jboss-logmanager-embedded:jar:1.0.11:compile
[INFO] |  |  +- org.jboss.logging:jboss-logging-annotations:jar:2.2.1.Final:compile
[INFO] |  |  +- org.jboss.threads:jboss-threads:jar:3.4.3.Final:compile
[INFO] |  |  +- org.graalvm.sdk:graal-sdk:jar:22.3.0:compile
[INFO] |  |  +- org.wildfly.common:wildfly-common:jar:1.5.4.Final-format-001:compile
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-runner:jar:2.14.2.Final:compile
[INFO] |  |  \- io.quarkus:quarkus-fs-util:jar:0.0.9:compile
[INFO] |  \- org.eclipse.microprofile.context-propagation:microprofile-context-propagation-api:jar:1.2:compile
[INFO] +- io.quarkus:quarkus-narayana-jta:jar:2.14.2.Final:compile
[INFO] |  +- io.quarkus:quarkus-transaction-annotations:jar:2.14.2.Final:compile
[INFO] |  +- io.quarkus:quarkus-mutiny:jar:2.14.2.Final:compile
[INFO] |  |  +- io.quarkus:quarkus-smallrye-context-propagation:jar:2.14.2.Final:compile
[INFO] |  |  |  \- io.smallrye:smallrye-context-propagation:jar:1.2.2:compile
[INFO] |  |  |     +- io.smallrye:smallrye-context-propagation-api:jar:1.2.2:compile
[INFO] |  |  |     \- io.smallrye:smallrye-context-propagation-storage:jar:1.2.2:compile
[INFO] |  |  \- io.smallrye.reactive:mutiny-smallrye-context-propagation:jar:1.8.0:compile
[INFO] |  +- io.smallrye:smallrye-context-propagation-jta:jar:1.2.2:compile
[INFO] |  +- jakarta.transaction:jakarta.transaction-api:jar:1.3.3:compile
[INFO] |  +- io.smallrye.reactive:smallrye-reactive-converter-api:jar:2.7.0:compile
[INFO] |  |  \- org.reactivestreams:reactive-streams:jar:1.0.3:compile
[INFO] |  +- io.smallrye.reactive:smallrye-reactive-converter-mutiny:jar:2.7.0:compile
[INFO] |  +- org.jboss.narayana.jta:narayana-jta:jar:5.13.1.Final:compile
[INFO] |  |  +- org.jboss:jboss-transaction-spi:jar:7.6.0.Final:compile
[INFO] |  |  \- org.jboss.spec.javax.resource:jboss-connector-api_1.7_spec:jar:1.0.0.Final:compile
[INFO] |  \- org.jboss.narayana.jts:narayana-jts-integration:jar:5.13.1.Final:compile
[INFO] +- io.quarkus:quarkus-vertx:jar:2.14.2.Final:compile
[INFO] |  +- io.quarkus:quarkus-netty:jar:2.14.2.Final:compile
[INFO] |  |  +- io.netty:netty-codec:jar:4.1.82.Final:compile
[INFO] |  |  |  \- io.netty:netty-common:jar:4.1.82.Final:compile
[INFO] |  |  +- io.netty:netty-codec-http:jar:4.1.82.Final:compile
[INFO] |  |  +- io.netty:netty-codec-http2:jar:4.1.82.Final:compile
[INFO] |  |  +- io.netty:netty-handler:jar:4.1.82.Final:compile
[INFO] |  |  |  +- io.netty:netty-resolver:jar:4.1.82.Final:compile
[INFO] |  |  |  \- io.netty:netty-transport-native-unix-common:jar:4.1.82.Final:compile
[INFO] |  |  \- com.aayushatharva.brotli4j:brotli4j:jar:1.8.0:compile
[INFO] |  |     \- com.aayushatharva.brotli4j:native-osx-aarch64:jar:1.8.0:compile
[INFO] |  +- io.netty:netty-codec-haproxy:jar:4.1.82.Final:compile
[INFO] |  |  +- io.netty:netty-buffer:jar:4.1.82.Final:compile
[INFO] |  |  \- io.netty:netty-transport:jar:4.1.82.Final:compile
[INFO] |  +- io.smallrye.common:smallrye-common-annotation:jar:1.13.2:compile
[INFO] |  +- io.smallrye.common:smallrye-common-vertx-context:jar:1.13.2:compile
[INFO] |  |  +- io.vertx:vertx-core:jar:4.3.4:compile
[INFO] |  |  |  +- io.netty:netty-handler-proxy:jar:4.1.82.Final:compile
[INFO] |  |  |  |  \- io.netty:netty-codec-socks:jar:4.1.82.Final:compile
[INFO] |  |  |  \- io.netty:netty-resolver-dns:jar:4.1.82.Final:compile
[INFO] |  |  |     \- io.netty:netty-codec-dns:jar:4.1.82.Final:compile
[INFO] |  |  \- io.smallrye.common:smallrye-common-constraint:jar:1.13.2:compile
[INFO] |  +- io.quarkus:quarkus-vertx-latebound-mdc-provider:jar:2.14.2.Final:compile
[INFO] |  +- io.smallrye.reactive:smallrye-mutiny-vertx-core:jar:2.27.0:compile
[INFO] |  |  +- io.smallrye.reactive:smallrye-mutiny-vertx-runtime:jar:2.27.0:compile
[INFO] |  |  \- io.smallrye.reactive:vertx-mutiny-generator:jar:2.27.0:compile
[INFO] |  |     \- io.vertx:vertx-codegen:jar:4.3.4:compile
[INFO] |  \- io.smallrye:smallrye-fault-tolerance-vertx:jar:5.5.0:compile
[INFO] +- org.jboss.slf4j:slf4j-jboss-logmanager:jar:1.2.0.Final:compile
[INFO] +- io.quarkus:quarkus-junit5:jar:2.14.2.Final:test
[INFO] |  +- io.quarkus:quarkus-bootstrap-core:jar:2.14.2.Final:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-app-model:jar:2.14.2.Final:test
[INFO] |  |  \- io.smallrye.common:smallrye-common-io:jar:1.13.2:compile
[INFO] |  +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.5:test
[INFO] |  +- io.quarkus:quarkus-test-common:jar:2.14.2.Final:test
[INFO] |  |  +- io.quarkus:quarkus-core-deployment:jar:2.14.2.Final:test
[INFO] |  |  |  +- org.aesh:readline:jar:2.2:test
[INFO] |  |  |  |  \- org.fusesource.jansi:jansi:jar:1.18:test
[INFO] |  |  |  +- org.aesh:aesh:jar:2.6:test
[INFO] |  |  |  +- io.quarkus.gizmo:gizmo:jar:1.4.0.Final:test
[INFO] |  |  |  |  \- org.ow2.asm:asm-util:jar:9.4:test
[INFO] |  |  |  |     \- org.ow2.asm:asm-analysis:jar:9.4:test
[INFO] |  |  |  +- org.ow2.asm:asm:jar:9.4:test
[INFO] |  |  |  +- org.ow2.asm:asm-commons:jar:9.4:test
[INFO] |  |  |  |  \- org.ow2.asm:asm-tree:jar:9.4:test
[INFO] |  |  |  +- io.quarkus:quarkus-class-change-agent:jar:2.14.2.Final:test
[INFO] |  |  |  +- io.quarkus:quarkus-devtools-utilities:jar:2.14.2.Final:test
[INFO] |  |  |  +- io.quarkus:quarkus-builder:jar:2.14.2.Final:test
[INFO] |  |  |  \- org.junit.platform:junit-platform-launcher:jar:1.9.1:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-maven-resolver:jar:2.14.2.Final:test
[INFO] |  |  |  +- org.apache.maven:maven-embedder:jar:3.8.6:test
[INFO] |  |  |  |  +- org.apache.maven:maven-settings:jar:3.8.6:test
[INFO] |  |  |  |  +- org.apache.maven:maven-core:jar:3.8.6:test
[INFO] |  |  |  |  |  +- org.apache.maven:maven-artifact:jar:3.8.6:test
[INFO] |  |  |  |  |  \- org.codehaus.plexus:plexus-component-annotations:jar:2.1.0:test
[INFO] |  |  |  |  +- org.apache.maven:maven-plugin-api:jar:3.8.6:test
[INFO] |  |  |  |  +- org.apache.maven:maven-model:jar:3.8.6:test
[INFO] |  |  |  |  +- org.apache.maven:maven-model-builder:jar:3.8.6:test
[INFO] |  |  |  |  +- org.apache.maven:maven-builder-support:jar:3.8.6:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-api:jar:1.6.3:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-util:jar:1.6.3:test
[INFO] |  |  |  |  +- org.apache.maven.shared:maven-shared-utils:jar:3.3.4:test
[INFO] |  |  |  |  +- com.google.inject:guice:jar:no_aop:4.2.2:test
[INFO] |  |  |  |  |  \- com.google.guava:guava:jar:31.1-jre:test
[INFO] |  |  |  |  |     \- com.google.guava:failureaccess:jar:1.0.1:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-classworlds:jar:2.6.0:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-sec-dispatcher:jar:2.0:test
[INFO] |  |  |  |  +- org.codehaus.plexus:plexus-cipher:jar:2.0:test
[INFO] |  |  |  |  \- commons-cli:commons-cli:jar:1.4:test
[INFO] |  |  |  +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.5:test
[INFO] |  |  |  +- org.apache.maven:maven-settings-builder:jar:3.8.6:test
[INFO] |  |  |  |  \- org.codehaus.plexus:plexus-interpolation:jar:1.26:test
[INFO] |  |  |  +- org.apache.maven:maven-resolver-provider:jar:3.8.6:test
[INFO] |  |  |  |  +- org.apache.maven:maven-repository-metadata:jar:3.8.6:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-spi:jar:1.6.3:test
[INFO] |  |  |  |  +- org.apache.maven.resolver:maven-resolver-impl:jar:1.6.3:test
[INFO] |  |  |  |  \- org.codehaus.plexus:plexus-utils:jar:3.3.0:test
[INFO] |  |  |  +- org.apache.maven.resolver:maven-resolver-connector-basic:jar:1.6.3:test
[INFO] |  |  |  +- org.apache.maven.resolver:maven-resolver-transport-wagon:jar:1.6.3:test
[INFO] |  |  |  +- org.apache.maven.wagon:wagon-http:jar:3.5.1:test
[INFO] |  |  |  |  +- org.apache.maven.wagon:wagon-http-shared:jar:3.5.1:test
[INFO] |  |  |  |  \- org.apache.maven.wagon:wagon-provider-api:jar:3.5.1:test
[INFO] |  |  |  \- org.apache.maven.wagon:wagon-file:jar:3.5.1:test
[INFO] |  |  +- io.quarkus:quarkus-bootstrap-gradle-resolver:jar:2.14.2.Final:test
[INFO] |  |  \- io.smallrye:jandex:jar:3.0.4:compile
[INFO] |  +- io.quarkus:quarkus-junit5-properties:jar:2.14.2.Final:test
[INFO] |  +- org.junit.jupiter:junit-jupiter:jar:5.9.1:test
[INFO] |  |  +- org.junit.jupiter:junit-jupiter-api:jar:5.9.1:test
[INFO] |  |  |  +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] |  |  |  +- org.junit.platform:junit-platform-commons:jar:1.9.1:test
[INFO] |  |  |  \- org.apiguardian:apiguardian-api:jar:1.1.2:test
[INFO] |  |  +- org.junit.jupiter:junit-jupiter-params:jar:5.9.1:test
[INFO] |  |  \- org.junit.jupiter:junit-jupiter-engine:jar:5.9.1:test
[INFO] |  |     \- org.junit.platform:junit-platform-engine:jar:1.9.1:test
[INFO] |  \- com.thoughtworks.xstream:xstream:jar:1.4.19:test
[INFO] |     \- io.github.x-stream:mxparser:jar:1.2.2:test
[INFO] |        \- xmlpull:xmlpull:jar:1.1.3.1:test
[INFO] \- io.rest-assured:rest-assured:jar:5.1.0:test
[INFO]    +- org.apache.groovy:groovy:jar:4.0.1:test
[INFO]    +- org.apache.groovy:groovy-xml:jar:4.0.1:test
[INFO]    +- org.apache.httpcomponents:httpclient:jar:4.5.13:test
[INFO]    |  +- org.apache.httpcomponents:httpcore:jar:4.4.15:test
[INFO]    |  +- commons-logging:commons-logging:jar:1.2:test
[INFO]    |  \- commons-codec:commons-codec:jar:1.15:test
[INFO]    +- org.apache.httpcomponents:httpmime:jar:4.5.13:test
[INFO]    +- org.hamcrest:hamcrest:jar:2.1:test
[INFO]    +- org.ccil.cowan.tagsoup:tagsoup:jar:1.2.1:test
[INFO]    +- io.rest-assured:json-path:jar:5.1.0:test
[INFO]    |  +- org.apache.groovy:groovy-json:jar:4.0.1:test
[INFO]    |  \- io.rest-assured:rest-assured-common:jar:5.1.0:test
[INFO]    \- io.rest-assured:xml-path:jar:5.1.0:test
[INFO]       \- org.apache.commons:commons-lang3:jar:3.12.0:compile
@zenmasterjobo
Copy link

Hi @franck102 -

Take a look at this issue #100

We are still assessing this internally, but your issue here seems similar. Let me know if you think something else is going on here!

@franck102
Copy link
Author

Hi @zenmasterjobo , this is neither the same missing method nor the same library, so I doubt the issues are related.

As you can see the Square SDK depends on io.apimatic:okhttp-client-adapter:jar:0.1.6 which generates code trying to call okhttp's RequestBody.create method with arguments in the wrong order... something is wrong with the dependency tree below.

It is very possible that the problem comes from apimatic or okhttp3, but I don't have a workaround at this point...

[INFO] +- com.squareup:square:jar:29.0.0.20230517:compile
[INFO] |  +- io.apimatic:core-interfaces:jar:0.1.7:compile (version selected from constraint [0.1,0.2))
[INFO] |  |  \- com.squareup.okhttp3:okhttp:jar:3.14.9:compile
[INFO] |  +- io.apimatic:core:jar:0.4.5:compile (version selected from constraint [0.4,0.5))
[INFO] |  \- io.apimatic:okhttp-client-adapter:jar:0.1.6:compile (version selected from constraint [0.1,0.2))

@zeppelinux
Copy link

I had the same issue (before facing #100).
You can have a look at my pom.xml file (relevant snippet is provided in #100 as well) for a workaround that works for me (just ignore the jakarta stuff).

@franck102
Copy link
Author

Hi @zeppelinux ,

Could you post your dependency tree? I did try okhttp 4.11.0 and that didn't help... not surprisingly since the create method expects the media type as the first argument.

The problem seems to come from io.apimatic.okhttpclient.adapter.OkClient.convertRequest calling create with an old signature, but I can't find a more recent version of io.apimatic:okhttp-client-adapter.

@zeppelinux
Copy link

Hey @franck102 there is some weirdness going on in the square pom. I spent some time trying to get to the bottom of it, but didn't solve the root cause.
Everything you need is in this comment, notice the usage of alpha version (nothing else works) #100 (comment)

@franck102
Copy link
Author

Hey @franck102 there is some weirdness going on in the square pom. I spent some time trying to get to the bottom of it, but didn't solve the root cause. Everything you need is in this comment, notice the usage of alpha version (nothing else works) #100 (comment)

Thanks @zeppelinux , I finally managed to make this work thanks in part to your suggestions.
Regarding Quarkus one critical change was to override the versions brought in by the quarkus BOM:

<dependencyManagement>
        <dependencies>
            <?SORTPOM IGNORE?>
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>logging-interceptor</artifactId>
                <version>5.0.0-alpha.11</version>
            </dependency>
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>okhttp</artifactId>
                <version>5.0.0-alpha.11</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.platform</groupId>
                <artifactId>quarkus-bom</artifactId>
                <version>${quarkus.platform.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <?SORTPOM RESUME?>

@zeppelinux
Copy link

@franck102 I'm glad to hear my suggestion helped! I don't see any exclusions in your snippet though... Are you sure you are not getting two okhttp jars in the classpath?

@zenmasterjobo
Copy link

🎉 @zeppelinux Thank you very much for contributing your thoughts and guidance on this!!

@zeppelinux
Copy link

No worries @zenmasterjobo, it's all what Open Source is about, right? 🍻

@franck102
Copy link
Author

franck102 commented Jun 8, 2023

@franck102 I'm glad to hear my suggestion helped! I don't see any exclusions in your snippet though... Are you sure you are not getting two okhttp jars in the classpath?

I do have the exclusions you suggested, but in <dependencies> - they won't be taken into account in the dependencyManagement section (see the maven docs).

Quarkus anyway never included two jars for a given maven coordinate; but what I can recommend if you use Quarkus is to go check the target/quarkus-app/lib/main directory for the jars actually included in the Quarkus runtime, as opposed to trusting the output of mvn dependency:tree/list: Quarkus seems to have its own logic to resolve the dependencies.

I am not out of the woods yet since there seems to be some kind of interaction between the okhttp and okhttp3 libraries (or more likely their transitive dependencies), my Square API calls only work if I break the SendinBlue APIs by adding those exclusions:

 <dependency>
      <groupId>com.sendinblue</groupId>
      <artifactId>sib-api-v3-sdk</artifactId>
      <exclusions>
        <exclusion>
          <groupId>com.squareup.okhttp</groupId>
          <artifactId>okhttp</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.squareup.okhttp</groupId>
          <artifactId>logging-interceptor</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.squareup.okio</groupId>
          <artifactId>okio</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

It may be that a comon okio version solves the issue, but I haven't had time to test that yet.

@zeppelinux
Copy link

Hi @franck102, the dependencyManagement exclusions work as expected as long as they applied not to import. I confirmed this by looking at the target/uarkus-app/lib.
Here is the pom.xml that works for me without any extra exclusions (I believe it's cleaner this way) https://github.com/zeppelinux/square-okhttp-problem/blob/main/pom.xml

@zenmasterjobo zenmasterjobo added the wontfix This will not be worked on label Apr 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

3 participants