[jboss-cvs] JBossAS SVN: r94414 - in projects/aop/trunk/aop/src/main: java/org/jboss/aop/advice and 11 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Oct 6 10:41:26 EDT 2009
Author: kabir.khan at jboss.com
Date: 2009-10-06 10:41:25 -0400 (Tue, 06 Oct 2009)
New Revision: 94414
Modified:
projects/aop/trunk/aop/src/main/java/org/jboss/aop/AspectXmlLoader.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/InstanceAdvisorDelegate.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/AdviceFactory.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/GeneratedAdvisorInterceptor.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/GenericInterceptorFactory.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/ScopedInterceptorFactory.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/annotation/assignability/ArgumentContextualizer.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/annotation/assignability/DegreeAlgorithm.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/annotation/compiler/ByteCodeAnnotationCompiler.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/ant/AopC.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/JoinPointGenerator.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/JoinpointClassification.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/OptimizedConstructionInvocations.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/TransformerCommon.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/joinpoint/MethodInvocation.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/metadata/SimpleMetaData.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/pointcut/FieldMatcher.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/pointcut/PointcutStats.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/ContainerCacheUtil.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/ContainerProxyCacheKey.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/ContainerProxyMethodInvocation.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/standalone/Compiler.java
projects/aop/trunk/aop/src/main/java/org/jboss/aop/util/MethodHashing.java
projects/aop/trunk/aop/src/main/resources/findbugs/exclude.xml
Log:
[JBAOP-757] Initial bug fixes and findbugs excludes
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/AspectXmlLoader.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/AspectXmlLoader.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/AspectXmlLoader.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -714,7 +714,7 @@
{
String name = getName(pointcut, "prepare");
String expr = pointcut.getAttribute("expr");
- if (expr != null && expr.trim().equals(""))
+ if (expr == null || (expr != null && expr.trim().equals("")))
{
throw new RuntimeException("pointcut declaration must have an expr associated with it");
}
@@ -798,13 +798,13 @@
public AnnotationIntroduction loadAnnotationIntroduction(Element pointcut) throws Exception
{
String expr = pointcut.getAttribute("expr");
- if (expr != null && expr.trim().equals(""))
+ if (expr == null || (expr != null && expr.trim().equals("")))
{
throw new RuntimeException("annotation introduction must have an expr attribute");
}
String invisible = pointcut.getAttribute("invisible");
- if (invisible != null && expr.trim().equals(""))
+ if (invisible == null || (invisible != null && expr.trim().equals("")))
{
throw new RuntimeException("annotation introduction must have an invisible attribute");
}
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/InstanceAdvisorDelegate.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/InstanceAdvisorDelegate.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/InstanceAdvisorDelegate.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -46,8 +46,8 @@
private static final Object NULL_ASPECT = new Object();
protected transient WeakReference<Advisor> classAdvisor;
InstanceAdvisor instanceAdvisor;
- protected transient WeakHashMap<AspectDefinition, Object> aspects;
- protected transient WeakHashMap<AspectDefinition, ConcurrentHashMap<Joinpoint, Object>> joinpointAspects;
+ protected transient volatile WeakHashMap<AspectDefinition, Object> aspects;
+ protected transient volatile WeakHashMap<AspectDefinition, ConcurrentHashMap<Joinpoint, Object>> joinpointAspects;
protected SimpleMetaData metadata;
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/AdviceFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/AdviceFactory.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/AdviceFactory.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -39,6 +39,8 @@
private AspectDefinition aspect;
private AdviceType type;
+ private volatile int cachedHash;
+
/**
* Creates a factory that generates advice interceptors.
* Use this constructor if you want to record an advice of the
@@ -199,4 +201,18 @@
return true;
}
+
+ @Override
+ public int hashCode()
+ {
+ int result = cachedHash;
+ if (result == 0)
+ {
+ result = 17;
+ result = 31 * result + advice.hashCode();
+ result = 31 * result + aspect.hashCode();
+ result = 31 * result + type.hashCode();
+ }
+ return result;
+ }
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/GeneratedAdvisorInterceptor.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/GeneratedAdvisorInterceptor.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/GeneratedAdvisorInterceptor.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -85,6 +85,8 @@
private String cflowString;
private ASTCFlowExpression cflowExpression;
+ private volatile int cachedHash;
+
/**
* The interceptor that is used if and only if we invoke dynamically
*/
@@ -543,6 +545,18 @@
return adviceString;
}
+ @Override
+ public int hashCode()
+ {
+ int result = cachedHash;
+ if (result == 0)
+ {
+ result = 17;
+ result = 31 * result + factory.hashCode();
+ }
+ return result;
+ }
+
private class GeneratedOnlyInterceptor implements Interceptor
{
String name;
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/GenericInterceptorFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/GenericInterceptorFactory.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/GenericInterceptorFactory.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -22,6 +22,7 @@
package org.jboss.aop.advice;
import java.lang.ref.WeakReference;
+import java.util.concurrent.atomic.AtomicInteger;
import org.jboss.aop.Advisor;
import org.jboss.aop.joinpoint.Joinpoint;
@@ -36,11 +37,13 @@
private boolean deployed = true;
private String name;
- private static volatile int counter = 0;
-
+ private static final AtomicInteger counter = new AtomicInteger();
+
+ private volatile int cachedHash;
+
public GenericInterceptorFactory(String classname, Element element)
{
- this.name = classname + (counter++);
+ this.name = classname + (counter.incrementAndGet());
this.classname = classname;
this.element = element;
}
@@ -49,6 +52,7 @@
{
this.classRef = new WeakReference<Class<?>>(clazz);
this.classname = clazz.getName();
+ this.name = classname + (counter.incrementAndGet());
}
public String getName()
@@ -85,7 +89,7 @@
{
clazz = classRef.get();
}
- if (clazz != null)
+ if (clazz == null)
{
ClassLoader cl = advisor.getClassLoader();
if (cl == null)
@@ -111,6 +115,7 @@
}
}
+ @Override
public boolean equals(Object obj)
{
if (this == obj) return true;
@@ -120,6 +125,19 @@
return true;
}
+ @Override
+ public int hashCode()
+ {
+ int result = cachedHash;
+ if (result == 0)
+ {
+ result = 17;
+ result = 31 * result + classname.hashCode();
+ result = 31 * result + name.hashCode();
+ }
+ return result;
+ }
+
public AdviceType getType()
{
return AdviceType.AROUND;
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/ScopedInterceptorFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/ScopedInterceptorFactory.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/ScopedInterceptorFactory.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -37,6 +37,8 @@
{
private AspectDefinition aspect;
+ private volatile int cachedHash;
+
public ScopedInterceptorFactory(AspectDefinition aspect)
{
this.aspect = aspect;
@@ -139,4 +141,17 @@
return true;
}
+
+ @Override
+ public int hashCode()
+ {
+ int result = cachedHash;
+ if (result == 0)
+ {
+ result = 17;
+ result = 31 * result + aspect.hashCode();
+ }
+ return result;
+ }
+
}
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/annotation/assignability/ArgumentContextualizer.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/annotation/assignability/ArgumentContextualizer.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/annotation/assignability/ArgumentContextualizer.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -24,6 +24,7 @@
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
+import java.util.Arrays;
import java.util.LinkedList;
import java.util.ListIterator;
@@ -370,6 +371,8 @@
private Type[] arguments;
private Type ownerType;
private Type rawType;
+
+ private volatile int cachedHash;
ParameterizedType_(ParameterizedType type)
{
@@ -396,6 +399,7 @@
return this.rawType;
}
+ @Override
public boolean equals(Object obj)
{
if (!(obj instanceof ParameterizedType))
@@ -418,6 +422,20 @@
}
return true;
}
+
+ @Override
+ public int hashCode()
+ {
+ int result = cachedHash;
+ if (result == 0)
+ {
+ result = 17;
+ result = 31 * result + ownerType.hashCode();
+ result = 31 * result + rawType.hashCode();
+ result = 31 * result + Arrays.hashCode(arguments);
+ }
+ return result;
+ }
}
/**
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/annotation/assignability/DegreeAlgorithm.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/annotation/assignability/DegreeAlgorithm.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/advice/annotation/assignability/DegreeAlgorithm.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -135,7 +135,7 @@
if (fromType.isInterface())
{
// if is object, the degree is the size of this interface hierarchy + 1
- if (toType.getName() == "java.lang.Object")
+ if (toType.getName().equals("java.lang.Object"))
{
ArrayList<Class<?>[]> list1 = new ArrayList<Class<?>[]>();
ArrayList<Class<?>[]> list2 = new ArrayList<Class<?>[]>();
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/annotation/compiler/ByteCodeAnnotationCompiler.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/annotation/compiler/ByteCodeAnnotationCompiler.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/annotation/compiler/ByteCodeAnnotationCompiler.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -257,9 +257,17 @@
byte[] byteCode = ctClass.toBytecode();
String path = URLDecoder.decode(url.getFile(), "UTF-8");
File fp = new File(path);
- FileOutputStream os = new FileOutputStream(fp);
- os.write(byteCode);
- os.close();
+ FileOutputStream os = null;
+ try
+ {
+ os = new FileOutputStream(fp);
+ os.write(byteCode);
+ }
+ finally
+ {
+ if (os != null)
+ os.close();
+ }
System.out.println("[compiled] " + fp);
}
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/ant/AopC.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/ant/AopC.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/ant/AopC.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -496,6 +496,10 @@
}
catch (IOException e)
{
+ throw new RuntimeException(e);
+ }
+ finally
+ {
if (writer != null)
{
try
@@ -506,7 +510,6 @@
{
}
}
- throw new RuntimeException(e);
}
}
}
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/JoinPointGenerator.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/JoinPointGenerator.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/JoinPointGenerator.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -493,6 +493,9 @@
}
}
+ if (advisorClass == null)
+ throw new IllegalStateException("Could not find advisor class");
+
try
{
joinpointField = advisorClass.getField(joinpointFieldName);
@@ -2308,6 +2311,10 @@
{
extraction = primitiveExtractions[7];
}
+ else
+ {
+ throw new IllegalStateException("Unsupported type " + expectedType);
+ }
code.append(extraction[0]);
code.append(i);
code.append(extraction[1]);
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/JoinpointClassification.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/JoinpointClassification.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/JoinpointClassification.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -65,6 +65,8 @@
//private boolean dynamicAop;
private JoinpointClassification counterPart;
+ private volatile int cachedHash;
+
/**
* Private constructor (singleton class).
* @param description classification description.
@@ -87,10 +89,12 @@
/**
* Returns a description of the joinpoint classification.
*/
+ @Override
public String toString() {
return this.description;
}
+ @Override
public boolean equals(Object other)
{
if (other == counterPart)
@@ -99,4 +103,18 @@
}
return super.equals(other);
}
+
+ @Override
+ public int hashCode()
+ {
+ int result = cachedHash;
+ if (result == 0)
+ {
+ result = 17;
+ result = 31 * result + description.hashCode();
+ }
+ return result;
+ }
+
+
}
\ No newline at end of file
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/OptimizedConstructionInvocations.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/OptimizedConstructionInvocations.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/OptimizedConstructionInvocations.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -73,6 +73,8 @@
break;
}
}
+ if (template == null)
+ throw new IllegalStateException("Could not find template");
CtConstructor icon = CtNewConstructor.make(template.getParameterTypes(),
template.getExceptionTypes(), invocation);
invocation.addConstructor(icon);
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/TransformerCommon.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/TransformerCommon.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/instrument/TransformerCommon.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -91,9 +91,17 @@
path = path + newClass.getSimpleName() + ".class";
URI newUrl = new URI(path);
file = new File(newUrl);
- FileOutputStream fp = new FileOutputStream(file);
- fp.write(newClass.toBytecode());
- fp.close();
+ FileOutputStream fp = null;
+ try
+ {
+ fp = new FileOutputStream(file);
+ fp.write(newClass.toBytecode());
+ }
+ finally
+ {
+ if (fp != null)
+ fp.close();
+ }
}
else
{
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/joinpoint/MethodInvocation.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/joinpoint/MethodInvocation.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/joinpoint/MethodInvocation.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -29,6 +29,7 @@
import java.lang.reflect.Method;
import java.rmi.MarshalledObject;
import java.util.ArrayList;
+import java.util.Arrays;
import org.jboss.aop.Advisor;
import org.jboss.aop.MethodInfo;
@@ -59,7 +60,7 @@
sb.append(", unadvisedMethod=").append(unadvisedMethod);
sb.append(", metadata=").append(metadata);
sb.append(", targetObject=").append(targetObject);
- sb.append(", arguments=").append(arguments);
+ sb.append(", arguments=").append(Arrays.toString(arguments));
sb.append("]");
return sb.toString();
}
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/metadata/SimpleMetaData.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/metadata/SimpleMetaData.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/metadata/SimpleMetaData.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -52,7 +52,7 @@
/**
* Contains the value of a metadata attribute.
*/
- public class MetaDataValue implements java.io.Serializable
+ public static class MetaDataValue implements java.io.Serializable
{
static final long serialVersionUID = -8024138149680591337L;
public final PayloadKey type;
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/pointcut/FieldMatcher.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/pointcut/FieldMatcher.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/pointcut/FieldMatcher.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -244,11 +244,11 @@
{
if (refField != null)
{
- return new Boolean(Util.has(ctField.getDeclaringClass(), (ASTConstructor) n, advisor));
+ return new Boolean(Util.has(refField.getDeclaringClass(), (ASTConstructor) n, advisor));
}
else
{
- return new Boolean(Util.has(refField.getDeclaringClass(), (ASTConstructor) n, advisor));
+ return new Boolean(Util.has(ctField.getDeclaringClass(), (ASTConstructor) n, advisor));
}
}
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/pointcut/PointcutStats.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/pointcut/PointcutStats.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/pointcut/PointcutStats.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -69,8 +69,8 @@
*/
public class PointcutStats implements PointcutExpressionParserVisitor
{
- protected ASTStart start;
- protected AspectManager manager;
+ protected final ASTStart start;
+ protected final AspectManager manager;
protected boolean execution = false;
protected boolean methodExecution = false;
protected boolean constructorExecution = false;
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/ContainerCacheUtil.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/ContainerCacheUtil.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/ContainerCacheUtil.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -21,6 +21,7 @@
*/
package org.jboss.aop.proxy.container;
+import java.io.Serializable;
import java.lang.ref.WeakReference;
import java.util.Arrays;
import java.util.Comparator;
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/ContainerProxyCacheKey.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/ContainerProxyCacheKey.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/ContainerProxyCacheKey.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -104,7 +104,7 @@
return true;
}
- if (obj.getClass() != ContainerProxyCacheKey.class)
+ if (obj.getClass() != this.getClass())
{
return false;
}
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/ContainerProxyMethodInvocation.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/ContainerProxyMethodInvocation.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/ContainerProxyMethodInvocation.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -36,6 +36,11 @@
AspectManaged proxy;
static final Object[] NO_ARGS = new Object[0];
+ public ContainerProxyMethodInvocation()
+ {
+ //For serialization
+ }
+
public ContainerProxyMethodInvocation(MethodInfo info, Interceptor[] interceptors, AspectManaged proxy)
{
super(info, interceptors);
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/proxy/container/GeneratedAOPProxyFactory.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -131,6 +131,9 @@
}
}
+ if (proxyClass == null)
+ throw new IllegalStateException("No proxy class");
+
return instantiateAndConfigureProxy(proxyClass, params);
}
catch (Exception e)
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/standalone/Compiler.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/standalone/Compiler.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/standalone/Compiler.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -212,9 +212,17 @@
if (verbose) System.out.println("[aopc] " + f + " is neither a java class or a directory");
}
}
- FileOutputStream reportFile = new FileOutputStream("aop-report.xml");
- reportFile.write(XmlReport.toXml().getBytes());
- reportFile.close();
+ FileOutputStream reportFile = null;
+ try
+ {
+ reportFile = new FileOutputStream("aop-report.xml");
+ reportFile.write(XmlReport.toXml().getBytes());
+ }
+ finally
+ {
+ if (reportFile != null)
+ reportFile.close();
+ }
}
else
{
@@ -301,9 +309,17 @@
}
private ClassFile createClassFile(final File file) throws Exception{
- DataInputStream is = new DataInputStream(new FileInputStream(file));
- ClassFile cf = new ClassFile(is);
- is.close();
+ DataInputStream is = null;
+ ClassFile cf = null;
+ try
+ {
+ is = new DataInputStream(new FileInputStream(file));
+ cf = new ClassFile(is);
+ }
+ finally
+ {
+ is.close();
+ }
return cf;
}
@@ -324,6 +340,10 @@
}
catch (Exception e)
{
+ throw new RuntimeException(e);
+ }
+ finally
+ {
try
{
reader.close();
@@ -331,7 +351,6 @@
catch (IOException e1)
{
}
- throw new RuntimeException(e);
}
}
@@ -343,9 +362,18 @@
*/
public boolean loadFile(File file) throws Exception
{
- DataInputStream is = new DataInputStream(new FileInputStream(file));
- ClassFile cf = new ClassFile(is);
- is.close();
+ DataInputStream is = null;
+ ClassFile cf = null;
+ try
+ {
+ is = new DataInputStream(new FileInputStream(file));
+ cf = new ClassFile(is);
+ }
+ finally
+ {
+ if (is != null)
+ is.close();
+ }
Class<?> clazz = loader.loadClass(cf.getName());
if (org.jboss.aop.Advised.class.isAssignableFrom(clazz))
{
@@ -394,9 +422,17 @@
if (verbose) System.out.println("[no comp needed] " + info.getFile());
return;
}
- FileOutputStream os = new FileOutputStream(infoFile);
- os.write(bytes);
- os.close();
+ FileOutputStream os = null;
+ try
+ {
+ os = new FileOutputStream(infoFile);
+ os.write(bytes);
+ }
+ finally
+ {
+ if (os != null)
+ os.close();
+ }
info.setCompiled(true);
if (verbose) System.out.println("[compiled] " + info.getFile());
}
Modified: projects/aop/trunk/aop/src/main/java/org/jboss/aop/util/MethodHashing.java
===================================================================
--- projects/aop/trunk/aop/src/main/java/org/jboss/aop/util/MethodHashing.java 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/java/org/jboss/aop/util/MethodHashing.java 2009-10-06 14:41:25 UTC (rev 94414)
@@ -242,7 +242,7 @@
long hash = methodHash(method);
map.put(method.toString(), new Long(hash));
}
- catch (Exception e)
+ catch (Exception ignore)
{
}
}
@@ -274,7 +274,7 @@
//Use Clebert's Persistent References so we don't get memory leaks
map.put(new Long(hash), new MethodPersistentReference(methods[i], PersistentReference.REFERENCE_SOFT));
}
- catch (Exception e)
+ catch (Exception ignore)
{
}
}
@@ -306,7 +306,7 @@
//Use Clebert's Persistent References so we don't get memory leaks
map.put(new Long(hash), new ConstructorPersistentReference(constructors[i], PersistentReference.REFERENCE_SOFT));
}
- catch (Exception e)
+ catch (Exception ignore)
{
}
}
Modified: projects/aop/trunk/aop/src/main/resources/findbugs/exclude.xml
===================================================================
--- projects/aop/trunk/aop/src/main/resources/findbugs/exclude.xml 2009-10-06 14:29:47 UTC (rev 94413)
+++ projects/aop/trunk/aop/src/main/resources/findbugs/exclude.xml 2009-10-06 14:41:25 UTC (rev 94414)
@@ -1,2 +1,400 @@
<FindBugsFilter>
+ <!-- autogenerated so we can't help the bad names/practice -->
+ <Match>
+ <Class name="~org\.jboss\.aop\.pointcut\.ast\..*"/>
+ </Match>
+
+ <!-- These writes to static fields from instance methods are fine -->
+ <Match>
+ <Class name="org.jboss.aop.AspectManager$1"/>
+ <Method name="run"/>
+ <Or>
+ <Field name="maintainAdvisorMethodInterceptors"/>
+ <Field name="manager"/>
+ <Field name="optimize"/>
+ </Or>
+ <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.proxy.container.ContainerProxyFactory"/>
+ <Method name="createBasics"/>
+ <Field name="setDelegateMethod"/>
+ <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.standalone.Compiler"/>
+ <Method name="compile" params="java.lang.String[]" returns="void"/>
+ <Field name="optimize"/>
+ <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.standalone.Compiler"/>
+ <Method name="compile" params="java.lang.String[]" returns="void"/>
+ <Field name="suppressReferenceErrors"/>
+ <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.standalone.Compiler"/>
+ <Method name="compile" params="java.lang.String[]" returns="void"/>
+ <Field name="verbose"/>
+ <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.standalone.Compiler"/>
+ <Method name="compile" params="java.lang.String[]" returns="void"/>
+ <Field name="searchClasspath"/>
+ <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.standalone.Compiler"/>
+ <Method name="compile" params="java.lang.String[]" returns="void"/>
+ <Field name="loader"/>
+ <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.WeavingStrategySupport"/>
+ <Method name="setTransformationStarted"/>
+ <Field name="transformationStarted"/>
+ <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
+ </Match>
+
+ <!--
+ These fields are not initilalized in the constructor, either because they are intended to be set by setters
+ or because they get set when running other methods
+ -->
+ <Match>
+ <Class name="org.jboss.aop.annotation.compiler.ByteCodeAnnotationCompiler"/>
+ <Field name="pool"/>
+ <Bug pattern="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.ant.AnnotationC"/>
+ <Field name="classpath"/>
+ <Bug pattern="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.ant.AnnotationC"/>
+ <Field name="compileSourcepath"/>
+ <Bug pattern="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.ant.AopC"/>
+ <Field name="compileSourcepath"/>
+ <Bug pattern="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.HotSwapStrategy$JoinpointStatusUpdater"/>
+ <Field name="methodInterceptors"/>
+ <Bug pattern="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.pointcut.CFlowMatcher"/>
+ <Field name="invocation"/>
+ <Bug pattern="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR"/>
+ </Match>
+
+ <!-- These exceptions are meant to be ignored -->
+ <Match>
+ <Class name="org.jboss.aop.advice.PerVmAdvice"/>
+ <Method name="generateInterceptor" params="org.jboss.aop.joinpoint.Joinpoint, java.lang.Object, java.lang.String" returns="org.jboss.aop.advice.Interceptor"/>
+ <Bug pattern="DE_MIGHT_IGNORE"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.Advisor"/>
+ <Method name="deployMethodAnnotationOverrides" params="java.lang.Class, org.jboss.aop.introduction.AnnotationIntroduction" returns="void"/>
+ <Bug pattern="DE_MIGHT_IGNORE"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.Advisor"/>
+ <Method name="doDeployAnnotationOverride" params="org.jboss.aop.introduction.AnnotationIntroduction" returns="void"/>
+ <Bug pattern="DE_MIGHT_IGNORE"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.util.MethodHashing"/>
+ <Method name="getConstructorHashMap" params="java.lang.Class" returns="java.util.Map"/>
+ <Bug pattern="DE_MIGHT_IGNORE"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.util.MethodHashing"/>
+ <Method name="getMethodHashMap" params="java.lang.Class" returns="java.util.Map"/>
+ <Bug pattern="DE_MIGHT_IGNORE"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.util.MethodHashing"/>
+ <Method name="getInterfaceHashes" params="java.lang.Class" returns="java.util.Map"/>
+ <Bug pattern="DE_MIGHT_IGNORE"/>
+ </Match>
+
+ <!-- The System.exit() calls are fine in these standalone utilities -->
+ <Match>
+ <Class name="org.jboss.aop.annotation.compiler.AnnotationCompiler"/>
+ <Method name="compile" params="java.lang.String[]" returns="void"/>
+ <Bug pattern="DM_EXIT"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.annotation.compiler.ByteCodeAnnotationCompiler"/>
+ <Method name="compile" params="java.lang.String[]" returns="void"/>
+ <Bug pattern="DM_EXIT"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.annotation.compiler.XmlAnnotationCompiler"/>
+ <Method name="compile" params="java.lang.String[]" returns="void"/>
+ <Bug pattern="DM_EXIT"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.standalone.Compiler"/>
+ <Method name="compile" params="java.lang.String[]" returns="void"/>
+ <Bug pattern="DM_EXIT"/>
+ </Match>
+
+ <!-- Ignore this -->
+ <Match>
+ <Class name="org.jboss.aop.advice.annotation.AdviceInfo"/>
+ <Method name="compareTo" params="org.jboss.aop.advice.annotation.AdviceInfo" returns="int"/>
+ <Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS"/>
+ </Match>
+
+ <!-- Too late to change these 'confusing' names -->
+ <Match>
+ <Class name="org.jboss.aop.Advisor"/>
+ <Method name="getMetadata"/>
+ <Bug pattern="NM_CONFUSING"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.Advisor"/>
+ <Method name="setMetadata" params="org.jboss.metadata.spi.MetaData" returns="void"/>
+ <Bug pattern="NM_CONFUSING"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.AspectAnnotationLoaderStrategy$InterfaceIntroductionMixinInfo"/>
+ <Method name="getClassname"/>
+ <Bug pattern="NM_CONFUSING"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.ClassInstanceAdvisor"/>
+ <Method name="getMetaData"/>
+ <Bug pattern="NM_CONFUSING"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.joinpoint.ConstructionInvocationWrapper"/>
+ <Method name="setMetaData" params="org.jboss.aop.metadata.SimpleMetaData" returns="void"/>
+ <Bug pattern="NM_CONFUSING"/>
+ </Match>
+
+ <Match>
+ <Class name="org.jboss.aop.ant.AopC"/>
+ <Method name="execute"/>
+ <Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"/>
+ </Match>
+
+ <!-- Don't worry about the File.delete()/mkDirs() return values -->
+ <Match>
+ <Class name="org.jboss.aop.hook.GenerateInstrumentedClassLoader"/>
+ <Method name="main" params="java.lang.String[]" returns="void"/>
+ <Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.hook.GeneratePluggableInstrumentedClassLoader"/>
+ <Method name="main" params="java.lang.String[]" returns="void"/>
+ <Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.standalone.Compiler"/>
+ <Method name="addFile" params="java.io.File" returns="void"/>
+ <Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"/>
+ </Match>
+
+ <!-- Don't want to change serialization at this stage. This is the weakest area of our standalone testsuite -->
+ <Match>
+ <Class name="org.jboss.aop.annotation.compiler.AnnotationDocletTag"/>
+ <Field name="ast"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.ClassInstanceAdvisor"/>
+ <Field name="instanceRef"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.ClassInstanceAdvisor"/>
+ <Field name="interceptorChainObserver"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.ClassInstanceAdvisor"/>
+ <Field name="stacks"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.GeneratedInstanceAdvisorMixin"/>
+ <Field name="instanceRef"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.GeneratedInstanceAdvisorMixin"/>
+ <Field name="interceptorChainObserver"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.GeneratedInstanceAdvisorMixin"/>
+ <Field name="stacks"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.InstanceAdvisorDelegate"/>
+ <Field name="instanceAdvisor"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.InstanceAdvisorDelegate"/>
+ <Field name="aspects"/>
+ <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.InstanceAdvisorDelegate"/>
+ <Field name="joinpointAspects"/>
+ <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.InstanceAdvisorDelegate"/>
+ <Field name="classAdvisor"/>
+ <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.joinpoint.ConstructorCalledByConstructorInvocation"/>
+ <Field name="calling"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.joinpoint.ConstructorCalledByConstructorInvocation"/>
+ <Field name="constructor"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.joinpoint.ConstructorCalledByConstructorInvocation"/>
+ <Field name="wrappingMethod"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.joinpoint.ConstructorCalledByMethodInvocation"/>
+ <Field name="callingMethod"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.joinpoint.ConstructorCalledByMethodInvocation"/>
+ <Field name="constructor"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.joinpoint.ConstructorCalledByMethodInvocation"/>
+ <Field name="wrappingMethod"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.joinpoint.InvocationBase"/>
+ <Field name="interceptors"/>
+ <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.joinpoint.MethodCalledByConstructorInvocation"/>
+ <Field name="calling"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.joinpoint.MethodCalledByConstructorInvocation"/>
+ <Field name="method"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.joinpoint.MethodCalledByMethodInvocation"/>
+ <Field name="callingMethod"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.joinpoint.MethodCalledByMethodInvocation"/>
+ <Field name="method"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.joinpoint.MethodInvocationWrapper"/>
+ <Bug pattern="SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.proxy.container.ContainerCacheUtil$Alphabetical"/>
+ <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.proxy.container.ContainerProxyCacheKey$MixinAlphabetical"/>
+ <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.proxy.container.MarshalledContainerProxy"/>
+ <Field name="targetInterfaces"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.proxy.container.MarshalledContainerProxy$MarshalledMethodInfo"/>
+ <Field name="interceptors"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.proxy.container.MarshalledContainerProxy$MarshalledMethodInfo"/>
+ <Field name="proxy"/>
+ <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.proxy.container.MarshalledContainerProxy$MarshalledMethodInfo"/>
+ <Field name="requiresInstanceAdvisor"/>
+ <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.proxy.MarshalledClassProxy"/>
+ <Field name="advisor"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.proxy.MarshalledInterfaceProxy"/>
+ <Field name="advisor"/>
+ <Bug pattern="SE_BAD_FIELD"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.util.ConstructorComparator"/>
+ <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.util.CtConstructorComparator"/>
+ <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.util.CtFieldComparator"/>
+ <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.util.FieldComparator"/>
+ <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.advice.SortedCFlowInterceptor$ChainCache"/>
+ <Bug pattern="SE_NO_SERIALVERSIONID"/>
+ </Match>
+
+ <!-- Fixed the other null on some path errors, these are not an issue -->
+ <Match>
+ <Class name="org.jboss.aop.eclipsesupport.EclipseTestTransformer"/>
+ <Method name="weaveRemoteTestRunner" params="java.lang.ClassLoader, java.lang.String, java.lang.Class, java.security.ProtectionDomain, byte[]" returns="byte[]"/>
+ <Bug pattern="NP_NULL_ON_SOME_PATH"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.InstanceAdvisorDelegate"/>
+ <Method name="getPerInstanceAspect" params="org.jboss.aop.advice.AspectDefinition" returns="java.lang.Object"/>
+ <Field name="aspects"/>
+ <Bug pattern="NP_NULL_ON_SOME_PATH"/>
+ </Match>
+ <Match>
+ <Class name="org.jboss.aop.standalone.XmlReport"/>
+ <Method name="outputAdvisor" params="int, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, org.jboss.aop.ClassAdvisor, java.lang.String" returns="void"/>
+ <Bug pattern="NP_NULL_ON_SOME_PATH"/>
+ </Match>
+
+
</FindBugsFilter>
More information about the jboss-cvs-commits
mailing list