diff --git a/apps/cookbook-examples/src/main/java/org/apache/commons/chain2/cookbook/agility/impl/RequestContext.java b/apps/cookbook-examples/src/main/java/org/apache/commons/chain2/cookbook/agility/impl/RequestContext.java
index 95d8582..09a86d5 100644
--- a/apps/cookbook-examples/src/main/java/org/apache/commons/chain2/cookbook/agility/impl/RequestContext.java
+++ b/apps/cookbook-examples/src/main/java/org/apache/commons/chain2/cookbook/agility/impl/RequestContext.java
@@ -30,7 +30,6 @@
     private Response response;
 
     public RequestContext(String name) {
-        super();
         this.name = name;
     }
 
diff --git a/apps/cookbook-examples/src/main/java/org/apache/commons/chain2/cookbook/agility/impl/ResponseContext.java b/apps/cookbook-examples/src/main/java/org/apache/commons/chain2/cookbook/agility/impl/ResponseContext.java
index 7da21ec..6486a43 100644
--- a/apps/cookbook-examples/src/main/java/org/apache/commons/chain2/cookbook/agility/impl/ResponseContext.java
+++ b/apps/cookbook-examples/src/main/java/org/apache/commons/chain2/cookbook/agility/impl/ResponseContext.java
@@ -27,7 +27,6 @@
     private final String name;
 
     public ResponseContext(String name) {
-        super();
         this.name = name;
     }
 
diff --git a/base/src/main/java/org/apache/commons/chain2/base/DispatchLookupCommand.java b/base/src/main/java/org/apache/commons/chain2/base/DispatchLookupCommand.java
index a753a26..0ee13a9 100644
--- a/base/src/main/java/org/apache/commons/chain2/base/DispatchLookupCommand.java
+++ b/base/src/main/java/org/apache/commons/chain2/base/DispatchLookupCommand.java
@@ -66,7 +66,7 @@
      * This property can be set later using <code>setProperty</code>, or if it is not set,
      * the static singleton instance from <code>CatalogFactory.getInstance()</code> will be used.
      */
-    public DispatchLookupCommand() {  super();  }
+    public DispatchLookupCommand() {  }
 
     /**
      * Create an instance and initialize the <code>catalogFactory</code> property
diff --git a/base/src/main/java/org/apache/commons/chain2/impl/ContextBase.java b/base/src/main/java/org/apache/commons/chain2/impl/ContextBase.java
index 9c01e07..10e4e4b 100644
--- a/base/src/main/java/org/apache/commons/chain2/impl/ContextBase.java
+++ b/base/src/main/java/org/apache/commons/chain2/impl/ContextBase.java
@@ -60,7 +60,6 @@
      * Default, no argument constructor.
      */
     public ContextBase() {
-        super();
         initialize();
     }
 
diff --git a/base/src/main/java/org/apache/commons/chain2/impl/ContextMap.java b/base/src/main/java/org/apache/commons/chain2/impl/ContextMap.java
index 51a0239..ab0a715 100644
--- a/base/src/main/java/org/apache/commons/chain2/impl/ContextMap.java
+++ b/base/src/main/java/org/apache/commons/chain2/impl/ContextMap.java
@@ -41,7 +41,6 @@
      * Creates a new, empty Context with a default initial capacity, load factor, and concurrencyLevel.
      */
     public ContextMap() {
-        super();
     }
 
     /**
diff --git a/configuration/xml/src/main/java/org/apache/commons/chain2/config/xml/ConfigCatalogRule.java b/configuration/xml/src/main/java/org/apache/commons/chain2/config/xml/ConfigCatalogRule.java
index 6f26fd7..b02766c 100644
--- a/configuration/xml/src/main/java/org/apache/commons/chain2/config/xml/ConfigCatalogRule.java
+++ b/configuration/xml/src/main/java/org/apache/commons/chain2/config/xml/ConfigCatalogRule.java
@@ -48,7 +48,6 @@
      *  created {@link org.apache.commons.chain2.Catalog} instances
      */
     public ConfigCatalogRule(String nameAttribute, String catalogClass) {
-        super();
         this.nameAttribute = nameAttribute;
         this.catalogClass = catalogClass;
     }
diff --git a/configuration/xml/src/main/java/org/apache/commons/chain2/config/xml/ConfigDefineRule.java b/configuration/xml/src/main/java/org/apache/commons/chain2/config/xml/ConfigDefineRule.java
index 51d3da6..9ba4857 100644
--- a/configuration/xml/src/main/java/org/apache/commons/chain2/config/xml/ConfigDefineRule.java
+++ b/configuration/xml/src/main/java/org/apache/commons/chain2/config/xml/ConfigDefineRule.java
@@ -44,7 +44,6 @@
      *  implementation class for the new chain or command
      */
     public ConfigDefineRule(String nameAttribute, String classAttribute) {
-        super();
         this.nameAttribute = nameAttribute;
         this.classAttribute = classAttribute;
     }
diff --git a/configuration/xml/src/main/java/org/apache/commons/chain2/config/xml/ConfigRegisterRule.java b/configuration/xml/src/main/java/org/apache/commons/chain2/config/xml/ConfigRegisterRule.java
index 28eb897..e10399e 100644
--- a/configuration/xml/src/main/java/org/apache/commons/chain2/config/xml/ConfigRegisterRule.java
+++ b/configuration/xml/src/main/java/org/apache/commons/chain2/config/xml/ConfigRegisterRule.java
@@ -46,7 +46,6 @@
      *  which this command should be registered
      */
     public ConfigRegisterRule(String nameAttribute) {
-        super();
         this.nameAttribute = nameAttribute;
     }
 
diff --git a/web/src/test/java/org/apache/commons/chain2/web/MockPrincipal.java b/web/src/test/java/org/apache/commons/chain2/web/MockPrincipal.java
index 5cc10e1..10d0ead 100644
--- a/web/src/test/java/org/apache/commons/chain2/web/MockPrincipal.java
+++ b/web/src/test/java/org/apache/commons/chain2/web/MockPrincipal.java
@@ -28,21 +28,18 @@
 
 
     public MockPrincipal() {
-        super();
         this.name = "";
         this.roles = new String[0];
     }
 
 
     public MockPrincipal(String name) {
-        super();
         this.name = name;
         this.roles = new String[0];
     }
 
 
     public MockPrincipal(String name, String roles[]) {
-        super();
         this.name = name;
         this.roles = roles;
     }
diff --git a/web/src/test/java/org/apache/commons/chain2/web/servlet/MockHttpServletRequest.java b/web/src/test/java/org/apache/commons/chain2/web/servlet/MockHttpServletRequest.java
index 48e470c..6d3f057 100644
--- a/web/src/test/java/org/apache/commons/chain2/web/servlet/MockHttpServletRequest.java
+++ b/web/src/test/java/org/apache/commons/chain2/web/servlet/MockHttpServletRequest.java
@@ -35,19 +35,16 @@
 
 
     public MockHttpServletRequest() {
-        super();
     }
 
 
     public MockHttpServletRequest(HttpSession session) {
-        super();
         setHttpSession(session);
     }
 
 
     public MockHttpServletRequest(String contextPath, String servletPath,
                                   String pathInfo, String queryString) {
-        super();
         setPathElements(contextPath, servletPath, pathInfo, queryString);
     }
 
@@ -56,7 +53,6 @@
     public MockHttpServletRequest(String contextPath, String servletPath,
                                   String pathInfo, String queryString,
                                   HttpSession session) {
-        super();
         setPathElements(contextPath, servletPath, pathInfo, queryString);
         setHttpSession(session);
     }
diff --git a/web/src/test/java/org/apache/commons/chain2/web/servlet/MockHttpSession.java b/web/src/test/java/org/apache/commons/chain2/web/servlet/MockHttpSession.java
index e1ad68f..a1adc15 100644
--- a/web/src/test/java/org/apache/commons/chain2/web/servlet/MockHttpSession.java
+++ b/web/src/test/java/org/apache/commons/chain2/web/servlet/MockHttpSession.java
@@ -35,12 +35,10 @@
 
 
     public MockHttpSession() {
-        super();
     }
 
 
     public MockHttpSession(ServletContext servletContext) {
-        super();
         setServletContext(servletContext);
     }
 
