Author: hlship Date: Sat Apr 22 18:11:48 2006 New Revision: 396188 URL: http://svn.apache.org/viewcvs?rev=396188&view=rev Log: Add an aspect that checks method parameters for nulls (unless supressed using an annotation).
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/AbstractCatchNullParametersAspect.aj tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/CatchNullParametersAspectTest.java tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/NullTarget.java tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/PartiallySuppressedNullTarget.java tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/SuppressedNullTarget.java Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/AbstractCatchNullParametersAspect.aj URL: http://svn.apache.org/viewcvs/tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/AbstractCatchNullParametersAspect.aj?rev=396188&r1=396187&r2=396188&view=diff ============================================================================== --- tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/AbstractCatchNullParametersAspect.aj (original) +++ tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/AbstractCatchNullParametersAspect.aj Sat Apr 22 18:11:48 2006 @@ -5,6 +5,8 @@ /** * Adds code to targeted methods and constructors that prevents null values from being passed in as * parameters. + * + * @author Howard M. Lewis Ship */ @SuppressNullCheck public abstract aspect AbstractCatchNullParametersAspect @@ -63,8 +65,6 @@ i + 1, thisJoinPoint.getSignature().toString(), thisJoinPoint.getSourceLocation()); - - System.err.println(message); throw new IllegalArgumentException(message); } Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/CatchNullParametersAspectTest.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/CatchNullParametersAspectTest.java?rev=396188&r1=396187&r2=396188&view=diff ============================================================================== --- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/CatchNullParametersAspectTest.java (original) +++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/CatchNullParametersAspectTest.java Sat Apr 22 18:11:48 2006 @@ -51,6 +51,12 @@ } @Test + public void equalsAlwaysSuppressed() + { + new NullTarget("not null").equals(null); + } + + @Test public void publicMethod() { NullTarget t = new NullTarget(); Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/NullTarget.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/NullTarget.java?rev=396188&r1=396187&r2=396188&view=diff ============================================================================== --- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/NullTarget.java (original) +++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/NullTarget.java Sat Apr 22 18:11:48 2006 @@ -14,6 +14,11 @@ package org.apache.tapestry.internal.aspects; +/** + * Used to test the CatchNullParametersAspect. + * + * @author Howard M. Lewis Ship + */ public class NullTarget { public NullTarget() @@ -27,6 +32,11 @@ } + public boolean equals(Object other) + { + return false; + } + // Private method, null check not enforced private NullTarget(String param1, String param2) @@ -41,16 +51,16 @@ public void someMethod(String parameter) { - + } - + public void sendNullToPrivate() { privateMethod(null); } - + private void privateMethod(String parameter) { - + } } Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/PartiallySuppressedNullTarget.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/PartiallySuppressedNullTarget.java?rev=396188&r1=396187&r2=396188&view=diff ============================================================================== --- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/PartiallySuppressedNullTarget.java (original) +++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/PartiallySuppressedNullTarget.java Sat Apr 22 18:11:48 2006 @@ -16,6 +16,11 @@ import org.apache.tapestry.internal.annotations.SuppressNullCheck; +/** + * Used to test the CatchNullParametersAspect. + * + * @author Howard M. Lewis Ship + */ public class PartiallySuppressedNullTarget { @SuppressNullCheck Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/SuppressedNullTarget.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/SuppressedNullTarget.java?rev=396188&r1=396187&r2=396188&view=diff ============================================================================== --- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/SuppressedNullTarget.java (original) +++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/SuppressedNullTarget.java Sat Apr 22 18:11:48 2006 @@ -16,6 +16,11 @@ import org.apache.tapestry.internal.annotations.SuppressNullCheck; +/** + * Used to test the CatchNullParametersAspect. + * + * @author Howard M. Lewis Ship + */ @SuppressNullCheck public class SuppressedNullTarget { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]