Closed scottishWill closed 7 years ago
Do you have a complete stacktrace? It looks like this is a similar issue to #8706 and I'm curious if you're also using JsonFluentAssert
?
Unfortunately the org.json
library has a very unhelpful "don't be evil" clause in its license (see #5929 for background) which causes legal issues for many users. The android-json
project is a clean room implementation that has a standard open source license. Many projects are gradually migrating to the android version but unfortunately there are a few compatibility issues.
We can't just drop the dependency because some of our own JSON test utilities require it.
Since this is the second time this issue has been raised we should look to see if we can add some more documentation at least.
How about a TestExecutionListener
that checks for multiple occurrences of JSONObject
and warns you? Something like this:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot ::
2017-06-06 15:44:27.595 INFO 21071 --- [ main] c.e.DuplicateJsonObjectApplicationTests : Starting DuplicateJsonObjectApplicationTests on aw-rmbp.home with PID 21071 (started by awilkinson in /Users/awilkinson/dev/workspaces/spring/spring-boot/1.5.x/gh-9398)
2017-06-06 15:44:27.596 INFO 21071 --- [ main] c.e.DuplicateJsonObjectApplicationTests : No active profile set, falling back to default profiles: default
2017-06-06 15:44:27.620 INFO 21071 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@13c10b87: startup date [Tue Jun 06 15:44:27 BST 2017]; root of context hierarchy
2017-06-06 15:44:27.975 INFO 21071 --- [ main] c.e.DuplicateJsonObjectApplicationTests : Started DuplicateJsonObjectApplicationTests in 0.581 seconds (JVM running for 1.09)
2017-06-06 15:44:27.978 WARN 21071 --- [ main] DuplicateJsonObjectTestExecutionListener :
Found multiple occurrences of org.json.JSONObject on the class path:
jar:file:/Users/awilkinson/.m2/repository/org/json/json/20140107/json-20140107.jar!/org/json/JSONObject.class
jar:file:/Users/awilkinson/.m2/repository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar!/org/json/JSONObject.class
You may wish to exclude one of them to ensure predictable runtime behaviour
2017-06-06 15:44:28.006 INFO 21071 --- [ Thread-2] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@13c10b87: startup date [Tue Jun 06 15:44:27 BST 2017]; root of context hierarchy
You also have the option to extend the android-json implementation to have the same API. In fact, I did so the other day to extend the JSONException class to have the full constructor list. It was pretty easy to contribute to. Myself, being deep into the JSON-Java code am wary of doing much implementation in Android-json, but others who have not spent much time on either code base shouldn't have an issue bringing the android API up to date.
IMHO, there is indeed a procedure to tackle this problem:
mvn dependency: tree > dep.log
to detect the vaadin
dependencies, for example in my project, the dep.log held:
[[1;34mINFO[m] Scanning for projects... [[1;34mINFO[m] [[1;34mINFO[m] [1m------------------------------------------------------------------------[m [[1;34mINFO[m] [1mBuilding barcoder 0.9.42[m [[1;34mINFO[m] [1m------------------------------------------------------------------------[m [[1;34mINFO[m] [[1;34mINFO[m] [1m--- [0;32mmaven-dependency-plugin:2.10:tree[m m[m @ [36mbarcoder[0;1m ---[m [[1;34mINFO[m] com.aossci:barcoder:jar:0.9.42 [[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | +- org.springframework.boot:spring-boot:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | | +- ch.qos.logback:logback-classic:jar:1.1.11:compile [[1;34mINFO[m] | | | - ch.qos.logback:logback-core:jar:1.1.11:compile [[1;34mINFO[m] | | +- org.slf4j:jcl-over-slf4j:jar:1.7.25:compile [[1;34mINFO[m] | | +- org.slf4j:jul-to-slf4j:jar:1.7.25:compile [[1;34mINFO[m] | | - org.slf4j:log4j-over-slf4j:jar:1.7.25:compile [[1;34mINFO[m] | +- org.springframework:spring-core:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] | - org.yaml:snakeyaml:jar:1.17:runtime [[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-test:jar:1.5.7.RELEASE:test [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test:jar:1.5.7.RELEASE:test [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:1.5.7.RELEASE:test [[1;34mINFO[m] | +- com.jayway.jsonpath:json-path:jar:2.2.0:test [[1;34mINFO[m] | | - net.minidev:json-smart:jar:2.2.1:test [[1;34mINFO[m] | | - net.minidev:accessors-smart:jar:1.1:test [[1;34mINFO[m] | | - org.ow2.asm:asm:jar:5.0.3:test [[1;34mINFO[m] | +- org.assertj:assertj-core:jar:2.6.0:test [[1;34mINFO[m] | +- org.mockito:mockito-core:jar:1.10.19:test [[1;34mINFO[m] | | - org.objenesis:objenesis:jar:2.1:test [[1;34mINFO[m] | +- org.hamcrest:hamcrest-core:jar:1.3:test [[1;34mINFO[m] | +- org.hamcrest:hamcrest-library:jar:1.3:test [[1;34mINFO[m] | +- org.skyscreamer:jsonassert:jar:1.4.0:test [[1;34mINFO[m] | - org.springframework:spring-test:jar:4.3.11.RELEASE:test [[1;34mINFO[m] +- org.springframework.boot:spring-boot-configuration-processor:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | - com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:compile [[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-web:jar:1.5.7.RELEASE:compile ... ... ... [[1;34mINFO[m] | - net.jcip:jcip-annotations:jar:1.0:compile [[1;34mINFO[m] - com.google.code.findbugs:jsr305:jar:3.0.1:compile [[1;34mINFO[m] [1m------------------------------------------------------------------------[m [[1;34mINFO[m] [1;32mBUILD SUCCESS[m [[1;34mINFO[m] [1m------------------------------------------------------------------------[m [[1;34mINFO[m] Total time: 2.146 s [[1;34mINFO[m] Finished at: 2018-03-18T09:54:01+08:00 [[1;34mINFO[m] Final Memory: 28M/619M [[1;34mINFO[m] [1m------------------------------------------------------------------------[m
`vaadin` is a dependency of `spring-boot-configuration-processor`, just add exclusion to the dependency:
2. redo the dependency: tree cli to resolve the exclusions, got the tree:
[[1;34mINFO[m] Scanning for projects... [[1;34mINFO[m] [[1;34mINFO[m] [1m------------------------------------------------------------------------[m [[1;34mINFO[m] [1mBuilding barcoder 0.9.42[m [[1;34mINFO[m] [1m------------------------------------------------------------------------[m [[1;34mINFO[m] [[1;34mINFO[m] [1m--- [0;32mmaven-dependency-plugin:2.10:tree[m m[m @ [36mbarcoder[0;1m ---[m [[1;34mINFO[m] com.aossci:barcoder:jar:0.9.42 [[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | +- org.springframework.boot:spring-boot:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | | +- ch.qos.logback:logback-classic:jar:1.1.11:compile [[1;34mINFO[m] | | | - ch.qos.logback:logback-core:jar:1.1.11:compile [[1;34mINFO[m] | | +- org.slf4j:jcl-over-slf4j:jar:1.7.25:compile [[1;34mINFO[m] | | +- org.slf4j:jul-to-slf4j:jar:1.7.25:compile [[1;34mINFO[m] | | - org.slf4j:log4j-over-slf4j:jar:1.7.25:compile [[1;34mINFO[m] | +- org.springframework:spring-core:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] | - org.yaml:snakeyaml:jar:1.17:runtime [[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-test:jar:1.5.7.RELEASE:test [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test:jar:1.5.7.RELEASE:test [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:1.5.7.RELEASE:test [[1;34mINFO[m] | +- com.jayway.jsonpath:json-path:jar:2.2.0:test [[1;34mINFO[m] | | - net.minidev:json-smart:jar:2.2.1:test [[1;34mINFO[m] | | - net.minidev:accessors-smart:jar:1.1:test [[1;34mINFO[m] | | - org.ow2.asm:asm:jar:5.0.3:test [[1;34mINFO[m] | +- org.assertj:assertj-core:jar:2.6.0:test [[1;34mINFO[m] | +- org.mockito:mockito-core:jar:1.10.19:test [[1;34mINFO[m] | | - org.objenesis:objenesis:jar:2.1:test [[1;34mINFO[m] | +- org.hamcrest:hamcrest-core:jar:1.3:test [[1;34mINFO[m] | +- org.hamcrest:hamcrest-library:jar:1.3:test [[1;34mINFO[m] | +- org.skyscreamer:jsonassert:jar:1.4.0:test [[1;34mINFO[m] | | -com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test [[1;34mINFO[m] | - org.springframework:spring-test:jar:4.3.11.RELEASE:test [[1;34mINFO[m] +- org.springframework.boot:spring-boot-configuration-processor:jar:1.5.7.RELEASE:compile ... ... ... [[1;34mINFO[m] [1m------------------------------------------------------------------------[m [[1;34mINFO[m] [1;32mBUILD SUCCESS[m [[1;34mINFO[m] [1m------------------------------------------------------------------------[m [[1;34mINFO[m] Total time: 2.154 s [[1;34mINFO[m] Finished at: 2018-03-18T09:58:38+08:00 [[1;34mINFO[m] Final Memory: 25M/491M [[1;34mINFO[m] [1m------------------------------------------------------------------------[m
add exclusion:
eventually, all dependencies of `vaadin` are excluded:
[[1;34mINFO[m] Scanning for projects... [[1;34mINFO[m] [[1;34mINFO[m] [1m------------------------------------------------------------------------[m [[1;34mINFO[m] [1mBuilding barcoder 0.9.42[m [[1;34mINFO[m] [1m------------------------------------------------------------------------[m [[1;34mINFO[m] [[1;34mINFO[m] [1m--- [0;32mmaven-dependency-plugin:2.10:tree[m m[m @ [36mbarcoder[0;1m ---[m [[1;34mINFO[m] com.aossci:barcoder:jar:0.9.42 [[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | +- org.springframework.boot:spring-boot:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | | +- ch.qos.logback:logback-classic:jar:1.1.11:compile [[1;34mINFO[m] | | | - ch.qos.logback:logback-core:jar:1.1.11:compile [[1;34mINFO[m] | | +- org.slf4j:jcl-over-slf4j:jar:1.7.25:compile [[1;34mINFO[m] | | +- org.slf4j:jul-to-slf4j:jar:1.7.25:compile [[1;34mINFO[m] | | - org.slf4j:log4j-over-slf4j:jar:1.7.25:compile [[1;34mINFO[m] | +- org.springframework:spring-core:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] | - org.yaml:snakeyaml:jar:1.17:runtime [[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-test:jar:1.5.7.RELEASE:test [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test:jar:1.5.7.RELEASE:test [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:1.5.7.RELEASE:test [[1;34mINFO[m] | +- com.jayway.jsonpath:json-path:jar:2.2.0:test [[1;34mINFO[m] | | - net.minidev:json-smart:jar:2.2.1:test [[1;34mINFO[m] | | - net.minidev:accessors-smart:jar:1.1:test [[1;34mINFO[m] | | - org.ow2.asm:asm:jar:5.0.3:test [[1;34mINFO[m] | +- org.assertj:assertj-core:jar:2.6.0:test [[1;34mINFO[m] | +- org.mockito:mockito-core:jar:1.10.19:test [[1;34mINFO[m] | | - org.objenesis:objenesis:jar:2.1:test [[1;34mINFO[m] | +- org.hamcrest:hamcrest-core:jar:1.3:test [[1;34mINFO[m] | +- org.hamcrest:hamcrest-library:jar:1.3:test [[1;34mINFO[m] | +- org.skyscreamer:jsonassert:jar:1.4.0:test [[1;34mINFO[m] | - org.springframework:spring-test:jar:4.3.11.RELEASE:test [[1;34mINFO[m] +- org.springframework.boot:spring-boot-configuration-processor:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-web:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-tomcat:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:8.5.20:compile [[1;34mINFO[m] | | +- org.apache.tomcat.embed:tomcat-embed-el:jar:8.5.20:compile [[1;34mINFO[m] | | - org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.5.20:compile [[1;34mINFO[m] | +- org.hibernate:hibernate-validator:jar:5.3.5.Final:compile [[1;34mINFO[m] | | +- javax.validation:validation-api:jar:1.1.0.Final:compile [[1;34mINFO[m] | | - org.jboss.logging:jboss-logging:jar:3.3.1.Final:compile [[1;34mINFO[m] | +- org.springframework:spring-web:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] | | - org.springframework:spring-beans:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] | - org.springframework:spring-webmvc:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] | - org.springframework:spring-expression:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-aop:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | | - org.aspectj:aspectjweaver:jar:1.8.10:compile [[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | | +- org.apache.tomcat:tomcat-jdbc:jar:8.5.20:compile [[1;34mINFO[m] | | | - org.apache.tomcat:tomcat-juli:jar:8.5.20:compile [[1;34mINFO[m] | | - org.springframework:spring-jdbc:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] | +- org.hibernate:hibernate-core:jar:5.0.12.Final:compile [[1;34mINFO[m] | | +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile [[1;34mINFO[m] | | +- org.javassist:javassist:jar:3.21.0-GA:compile [[1;34mINFO[m] | | +- antlr:antlr:jar:2.7.7:compile [[1;34mINFO[m] | | +- org.jboss:jandex:jar:2.0.0.Final:compile [[1;34mINFO[m] | | +- dom4j:dom4j:jar:1.6.1:compile [[1;34mINFO[m] | | - org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile [[1;34mINFO[m] | +- org.hibernate:hibernate-entitymanager:jar:5.0.12.Final:compile [[1;34mINFO[m] | +- javax.transaction:javax.transaction-api:jar:1.2:compile [[1;34mINFO[m] | +- org.springframework.data:spring-data-jpa:jar:1.11.7.RELEASE:compile [[1;34mINFO[m] | | +- org.springframework.data:spring-data-commons:jar:1.13.7.RELEASE:compile [[1;34mINFO[m] | | +- org.springframework:spring-orm:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] | | - org.springframework:spring-tx:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] | - org.springframework:spring-aspects:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-security:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | +- org.springframework:spring-aop:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] | +- org.springframework.security:spring-security-config:jar:4.2.3.RELEASE:compile [[1;34mINFO[m] | | - org.springframework.security:spring-security-core:jar:4.2.3.RELEASE:compile [[1;34mINFO[m] | - org.springframework.security:spring-security-web:jar:4.2.3.RELEASE:compile [[1;34mINFO[m] +- org.json:json:jar:20170516:compile [[1;34mINFO[m] +- mysql:mysql-connector-java:jar:5.1.44:compile [[1;34mINFO[m] +- org.jetbrains:annotations:jar:16.0.1:compile [[1;34mINFO[m] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.1:compile [[1;34mINFO[m] +- com.fasterxml.jackson.core:jackson-core:jar:2.9.1:compile [[1;34mINFO[m] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.1:compile [[1;34mINFO[m] +- com.github.everit-org.json-schema:org.everit.json.schema:jar:1.8.0:compile [[1;34mINFO[m] | +- com.google.guava:guava:jar:22.0:compile [[1;34mINFO[m] | | +- com.google.errorprone:error_prone_annotations:jar:2.0.18:compile [[1;34mINFO[m] | | +- com.google.j2objc:j2objc-annotations:jar:1.1:compile [[1;34mINFO[m] | | - org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile [[1;34mINFO[m] | +- commons-validator:commons-validator:jar:1.6:compile [[1;34mINFO[m] | | +- commons-beanutils:commons-beanutils:jar:1.9.3:compile [[1;34mINFO[m] | | +- commons-digester:commons-digester:jar:2.1:compile [[1;34mINFO[m] | | +- commons-logging:commons-logging:jar:1.2:compile [[1;34mINFO[m] | | - commons-collections:commons-collections:jar:3.2.2:compile [[1;34mINFO[m] | +- com.damnhandy:handy-uri-templates:jar:2.1.6:compile [[1;34mINFO[m] | - com.google.re2j:re2j:jar:1.1:compile [[1;34mINFO[m] +- junit:junit:jar:4.12:test [[1;34mINFO[m] +- io.springfox:springfox-swagger2:jar:2.7.0:compile [[1;34mINFO[m] | +- io.swagger:swagger-annotations:jar:1.5.13:compile [[1;34mINFO[m] | +- io.swagger:swagger-models:jar:1.5.13:compile [[1;34mINFO[m] | +- io.springfox:springfox-spi:jar:2.7.0:compile [[1;34mINFO[m] | | - io.springfox:springfox-core:jar:2.7.0:compile [[1;34mINFO[m] | | - net.bytebuddy:byte-buddy:jar:1.6.14:compile [[1;34mINFO[m] | +- io.springfox:springfox-schema:jar:2.7.0:compile [[1;34mINFO[m] | +- io.springfox:springfox-swagger-common:jar:2.7.0:compile [[1;34mINFO[m] | +- io.springfox:springfox-spring-web:jar:2.7.0:compile [[1;34mINFO[m] | | - org.reflections:reflections:jar:0.9.11:compile [[1;34mINFO[m] | +- com.fasterxml:classmate:jar:1.3.4:compile [[1;34mINFO[m] | +- org.slf4j:slf4j-api:jar:1.7.25:compile [[1;34mINFO[m] | +- org.springframework.plugin:spring-plugin-core:jar:1.2.0.RELEASE:compile [[1;34mINFO[m] | +- org.springframework.plugin:spring-plugin-metadata:jar:1.2.0.RELEASE:compile [[1;34mINFO[m] | - org.mapstruct:mapstruct:jar:1.1.0.Final:compile [[1;34mINFO[m] +- io.springfox:springfox-swagger-ui:jar:2.7.0:compile [[1;34mINFO[m] +- com.mashape.unirest:unirest-java:jar:1.4.9:compile [[1;34mINFO[m] | +- org.apache.httpcomponents:httpclient:jar:4.5.3:compile [[1;34mINFO[m] | | +- org.apache.httpcomponents:httpcore:jar:4.4.6:compile [[1;34mINFO[m] | | - commons-codec:commons-codec:jar:1.10:compile [[1;34mINFO[m] | +- org.apache.httpcomponents:httpasyncclient:jar:4.1.3:compile [[1;34mINFO[m] | | - org.apache.httpcomponents:httpcore-nio:jar:4.4.6:compile [[1;34mINFO[m] | - org.apache.httpcomponents:httpmime:jar:4.5.3:compile [[1;34mINFO[m] +- org.apache.commons:commons-lang3:jar:3.6:compile [[1;34mINFO[m] +- org.codehaus.groovy:groovy-all:jar:2.4.12:compile [[1;34mINFO[m] +- commons-io:commons-io:jar:2.5:compile [[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-cache:jar:1.5.7.RELEASE:compile [[1;34mINFO[m] | +- org.springframework:spring-context:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] | - org.springframework:spring-context-support:jar:4.3.11.RELEASE:compile [[1;34mINFO[m] - io.minio:minio:jar:3.0.12:compile [[1;34mINFO[m] +- com.google.http-client:google-http-client-xml:jar:1.20.0:compile [[1;34mINFO[m] | +- com.google.http-client:google-http-client:jar:1.20.0:compile [[1;34mINFO[m] | - xpp3:xpp3:jar:1.1.4c:compile [[1;34mINFO[m] +- com.squareup.okhttp3:okhttp:jar:3.7.0:compile [[1;34mINFO[m] +- com.squareup.okio:okio:jar:1.12.0:compile [[1;34mINFO[m] +- joda-time:joda-time:jar:2.9.9:compile [[1;34mINFO[m] +- com.google.code.findbugs:annotations:jar:3.0.1:compile [[1;34mINFO[m] | - net.jcip:jcip-annotations:jar:1.0:compile [[1;34mINFO[m] - com.google.code.findbugs:jsr305:jar:3.0.1:compile [[1;34mINFO[m] [1m------------------------------------------------------------------------[m [[1;34mINFO[m] [1;32mBUILD SUCCESS[m [[1;34mINFO[m] [1m------------------------------------------------------------------------[m [[1;34mINFO[m] Total time: 2.106 s [[1;34mINFO[m] Finished at: 2018-03-18T10:01:39+08:00 [[1;34mINFO[m] Final Memory: 25M/491M [[1;34mINFO[m] [1m------------------------------------------------------------------------[m
@SollyTaylor or you could simply upgrade to the latest 1.5.x that doesn't bring that dependency anymore.
@snicoll I test the upgraded versions, 1.5.9.RELEASE and 1.5.10.RELEASE are still complaining the vaadin
dependency issues. while the version 1.5.11-build-snapshot is not ready for production I think. I have to exclude the vaadin
dependencies explicitly.
Here is the dep.log of mvn dependency:tree > dep.log
[[1;34mINFO[m] Scanning for projects...
[[1;34mINFO[m]
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1mBuilding barcoder 0.9.42[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mmaven-dependency-plugin:2.10:tree[m [1m(default-cli)[m @ [36mbarcoder[0;1m ---[m
[[1;34mINFO[m] com.aossci:barcoder:jar:0.9.42
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | | +- ch.qos.logback:logback-classic:jar:1.1.11:compile
[[1;34mINFO[m] | | | \- ch.qos.logback:logback-core:jar:1.1.11:compile
[[1;34mINFO[m] | | +- org.slf4j:jcl-over-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | | +- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | | \- org.slf4j:log4j-over-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | +- org.springframework:spring-core:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | \- org.yaml:snakeyaml:jar:1.17:runtime
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-test:jar:1.5.10.RELEASE:test
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test:jar:1.5.10.RELEASE:test
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:1.5.10.RELEASE:test
[[1;34mINFO[m] | +- com.jayway.jsonpath:json-path:jar:2.2.0:test
[[1;34mINFO[m] | | \- net.minidev:json-smart:jar:2.2.1:test
[[1;34mINFO[m] | | \- net.minidev:accessors-smart:jar:1.1:test
[[1;34mINFO[m] | | \- org.ow2.asm:asm:jar:5.0.3:test
[[1;34mINFO[m] | +- org.assertj:assertj-core:jar:2.6.0:test
[[1;34mINFO[m] | +- org.mockito:mockito-core:jar:1.10.19:test
[[1;34mINFO[m] | | \- org.objenesis:objenesis:jar:2.1:test
[[1;34mINFO[m] | +- org.hamcrest:hamcrest-core:jar:1.3:test
[[1;34mINFO[m] | +- org.hamcrest:hamcrest-library:jar:1.3:test
[[1;34mINFO[m] | +- org.skyscreamer:jsonassert:jar:1.4.0:test
[[1;34mINFO[m] | | \- ****com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
[[1;34mINFO[m] | \- org.springframework:spring-test:jar:4.3.14.RELEASE:test
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-configuration-processor:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-web:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-tomcat:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:8.5.27:compile
[[1;34mINFO[m] | | | \- org.apache.tomcat:tomcat-annotations-api:jar:8.5.27:compile
[[1;34mINFO[m] | | +- org.apache.tomcat.embed:tomcat-embed-el:jar:8.5.27:compile
[[1;34mINFO[m] | | \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.5.27:compile
[[1;34mINFO[m] | +- org.hibernate:hibernate-validator:jar:5.3.6.Final:compile
[[1;34mINFO[m] | | +- javax.validation:validation-api:jar:1.1.0.Final:compile
[[1;34mINFO[m] | | \- org.jboss.logging:jboss-logging:jar:3.3.1.Final:compile
[[1;34mINFO[m] | +- org.springframework:spring-web:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | | \- org.springframework:spring-beans:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework:spring-webmvc:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework:spring-expression:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-aop:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | | \- org.aspectj:aspectjweaver:jar:1.8.13:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | | +- org.apache.tomcat:tomcat-jdbc:jar:8.5.27:compile
[[1;34mINFO[m] | | | \- org.apache.tomcat:tomcat-juli:jar:8.5.27:compile
[[1;34mINFO[m] | | \- org.springframework:spring-jdbc:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | +- org.hibernate:hibernate-core:jar:5.0.12.Final:compile
[[1;34mINFO[m] | | +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[[1;34mINFO[m] | | +- org.javassist:javassist:jar:3.21.0-GA:compile
[[1;34mINFO[m] | | +- antlr:antlr:jar:2.7.7:compile
[[1;34mINFO[m] | | +- org.jboss:jandex:jar:2.0.0.Final:compile
[[1;34mINFO[m] | | +- dom4j:dom4j:jar:1.6.1:compile
[[1;34mINFO[m] | | \- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile
[[1;34mINFO[m] | +- org.hibernate:hibernate-entitymanager:jar:5.0.12.Final:compile
[[1;34mINFO[m] | +- javax.transaction:javax.transaction-api:jar:1.2:compile
[[1;34mINFO[m] | +- org.springframework.data:spring-data-jpa:jar:1.11.10.RELEASE:compile
[[1;34mINFO[m] | | +- org.springframework.data:spring-data-commons:jar:1.13.10.RELEASE:compile
[[1;34mINFO[m] | | +- org.springframework:spring-orm:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | | \- org.springframework:spring-tx:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework:spring-aspects:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-security:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework:spring-aop:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.security:spring-security-config:jar:4.2.4.RELEASE:compile
[[1;34mINFO[m] | | \- org.springframework.security:spring-security-core:jar:4.2.4.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework.security:spring-security-web:jar:4.2.4.RELEASE:compile
[[1;34mINFO[m] +- org.json:json:jar:20170516:compile
[[1;34mINFO[m] +- mysql:mysql-connector-java:jar:5.1.45:compile
[[1;34mINFO[m] +- org.jetbrains:annotations:jar:16.0.1:compile
[[1;34mINFO[m] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.1:compile
[[1;34mINFO[m] +- com.fasterxml.jackson.core:jackson-core:jar:2.9.1:compile
[[1;34mINFO[m] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.1:compile
[[1;34mINFO[m] +- com.github.everit-org.json-schema:org.everit.json.schema:jar:1.8.0:compile
[[1;34mINFO[m] | +- com.google.guava:guava:jar:22.0:compile
[[1;34mINFO[m] | | +- com.google.errorprone:error_prone_annotations:jar:2.0.18:compile
[[1;34mINFO[m] | | +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
[[1;34mINFO[m] | | \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
[[1;34mINFO[m] | +- commons-validator:commons-validator:jar:1.6:compile
[[1;34mINFO[m] | | +- commons-beanutils:commons-beanutils:jar:1.9.3:compile
[[1;34mINFO[m] | | +- commons-digester:commons-digester:jar:2.1:compile
[[1;34mINFO[m] | | +- commons-logging:commons-logging:jar:1.2:compile
[[1;34mINFO[m] | | \- commons-collections:commons-collections:jar:3.2.2:compile
[[1;34mINFO[m] | +- com.damnhandy:handy-uri-templates:jar:2.1.6:compile
[[1;34mINFO[m] | \- com.google.re2j:re2j:jar:1.1:compile
[[1;34mINFO[m] +- junit:junit:jar:4.12:test
[[1;34mINFO[m] +- io.springfox:springfox-swagger2:jar:2.7.0:compile
[[1;34mINFO[m] | +- io.swagger:swagger-annotations:jar:1.5.13:compile
[[1;34mINFO[m] | +- io.swagger:swagger-models:jar:1.5.13:compile
[[1;34mINFO[m] | +- io.springfox:springfox-spi:jar:2.7.0:compile
[[1;34mINFO[m] | | \- io.springfox:springfox-core:jar:2.7.0:compile
[[1;34mINFO[m] | | \- net.bytebuddy:byte-buddy:jar:1.6.14:compile
[[1;34mINFO[m] | +- io.springfox:springfox-schema:jar:2.7.0:compile
[[1;34mINFO[m] | +- io.springfox:springfox-swagger-common:jar:2.7.0:compile
[[1;34mINFO[m] | +- io.springfox:springfox-spring-web:jar:2.7.0:compile
[[1;34mINFO[m] | | \- org.reflections:reflections:jar:0.9.11:compile
[[1;34mINFO[m] | +- com.fasterxml:classmate:jar:1.3.4:compile
[[1;34mINFO[m] | +- org.slf4j:slf4j-api:jar:1.7.25:compile
[[1;34mINFO[m] | +- org.springframework.plugin:spring-plugin-core:jar:1.2.0.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.plugin:spring-plugin-metadata:jar:1.2.0.RELEASE:compile
[[1;34mINFO[m] | \- org.mapstruct:mapstruct:jar:1.1.0.Final:compile
[[1;34mINFO[m] +- io.springfox:springfox-swagger-ui:jar:2.7.0:compile
[[1;34mINFO[m] +- com.mashape.unirest:unirest-java:jar:1.4.9:compile
[[1;34mINFO[m] | +- org.apache.httpcomponents:httpclient:jar:4.5.5:compile
[[1;34mINFO[m] | | +- org.apache.httpcomponents:httpcore:jar:4.4.9:compile
[[1;34mINFO[m] | | \- commons-codec:commons-codec:jar:1.10:compile
[[1;34mINFO[m] | +- org.apache.httpcomponents:httpasyncclient:jar:4.1.3:compile
[[1;34mINFO[m] | | \- org.apache.httpcomponents:httpcore-nio:jar:4.4.6:compile
[[1;34mINFO[m] | \- org.apache.httpcomponents:httpmime:jar:4.5.5:compile
[[1;34mINFO[m] +- org.apache.commons:commons-lang3:jar:3.6:compile
[[1;34mINFO[m] +- org.codehaus.groovy:groovy-all:jar:2.4.12:compile
[[1;34mINFO[m] +- commons-io:commons-io:jar:2.5:compile
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-cache:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework:spring-context:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework:spring-context-support:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] \- io.minio:minio:jar:3.0.12:compile
[[1;34mINFO[m] +- com.google.http-client:google-http-client-xml:jar:1.20.0:compile
[[1;34mINFO[m] | +- com.google.http-client:google-http-client:jar:1.20.0:compile
[[1;34mINFO[m] | \- xpp3:xpp3:jar:1.1.4c:compile
[[1;34mINFO[m] +- com.squareup.okhttp3:okhttp:jar:3.7.0:compile
[[1;34mINFO[m] +- com.squareup.okio:okio:jar:1.12.0:compile
[[1;34mINFO[m] +- joda-time:joda-time:jar:2.9.9:compile
[[1;34mINFO[m] +- com.google.code.findbugs:annotations:jar:3.0.1:compile
[[1;34mINFO[m] | \- net.jcip:jcip-annotations:jar:1.0:compile
[[1;34mINFO[m] \- com.google.code.findbugs:jsr305:jar:3.0.1:compile
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1;32mBUILD SUCCESS[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] Total time: 1.650 s
[[1;34mINFO[m] Finished at: 2018-03-19T08:14:06+08:00
[[1;34mINFO[m] Final Memory: 26M/216M
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
@SollyTaylor read the tree you've pasted. The dependency comes from org.skyscreamer:jsonassert:jar:1.4.0:test
(nothing to do with the annotation processor). If you have more questions, please ask on StackOverflow or Gitter.
Hi,
I recently upgraded a large application to "spring boot 1.5.3" and since the upgrade we had a runtime issue with the JSON Lib (org.json) pulled in by "spring-boot 1.5.3 RELEASE". There was no issue with compiling / building but at runtime certain calls to "com.json.JSONObject" threw a error like this:
After spending alot of time debugging the issue was found to be with spring-boot-starter-test pulling in "android-json" (com.vaadin.external.google). This also has a JSONObject with fully qualified name "com.json.JSONObject" but not the same methods. It was this JSON object that was getting used at runtime and was causing the method not found errors.
We got around the problem by exluding "android-json" from "spring-boot-starter-test" but I suggest it should not be included by default so as to avoid this kind of issue for others.
Thanks, William