[jboss-cvs] jboss-profiler/java/src/expansion/org/jboss/profiler/exp/agent/interceptor ...

Takuro Okada t2-okada at nri.co.jp
Wed Nov 22 04:08:13 EST 2006


  User: tokada  
  Date: 06/11/22 04:08:13

  Modified:    java/src/expansion/org/jboss/profiler/exp/agent/interceptor 
                        Tag: JBossProfiler_Expansion JdbcInterceptor.java
  Log:
  Corrected some bugs.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.4   +29 -5     jboss-profiler/java/src/expansion/org/jboss/profiler/exp/agent/interceptor/Attic/JdbcInterceptor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: JdbcInterceptor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-profiler/java/src/expansion/org/jboss/profiler/exp/agent/interceptor/Attic/JdbcInterceptor.java,v
  retrieving revision 1.1.2.3
  retrieving revision 1.1.2.4
  diff -u -b -r1.1.2.3 -r1.1.2.4
  --- JdbcInterceptor.java	21 Nov 2006 06:21:44 -0000	1.1.2.3
  +++ JdbcInterceptor.java	22 Nov 2006 09:08:13 -0000	1.1.2.4
  @@ -63,19 +63,22 @@
        * Run profiling by the method invocation.
        */
       public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
  -        MetricCollector collector = parent.beforeInvoke();
  +        boolean profilable = filter(method);
  +        
  +        MetricCollector collector = null;
  +        if(profilable) collector = parent.beforeInvoke();
           
           Object retVal = method.invoke(jdbcObject, args);
           
           // Creates new proxy for the return value if the return value is JDBC classes.
           if(retVal!=null) {
               Class retValInterface = detectImmediateInterface(retVal.getClass());
  -            if(retValInterface!=null && filter(retValInterface.getName())) {
  +            if(retValInterface!=null && filter(retValInterface)) {
                   retVal = getInstance(retValInterface, retVal, parent);
               }
           }
           
  -        parent.afterInvoke(collector, method, args);
  +        if(collector!=null) parent.afterInvoke(collector, method, args);
           
           return retVal;
       }
  @@ -95,10 +98,31 @@
           return detectedInterface;
       }
       
  -    private boolean filter(String classExpression) {
  +    private boolean filter(Class clazz) {
  +        boolean isTarget = false;
  +        for(String filter : parent.getFilters()) {
  +            if(filter.length()>9) {
  +                int mi = filter.indexOf('.', 9);
  +                if(mi>0) {
  +                    filter = filter.substring(0, mi);
  +                }
  +            }
  +            if(clazz.getName().contains(filter)) {
  +                isTarget = true;
  +                break;
  +            }
  +        }
  +        return isTarget;
  +    }
  +    
  +    private boolean filter(Method method) {
           boolean isTarget = false;
  +        StringBuilder expression = new StringBuilder();
  +        expression.append(method.getDeclaringClass());
  +        expression.append(".");
  +        expression.append(method.getName());
           for(String filter : parent.getFilters()) {
  -            if(classExpression.contains(filter)) {
  +            if(expression.toString().contains(filter)) {
                   isTarget = true;
                   break;
               }
  
  
  



More information about the jboss-cvs-commits mailing list