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]