  | Mailing List | | Home | | Forum Home | | JBoss - Java Application Server | | Tomcat - JSP/Servlet container | | Struts - A MVC web framework | | iText - An open source PDF Java Library | | JDOM - JDOM XML Parser | | J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition | | JSP - A mailing list about Java Server Pages specification and reference | | J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog | | Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology | |
Struts & Hibernate
|
|
|
  | | | - NewExpr with no dup | - NewExpr with no dup 2007-07-17 - By flonou
Back Hello,
I had a problem with a new statement without DUP in the bytecode (code like this : void method { new Object(); } has no dup statement because the result isn't stored )
So I had the following error :
javassist.CannotCompileException: sorry, cannot edit NEW followed by no DUP
and I corrected it by changing the folowwing lines in NewExpr.java:
private int canReplace() throws CannotCompileException { int op = iterator.byteAt(newPos + 3); if (op == Opcode.DUP) return 4; else if (op == Opcode.DUP_X1 && iterator.byteAt(newPos + 4) == Opcode.SWAP) return 5; else if (op == Opcode.INVOKESPECIAL) return 3; // for Eclipse's compiler else throw new CannotCompileException( "sorry, cannot edit NEW followed by no DUP"); }
by private int canReplace() throws CannotCompileException { int op = iterator.byteAt(newPos + 3); if (op == Opcode.DUP) return 4; else if (op == Opcode.DUP_X1 && iterator.byteAt(newPos + 4) == Opcode.SWAP) return 5; else if (op == Opcode.INVOKESPECIAL) return 3; // for Eclipse's compiler else return 3; }
(just the last else changed)
I don't know if this will always work correctly but in my case, it does (I'm instrumenting jetty, a java server with javassist).
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic &p=4065036#4065036
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode =reply&p=4065036 __ ____ ____ ____ ____ ____ ____ ____ ____ ____ jboss-user mailing list jboss-user@(protected) https://lists.jboss.org/mailman/listinfo/jboss-user
|
|
 |