[jboss-cvs] JBossAS SVN: r68838 - in projects/aop/trunk/aop/src/main/org/jboss/aop: standalone and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 10 14:51:54 EST 2008


Author: flavia.rainone
Date: 2008-01-10 14:51:54 -0500 (Thu, 10 Jan 2008)
New Revision: 68838

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedCallerInvocations.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedConstructionInvocations.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedConstructorInvocations.java
   projects/aop/trunk/aop/src/main/org/jboss/aop/standalone/Compiler.java
Log:
[JBAOP-256] Bug fixed.

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedCallerInvocations.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedCallerInvocations.java	2008-01-10 19:47:59 UTC (rev 68837)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedCallerInvocations.java	2008-01-10 19:51:54 UTC (rev 68838)
@@ -112,7 +112,7 @@
       ////////////////
       //Create the class
       CtClass invocation = makeInvocationClass(pool, 
-            Modifier.isPrivate(method.getModifiers()), callingClass, className,
+            true /*Modifier.isPrivate(method.getModifiers())*/, callingClass, className,
                   methodInvocation);
    
       ////////////////
@@ -163,7 +163,7 @@
       ////////////////
       //Create the class
       CtClass invocation = makeInvocationClass(pool,
-            Modifier.isPrivate(con.getModifiers()), callingClass, className,
+            /*Modifier.isPrivate(con.getModifiers())*/ true, callingClass, className,
             conInvocation);
    
       ////////////////

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedConstructionInvocations.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedConstructionInvocations.java	2008-01-10 19:47:59 UTC (rev 68837)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedConstructionInvocations.java	2008-01-10 19:51:54 UTC (rev 68838)
@@ -48,7 +48,7 @@
     */
    protected static String getOptimizedInvocationClassName(CtClass declaringClazz, int constructorIndex)
    {
-      return declaringClazz.getName() + constructorIndex + "OptimizedConstructionInvocation";
+      return declaringClazz.getName() + ".AOP" + constructorIndex + "OptimizedConstructionInvocation";
    }
 
    protected static String createOptimizedInvocationClass(
@@ -61,7 +61,7 @@
       ////////////////
       //Create the class
       String className = getOptimizedInvocationClassName(clazz, index);
-      boolean makeInnerClass = !Modifier.isPublic(con.getModifiers());
+      boolean makeInnerClass = true; //!Modifier.isPublic(con.getModifiers());
       CtClass invocation = makeInvocationClassNoCtors(pool, makeInnerClass, clazz,
             className, conInvocation);
       CtConstructor template = null;

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedConstructorInvocations.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedConstructorInvocations.java	2008-01-10 19:47:59 UTC (rev 68837)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedConstructorInvocations.java	2008-01-10 19:51:54 UTC (rev 68838)
@@ -49,7 +49,7 @@
     */
    protected static String getOptimizedInvocationClassName(CtClass declaringClazz, int constructorIndex)
    {
-      return declaringClazz.getName() + "_" + constructorIndex + "OptimizedConstructorInvocation";
+      return declaringClazz.getName() + ".AOP" + constructorIndex + "OptimizedConstructorInvocation";
    }
 
    protected static String createOptimizedInvocationClass(Instrumentor instrumentor,
@@ -62,7 +62,7 @@
       ////////////////
       //Create the class
       String className = getOptimizedInvocationClassName(clazz, index);
-      boolean makeInnerClass = !Modifier.isPublic(con.getModifiers());
+      boolean makeInnerClass = true;//!Modifier.isPublic(con.getModifiers());
       CtClass invocation = makeInvocationClassNoCtors(pool, makeInnerClass,
             clazz, className, conInvocation);
       

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/standalone/Compiler.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/standalone/Compiler.java	2008-01-10 19:47:59 UTC (rev 68837)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/standalone/Compiler.java	2008-01-10 19:51:54 UTC (rev 68838)
@@ -258,6 +258,17 @@
    
    private void addFile(File file)throws Exception
    {
+      int index = file.getName().indexOf('$');
+      if (index != -1)
+      {
+         String fileName = file.getName().substring(0, index) + ".class";
+         File superClassFile = new File(fileName);
+         if (!loadFile(superClassFile))
+         {
+            file.delete();
+            return;
+         }
+      }
       ClassFile cf = createClassFile(file);
       String className = cf.getName();
       String superClassName = cf.getSuperclass();
@@ -300,7 +311,13 @@
       }
    }
 
-   public void loadFile(File file) throws Exception
+   /**
+    * Loads the file and, if it is an advised class, sets its advisor field as
+    * accessible.
+    * @param file the file of the class to be loaded
+    * @return {@code true} is {@code file} contains an advised class.
+    */
+   public boolean loadFile(File file) throws Exception
    {
       DataInputStream is = new DataInputStream(new FileInputStream(file));
       ClassFile cf = new ClassFile(is);
@@ -311,7 +328,9 @@
          Field f = clazz.getDeclaredField("aop$classAdvisor$aop");
          f.setAccessible(true);
          f.get(null);
+         return true;
       }
+      return false;
    }
 
    public void compileFile(CompilerClassInfo info) throws Exception




More information about the jboss-cvs-commits mailing list