diff --git a/plugins/org.eclipse.jst.j2ee.web/templates/_methods.template b/plugins/org.eclipse.jst.j2ee.web/templates/_methods.template
index a424ce6..ebe0076 100644
--- a/plugins/org.eclipse.jst.j2ee.web/templates/_methods.template
+++ b/plugins/org.eclipse.jst.j2ee.web/templates/_methods.template
@@ -6,7 +6,7 @@
 	/**
      * @see <%= method.getContainingJavaClass() %>#<%= method.getName() %>(<%= method.getParamsForJavadoc() %>)
      */
-    public <%= method.getReturnType() %> <%= method.getName() %>(<%= method.getParamsForDeclaration() %>) <%  if (!method.getExceptions().isEmpty()){ %>throws <%=method.getExceptions()%> { 
+    public <%= method.getReturnType() %> <%= method.getName() %>(<%= method.getParamsForDeclaration() %>) <%  if (method.getExceptions().length() > 0){ %>throws <%=method.getExceptions()%> { 
     <%}else {%> { <% } %>
          // TODO Auto-generated method stub
 <% 
diff --git a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/ListenerTemplate.java b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/ListenerTemplate.java
index cc7014b..a1a38a3 100644
--- a/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/ListenerTemplate.java
+++ b/plugins/org.eclipse.jst.j2ee.web/web/org/eclipse/jst/j2ee/internal/web/operations/ListenerTemplate.java
@@ -217,7 +217,7 @@
     stringBuffer.append(TEXT_35);
     stringBuffer.append( method.getParamsForDeclaration() );
     stringBuffer.append(TEXT_36);
-      if (!method.getExceptions().isEmpty()){ 
+      if (method.getExceptions().length() > 0){ 
     stringBuffer.append(TEXT_37);
     stringBuffer.append(method.getExceptions());
     stringBuffer.append(TEXT_38);
