class RemoveEmptyBodyDefaultConstructor {
  public static boolean DEBUG = false;

  public static void checkAndRemoveDefault(SootClass s) {<FILL_FUNCTION_BODY>}

  public static void debug(String debug) {
    if (DEBUG) {
      System.out.println("DEBUG: " + debug);
    }
  }

}

    debug("\n\nRemoveEmptyBodyDefaultConstructor----" + s.getName());
    List methods = s.getMethods();
    Iterator it = methods.iterator();
    List<SootMethod> constructors = new ArrayList<SootMethod>();

    while (it.hasNext()) {
      SootMethod method = (SootMethod) it.next();
      debug("method name is" + method.getName());
      if (method.getName().indexOf("<init>") > -1) {
        // constructor add to constructor list
        constructors.add(method);
      }
    }

    if (constructors.size() != 1) {
      // cant do anything since there are more than one constructors
      debug("class has more than one constructors cant do anything");
      return;
    }

    // only one constructor check its default (no arguments)
    SootMethod constructor = constructors.get(0);
    if (constructor.getParameterCount() != 0) {
      // can only deal with default constructors
      debug("constructor is not the default constructor");
      return;
    }

    debug("Check that the body is empty....and call to super contains no arguments and delete");

    if (!constructor.hasActiveBody()) {
      debug("No active body found for the default constructor");
      return;
    }

    if (!constructor.isPublic()) {
      debug("Default constructor is not public.");
      return;
    }

    Body body = constructor.getActiveBody();
    Chain units = ((DavaBody) body).getUnits();

    if (units.size() != 1) {
      debug(" DavaBody AST does not have single root");
      return;
    }

    ASTNode AST = (ASTNode) units.getFirst();
    if (!(AST instanceof ASTMethodNode)) {
      throw new RuntimeException("Starting node of DavaBody AST is not an ASTMethodNode");
    }

    ASTMethodNode methodNode = (ASTMethodNode) AST;
    debug("got methodnode check body is empty and super has nothing in it");

    List<Object> subBodies = methodNode.get_SubBodies();
    if (subBodies.size() != 1) {
      debug("Method node does not have one subBody!!!");
      return;
    }

    List methodBody = (List) subBodies.get(0);
    if (methodBody.size() != 0) {
      debug("Method body size is greater than 1 so cant do nothing");
      return;
    }

    debug("Method body is empty...check super call is empty");

    if (((DavaBody) body).get_ConstructorExpr().getArgCount() != 0) {
      debug("call to super not empty");
      return;
    }

    debug("REMOVE METHOD");
    s.removeMethod(constructor);
  
<no_super_class>