Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

ArrayIndexOutOfBoundsException when using Java 8 language features #187

Closed
Lugribossk opened this issue Aug 24, 2014 · 15 comments
Closed

ArrayIndexOutOfBoundsException when using Java 8 language features #187

Lugribossk opened this issue Aug 24, 2014 · 15 comments
Assignees
Milestone

Comments

@Lugribossk
Copy link

com.avaje.ebean.enhance.asm.ClassReader seems to throw ArrayIndexOutOfBoundsExceptions when it encounters Java 8 language features. E.g. a collection.forEach(obj::method); call will throw

java.lang.ArrayIndexOutOfBoundsException: 2145
    at com.avaje.ebean.enhance.asm.ClassReader.readClass(ClassReader.java:1976)
    at com.avaje.ebean.enhance.asm.ClassReader.accept(ClassReader.java:464)
    at com.avaje.ebean.enhance.asm.ClassReader.accept(ClassReader.java:420)
    at com.avaje.ebean.enhance.agent.Transformer.detect(Transformer.java:242)
    at com.avaje.ebean.enhance.agent.Transformer.transform(Transformer.java:98)
    at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
    at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:367)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2688)
    at java.lang.Class.getMethod0(Class.java:2937)
    at java.lang.Class.getMethod(Class.java:1771)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:119)

This happens with Ebean version 4.1.6, and an example can be seen by running TodoListApplication in https://github.com/Lugribossk/dropwizard-experiment .

@megazord
Copy link
Contributor

megazord commented Sep 3, 2014

Is it related to jboss-javassist/javassist#13?

@Ajkcki
Copy link

Ajkcki commented Sep 5, 2014

I had the exactly same problem when trying to load "avaje-ebeanorm-agent-4.1.6.jar" using command line "java -javaagent:/path/...". Then I found that in all the test cases (https://github.com/ebean-orm/avaje-ebeanorm) they load the agent jar using a loader "avaje-agentloader.1.1.1.jar" instead. I download this jar, and add
the following code to my program and it seems to work.

if (!AgentLoader.loadAgentFromClasspath("avaje-ebeanorm-agent",
"debug=1;packages=PACKAGES OF YOUR MODELS")) {
logger.info("avaje-ebeanorm-agent not found in classpath - not dynamically loaded");
}

@jgangemi
Copy link

i just encountered this today w/ the maven enhancer and the eclipse plugin.

@rbygrave
Copy link
Member

I have reproduced the issue. Looking at the fix via upgrading the underlying ASM version used by the agent to 5.0.3

@rbygrave
Copy link
Member

Fixed in version 4.1.8 of the agent

.. and as such also fixed in the associated version 4.1.8 of the maven enhancer plugin.

@rbygrave rbygrave self-assigned this Oct 22, 2014
@rbygrave rbygrave added this to the 4.1.8 milestone Oct 22, 2014
@Lugribossk
Copy link
Author

Thanks, that fixed that exception! Unfortunately a new one seems to have popped up:

java.lang.NullPointerException
    at com.avaje.ebean.enhance.agent.ClassMeta$MethodReader.visitAnnotation(ClassMeta.java:370)
    at com.avaje.ebean.enhance.asm.ClassReader.readMethod(ClassReader.java:979)
    at com.avaje.ebean.enhance.asm.ClassReader.accept(ClassReader.java:693)
    at com.avaje.ebean.enhance.asm.ClassReader.accept(ClassReader.java:506)
    at com.avaje.ebean.enhance.agent.ClassMetaReader.readFromResource(ClassMetaReader.java:68)
    at com.avaje.ebean.enhance.agent.ClassMetaReader.getWithCache(ClassMetaReader.java:35)
    at com.avaje.ebean.enhance.agent.ClassMetaReader.get(ClassMetaReader.java:27)
    at com.avaje.ebean.enhance.agent.EnhanceContext.getInterfaceMeta(EnhanceContext.java:138)
    at com.avaje.ebean.enhance.agent.ClassAdapterDetectEnhancement.visit(ClassAdapterDetectEnhancement.java:108)
    at com.avaje.ebean.enhance.asm.ClassReader.accept(ClassReader.java:622)
    at com.avaje.ebean.enhance.asm.ClassReader.accept(ClassReader.java:506)
    at com.avaje.ebean.enhance.agent.Transformer.detect(Transformer.java:241)
    at com.avaje.ebean.enhance.agent.Transformer.transform(Transformer.java:97)

It looks like the problem is that MethodVisitor.visitAnnotation() performs a null check on mv, while the overridden ClassMeta$MethodReader.visitAnnotation() does not.

@rbygrave
Copy link
Member

Ok thanks I'll look into it. You are using 4.1.8 agent right?

I'm not quite sure why it is not getting caught in tests (on the agent or
when testing Ebean itself) ... maybe a third party annotation. If you have
an example bean that causes this error that would help reproduce and I can
add it to the tests.

Cheers, Rob.

On 24 October 2014 10:21, Bo Gotthardt notifications@github.com wrote:

Thanks, that fixed that exception! Unfortunately a new one seems to have
popped up:

java.lang.NullPointerException
at com.avaje.ebean.enhance.agent.ClassMeta$MethodReader.visitAnnotation(ClassMeta.java:370)
at com.avaje.ebean.enhance.asm.ClassReader.readMethod(ClassReader.java:979)
at com.avaje.ebean.enhance.asm.ClassReader.accept(ClassReader.java:693)
at com.avaje.ebean.enhance.asm.ClassReader.accept(ClassReader.java:506)
at com.avaje.ebean.enhance.agent.ClassMetaReader.readFromResource(ClassMetaReader.java:68)
at com.avaje.ebean.enhance.agent.ClassMetaReader.getWithCache(ClassMetaReader.java:35)
at com.avaje.ebean.enhance.agent.ClassMetaReader.get(ClassMetaReader.java:27)
at com.avaje.ebean.enhance.agent.EnhanceContext.getInterfaceMeta(EnhanceContext.java:138)
at com.avaje.ebean.enhance.agent.ClassAdapterDetectEnhancement.visit(ClassAdapterDetectEnhancement.java:108)
at com.avaje.ebean.enhance.asm.ClassReader.accept(ClassReader.java:622)
at com.avaje.ebean.enhance.asm.ClassReader.accept(ClassReader.java:506)
at com.avaje.ebean.enhance.agent.Transformer.detect(Transformer.java:241)
at com.avaje.ebean.enhance.agent.Transformer.transform(Transformer.java:97)

It looks like the problem is that MethodVisitor.visitAnnotation() performs
a null check on mv, while the overridden
ClassMeta$MethodReader.visitAnnotation() does not.


Reply to this email directly or view it on GitHub
#187 (comment)
.

@Lugribossk
Copy link
Author

Yes, running it via IntelliJ with VM options: -javaagent:C:/Users/Bo/.m2/repository/org/avaje/ebeanorm/avaje-ebeanorm-agent/4.1.8/avaje-ebeanorm-agent-4.1.8.jar which leads to the following command being run:

"C:\Program Files\Java\jdk1.8.0\bin\java" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:2203,suspend=y,server=n -javaagent:C:/Users/Bo/.m2/repository/org/avaje/ebeanorm/avaje-ebeanorm-agent/4.1.8/avaje-ebeanorm-agent-4.1.8.jar -javaagent:C:\Users\Bo\.IntelliJIdea13\system\groovyHotSwap\gragent.jar -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\zipfs.jar;C:\Workspaces\IntelliJ\dropwizard-experiment\todo\todo-server\target\classes;C:\Workspaces\IntelliJ\dropwizard-experiment\common\common-server\target\classes;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-core\0.7.1\dropwizard-core-0.7.1.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-util\0.7.1\dropwizard-util-0.7.1.jar;C:\Users\Bo\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.3.0\jackson-annotations-2.3.0.jar;C:\Users\Bo\.m2\repository\com\google\guava\guava\17.0\guava-17.0.jar;C:\Users\Bo\.m2\repository\com\google\code\findbugs\jsr305\3.0.0\jsr305-3.0.0.jar;C:\Users\Bo\.m2\repository\joda-time\joda-time\2.3\joda-time-2.3.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-jackson\0.7.1\dropwizard-jackson-0.7.1.jar;C:\Users\Bo\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.3.3\jackson-core-2.3.3.jar;C:\Users\Bo\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.3.3\jackson-databind-2.3.3.jar;C:\Users\Bo\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-guava\2.3.3\jackson-datatype-guava-2.3.3.jar;C:\Users\Bo\.m2\repository\com\fasterxml\jackson\module\jackson-module-afterburner\2.3.3\jackson-module-afterburner-2.3.3.jar;C:\Users\Bo\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-joda\2.3.3\jackson-datatype-joda-2.3.3.jar;C:\Users\Bo\.m2\repository\ch\qos\logback\logback-classic\1.1.2\logback-classic-1.1.2.jar;C:\Users\Bo\.m2\repository\ch\qos\logback\logback-core\1.1.2\logback-core-1.1.2.jar;C:\Users\Bo\.m2\repository\org\slf4j\slf4j-api\1.7.7\slf4j-api-1.7.7.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-validation\0.7.1\dropwizard-validation-0.7.1.jar;C:\Users\Bo\.m2\repository\org\hibernate\hibernate-validator\5.1.1.Final\hibernate-validator-5.1.1.Final.jar;C:\Users\Bo\.m2\repository\javax\validation\validation-api\1.1.0.Final\validation-api-1.1.0.Final.jar;C:\Users\Bo\.m2\repository\org\jboss\logging\jboss-logging\3.1.3.GA\jboss-logging-3.1.3.GA.jar;C:\Users\Bo\.m2\repository\com\fasterxml\classmate\1.0.0\classmate-1.0.0.jar;C:\Users\Bo\.m2\repository\org\glassfish\web\javax.el\2.2.6\javax.el-2.2.6.jar;C:\Users\Bo\.m2\repository\javax\el\javax.el-api\2.2.5\javax.el-api-2.2.5.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-configuration\0.7.1\dropwizard-configuration-0.7.1.jar;C:\Users\Bo\.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.3.3\jackson-dataformat-yaml-2.3.3.jar;C:\Users\Bo\.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-logging\0.7.1\dropwizard-logging-0.7.1.jar;C:\Users\Bo\.m2\repository\com\codahale\metrics\metrics-logback\3.0.2\metrics-logback-3.0.2.jar;C:\Users\Bo\.m2\repository\com\codahale\metrics\metrics-core\3.0.2\metrics-core-3.0.2.jar;C:\Users\Bo\.m2\repository\org\slf4j\jul-to-slf4j\1.7.6\jul-to-slf4j-1.7.6.jar;C:\Users\Bo\.m2\repository\org\slf4j\log4j-over-slf4j\1.7.6\log4j-over-slf4j-1.7.6.jar;C:\Users\Bo\.m2\repository\org\slf4j\jcl-over-slf4j\1.7.6\jcl-over-slf4j-1.7.6.jar;C:\Users\Bo\.m2\repository\org\eclipse\jetty\jetty-util\9.0.7.v20131107\jetty-util-9.0.7.v20131107.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-metrics\0.7.1\dropwizard-metrics-0.7.1.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-lifecycle\0.7.1\dropwizard-lifecycle-0.7.1.jar;C:\Users\Bo\.m2\repository\org\eclipse\jetty\jetty-server\9.0.7.v20131107\jetty-server-9.0.7.v20131107.jar;C:\Users\Bo\.m2\repository\org\eclipse\jetty\orbit\javax.servlet\3.0.0.v201112011016\javax.servlet-3.0.0.v201112011016.jar;C:\Users\Bo\.m2\repository\org\eclipse\jetty\jetty-http\9.0.7.v20131107\jetty-http-9.0.7.v20131107.jar;C:\Users\Bo\.m2\repository\org\eclipse\jetty\jetty-io\9.0.7.v20131107\jetty-io-9.0.7.v20131107.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-jersey\0.7.1\dropwizard-jersey-0.7.1.jar;C:\Users\Bo\.m2\repository\com\sun\jersey\jersey-core\1.18.1\jersey-core-1.18.1.jar;C:\Users\Bo\.m2\repository\com\sun\jersey\jersey-server\1.18.1\jersey-server-1.18.1.jar;C:\Users\Bo\.m2\repository\com\sun\jersey\jersey-servlet\1.18.1\jersey-servlet-1.18.1.jar;C:\Users\Bo\.m2\repository\com\codahale\metrics\metrics-jersey\3.0.2\metrics-jersey-3.0.2.jar;C:\Users\Bo\.m2\repository\com\codahale\metrics\metrics-annotation\3.0.2\metrics-annotation-3.0.2.jar;C:\Users\Bo\.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-json-provider\2.3.3\jackson-jaxrs-json-provider-2.3.3.jar;C:\Users\Bo\.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-base\2.3.3\jackson-jaxrs-base-2.3.3.jar;C:\Users\Bo\.m2\repository\com\fasterxml\jackson\module\jackson-module-jaxb-annotations\2.3.3\jackson-module-jaxb-annotations-2.3.3.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-servlets\0.7.1\dropwizard-servlets-0.7.1.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-jetty\0.7.1\dropwizard-jetty-0.7.1.jar;C:\Users\Bo\.m2\repository\com\codahale\metrics\metrics-jetty9\3.0.2\metrics-jetty9-3.0.2.jar;C:\Users\Bo\.m2\repository\org\eclipse\jetty\jetty-servlet\9.0.7.v20131107\jetty-servlet-9.0.7.v20131107.jar;C:\Users\Bo\.m2\repository\org\eclipse\jetty\jetty-security\9.0.7.v20131107\jetty-security-9.0.7.v20131107.jar;C:\Users\Bo\.m2\repository\org\eclipse\jetty\jetty-servlets\9.0.7.v20131107\jetty-servlets-9.0.7.v20131107.jar;C:\Users\Bo\.m2\repository\org\eclipse\jetty\jetty-continuation\9.0.7.v20131107\jetty-continuation-9.0.7.v20131107.jar;C:\Users\Bo\.m2\repository\com\codahale\metrics\metrics-jvm\3.0.2\metrics-jvm-3.0.2.jar;C:\Users\Bo\.m2\repository\com\codahale\metrics\metrics-servlets\3.0.2\metrics-servlets-3.0.2.jar;C:\Users\Bo\.m2\repository\com\codahale\metrics\metrics-healthchecks\3.0.2\metrics-healthchecks-3.0.2.jar;C:\Users\Bo\.m2\repository\com\codahale\metrics\metrics-json\3.0.2\metrics-json-3.0.2.jar;C:\Users\Bo\.m2\repository\net\sourceforge\argparse4j\argparse4j\0.4.3\argparse4j-0.4.3.jar;C:\Users\Bo\.m2\repository\org\eclipse\jetty\toolchain\setuid\jetty-setuid-java\1.0.2\jetty-setuid-java-1.0.2.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-auth\0.7.1\dropwizard-auth-0.7.1.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-db\0.7.1\dropwizard-db-0.7.1.jar;C:\Users\Bo\.m2\repository\org\apache\tomcat\tomcat-jdbc\7.0.50\tomcat-jdbc-7.0.50.jar;C:\Users\Bo\.m2\repository\org\apache\tomcat\tomcat-juli\7.0.50\tomcat-juli-7.0.50.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-assets\0.7.1\dropwizard-assets-0.7.1.jar;C:\Users\Bo\.m2\repository\io\dropwizard\dropwizard-migrations\0.7.1\dropwizard-migrations-0.7.1.jar;C:\Users\Bo\.m2\repository\org\liquibase\liquibase-core\3.1.1\liquibase-core-3.1.1.jar;C:\Users\Bo\.m2\repository\org\yaml\snakeyaml\1.13\snakeyaml-1.13.jar;C:\Users\Bo\.m2\repository\com\mattbertolini\liquibase-slf4j\1.2.1\liquibase-slf4j-1.2.1.jar;C:\Users\Bo\.m2\repository\org\mindrot\jbcrypt\0.3m\jbcrypt-0.3m.jar;C:\Users\Bo\.m2\repository\org\avaje\ebeanorm\avaje-ebeanorm\4.1.8\avaje-ebeanorm-4.1.8.jar;C:\Users\Bo\.m2\repository\javax\persistence\persistence-api\1.0\persistence-api-1.0.jar;C:\Users\Bo\.m2\repository\org\projectlombok\lombok\1.14.4\lombok-1.14.4.jar;C:\Users\Bo\.m2\repository\org\reflections\reflections\0.9.9-RC2\reflections-0.9.9-RC2.jar;C:\Users\Bo\.m2\repository\org\javassist\javassist\3.18.2-GA\javassist-3.18.2-GA.jar;C:\Users\Bo\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;C:\Users\Bo\.m2\repository\com\sendgrid\sendgrid-java\1.0.0\sendgrid-java-1.0.0.jar;C:\Users\Bo\.m2\repository\org\json\json\20140107\json-20140107.jar;C:\Users\Bo\.m2\repository\com\sendgrid\smtpapi-java\0.0.2\smtpapi-java-0.0.2.jar;C:\Users\Bo\.m2\repository\com\mashape\unirest\unirest-java\1.3.20\unirest-java-1.3.20.jar;C:\Users\Bo\.m2\repository\org\apache\httpcomponents\httpclient\4.3.4\httpclient-4.3.4.jar;C:\Users\Bo\.m2\repository\org\apache\httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar;C:\Users\Bo\.m2\repository\commons-codec\commons-codec\1.6\commons-codec-1.6.jar;C:\Users\Bo\.m2\repository\org\apache\httpcomponents\httpasyncclient\4.0.1\httpasyncclient-4.0.1.jar;C:\Users\Bo\.m2\repository\org\apache\httpcomponents\httpcore-nio\4.3.2\httpcore-nio-4.3.2.jar;C:\Users\Bo\.m2\repository\org\apache\httpcomponents\httpmime\4.3.4\httpmime-4.3.4.jar;C:\Users\Bo\.m2\repository\com\google\inject\guice\4.0-beta4\guice-4.0-beta4.jar;C:\Users\Bo\.m2\repository\javax\inject\javax.inject\1\javax.inject-1.jar;C:\Users\Bo\.m2\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;C:\Users\Bo\.m2\repository\com\rabbitmq\amqp-client\3.3.5\amqp-client-3.3.5.jar;C:\Users\Bo\.m2\repository\org\quartz-scheduler\quartz\2.2.1\quartz-2.2.1.jar;C:\Users\Bo\.m2\repository\c3p0\c3p0\0.9.1.1\c3p0-0.9.1.1.jar;C:\Workspaces\IntelliJ\dropwizard-experiment\todo\todo-client\target\classes;C:\Users\Bo\.m2\repository\org\avaje\ebeanorm\avaje-ebeanorm-agent\4.1.8\avaje-ebeanorm-agent-4.1.8.jar;C:\Users\Bo\.m2\repository\com\h2database\h2\1.4.181\h2-1.4.181.jar;C:\Users\Bo\.m2\repository\org\postgresql\postgresql\9.3-1102-jdbc41\postgresql-9.3-1102-jdbc41.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 13.1\lib\idea_rt.jar" bo.gotthardt.todolist.application.TodoListApplication server todo/todo-server/config/config.yml

When starting my application the error is triggered by these annotations:

  • org.jboss.logging.LogMessage used in org.hibernate.validator.internal.util.logging.Log.version()
  • org.jboss.logging.Message used in org.hibernate.validator.internal.util.logging.Messages.mustNotBeNull()
  • javax.annotation.Nullable used in com.google.common.base.Function.apply()
  • javax.annotation.Nullable used in org.reflections.Configuration.getInputsFilter()
  • java.lang.Deprecated com.rabbitmq.client.BasicProperties.setContentType()

None of which I'm using as entity beans, and none of which seem to have anything in particular in common. If there were any larger problems I'd assume that way more annotations would be throwing errors, but it's only these.

@rbygrave
Copy link
Member

Great thanks.

On 24 October 2014 11:12, Bo Gotthardt notifications@github.com wrote:

Yes, running it via IntelliJ with VM options:
-javaagent:C:/Users/Bo/.m2/repository/org/avaje/ebeanorm/avaje-ebeanorm-agent/4.1.8/avaje-ebeanorm-agent-4.1.8.jar
which leads to the following command being run:

"C:\Program Files\Java\jdk1.8.0\bin\java" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:2203,suspend=y,server=n -javaagent:C:/Users/Bo/.m2/repository/org/avaje/ebeanorm/avaje-ebeanorm-agent/4.1.8/avaje-ebeanorm-agent-4.1.8.jar -javaagent:C:\Users\Bo.IntelliJIdea13\system\groovyHotSwap\gragent.jar -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0
\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0\jre\lib\ext\zipfs.jar;C:\Workspaces\IntelliJ\dropwizard-experiment\todo\todo-server\target\classes;C:\Workspaces\IntelliJ\dropwizard-experiment\common\common-server\target\classes;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-core\0.7.1\dropwizard-core-0.7.1.jar;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-util\0.7.1\dropwizard-util-0.7.1.jar;C:\Users\Bo.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.3.
0\jackson-annotations-2.3.0.jar;C:\Users\Bo.m2\repository\com\google\guava\guava\17.0\guava-17.0.jar;C:\Users\Bo.m2\repository\com\google\code\findbugs\jsr305\3.0.0\jsr305-3.0.0.jar;C:\Users\Bo.m2\repository\joda-time\joda-time\2.3\joda-time-2.3.jar;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-jackson\0.7.1\dropwizard-jackson-0.7.1.jar;C:\Users\Bo.m2\repository\com\fasterxml\jackson\core\jackson-core\2.3.3\jackson-core-2.3.3.jar;C:\Users\Bo.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.3.3\jackson-databind-2.3.3.jar;C:\Users\Bo.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-guava\2.3.3\jackson-datatype-guava-2.3.3.jar;C:\Users\Bo.m2\repository\com\fasterxml\jackson\module\jackson-module-afterburner\2.3.3\jackson-module-afterburner-2.3.3.jar;C:\Users\Bo.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-joda\2.3.3\jackson-datatype-joda-2.3.3.jar;C:\Users\Bo.m2\repository\ch\qos\logback\logback-classic\1.1.2\logback-classic-1.1.2
.jar;C:\Users\Bo.m2\repository\ch\qos\logback\logback-core\1.1.2\logback-core-1.1.2.jar;C:\Users\Bo.m2\repository\org\slf4j\slf4j-api\1.7.7\slf4j-api-1.7.7.jar;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-validation\0.7.1\dropwizard-validation-0.7.1.jar;C:\Users\Bo.m2\repository\org\hibernate\hibernate-validator\5.1.1.Final\hibernate-validator-5.1.1.Final.jar;C:\Users\Bo.m2\repository\javax\validation\validation-api\1.1.0.Final\validation-api-1.1.0.Final.jar;C:\Users\Bo.m2\repository\org\jboss\logging\jboss-logging\3.1.3.GA\jboss-logging-3.1.3.GA.jar;C:\Users\Bo.m2\repository\com\fasterxml\classmate\1.0.0\classmate-1.0.0.jar;C:\Users\Bo.m2\repository\org\glassfish\web\javax.el\2.2.6\javax.el-2.2.6.jar;C:\Users\Bo.m2\repository\javax\el\javax.el-api\2.2.5\javax.el-api-2.2.5.jar;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-configuration\0.7.1\dropwizard-configuration-0.7.1.jar;C:\Users\Bo.m2\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.3
.3\jackson-dataformat-yaml-2.3.3.jar;C:\Users\Bo.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-logging\0.7.1\dropwizard-logging-0.7.1.jar;C:\Users\Bo.m2\repository\com\codahale\metrics\metrics-logback\3.0.2\metrics-logback-3.0.2.jar;C:\Users\Bo.m2\repository\com\codahale\metrics\metrics-core\3.0.2\metrics-core-3.0.2.jar;C:\Users\Bo.m2\repository\org\slf4j\jul-to-slf4j\1.7.6\jul-to-slf4j-1.7.6.jar;C:\Users\Bo.m2\repository\org\slf4j\log4j-over-slf4j\1.7.6\log4j-over-slf4j-1.7.6.jar;C:\Users\Bo.m2\repository\org\slf4j\jcl-over-slf4j\1.7.6\jcl-over-slf4j-1.7.6.jar;C:\Users\Bo.m2\repository\org\eclipse\jetty\jetty-util\9.0.7.v20131107\jetty-util-9.0.7.v20131107.jar;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-metrics\0.7.1\dropwizard-metrics-0.7.1.jar;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-lifecycle\0.7.1\dropwizard-lifecycle-0.7.1.jar;C:\Users\Bo.m2\repository\org\eclipse\jetty\jetty-serv
er\9.0.7.v20131107\jetty-server-9.0.7.v20131107.jar;C:\Users\Bo.m2\repository\org\eclipse\jetty\orbit\javax.servlet\3.0.0.v201112011016\javax.servlet-3.0.0.v201112011016.jar;C:\Users\Bo.m2\repository\org\eclipse\jetty\jetty-http\9.0.7.v20131107\jetty-http-9.0.7.v20131107.jar;C:\Users\Bo.m2\repository\org\eclipse\jetty\jetty-io\9.0.7.v20131107\jetty-io-9.0.7.v20131107.jar;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-jersey\0.7.1\dropwizard-jersey-0.7.1.jar;C:\Users\Bo.m2\repository\com\sun\jersey\jersey-core\1.18.1\jersey-core-1.18.1.jar;C:\Users\Bo.m2\repository\com\sun\jersey\jersey-server\1.18.1\jersey-server-1.18.1.jar;C:\Users\Bo.m2\repository\com\sun\jersey\jersey-servlet\1.18.1\jersey-servlet-1.18.1.jar;C:\Users\Bo.m2\repository\com\codahale\metrics\metrics-jersey\3.0.2\metrics-jersey-3.0.2.jar;C:\Users\Bo.m2\repository\com\codahale\metrics\metrics-annotation\3.0.2\metrics-annotation-3.0.2.jar;C:\Users\Bo.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-
json-provider\2.3.3\jackson-jaxrs-json-provider-2.3.3.jar;C:\Users\Bo.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-base\2.3.3\jackson-jaxrs-base-2.3.3.jar;C:\Users\Bo.m2\repository\com\fasterxml\jackson\module\jackson-module-jaxb-annotations\2.3.3\jackson-module-jaxb-annotations-2.3.3.jar;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-servlets\0.7.1\dropwizard-servlets-0.7.1.jar;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-jetty\0.7.1\dropwizard-jetty-0.7.1.jar;C:\Users\Bo.m2\repository\com\codahale\metrics\metrics-jetty9\3.0.2\metrics-jetty9-3.0.2.jar;C:\Users\Bo.m2\repository\org\eclipse\jetty\jetty-servlet\9.0.7.v20131107\jetty-servlet-9.0.7.v20131107.jar;C:\Users\Bo.m2\repository\org\eclipse\jetty\jetty-security\9.0.7.v20131107\jetty-security-9.0.7.v20131107.jar;C:\Users\Bo.m2\repository\org\eclipse\jetty\jetty-servlets\9.0.7.v20131107\jetty-servlets-9.0.7.v20131107.jar;C:\Users\Bo.m2\repository\org\eclipse\jetty\jetty-continuation\9.0.7.v20131107\j
etty-continuation-9.0.7.v20131107.jar;C:\Users\Bo.m2\repository\com\codahale\metrics\metrics-jvm\3.0.2\metrics-jvm-3.0.2.jar;C:\Users\Bo.m2\repository\com\codahale\metrics\metrics-servlets\3.0.2\metrics-servlets-3.0.2.jar;C:\Users\Bo.m2\repository\com\codahale\metrics\metrics-healthchecks\3.0.2\metrics-healthchecks-3.0.2.jar;C:\Users\Bo.m2\repository\com\codahale\metrics\metrics-json\3.0.2\metrics-json-3.0.2.jar;C:\Users\Bo.m2\repository\net\sourceforge\argparse4j\argparse4j\0.4.3\argparse4j-0.4.3.jar;C:\Users\Bo.m2\repository\org\eclipse\jetty\toolchain\setuid\jetty-setuid-java\1.0.2\jetty-setuid-java-1.0.2.jar;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-auth\0.7.1\dropwizard-auth-0.7.1.jar;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-db\0.7.1\dropwizard-db-0.7.1.jar;C:\Users\Bo.m2\repository\org\apache\tomcat\tomcat-jdbc\7.0.50\tomcat-jdbc-7.0.50.jar;C:\Users\Bo.m2\repository\org\apache\tomcat\tomcat-juli\7.0.50\tomcat-juli-7.0.50.jar;C:\Users\Bo.m2\reposit
ory\io\dropwizard\dropwizard-assets\0.7.1\dropwizard-assets-0.7.1.jar;C:\Users\Bo.m2\repository\io\dropwizard\dropwizard-migrations\0.7.1\dropwizard-migrations-0.7.1.jar;C:\Users\Bo.m2\repository\org\liquibase\liquibase-core\3.1.1\liquibase-core-3.1.1.jar;C:\Users\Bo.m2\repository\org\yaml\snakeyaml\1.13\snakeyaml-1.13.jar;C:\Users\Bo.m2\repository\com\mattbertolini\liquibase-slf4j\1.2.1\liquibase-slf4j-1.2.1.jar;C:\Users\Bo.m2\repository\org\mindrot\jbcrypt\0.3m\jbcrypt-0.3m.jar;C:\Users\Bo.m2\repository\org\avaje\ebeanorm\avaje-ebeanorm\4.1.8\avaje-ebeanorm-4.1.8.jar;C:\Users\Bo.m2\repository\javax\persistence\persistence-api\1.0\persistence-api-1.0.jar;C:\Users\Bo.m2\repository\org\projectlombok\lombok\1.14.4\lombok-1.14.4.jar;C:\Users\Bo.m2\repository\org\reflections\reflections\0.9.9-RC2\reflections-0.9.9-RC2.jar;C:\Users\Bo.m2\repository\org\javassist\javassist\3.18.2-GA\javassist-3.18.2-GA.jar;C:\Users\Bo.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;C:\Users\Bo
.m2\repository\com\sendgrid\sendgrid-java\1.0.0\sendgrid-java-1.0.0.jar;C:\Users\Bo.m2\repository\org\json\json\20140107\json-20140107.jar;C:\Users\Bo.m2\repository\com\sendgrid\smtpapi-java\0.0.2\smtpapi-java-0.0.2.jar;C:\Users\Bo.m2\repository\com\mashape\unirest\unirest-java\1.3.20\unirest-java-1.3.20.jar;C:\Users\Bo.m2\repository\org\apache\httpcomponents\httpclient\4.3.4\httpclient-4.3.4.jar;C:\Users\Bo.m2\repository\org\apache\httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar;C:\Users\Bo.m2\repository\commons-codec\commons-codec\1.6\commons-codec-1.6.jar;C:\Users\Bo.m2\repository\org\apache\httpcomponents\httpasyncclient\4.0.1\httpasyncclient-4.0.1.jar;C:\Users\Bo.m2\repository\org\apache\httpcomponents\httpcore-nio\4.3.2\httpcore-nio-4.3.2.jar;C:\Users\Bo.m2\repository\org\apache\httpcomponents\httpmime\4.3.4\httpmime-4.3.4.jar;C:\Users\Bo.m2\repository\com\google\inject\guice\4.0-beta4\guice-4.0-beta4.jar;C:\Users\Bo.m2\repository\javax\inject\javax.inject\1\javax.
inject-1.jar;C:\Users\Bo.m2\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;C:\Users\Bo.m2\repository\com\rabbitmq\amqp-client\3.3.5\amqp-client-3.3.5.jar;C:\Users\Bo.m2\repository\org\quartz-scheduler\quartz\2.2.1\quartz-2.2.1.jar;C:\Users\Bo.m2\repository\c3p0\c3p0\0.9.1.1\c3p0-0.9.1.1.jar;C:\Workspaces\IntelliJ\dropwizard-experiment\todo\todo-client\target\classes;C:\Users\Bo.m2\repository\org\avaje\ebeanorm\avaje-ebeanorm-agent\4.1.8\avaje-ebeanorm-agent-4.1.8.jar;C:\Users\Bo.m2\repository\com\h2database\h2\1.4.181\h2-1.4.181.jar;C:\Users\Bo.m2\repository\org\postgresql\postgresql\9.3-1102-jdbc41\postgresql-9.3-1102-jdbc41.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 13.1\lib\idea_rt.jar" bo.gotthardt.todolist.application.TodoListApplication server todo/todo-server/config/config.yml

When starting my application the error is triggered by these annotations:

  • org.jboss.logging.LogMessage used in
    org.hibernate.validator.internal.util.logging.Log.version()
  • org.jboss.logging.Message used in
    org.hibernate.validator.internal.util.logging.Messages.mustNotBeNull()
  • javax.annotation.Nullable used in
    com.google.common.base.Function.apply()
  • javax.annotation.Nullable used in
    org.reflections.Configuration.getInputsFilter()
  • java.lang.Deprecated
    com.rabbitmq.client.BasicProperties.setContentType()

None of which I'm using as entity beans, and none of which seem to have
anything in particular in common. If there were any larger problems I'd
assume that way more annotations would be throwing errors, but it's only
these.


Reply to this email directly or view it on GitHub
#187 (comment)
.

@jgangemi
Copy link

i guess i'll hold off on updating the eclipse plugin until this is resolved.

@rbygrave
Copy link
Member

I reproduced the issue and it is fixed in 4.1.9 of the agent which has just
been released.

Cheers, Rob.

On 24 October 2014 13:42, Jae Gangemi notifications@github.com wrote:

i guess i'll hold off on updating the eclipse plugin until this is
resolved.


Reply to this email directly or view it on GitHub
#187 (comment)
.

@Lugribossk
Copy link
Author

Great! It works fine for my project now.

@jgangemi
Copy link

great news!

i've asked this before but have never gotten a response...

what do you want to do about making the plugin available? would it just be easier if i took it over completely and you just throw a link to it somewhere?

@rbygrave
Copy link
Member

I think it would be best if I put the eclipse plugin git repo with the
others. There is also an IntelliJ plugin so I'll look to do a similar thing
there.

I have copied the repo over to
https://github.com/ebean-orm/avaje-ebeanorm-eclipse ... so I'll look to
update that.

Cheers, Rob.

On 29 October 2014 02:50, Jae Gangemi notifications@github.com wrote:

great news!

i've asked this before but have never gotten a response...

what do you want to do about making the plugin available? would it just be
easier if i took it over completely and you just throw a link to it
somewhere?


Reply to this email directly or view it on GitHub
#187 (comment)
.

@jgangemi
Copy link

ok - i'll make the changes tonight and create a pull request that you can merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants