baliuka 02/03/03 12:23:17 Modified: simplestore/src/java/org/apache/commons/simplestore/tools Enhancer.java Log: Fixed bug in generated Exception handler Revision Changes Path 1.2 +10 -13 jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/tools/Enhancer.java Index: Enhancer.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/tools/Enhancer.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Enhancer.java 3 Mar 2002 19:35:57 -0000 1.1 +++ Enhancer.java 3 Mar 2002 20:23:17 -0000 1.2 @@ -64,7 +64,7 @@ /** *@author Juozas Baliuka <a href="mailto:[EMAIL PROTECTED]"> * [EMAIL PROTECTED]</a> - *@version $Id: Enhancer.java,v 1.1 2002/03/03 19:35:57 baliuka Exp $ + *@version $Id: Enhancer.java,v 1.2 2002/03/03 20:23:17 baliuka Exp $ */ public class Enhancer implements org.apache.bcel.Constants{ @@ -100,7 +100,7 @@ "(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;"); } - + /** Creates a new instance of Enchancer */ private Enhancer() { @@ -516,14 +516,12 @@ } InstructionHandle ehEnd = il.append( new ASTORE(resultFromSuper) ); - // GOTO gotoHandled = new GOTO(null); - // il.append( gotoHandled ); - // InstructionHandle ehHandled = il.append( new ASTORE(error + 1) ); - // il.append( new ALOAD(error + 1) ); - // il.append( new ALOAD(error)); + GOTO gotoHandled = new GOTO(null); + il.append( gotoHandled ); + InstructionHandle ehHandled = il.append( new ASTORE(error ) ); InstructionHandle endif = il.append( new ALOAD(0) );//this ifInvoke.setTarget(endif); - // gotoHandled.setTarget(endif); + gotoHandled.setTarget(endif); il.append(factory.createFieldAccess(cg.getClassName(),FIELD_NAME,new ObjectType(INTERCEPTOR_CLASS),GETFIELD)); il.append( new ALOAD(0) );//this il.append( factory.createGetStatic(cg.getClassName(),fieldName,METHOD_OBJECT ) ); @@ -536,16 +534,15 @@ InstructionHandle exitMethod = generateReturnValue(il,factory,cp,mg.getReturnType(),++loaded); - // bug in BCEL ? - // mg.addExceptionHandler(ehStart,ehEnd,ehHandled,Type.THROWABLE); + mg.addExceptionHandler(ehStart,ehEnd,ehHandled,Type.THROWABLE); mg.setMaxStack(); mg.setMaxLocals(); Method result = getMethod(mg); if( DEBUG ){ - System.err.println(mg.getMethod()); - System.err.println(mg.getMethod().getCode()); - System.err.flush(); + System.err.println(mg.getMethod()); + System.err.println(mg.getMethod().getCode()); + System.err.flush(); } return result;
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>