sdaschner / jaxrs-analyzer

Creates REST documentation for JAX-RS projects
Apache License 2.0
320 stars 101 forks source link

Maven log shows the following error: "Could not analyze the method: javassist.CtMethod." #32

Closed jeff9finger closed 8 years ago

jeff9finger commented 9 years ago

Testing fix for #30 (which now does not fail the build), but the file generated is not correct and the maven log file shows the above error (among others).

Here is the maven configuration.

[DEBUG] ----------------------------------------------------------------------- [DEBUG] Goal: com.sebastian-daschner:jaxrs-analyzer-maven-plugin:0.9-SNAPSHOT:analyze-jaxrs () [DEBUG] Style: Regular [DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>

${jaxrs-analyzer.backend} ${project.build.directory} ${jaxrs-analyzer.deployedDomain} ${project.build.outputDirectory} ${project} ${project.remotePluginRepositories} ${repositorySystemSession}
jeff9finger commented 9 years ago

Here are relevant portions of the jaxrs-analyzer mvn -X log

[DEBUG] ----------------------------------------------------------------------- [DEBUG] Goal: com.sebastian-daschner:jaxrs-analyzer-maven-plugin:0.9-SNAPSHOT:analyze-jaxrs () [DEBUG] Style: Regular [DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>

${jaxrs-analyzer.backend} ${project.build.directory} ${jaxrs-analyzer.deployedDomain} ${project.build.outputDirectory} ${project} ${project.remotePluginRepositories} ${repositorySystemSession}

[INFO] --- jaxrs-analyzer-maven-plugin:0.9-SNAPSHOT:analyze-jaxrs () @ tract-api --- [DEBUG] Failure to find com.sebastian-daschner:jaxrs-analyzer:0.9-SNAPSHOT/maven-metadata.xml in https://dev1.gotransverse.com/artifactory/plugins-snapshots was cached in the local repository, resolution will not be reattempted until the update interval of snapshots.plugins has elapsed or updates are forced [DEBUG] Skipped remote request for com.sebastian-daschner:jaxrs-analyzer:0.9-SNAPSHOT/maven-metadata.xml, locally cached metadata up-to-date. [DEBUG] Failure to find com.sebastian-daschner:jaxrs-analyzer:0.9-SNAPSHOT/maven-metadata.xml in https://dev1.gotransverse.com/artifactory/plugins-snapshots was cached in the local repository, resolution will not be reattempted until the update interval of snapshots.plugins has elapsed or updates are forced [DEBUG] Skipped remote request for com.sebastian-daschner:jaxrs-analyzer:0.9-SNAPSHOT/maven-metadata.xml, locally cached metadata up-to-date. [DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=0, ConflictMarker.markTime=0, ConflictMarker.nodeCount=3, ConflictIdSorter.graphTime=0, ConflictIdSorter.topsortTime=0, ConflictIdSorter.conflictIdCount=3, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=0, ConflictResolver.conflictItemCount=3, DefaultDependencyCollector.collectTime=9, DefaultDependencyCollector.transformTime=0} [DEBUG] com.sebastian-daschner:jaxrs-analyzer-maven-plugin:jar:0.9-20151002.090304-2: [DEBUG] com.sebastian-daschner:jaxrs-analyzer:jar:0.9-SNAPSHOT:compile [DEBUG] org.eclipse.aether:aether-api:jar:1.0.2.v20150114:compile [DEBUG] org.codehaus.plexus:plexus-utils:jar:1.1:runtime [DEBUG] Created new class realm plugin>com.sebastian-daschner:jaxrs-analyzer-maven-plugin:0.9-SNAPSHOT [DEBUG] Importing foreign packages into class realm plugin>com.sebastian-daschner:jaxrs-analyzer-maven-plugin:0.9-SNAPSHOT [DEBUG] Imported: < maven.api [DEBUG] Populating class realm plugin>com.sebastian-daschner:jaxrs-analyzer-maven-plugin:0.9-SNAPSHOT [DEBUG] Included: com.sebastian-daschner:jaxrs-analyzer-maven-plugin:jar:0.9-SNAPSHOT [DEBUG] Included: com.sebastian-daschner:jaxrs-analyzer:jar:0.9-SNAPSHOT [DEBUG] Included: org.codehaus.plexus:plexus-utils:jar:1.1 [DEBUG] Configuring mojo com.sebastian-daschner:jaxrs-analyzer-maven-plugin:0.9-SNAPSHOT:analyze-jaxrs from plugin realm ClassRealm[plugin>com.sebastian-daschner:jaxrs-analyzer-maven-plugin:0.9-SNAPSHOT, parent: sun.misc.Launcher$AppClassLoader@33909752] [DEBUG] Configuring mojo 'com.sebastian-daschner:jaxrs-analyzer-maven-plugin:0.9-SNAPSHOT:analyze-jaxrs' with basic configurator --> DEBUG backend = plaintext DEBUG buildDirectory = /Users/jeff/Workspaces/Tract/trunk/tract-projects/tract/tract-api/target DEBUG deployedDomain = example.com DEBUG outputDirectory = /Users/jeff/Workspaces/Tract/trunk/tract-projects/tract/tract-api/target/classes DEBUG project = MavenProject: com.transverse.bleep:tract-api:1.28.5-SNAPSHOT @ /Users/jeff/Workspaces/Tract/trunk/tract-projects/tract/tract-api/pom.xml DEBUG remoteRepos = [transverse.repo.plugins (https://dev1.gotransverse.com/artifactory/plugins-releases, default, releases), snapshots.plugins (https://dev1.gotransverse.com/artifactory/plugins-snapshots, default, releases+snapshots), ossrh-snapshots (https://oss.sonatype.org/content/repositories/snapshots/, default, snapshots), central (https://repo.maven.apache.org/maven2, default, releases)] DEBUG repoSession = org.eclipse.aether.DefaultRepositorySystemSession@bf01653 [DEBUG] -- end configuration -- [INFO] analyzing JAX-RS resources, using Plain text backend [DEBUG] Resolving artifact javax:javaee-api:jar:7.0 from [transverse.repo.plugins (https://dev1.gotransverse.com/artifactory/plugins-releases, default, releases), snapshots.plugins (https://dev1.gotransverse.com/artifactory/plugins-snapshots, default, releases+snapshots), ossrh-snapshots (https://oss.sonatype.org/content/repositories/snapshots/, default, snapshots), central (https://repo.maven.apache.org/maven2, default, releases)] [DEBUG] Resolved artifact javax:javaee-api:jar:7.0 to /Users/jeff/.m2/repository/javax/javaee-api/7.0/javaee-api-7.0.jar from transverse.repo.plugins (https://dev1.gotransverse.com/artifactory/plugins-releases, default, releases) [DEBUG] Dependency paths are: [/Users/jeff/.m2/repository/org/apache/camel/camel-spring/2.14.3/camel-spring-2.14.3.jar, /Users/jeff/.m2/repository/org/springframework/spring-jms/3.2.14.RELEASE/spring-jms-3.2.14.RELEASE.jar, /Users/jeff/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.6.0/jackson-annotations-2.6.0.jar, /Users/jeff/.m2/repository/org/drools/drools-compiler/5.5.0.Final/drools-compiler-5.5.0.Final.jar, /Users/jeff/.m2/repository/com/sun/xml/bind/jaxb-xjc/2.2.11/jaxb-xjc-2.2.11.jar, /Users/jeff/.m2/repository/org/eclipse/jdt/core/compiler/ecj/3.5.1/ecj-3.5.1.jar, /Users/jeff/.m2/repository/javax/mail/mail/1.4/mail-1.4.jar, /Users/jeff/.m2/repository/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-extension/1.7/batik-extension-1.7.jar, /Users/jeff/.m2/repository/org/antlr/antlr/3.3/antlr-3.3.jar, /Users/jeff/.m2/repository/org/springframework/spring-expression/3.2.14.RELEASE/spring-expression-3.2.14.RELEASE.jar, /Users/jeff/.m2/repository/org/hamcrest/hamcrest-all/1.3/hamcrest-all-1.3.jar, /Users/jeff/.m2/repository/org/apache/velocity/velocity/1.6.2/velocity-1.6.2.jar, /Users/jeff/.m2/repository/javassist/javassist/3.11.0.GA/javassist-3.11.0.GA.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-wsdl/3.0.6/cxf-rt-wsdl-3.0.6.jar, /Users/jeff/.m2/repository/xml-resolver/xml-resolver/1.2/xml-resolver-1.2.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-core/3.0.6/cxf-core-3.0.6.jar, /Users/jeff/.m2/repository/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-ws-security/3.0.6/cxf-rt-ws-security-3.0.6.jar, /Users/jeff/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.2/jackson-core-asl-1.9.2.jar, /Users/jeff/.m2/repository/com/jayway/restassured/rest-assured/2.5.0/rest-assured-2.5.0.jar, /Users/jeff/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar, /Users/jeff/.m2/repository/org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.jar, /Users/jeff/.m2/repository/com/lowagie/itext/2.1.7.js1/itext-2.1.7.js1.jar, /Users/jeff/.m2/repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar, /Users/jeff/.m2/repository/xerces/xercesImpl/2.8.1/xercesImpl-2.8.1.jar, /Users/jeff/.m2/repository/org/codehaus/woodstox/stax2-api/3.1.4/stax2-api-3.1.4.jar, /Users/jeff/.m2/repository/org/hibernate/hibernate-commons-annotations/3.2.0.Final/hibernate-commons-annotations-3.2.0.Final.jar, /Users/jeff/.m2/repository/com/jayway/restassured/json-path/2.5.0/json-path-2.5.0.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-util/1.7/batik-util-1.7.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-bridge/1.7/batik-bridge-1.7.jar, /Users/jeff/.m2/repository/org/antlr/antlr-runtime/3.3/antlr-runtime-3.3.jar, /Users/jeff/.m2/repository/org/apache/geronimo/specs/geronimo-stax-api_1.0_spec/1.0/geronimo-stax-api_1.0_spec-1.0.jar, /Users/jeff/.m2/repository/com/sun/jersey/jersey-json/1.19/jersey-json-1.19.jar, /Users/jeff/.m2/repository/org/drools/drools-core/5.5.0.Final/drools-core-5.5.0.Final.jar, /Users/jeff/.m2/repository/org/apache/httpcomponents/httpcore/4.3.3/httpcore-4.3.3.jar, /Users/jeff/.m2/repository/commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar, /Users/jeff/.m2/repository/com/transverse/bleep/bleep-cryptography/1.28.5-SNAPSHOT/bleep-cryptography-1.28.5-SNAPSHOT.jar, /Users/jeff/.m2/repository/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-ws-addr/3.0.6/cxf-rt-ws-addr-3.0.6.jar, /Users/jeff/.m2/repository/org/jasypt/jasypt/1.9.2/jasypt-1.9.2.jar, /Users/jeff/.m2/repository/org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-security/3.0.6/cxf-rt-security-3.0.6.jar, /Users/jeff/.m2/repository/org/apache/activemq/activemq-client/5.8.0/activemq-client-5.8.0.jar, /Users/jeff/.m2/repository/org/springframework/security/spring-security-core/3.1.0.RELEASE/spring-security-core-3.1.0.RELEASE.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-transcoder/1.7/batik-transcoder-1.7.jar, /Users/jeff/.m2/repository/antlr/antlr/2.7.6/antlr-2.7.6.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-transports-http-jetty/3.0.6/cxf-rt-transports-http-jetty-3.0.6.jar, /Users/jeff/.m2/repository/org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.jar, /Users/jeff/.m2/repository/org/drools/knowledge-internal-api/5.5.0.Final/knowledge-internal-api-5.5.0.Final.jar, /Users/jeff/.m2/repository/org/springframework/spring-orm/3.2.14.RELEASE/spring-orm-3.2.14.RELEASE.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-bindings-soap/3.0.6/cxf-rt-bindings-soap-3.0.6.jar, /Users/jeff/.m2/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar, /Users/jeff/.m2/repository/org/apache/wss4j/wss4j-bindings/2.0.5/wss4j-bindings-2.0.5.jar, /Users/jeff/.m2/repository/org/apache/avalon/framework/avalon-framework-impl/4.3.1/avalon-framework-impl-4.3.1.jar, /Users/jeff/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.2/jackson-jaxrs-1.9.2.jar, /Users/jeff/.m2/repository/junit/junit/4.9/junit-4.9.jar, /Users/jeff/.m2/repository/org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.jar, /Users/jeff/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar, /Users/jeff/.m2/repository/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.1/geronimo-jms_1.1_spec-1.1.jar, /Users/jeff/.m2/repository/org/apache/neethi/neethi/3.0.3/neethi-3.0.3.jar, /Users/jeff/.m2/repository/stax/stax-api/1.0.1/stax-api-1.0.1.jar, /Users/jeff/.m2/repository/oro/oro/2.0.8/oro-2.0.8.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-frontend-jaxrs/3.0.6/cxf-rt-frontend-jaxrs-3.0.6.jar, /Users/jeff/.m2/repository/commons-vfs/commons-vfs/1.0/commons-vfs-1.0.jar, /Users/jeff/.m2/repository/net/sf/jasperreports/jasperreports-fonts/4.5.1b/jasperreports-fonts-4.5.1b.jar, /Users/jeff/.m2/repository/org/apache/geronimo/specs/geronimo-javamail_1.4_spec/1.7.1/geronimo-javamail_1.4_spec-1.7.1.jar, /Users/jeff/.m2/repository/org/apache/wss4j/wss4j-ws-security-dom/2.0.5/wss4j-ws-security-dom-2.0.5.jar, /Users/jeff/.m2/repository/org/hibernate/hibernate-core/3.6.9.Final/hibernate-core-3.6.9.Final.jar, /Users/jeff/.m2/repository/org/codehaus/groovy/groovy/2.4.4/groovy-2.4.4.jar, /Users/jeff/.m2/repository/org/apache/wss4j/wss4j-policy/2.0.5/wss4j-policy-2.0.5.jar, /Users/jeff/.m2/repository/org/apache/activemq/activemq-broker/5.8.0/activemq-broker-5.8.0.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-svg-dom/1.7/batik-svg-dom-1.7.jar, /Users/jeff/.m2/repository/javax/javaee-api/7.0/javaee-api-7.0.jar, /Users/jeff/.m2/repository/org/apache/camel/camel-cxf-transport/2.14.3/camel-cxf-transport-2.14.3.jar, /Users/jeff/.m2/repository/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar, /Users/jeff/.m2/repository/net/sourceforge/findbugs/annotations/1.3.2/annotations-1.3.2.jar, /Users/jeff/.m2/repository/com/transverse/bleep/bleep-domain-saas/1.28.5-SNAPSHOT/bleep-domain-saas-1.28.5-SNAPSHOT.jar, /Users/jeff/.m2/repository/org/mockito/mockito-all/1.8.5/mockito-all-1.8.5.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-transports-http/3.0.6/cxf-rt-transports-http-3.0.6.jar, /Users/jeff/.m2/repository/org/mvel/mvel2/2.1.3.Final/mvel2-2.1.3.Final.jar, /Users/jeff/.m2/repository/com/jayway/restassured/rest-assured-common/2.5.0/rest-assured-common-2.5.0.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-rs-security-oauth/3.0.5/cxf-rt-rs-security-oauth-3.0.5.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-css/1.7/batik-css-1.7.jar, /Users/jeff/.m2/repository/org/hibernate/hibernate-validator/4.3.1.Final/hibernate-validator-4.3.1.Final.jar, /Users/jeff/.m2/repository/org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.jar, /Users/jeff/.m2/repository/org/jboss/logging/jboss-logging/3.1.0.CR2/jboss-logging-3.1.0.CR2.jar, /Users/jeff/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar, /Users/jeff/.m2/repository/net/sf/ehcache/ehcache-core/2.4.1/ehcache-core-2.4.1.jar, /Users/jeff/.m2/repository/org/springframework/spring-tx/3.2.14.RELEASE/spring-tx-3.2.14.RELEASE.jar, /Users/jeff/.m2/repository/org/codehaus/woodstox/woodstox-core-asl/4.4.1/woodstox-core-asl-4.4.1.jar, /Users/jeff/.m2/repository/joda-time/joda-time/2.1/joda-time-2.1.jar, /Users/jeff/.m2/repository/org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar, /Users/jeff/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.2/jackson-xc-1.9.2.jar, /Users/jeff/.m2/repository/com/transverse/keyman/keyman-common/1.0.2-R2/keyman-common-1.0.2-R2.jar, /Users/jeff/.m2/repository/com/hazelcast/hazelcast-spring/3.2/hazelcast-spring-3.2.jar, /Users/jeff/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-ext/1.7/batik-ext-1.7.jar, /Users/jeff/.m2/repository/org/apache/httpcomponents/httpclient/4.3.6/httpclient-4.3.6.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-frontend-simple/3.0.6/cxf-rt-frontend-simple-3.0.6.jar, /Users/jeff/.m2/repository/org/xhtmlrenderer/flying-saucer-pdf/9.0.3/flying-saucer-pdf-9.0.3.jar, /Users/jeff/.m2/repository/org/apache/camel/camel-core/2.14.3/camel-core-2.14.3.jar, /Users/jeff/.m2/repository/org/springframework/spring-aop/3.2.14.RELEASE/spring-aop-3.2.14.RELEASE.jar, /Users/jeff/.m2/repository/net/sourceforge/javacsv/javacsv/2.0/javacsv-2.0.jar, /Users/jeff/.m2/repository/com/jcraft/jsch/0.1.42/jsch-0.1.42.jar, /Users/jeff/.m2/repository/jfree/jfreechart/1.0.12/jfreechart-1.0.12.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-features-clustering/3.0.5/cxf-rt-features-clustering-3.0.5.jar, /Users/jeff/.m2/repository/net/oauth/core/oauth-provider/20100527/oauth-provider-20100527.jar, /Users/jeff/.m2/repository/org/fusesource/hawtbuf/hawtbuf/1.9/hawtbuf-1.9.jar, /Users/jeff/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.11/jaxb-impl-2.2.11.jar, /Users/jeff/.m2/repository/org/hamcrest/hamcrest-library/1.3/hamcrest-library-1.3.jar, /Users/jeff/.m2/repository/commons-lang/commons-lang/2.4/commons-lang-2.4.jar, /Users/jeff/.m2/repository/org/codehaus/groovy/groovy-all/2.4.4/groovy-all-2.4.4.jar, /Users/jeff/.m2/repository/org/apache/camel/camel-cxf/2.14.3/camel-cxf-2.14.3.jar, /Users/jeff/.m2/repository/org/apache/avalon/framework/avalon-framework-api/4.3.1/avalon-framework-api-4.3.1.jar, /Users/jeff/.m2/repository/javax/transaction/jta/1.1/jta-1.1.jar, /Users/jeff/.m2/repository/org/apache/wss4j/wss4j-ws-security-common/2.0.5/wss4j-ws-security-common-2.0.5.jar, /Users/jeff/.m2/repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar, /Users/jeff/.m2/repository/org/springframework/security/spring-security-crypto/3.1.0.RELEASE/spring-security-crypto-3.1.0.RELEASE.jar, /Users/jeff/.m2/repository/org/apache/ws/xmlschema/xmlschema-core/2.2.1/xmlschema-core-2.2.1.jar, /Users/jeff/.m2/repository/net/sf/jasperreports/jasperreports/5.0.1/jasperreports-5.0.1.jar, /Users/jeff/.m2/repository/org/springframework/spring-jdbc/3.2.14.RELEASE/spring-jdbc-3.2.14.RELEASE.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-rs-extension-providers/3.0.6/cxf-rt-rs-extension-providers-3.0.6.jar, /Users/jeff/.m2/repository/org/springframework/spring-context-support/3.2.14.RELEASE/spring-context-support-3.2.14.RELEASE.jar, /Users/jeff/.m2/repository/cglib/cglib/2.2/cglib-2.2.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-rs-client/3.0.6/cxf-rt-rs-client-3.0.6.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/xmlgraphics-commons/1.5/xmlgraphics-commons-1.5.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-script/1.7/batik-script-1.7.jar, /Users/jeff/.m2/repository/commons-chain/commons-chain/1.1/commons-chain-1.1.jar, /Users/jeff/.m2/repository/org/xhtmlrenderer/flying-saucer-core/9.0.3/flying-saucer-core-9.0.3.jar, /Users/jeff/.m2/repository/c3p0/c3p0/0.9.1.1/c3p0-0.9.1.1.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-tools-common/3.0.6/cxf-tools-common-3.0.6.jar, /Users/jeff/.m2/repository/org/apache/cxf/xjc-utils/cxf-xjc-runtime/3.0.2/cxf-xjc-runtime-3.0.2.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-parser/1.7/batik-parser-1.7.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-transports-local/3.0.6/cxf-rt-transports-local-3.0.6.jar, /Users/jeff/.m2/repository/org/owasp/esapi/esapi/2.1.0/esapi-2.1.0.jar, /Users/jeff/.m2/repository/org/hibernate/javax/persistence/hibernate-jpa-2.0-api/1.0.1.Final/hibernate-jpa-2.0-api-1.0.1.Final.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/fop/1.1/fop-1.1.jar, /Users/jeff/.m2/repository/org/opensaml/xmltooling/1.4.1/xmltooling-1.4.1.jar, /Users/jeff/.m2/repository/com/transverse/bleep/bleep-domain-rating-formula/1.28.5-SNAPSHOT/bleep-domain-rating-formula-1.28.5-SNAPSHOT.jar, /Users/jeff/.m2/repository/javax/ws/rs/javax.ws.rs-api/2.0.1/javax.ws.rs-api-2.0.1.jar, /Users/jeff/.m2/repository/org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar, /Users/jeff/.m2/repository/org/codehaus/groovy/groovy-json/2.4.4/groovy-json-2.4.4.jar, /Users/jeff/.m2/repository/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar, /Users/jeff/.m2/repository/com/jayway/restassured/xml-path/2.5.0/xml-path-2.5.0.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-svggen/1.7/batik-svggen-1.7.jar, /Users/jeff/.m2/repository/org/apache/xmlbeans/xmlbeans/2.3.0/xmlbeans-2.3.0.jar, /Users/jeff/.m2/repository/com/transverse/bleep/bleep-core/1.28.5-SNAPSHOT/bleep-core-1.28.5-SNAPSHOT.jar, /Users/jeff/.m2/repository/org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar, /Users/jeff/.m2/repository/org/apache/camel/camel-jpa/2.14.3/camel-jpa-2.14.3.jar, /Users/jeff/.m2/repository/com/transverse/commons/commons-tenant/1.0.1/commons-tenant-1.0.1.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-frontend-jaxws/3.0.6/cxf-rt-frontend-jaxws-3.0.6.jar, /Users/jeff/.m2/repository/org/apache/santuario/xmlsec/2.0.5/xmlsec-2.0.5.jar, /Users/jeff/.m2/repository/com/thoughtworks/xstream/xstream/1.4.1/xstream-1.4.1.jar, /Users/jeff/.m2/repository/com/hazelcast/hazelcast/3.2/hazelcast-3.2.jar, /Users/jeff/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.6.0/jackson-core-2.6.0.jar, /Users/jeff/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-dom/1.7/batik-dom-1.7.jar, /Users/jeff/.m2/repository/xml-apis/xml-apis/1.3.02/xml-apis-1.3.02.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-awt-util/1.7/batik-awt-util-1.7.jar, /Users/jeff/.m2/repository/org/apache/wss4j/wss4j-ws-security-stax/2.0.5/wss4j-ws-security-stax-2.0.5.jar, /Users/jeff/.m2/repository/org/drools/knowledge-api/5.5.0.Final/knowledge-api-5.5.0.Final.jar, /Users/jeff/.m2/repository/org/apache/wss4j/wss4j-ws-security-policy-stax/2.0.5/wss4j-ws-security-policy-stax-2.0.5.jar, /Users/jeff/.m2/repository/net/sourceforge/nekohtml/nekohtml/1.9.12/nekohtml-1.9.12.jar, /Users/jeff/.m2/repository/wsdl4j/wsdl4j/1.6.3/wsdl4j-1.6.3.jar, /Users/jeff/.m2/repository/org/codehaus/castor/castor/1.2/castor-1.2.jar, /Users/jeff/.m2/repository/org/springframework/spring-beans/3.2.14.RELEASE/spring-beans-3.2.14.RELEASE.jar, /Users/jeff/.m2/repository/commons-beanutils/commons-beanutils/1.8.3/commons-beanutils-1.8.3.jar, /Users/jeff/.m2/repository/org/apache/httpcomponents/httpmime/4.3.6/httpmime-4.3.6.jar, /Users/jeff/.m2/repository/com/transverse/bleep/bleep-domain-job/1.28.5-SNAPSHOT/bleep-domain-job-1.28.5-SNAPSHOT.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-testutils/3.0.6/cxf-testutils-3.0.6.jar, /Users/jeff/.m2/repository/org/springframework/spring-aspects-transverse/3.2.14.RELEASE/spring-aspects-transverse-3.2.14.RELEASE.jar, /Users/jeff/.m2/repository/com/transverse/bleep/bleep-domain/1.28.5-SNAPSHOT/bleep-domain-1.28.5-SNAPSHOT.jar, /Users/jeff/.m2/repository/org/codehaus/jettison/jettison/1.3.4/jettison-1.3.4.jar, /Users/jeff/.m2/repository/jfree/jcommon/1.0.15/jcommon-1.0.15.jar, /Users/jeff/.m2/repository/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar, /Users/jeff/.m2/repository/net/sf/dozer/dozer/5.3.0/dozer-5.3.0.jar, /Users/jeff/.m2/repository/org/aspectj/aspectjweaver/1.8.5/aspectjweaver-1.8.5.jar, /Users/jeff/.m2/repository/net/oauth/core/oauth/20100527/oauth-20100527.jar, /Users/jeff/.m2/repository/org/apache/activemq/activemq-openwire-legacy/5.8.0/activemq-openwire-legacy-5.8.0.jar, /Users/jeff/.m2/repository/org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.jar, /Users/jeff/.m2/repository/com/sun/xml/bind/jaxb-core/2.2.11/jaxb-core-2.2.11.jar, /Users/jeff/.m2/repository/xalan/serializer/2.7.1/serializer-2.7.1.jar, /Users/jeff/.m2/repository/org/apache/geronimo/specs/geronimo-j2ee-management_1.1_spec/1.0.1/geronimo-j2ee-management_1.1_spec-1.0.1.jar, /Users/jeff/.m2/repository/org/opensaml/openws/1.5.1/openws-1.5.1.jar, /Users/jeff/.m2/repository/org/opensaml/opensaml/2.6.1/opensaml-2.6.1.jar, /Users/jeff/.m2/repository/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar, /Users/jeff/.m2/repository/org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.jar, /Users/jeff/.m2/repository/asm/asm/3.3.1/asm-3.3.1.jar, /Users/jeff/.m2/repository/commons-codec/commons-codec/1.5/commons-codec-1.5.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-ws-policy/3.0.6/cxf-rt-ws-policy-3.0.6.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-bindings-xml/3.0.6/cxf-rt-bindings-xml-3.0.6.jar, /Users/jeff/.m2/repository/commons-net/commons-net/2.0/commons-net-2.0.jar, /Users/jeff/.m2/repository/net/sf/ehcache/ehcache/2.8.5/ehcache-2.8.5.jar, /Users/jeff/.m2/repository/org/apache/cxf/cxf-rt-databinding-jaxb/3.0.6/cxf-rt-databinding-jaxb-3.0.6.jar, /Users/jeff/.m2/repository/org/springframework/spring-context/3.2.14.RELEASE/spring-context-3.2.14.RELEASE.jar, /Users/jeff/.m2/repository/org/aspectj/aspectjrt/1.8.5/aspectjrt-1.8.5.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-js/1.7/batik-js-1.7.jar, /Users/jeff/.m2/repository/eu/medsea/mimeutil/mime-util/2.1.3/mime-util-2.1.3.jar, /Users/jeff/.m2/repository/com/transverse/bleep/bleep-service/1.28.5-SNAPSHOT/bleep-service-1.28.5-SNAPSHOT.jar, /Users/jeff/.m2/repository/xml-apis/xml-apis-ext/1.3.04/xml-apis-ext-1.3.04.jar, /Users/jeff/.m2/repository/org/owasp/antisamy/1.4/antisamy-1.4.jar, /Users/jeff/.m2/repository/org/apache/poi/poi/3.7/poi-3.7.jar, /Users/jeff/.m2/repository/org/apache/poi/poi-ooxml-schemas/3.7/poi-ooxml-schemas-3.7.jar, /Users/jeff/.m2/repository/org/codehaus/groovy/groovy-xml/2.4.4/groovy-xml-2.4.4.jar, /Users/jeff/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar, /Users/jeff/.m2/repository/org/apache/poi/poi-ooxml/3.7/poi-ooxml-3.7.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-xml/1.7/batik-xml-1.7.jar, /Users/jeff/.m2/repository/org/apache/geronimo/specs/geronimo-servlet_3.0_spec/1.0/geronimo-servlet_3.0_spec-1.0.jar, /Users/jeff/.m2/repository/javax/xml/bind/jaxb-api/2.2.9/jaxb-api-2.2.9.jar, /Users/jeff/.m2/repository/paypal/base/4.3.1/base-4.3.1.jar, /Users/jeff/.m2/repository/eclipse/jdtcore/3.1.0/jdtcore-3.1.0.jar, /Users/jeff/.m2/repository/org/springframework/spring-test/3.2.14.RELEASE/spring-test-3.2.14.RELEASE.jar, /Users/jeff/.m2/repository/org/dbunit/dbunit/2.4.7/dbunit-2.4.7.jar, /Users/jeff/.m2/repository/xalan/xalan/2.7.1/xalan-2.7.1.jar, /Users/jeff/.m2/repository/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar, /Users/jeff/.m2/repository/sslext/sslext/1.2-0/sslext-1.2-0.jar, /Users/jeff/.m2/repository/org/ccil/cowan/tagsoup/tagsoup/1.2.1/tagsoup-1.2.1.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-gvt/1.7/batik-gvt-1.7.jar, /Users/jeff/.m2/repository/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.6.0/jackson-module-jaxb-annotations-2.6.0.jar, /Users/jeff/.m2/repository/org/apache/xmlgraphics/batik-anim/1.7/batik-anim-1.7.jar, /Users/jeff/.m2/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar, /Users/jeff/.m2/repository/org/hibernate/hibernate-entitymanager/3.6.9.Final/hibernate-entitymanager-3.6.9.Final.jar, /Users/jeff/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.6.0/jackson-databind-2.6.0.jar, /Users/jeff/.m2/repository/org/apache/camel/camel-groovy/2.14.3/camel-groovy-2.14.3.jar, /Users/jeff/.m2/repository/org/quartz-scheduler/quartz/2.2.0/quartz-2.2.0.jar, /Users/jeff/.m2/repository/commons-digester/commons-digester/2.1/commons-digester-2.1.jar, /Users/jeff/.m2/repository/org/springframework/spring-core/3.2.14.RELEASE/spring-core-3.2.14.RELEASE.jar] [DEBUG] Project paths are: [/Users/jeff/Workspaces/Tract/trunk/tract-projects/tract/tract-api/target/classes] [ERROR] Could not analyze the method: javassist.CtMethod@63ec066f[public addDiscountIdentifier (Ljava/lang/String;Lcom/gotransverse/tract/api/command/discount/RemoveDiscountIdentifierFromDiscountCodeCommand;Ljavax/ws/rs/core/UriInfo;)Ljavax/ws/rs/core/Response;] [DEBUG] java.lang.IllegalStateException: Runtime stack under-flow occurred. at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.reduction.StackSizeSimulator.buildStackSizes(StackSizeSimulator.java:53) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.reduction.RelevantInstructionReducer.reduceInstructions(RelevantInstructionReducer.java:55) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.interpretRelevantInstructions(MethodContentAnalyzer.java:59) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:113) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:115) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:115) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:115) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:115) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.findProjectMethods(MethodContentAnalyzer.java:88) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.ResourceMethodContentAnalyzer.analyze(ResourceMethodContentAnalyzer.java:63) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyzeMethodContent(MethodAnalyzer.java:236) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyzeInternal(MethodAnalyzer.java:157) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyze(MethodAnalyzer.java:78) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.classes.ClassAnalyzer.analyzeInternal(ClassAnalyzer.java:121) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.classes.ClassAnalyzer.analyze(ClassAnalyzer.java:65) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1540) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at com.sebastian_daschner.jaxrs_analyzer.analysis.ProjectAnalyzer.analyze(ProjectAnalyzer.java:84) at com.sebastian_daschner.jaxrs_analyzer.JAXRSAnalyzer.analyze(JAXRSAnalyzer.java:69) at com.sebastian_daschner.jaxrs_analyzer.maven.JAXRSAnalyzerMojo.execute(JAXRSAnalyzerMojo.java:148) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) at org.apache.maven.cli.MavenCli.main(MavenCli.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

[ERROR] Could not analyze the method: javassist.CtMethod@e0816210[public getDiscountCodes (II)Lcom/gotransverse/tract/api/rest/dto/discount/DiscountCodesRestDTO;] [DEBUG] java.lang.IllegalStateException: Runtime stack under-flow occurred. at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.reduction.StackSizeSimulator.buildStackSizes(StackSizeSimulator.java:53) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.reduction.RelevantInstructionReducer.reduceInstructions(RelevantInstructionReducer.java:55) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.interpretRelevantInstructions(MethodContentAnalyzer.java:59) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:113) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:115) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:115) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:115) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.findProjectMethods(MethodContentAnalyzer.java:88) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.ResourceMethodContentAnalyzer.analyze(ResourceMethodContentAnalyzer.java:63) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyzeMethodContent(MethodAnalyzer.java:236) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyzeInternal(MethodAnalyzer.java:157) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyze(MethodAnalyzer.java:78) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.classes.ClassAnalyzer.analyzeInternal(ClassAnalyzer.java:121) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.classes.ClassAnalyzer.analyze(ClassAnalyzer.java:65) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1540) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at com.sebastian_daschner.jaxrs_analyzer.analysis.ProjectAnalyzer.analyze(ProjectAnalyzer.java:84) at com.sebastian_daschner.jaxrs_analyzer.JAXRSAnalyzer.analyze(JAXRSAnalyzer.java:69) at com.sebastian_daschner.jaxrs_analyzer.maven.JAXRSAnalyzerMojo.execute(JAXRSAnalyzerMojo.java:148) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) at org.apache.maven.cli.MavenCli.main(MavenCli.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

....

[ERROR] Could not access static property, reason: com.gotransverse.tract.api.TractApiContext [DEBUG] java.lang.ClassNotFoundException: com.gotransverse.tract.api.TractApiContext at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateGetStatic(MethodSimulator.java:188) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulate(MethodSimulator.java:100) at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1235) at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInternal(MethodSimulator.java:73) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.InjectableArgumentMethodSimulator.simulate(InjectableArgumentMethodSimulator.java:63) at com.sebastian_daschner.jaxrs_analyzer.model.methods.ProjectMethod.invoke(ProjectMethod.java:47) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInvoke(MethodSimulator.java:175) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulate(MethodSimulator.java:93) at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1235) at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInternal(MethodSimulator.java:73) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.InjectableArgumentMethodSimulator.simulate(InjectableArgumentMethodSimulator.java:63) at com.sebastian_daschner.jaxrs_analyzer.model.methods.ProjectMethod.invoke(ProjectMethod.java:47) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInvoke(MethodSimulator.java:175) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulate(MethodSimulator.java:93) at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1235) at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInternal(MethodSimulator.java:73) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.InjectableArgumentMethodSimulator.simulate(InjectableArgumentMethodSimulator.java:63) at com.sebastian_daschner.jaxrs_analyzer.model.methods.ProjectMethod.invoke(ProjectMethod.java:47) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInvoke(MethodSimulator.java:175) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulate(MethodSimulator.java:93) at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1235) at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInternal(MethodSimulator.java:73) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulate(MethodSimulator.java:60) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.ResourceMethodContentAnalyzer.analyze(ResourceMethodContentAnalyzer.java:68) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyzeMethodContent(MethodAnalyzer.java:236) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyzeInternal(MethodAnalyzer.java:157) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyze(MethodAnalyzer.java:78) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.classes.ClassAnalyzer.analyzeInternal(ClassAnalyzer.java:121) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.classes.ClassAnalyzer.analyze(ClassAnalyzer.java:65) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1540) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at com.sebastian_daschner.jaxrs_analyzer.analysis.ProjectAnalyzer.analyze(ProjectAnalyzer.java:84) at com.sebastian_daschner.jaxrs_analyzer.JAXRSAnalyzer.analyze(JAXRSAnalyzer.java:69) at com.sebastian_daschner.jaxrs_analyzer.maven.JAXRSAnalyzerMojo.execute(JAXRSAnalyzerMojo.java:148) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) at org.apache.maven.cli.MavenCli.main(MavenCli.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

[ERROR] Could not access static property, reason: com.gotransverse.tract.api.TractApiContext [DEBUG] java.lang.ClassNotFoundException: com.gotransverse.tract.api.TractApiContext at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateGetStatic(MethodSimulator.java:188) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulate(MethodSimulator.java:100) at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1235) at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInternal(MethodSimulator.java:73) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.InjectableArgumentMethodSimulator.simulate(InjectableArgumentMethodSimulator.java:63) at com.sebastian_daschner.jaxrs_analyzer.model.methods.ProjectMethod.invoke(ProjectMethod.java:47) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInvoke(MethodSimulator.java:175) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulate(MethodSimulator.java:93) at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1235) at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInternal(MethodSimulator.java:73) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.InjectableArgumentMethodSimulator.simulate(InjectableArgumentMethodSimulator.java:63) at com.sebastian_daschner.jaxrs_analyzer.model.methods.ProjectMethod.invoke(ProjectMethod.java:47) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInvoke(MethodSimulator.java:175) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulate(MethodSimulator.java:93) at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1235) at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInternal(MethodSimulator.java:73) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.InjectableArgumentMethodSimulator.simulate(InjectableArgumentMethodSimulator.java:63) at com.sebastian_daschner.jaxrs_analyzer.model.methods.ProjectMethod.invoke(ProjectMethod.java:47) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInvoke(MethodSimulator.java:175) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulate(MethodSimulator.java:93) at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1235) at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulateInternal(MethodSimulator.java:73) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.simulation.MethodSimulator.simulate(MethodSimulator.java:60) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.ResourceMethodContentAnalyzer.analyze(ResourceMethodContentAnalyzer.java:68) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyzeMethodContent(MethodAnalyzer.java:236) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyzeInternal(MethodAnalyzer.java:157) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyze(MethodAnalyzer.java:78) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.classes.ClassAnalyzer.analyzeInternal(ClassAnalyzer.java:121) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.classes.ClassAnalyzer.analyze(ClassAnalyzer.java:65) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1540) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at com.sebastian_daschner.jaxrs_analyzer.analysis.ProjectAnalyzer.analyze(ProjectAnalyzer.java:84) at com.sebastian_daschner.jaxrs_analyzer.JAXRSAnalyzer.analyze(JAXRSAnalyzer.java:69) at com.sebastian_daschner.jaxrs_analyzer.maven.JAXRSAnalyzerMojo.execute(JAXRSAnalyzerMojo.java:148) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) at org.apache.maven.cli.MavenCli.main(MavenCli.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

.....

[ERROR] Could not analyze the method: javassist.CtMethod@1dd46a13[public getRecurringProductPrices (II)Lcom/gotransverse/tract/api/rest/dto/product/RecurringProductPricesRestDTO;] [DEBUG] java.lang.IllegalStateException: Runtime stack under-flow occurred. at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.reduction.StackSizeSimulator.buildStackSizes(StackSizeSimulator.java:53) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.reduction.RelevantInstructionReducer.reduceInstructions(RelevantInstructionReducer.java:55) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.interpretRelevantInstructions(MethodContentAnalyzer.java:59) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:113) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:115) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:115) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:115) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.findProjectMethods(MethodContentAnalyzer.java:88) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.ResourceMethodContentAnalyzer.analyze(ResourceMethodContentAnalyzer.java:63) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyzeMethodContent(MethodAnalyzer.java:236) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyzeInternal(MethodAnalyzer.java:157) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyze(MethodAnalyzer.java:78) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.classes.ClassAnalyzer.analyzeInternal(ClassAnalyzer.java:121) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.classes.ClassAnalyzer.analyze(ClassAnalyzer.java:65) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1540) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at com.sebastian_daschner.jaxrs_analyzer.analysis.ProjectAnalyzer.analyze(ProjectAnalyzer.java:84) at com.sebastian_daschner.jaxrs_analyzer.JAXRSAnalyzer.analyze(JAXRSAnalyzer.java:69) at com.sebastian_daschner.jaxrs_analyzer.maven.JAXRSAnalyzerMojo.execute(JAXRSAnalyzerMojo.java:148) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) at org.apache.maven.cli.MavenCli.main(MavenCli.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

[ERROR] Could not analyze the method: javassist.CtMethod@ff99e001[public getUsageLookupTableById (Ljava/lang/String;Ljavax/ws/rs/core/UriInfo;)Lcom/gotransverse/tract/api/dto/usage/UsageLookupTableDTO;] [DEBUG] java.lang.IllegalStateException: Runtime stack under-flow occurred. at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.reduction.StackSizeSimulator.buildStackSizes(StackSizeSimulator.java:53) at com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode.reduction.RelevantInstructionReducer.reduceInstructions(RelevantInstructionReducer.java:55) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.interpretRelevantInstructions(MethodContentAnalyzer.java:59) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:113) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:115) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.addProjectMethods(MethodContentAnalyzer.java:115) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodContentAnalyzer.findProjectMethods(MethodContentAnalyzer.java:88) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.ResourceMethodContentAnalyzer.analyze(ResourceMethodContentAnalyzer.java:63) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyzeMethodContent(MethodAnalyzer.java:236) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyzeInternal(MethodAnalyzer.java:157) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.methods.MethodAnalyzer.analyze(MethodAnalyzer.java:78) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.classes.ClassAnalyzer.analyzeInternal(ClassAnalyzer.java:121) at com.sebastian_daschner.jaxrs_analyzer.analysis.project.classes.ClassAnalyzer.analyze(ClassAnalyzer.java:65) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1540) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at com.sebastian_daschner.jaxrs_analyzer.analysis.ProjectAnalyzer.analyze(ProjectAnalyzer.java:84) at com.sebastian_daschner.jaxrs_analyzer.JAXRSAnalyzer.analyze(JAXRSAnalyzer.java:69) at com.sebastian_daschner.jaxrs_analyzer.maven.JAXRSAnalyzerMojo.execute(JAXRSAnalyzerMojo.java:148) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286) at org.apache.maven.cli.MavenCli.main(MavenCli.java:197) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

....

[DEBUG] Analysis took 1827 ms

sdaschner commented 9 years ago

Thanks for issuing that! The Could not access static property logs are known errors (some classpath & static instance accessing issue with Javassist). I would kindly ask you to ignore them for now.

The Runtime stack under-flow occurred errors however should never happen. The problem for here is how to reproduce the error, as in I never got that problem in any test so far.

Could you please provide some information about some method which causes the error - seen in Could not analyze the method [...] public methodName()? The thing is that not the method itself causes the problem rather than some nested method (in several levels - as you can see in the number of nested MethodContentAnalyzer.addProjectMethods calls in the trace).

Feel free to send me an email with pseudonym names if the code contains critical information. Thanks again for your effort!

kmoralesmartin commented 9 years ago

I realize this is a known issue, but if it helps, I am getting ERROR entries in my mvn run. The situation is like so:

  1. We have a parent maven project, a parent pom with 3 child modules pom.xml |lib (the child module with business logic) |rest (ReST ful resources that invoke lib classes, depends on lib) |__war (the war module itself, which only contains web.xml and jboss-web.xml)

The analyzer is run on the rest child module, because the classes that have jaxrs annotations are in there. However, for rest resources that in turn use lib classes, such as a a factory and a static property: [ERROR] Could not access static property, reason: org.cas.xxx.xxx.lib.XXXToolFactory

The factory class is public.

We have other problems with the documentation that is being emitted but will not list them in this particular issue.

jeff9finger commented 8 years ago

Sorry that is has taken me so long to get back to this...

I have two api packages now. One is using DTOs that are JAXB annotated and the other is JSON annotated (uses jackson for processing)

For the JSON annotated version, there are only a few errors.

    @Path("{id}/pdf")
    @Produces(PDF_CONTENT_TYPE)
    @GET
    public Response getInvoicePdf(@PathParam("account_id") Long accountId, @PathParam("invoice_id") Long id) {
                ...
        Invoice invoice = invoiceRepository.get(Long.valueOf(id), accountId);
        if (invoice != null) {
                    data = // build invoice pdf
        } else {
                   //throw exception;
        }
        Response.ResponseBuilder rb = Response.ok(data);
        StringBuilder sb = new StringBuilder("attachment; filename=");
        sb.append(id);
        sb.append(".pdf");
        rb.header("Content-Disposition", sb.toString());
        return rb.build();
    }

For the JAXB version, there are many errors.

Each of these had the following message immediately after it in the mvn log: [DEBUG] java.lang.IllegalStateException: Runtime stack under-flow occurred.

    @Path("{eid}")
    @GET
    @Produces(MediaType.APPLICATION_XML)
    public ReasonDTO<? extends Reason> getReason(@PathParam("eid") String eid) {
        try {
            return //query db for reason by ID
        } catch(Exception e) {
             //throw exception;
        }
    }

    @Path("/")
    @GET
    @Produces(MediaType.APPLICATION_XML)
    public ReasonsRestDTO<? extends ReasonDTO<? extends Reason>> getReasons(@QueryParam(PAGE_NUMBER) @DefaultValue(DEFAULT_PAGE_NUMBER) int pageNumber, @QueryParam(PAGE_SIZE) @DefaultValue(DEFAULT_SIZE) int pageSize) {
        try {
            MultivaluedMap<String, String> queryParams = getUriInfo().getQueryParameters();
            Page<ReasonDTO<? extends Reason>> reasonList = query(queryParams, pageNumber, pageSize);
            ReasonsRestDTO<? extends ReasonDTO<? extends Reason>> dto = new ReasonsRestDTO(reasonList,                                                                               getUriInfo().getRequestUriBuilder().clone());
            return dto;
        } catch(Exception e) {
            //throw exception
        }
    }

Let me know if this helps

jeff9finger commented 8 years ago

Hi Sebastian,

I am working on fixing this, unless you have already done it ;-) Do you have any thoughts on what the problem is here?

sdaschner commented 8 years ago

Hi Jeff,

You're more than welcome to contribute, go ahead! :-)

The first error may have some dependency reasons -- I sometime had some errors with the class / dependency loading of Javassist...

What I'm more concerned about are the "Runtime stack under-flow" errors... The bytecode simulation should actually work reliably. Please go ahead and try to debug these as well, but I'd recommend to start with the first ones, these may definitely be easier to debug :-) I will definitely have a look at the errors as well but currently I'm quite busy, hope it gets better next week.

To help you getting started if you already cloned my sources: what I always do, I start the Analyzer's Main class from the IDE as debug run and configure the path of the compiled sources of the JAX-RS project. You may need to add some dependencies as classpath. Using this approach is easier than debugging the Maven process.

jeff9finger commented 8 years ago

I have been looking into the code for a while, so I've got my IDE configured for debugging already. Thanks for the tips though.

The stack under-flow errors seem to always occur on a "pop" instruction. Could this be that the byte code is not being simulated correctly? That is the hunch that I'm looking at, but if you have other ideas, please let me know.

jeff9finger commented 8 years ago

So the error seems to always occur when a ReturnInstruction or throwInstruction (caused by RETURN or THROW) is followed by a DefaultInstruction with a "pop" opcode. I don't understand why there would be a pop in the list of instructions after this.

According to the Java SE spec, a return opcode should leave the stack empty. So it is understandable that a pop would make the code break.

What I don't quite understand yet is why a "pop" bytecode is being added to the list of instructions. I looked at the bytecode for a couple of the files and don't see a "pop" instruction at all. Is this a javaassist issue?

sdaschner commented 8 years ago

Hehe, I'm really impressed, you came far ;-)

Well, of course according the JLS this scenario of instruction isn't possible, but the analyzer algorithm kinda shrinks the Java instructions to the "needed" ones -- in terms of the wanted return statements -- which is how the algorithm works internally. What reminds me of the fact that I still have to document a lot of functionality that I described in my computer science thesis....

However, the important thing is that the assumptions or rather "definitions" the algorithm makes should be generally applicable to all kind of Java code, i. e. the above error should never happen while simulating the instructions on the runtime stack. So this would mean that either the algorithm is not fully complete for all kinds of situations or that there is some implementation bug -- I think (and hope) the latter one.

I'm glad you dived into the analysis that far and would like to give you some more information about the algorithm to make it easier for you. As I said I hope I get some time in the beginning of the next week so you're not stepping in the dark for too long. It's a shame I didn't write my thesis in English, otherwise I would send you a copy via email :-)

And to answer you're question, no this is not a Javassist issue here, the analyzing part simplifies some instruction information for better managebility, this is why there is some POP instruction where there is none in the Bytecode :-)

jeff9finger commented 8 years ago

Thanks for the information. I don't see where the "extra" Instructions are coming from. It looks like the javaassist codeIterator just gives the next index for the next opcode. And the next opcode is "pop" in these cases. I set breakpoints in CodeIterator to see if anything was writing to it, but do not see anything. So I do not understand how these "pop" instructions are being added unless they are added in javaassist.

Here is a sequence of instructions that commonly cause the error:

GetStaticInstruction{type='GET_STATIC', containingClass='com.transverse.bleep.api.rest.BaseRestService', propertyName='$SWITCH_TABLE$com$transverse$bleep$api$FailureReason', propertyType='int[]'}
DupInstruction{}
SizeChangingInstruction{type='SIZE_CHANGE', description='ifnull', numberOfPushes=0, numberOfPops=1}
ReturnInstruction{}
SizeChangingInstruction{type='SIZE_CHANGE', description='pop', numberOfPushes=0, numberOfPops=1}

java.lang.IllegalStateException: Runtime stack under-flow occurred

The sequence should end after the ReturnInstruction{}.

bytecode:

The actual Java code looks like:

        try {
          ...
        } catch (RequestFault e) {
            if (logger.isInfoEnabled()) {
                if (FailureReason.VALIDATION_FAILURE.equals(e.getFailureReason())) {
                    logger.info("Failed to create payment: {}", e.getLocalizedMessage());
                } else {
                    logger.info("Failed to create payment: ", e);
                }
            }
            throw new WebApplicationException()
        }
jeff9finger commented 8 years ago

It appears that the issue is that the pseudoExceptionHandler that is added as ExceptionHandlerInstruction() is the culprit. The net effect is that one element is added to the stack in the simulation. I am looking further into this to determine the reason for this and if this needs to be more nuanced than simply adding it when a handler is detected. Or maybe the handler detection method is not complete.

Anyway, if you have thoughts on this, please share them.

Thanks

sdaschner commented 8 years ago

Yes, I started to look into that problem. Unfortunately the code of your examples didn't fail when I tested it. Maybe you can email me a concrete example of a method which fails during the analysis?

The ExceptionHandlerInstruction simulates the exception handlers of methods. When the JVM executes the code and some exception occurs the exception has to be on top of the stack when the execution is continued in the exception handler position of the calling method (i.e. the beginning of the catch-clause). For the simulation I'm faking this behavior (that the stack contains the exception at that point) by adding that ExceptionHandlerInstruction. The simulation can add one element "in mind", as at runtime there would be an element when you reach that code.

sdaschner commented 8 years ago

And a short description of the analysis, although I'm sure you already got it anyway :-)

The main purpose of the Bytecode analysis is to check where the state of a method's return value "come from". This includes the object itself and all methods called on it plus the actual arguments of these and so on, all done recursively. The main target was to automatically "understand" code like return Response.status(Response.Status.ACCEPTED).header(... in the method bodies.

As I want to save runtime of the analysis, I'm only interested in statements which are actually "relevant" for the returned value. Example:

public Response something() {
    int status = 200; // relevant
    System.out.println("Hello World"); // not relevant
    doSomethingImportant(); // not relevant
    return Response.status(status).build(); // relevant
}

In order to get the relevant statements, I'm starting from the return statements (ARETURN opcodes in this case). As one "Java statement" (i.e. in mostly all cases one line until ;) can include method calls and LOAD instructions of variables, I need to track them recursively and mark them as relevant (and subsequent "relevants" as well).

Now the interesting part for the error is how the "Java statement" lines are recognized in the plain sequence of Bytecode instructions: The point is, that before and after every "statement" the runtime stack of the JVM would be empty. For System.out.println("Hello World"); this would add java/lang/System.out's PrintStream, add "Hello World" and finally invoking PrintStream#println which pops the print stream and the string from the stack again -> println is void, no returned value and empty stack again. This is true for more complex statements as well.

In order to do this the StackSizeSimulator simulates the number of stack elements before and after every opcode. This list is used later to have the beginning and end of every "Java statement" needed for reducing the relevant instructions.

The error now occurs at this point where the StackSizeSimulator wants to simulate the stack sizes of the original set of instructions -- nothing reduced yet, but including the pseudo ExceptionHandlerInstruction, because they are needed for obvious reasons. The simulator sees a POP instruction where the stack size is already 0... And this is the big question why the set of instruction is not consistent at this point -- maybe because some ExceptionHandlerInstruction is missing (which would have added one element).

So what really would help me is to have the original set of instructions plus (even more important) the original Java code of the method (which is collected into the set of instructions). Somewhere in between this lays the error. Feel free to mail me some code or dummy examples as it probably contains sensitive information, but the method code has to be complete and result in an error -- the examples with the ... unfortunately don't lead to an error...

Hope this helps :-)

jeff9finger commented 8 years ago

I have created a java file that creates the problem. But only when compiled through our maven build. When I build with javac (even with the same options used in the maven build) the error does not occur. :-\

But I have attached the source that breaks and the compiled classes that break. Maybe that will help ???

Let me know if you have any questions.

Thanks jaxrs-analyzer-files.zip

sdaschner commented 8 years ago

Now I finally found something:

Your class files in the zip differ from the class files when I compile the Sources (either with javac or by Maven build). Which Compiler are you using in your Maven build? Do you have any tools or configurations for compilation optimization?

The interesting part is the SWITCH_TABLE method:

0: getstatic ...
3: dup
4: ifnull
7: areturn
8: pop

I can't think of any Java code where this pattern is created. This comes from the generated $SWITCH_TABLE$ method, but normally that pattern looks different (when using Oracle's JDK). I'm continuing to dive into that but you maybe already have some information about the used JDK?

Anyway, currently the JAX-RS Analyzer has a problem with the above Bytecode, because it relies on the assumption that the opcode patterns are (more or less) completed and self-contained in terms of jumps and stack sizes...

jeff9finger commented 8 years ago

Sebastian,

After more investigation, I have determined that the classes generated by maven have been altered by aspectj weaving. Are you able to take this into consideration? It appears that the difference (at least in this case) is a difference in the constant pool.

It would really help me and my company if we could use this tool without having to remove aspectj weaving...

Let me know how you would like to proceed.

sdaschner commented 8 years ago

Hmm, I see.

Yes, I'd like to take that into consideration but what I'd need to know are the possible ways of how AspectJ could potentially modify the Bytecode. Therefore it would be definitely helpful to know the specific setup of your project, i.e. Java Compiler plus AspectJ incl. version, etc. (ideally the important parts of Maven's pom) and some example AOP advice.

Then we could have a look at the the specific way of how your project's Bytecode is created (in order to reproduce this specific problem) and then find a way of how the Analyzer can handle AspectJ modified code in general.

jeff9finger commented 8 years ago

Thanks for your comments. I will look into this in more detail and provide them here.

sdaschner commented 8 years ago

Closing for now, feel free to re-open.