Инструментарий Byte buddy вызывает исключение: java.lang.IllegalStateException: Неожиданный остаток в стеке операндов: -1

В связи с обсуждаемой проблемой здесь я получаю следующее исключение:

[Byte Buddy] ERROR com.panaya.as.web.util.WebAnalyticsUtils$AnalyticsData[WebappClassLoader
    context: 
    delegate: false
  repositories:
----------> Parent Classloader:
ClassRealm[plugin>org.apache.tomcat.maven:tomcat7-maven-plugin:2.2-1614397209, parent: sun.misc.Launcher$AppClassLoader@14dad5dc]
, null]
java.lang.IllegalStateException: Unexpected remainder on the operand stack: -1
    at net.bytebuddy.utility.StackAwareMethodVisitor.drainStack(StackAwareMethodVisitor.java:120)
    at net.bytebuddy.asm.Advice$AdviceVisitor$WithExitAdvice.onVisitInsn(Advice.java:1704)
    at net.bytebuddy.utility.ExceptionTableSensitiveMethodVisitor.visitInsn(ExceptionTableSensitiveMethodVisitor.java:288)
    at org.objectweb.asm.ClassReader.a(Unknown Source)
    at org.objectweb.asm.ClassReader.b(Unknown Source)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at org.objectweb.asm.ClassReader.accept(Unknown Source)
    at net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForInlining.create(TypeWriter.java:3018)
    at net.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:1617)
    at net.bytebuddy.dynamic.scaffold.inline.RedefinitionDynamicTypeBuilder.make(RedefinitionDynamicTypeBuilder.java:171)
    at net.bytebuddy.agent.builder.AgentBuilder$Default$Transformation$Simple$Resolution.apply(AgentBuilder.java:5849)
    at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:6242)
    at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.access$900(AgentBuilder.java:6067)
    at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$LegacyVmDispatcher.run(AgentBuilder.java:6566)
    at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer$LegacyVmDispatcher.run(AgentBuilder.java:6516)
    at java.security.AccessController.doPrivileged(Native Method)
    at net.bytebuddy.agent.builder.AgentBuilder$Default$ExecutingTransformer.transform(AgentBuilder.java:6180)
    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:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1191)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1669)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
    ...

Агент работает в корпоративном веб-приложении поверх сервера tomcat. Большинство классов инструментируются без каких-либо проблем, но все же... Я попытался воспроизвести исключение в отдельной скрипте, но не смог найти ни одной уникальной спецификации для класса, на котором инструментарий не работает... Я думаю, он должен делать с определенной структурой или аннотацией, которую использует класс.

Цените любые указатели ....


person esaar    schedule 31.07.2016    source источник
comment
Какую версию Byte Buddy вы используете?   -  person Rafael Winterhalter    schedule 31.07.2016
comment
Происходит это после обновления до версии 1.4.16   -  person esaar    schedule 01.08.2016
comment
Я имею в виду, что это все еще происходит после обновления...   -  person esaar    schedule 01.08.2016


Ответы (1)


Вы нашли ошибку в Byte Buddy. Это разрешено в версии 1.4.17, которая теперь доступна в Maven Central.

person Rafael Winterhalter    schedule 01.08.2016