You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by rm...@apache.org on 2014/02/23 22:30:24 UTC

svn commit: r1571095 - in /incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent: SironaClassVisitor.java SironaTransformer.java

Author: rmannibucau
Date: Sun Feb 23 21:30:24 2014
New Revision: 1571095

URL: http://svn.apache.org/r1571095
Log:
in java 7 we need ClassWriter.COMPUTE_FRAMES

Modified:
    incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaClassVisitor.java
    incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaTransformer.java

Modified: incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaClassVisitor.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaClassVisitor.java?rev=1571095&r1=1571094&r2=1571095&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaClassVisitor.java (original)
+++ incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaClassVisitor.java Sun Feb 23 21:30:24 2014
@@ -228,12 +228,6 @@ public class SironaClassVisitor extends 
             returnValue();
         }
 
-        @Override
-        public void visitEnd() {
-            visitMaxs(0, 0);
-            super.visitEnd();
-        }
-
         private static class Primitive {
             private Type wrapper;
             private Method method;

Modified: incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaTransformer.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaTransformer.java?rev=1571095&r1=1571094&r2=1571095&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaTransformer.java (original)
+++ incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaTransformer.java Sun Feb 23 21:30:24 2014
@@ -50,7 +50,7 @@ public class SironaTransformer implement
             new ClassReader(classfileBuffer).accept(keyVisitor, ClassReader.SKIP_DEBUG);
             if (keyVisitor.hasAdviced()) {
                 final ClassReader reader = new ClassReader(classfileBuffer);
-                final ClassWriter writer = new ClassWriter(reader, ClassWriter.COMPUTE_MAXS);
+                final ClassWriter writer = new ClassWriter(reader, ClassWriter.COMPUTE_FRAMES);
                 final SironaClassVisitor advisor = new SironaClassVisitor(writer, className, keyVisitor.getKeys());
                 reader.accept(advisor, ClassReader.SKIP_DEBUG);
 



Fwd: svn commit: r1571095 - in /incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent: SironaClassVisitor.java SironaTransformer.java

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi guys,

got an error on this class
https://gist.github.com/anonymous/04db21e65e954faaa767 without this
change (about stack map table):

Caused by: java.lang.VerifyError: StackMapTable error: bad offset
Exception Details:
  Location:
    com/github/rmannibucau/genovajug/batch/writer/SquareWriter.writeItems(Ljava/util/List;)V
@0: getstatic
  Reason:
    Invalid stackmap specification.
  Current Frame:
    bci: @65536
    flags: { }
    locals: { 'com/github/rmannibucau/genovajug/batch/writer/SquareWriter',
'java/util/List' }
    stack: { }
  Bytecode:
    0000000: b200 462a b800 4d4d 2a2b b600 4f2c 01b6
    0000010: 0052 b14e 2c2d b600 582d bf
  Exception Handler Table:
    bci [8, 19] => handler: 19
  Stackmap Table:
    full_frame(@19,{Object[#7],Object[#42],Object[#73]},{Object[#84]})
    chop_frame(@65536,1)
    full_frame(@65555,{Object[#7],Object[#42],Object[#73]},{Object[#84]})


Please test against your apps if you can to see side effects of this change.

Romain Manni-Bucau
Twitter: @rmannibucau
Blog: http://rmannibucau.wordpress.com/
LinkedIn: http://fr.linkedin.com/in/rmannibucau
Github: https://github.com/rmannibucau




---------- Forwarded message ----------
From:  <rm...@apache.org>
Date: 2014-02-23 22:30 GMT+01:00
Subject: svn commit: r1571095 - in
/incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent:
SironaClassVisitor.java SironaTransformer.java
To: commits@sirona.incubator.apache.org


Author: rmannibucau
Date: Sun Feb 23 21:30:24 2014
New Revision: 1571095

URL: http://svn.apache.org/r1571095
Log:
in java 7 we need ClassWriter.COMPUTE_FRAMES

Modified:
    incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaClassVisitor.java
    incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaTransformer.java

Modified: incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaClassVisitor.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaClassVisitor.java?rev=1571095&r1=1571094&r2=1571095&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaClassVisitor.java
(original)
+++ incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaClassVisitor.java
Sun Feb 23 21:30:24 2014
@@ -228,12 +228,6 @@ public class SironaClassVisitor extends
             returnValue();
         }

-        @Override
-        public void visitEnd() {
-            visitMaxs(0, 0);
-            super.visitEnd();
-        }
-
         private static class Primitive {
             private Type wrapper;
             private Method method;

Modified: incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaTransformer.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaTransformer.java?rev=1571095&r1=1571094&r2=1571095&view=diff
==============================================================================
--- incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaTransformer.java
(original)
+++ incubator/sirona/trunk/agent/javaagent/src/main/java/org/apache/sirona/javaagent/SironaTransformer.java
Sun Feb 23 21:30:24 2014
@@ -50,7 +50,7 @@ public class SironaTransformer implement
             new ClassReader(classfileBuffer).accept(keyVisitor,
ClassReader.SKIP_DEBUG);
             if (keyVisitor.hasAdviced()) {
                 final ClassReader reader = new ClassReader(classfileBuffer);
-                final ClassWriter writer = new ClassWriter(reader,
ClassWriter.COMPUTE_MAXS);
+                final ClassWriter writer = new ClassWriter(reader,
ClassWriter.COMPUTE_FRAMES);
                 final SironaClassVisitor advisor = new
SironaClassVisitor(writer, className, keyVisitor.getKeys());
                 reader.accept(advisor, ClassReader.SKIP_DEBUG);