neeme 2003/06/04 01:31:08
Modified: fortress/src/java/org/apache/avalon/fortress/impl/factory
BCELWrapperGenerator.java
Log:
fix synchronization problems when calling BCEL
Revision Changes Path
1.9 +19 -20
avalon-excalibur/fortress/src/java/org/apache/avalon/fortress/impl/factory/BCELWrapperGenerator.java
Index: BCELWrapperGenerator.java
===================================================================
RCS file:
/home/cvs/avalon-excalibur/fortress/src/java/org/apache/avalon/fortress/impl/factory/BCELWrapperGenerator.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- BCELWrapperGenerator.java 2 Jun 2003 14:44:46 -0000 1.8
+++ BCELWrapperGenerator.java 4 Jun 2003 08:31:08 -0000 1.9
@@ -245,29 +245,28 @@
final String wrapperClassName =
classToWrap.getName() + WRAPPER_CLASS_SUFFIX;
- // Create BCEL class generator
- m_classGenerator =
- new ClassGen(
- wrapperClassName,
- WRAPPER_SUPERCLASS_NAME,
- null,
- Constants.ACC_FINAL
- |Constants.ACC_PUBLIC
- |Constants.ACC_SUPER,
- extractInterfaceNames( interfacesToImplement ) );
-
- // Initialize method-field generator
- m_codeGenerator.init(
- wrapperClassName,
- WRAPPER_SUPERCLASS_NAME,
- javaClassToWrap,
- m_classGenerator );
-
- final byte[] byteCode = buildWrapper( javaInterfacesToImplement );
-
Class generatedClass;
synchronized ( m_bcelClassLoader )
{
+ // Create BCEL class generator
+ m_classGenerator =
+ new ClassGen(
+ wrapperClassName,
+ WRAPPER_SUPERCLASS_NAME,
+ null,
+ Constants.ACC_FINAL
+ |Constants.ACC_PUBLIC
+ |Constants.ACC_SUPER,
+ extractInterfaceNames( interfacesToImplement ) );
+
+ // Initialize method-field generator
+ m_codeGenerator.init(
+ wrapperClassName,
+ WRAPPER_SUPERCLASS_NAME,
+ javaClassToWrap,
+ m_classGenerator );
+
+ final byte[] byteCode = buildWrapper( javaInterfacesToImplement );
m_bcelClassLoader.setByteCode( byteCode );
generatedClass = m_bcelClassLoader.loadClass( wrapperClassName );
m_bcelClassLoader.clearByteCode();
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]