private void writeOutNullHandler(Member member, int type) {

    assert debug("DUP");
    mv.visitInsn(DUP);

    Label j = new Label();

    assert debug("IFNONNULL : jump");
    mv.visitJumpInsn(IFNONNULL, j);

    assert debug("POP");
    mv.visitInsn(POP);

    assert debug("ALOAD 0");
    mv.visitVarInsn(ALOAD, 0);

    if (type == 0) {
      this.propNull = true;

      assert debug("GETFIELD 'nullPropertyHandler'");
      mv.visitFieldInsn(GETFIELD, className, "nullPropertyHandler", "L" + NAMESPACE + "integration/PropertyHandler;");
    }
    else {
      this.methNull = true;

      assert debug("GETFIELD 'nullMethodHandler'");
      mv.visitFieldInsn(GETFIELD, className, "nullMethodHandler", "L" + NAMESPACE + "integration/PropertyHandler;");
    }


    assert debug("LDC '" + member.getName() + "'");
    mv.visitLdcInsn(member.getName());

    assert debug("ALOAD 1");
    mv.visitVarInsn(ALOAD, 1);

    assert debug("ALOAD 3");
    mv.visitVarInsn(ALOAD, 3);

    assert debug("INVOKEINTERFACE PropertyHandler.getProperty");
    mv.visitMethodInsn(INVOKEINTERFACE, NAMESPACE + "integration/PropertyHandler", "getProperty",
        "(Ljava/lang/String;Ljava/lang/Object;L" + NAMESPACE + "integration/VariableResolverFactory;)Ljava/lang/Object;");

    assert debug("LABEL:jump");
    mv.visitLabel(j);

  }