Program: 67178
Project: 67178
Buggy source:
protected void okPressed(){
  try {
    if (inputHandle == null) {
      FilterConditionElementHandle filter=DesignElementFactory.getInstance(currentItem.getModuleHandle()).newFilterConditionElement();
      filter.setProperty(IFilterConditionElementModel.OPERATOR_PROP,DEUtil.resolveNull(getValueForOperator(operator.getText())));
      Expression expression=new Expression(expButton.getDisplayExpression(),expButton.getExpressionType());
      filter.setExpressionProperty(FilterCondition.EXPR_MEMBER,expression);
      if (valueVisible == 3) {
        filter.setValue1(valueList);
        filter.setValue2("String_Node_Str");
      }
 else {
        assert(!expressionValue1.isDisposed());
        assert(!expressionValue2.isDisposed());
        if (expressionValue1.getVisible()) {
          filter.setValue1(DEUtil.resolveNull(expressionValue1.getText()));
        }
 else {
          filter.setValue1(NULL_STRING);
        }
        if (expressionValue2.getVisible()) {
          filter.setValue2(DEUtil.resolveNull(expressionValue2.getText()));
        }
 else {
          filter.setValue2(NULL_STRING);
        }
      }
      PropertyHandle propertyHandle=designHandle.getPropertyHandle(ChartReportItemConstants.PROPERTY_CUBE_FILTER);
      propertyHandle.add(filter);
    }
 else {
      inputHandle.setOperator(DEUtil.resolveNull(getValueForOperator(operator.getText())));
      if (valueVisible == 3) {
        inputHandle.setValue1(valueList);
        inputHandle.setValue2(NULL_STRING);
      }
 else {
        assert(!expressionValue1.isDisposed());
        assert(!expressionValue2.isDisposed());
        if (expressionValue1.getVisible()) {
          inputHandle.setValue1(DEUtil.resolveNull(expressionValue1.getText()));
        }
 else {
          inputHandle.setValue1(NULL_STRING);
        }
        if (expressionValue2.getVisible()) {
          inputHandle.setValue2(DEUtil.resolveNull(expressionValue2.getText()));
        }
 else {
          inputHandle.setValue2(NULL_STRING);
        }
      }
      Expression expression=new Expression(expButton.getDisplayExpression(),expButton.getExpressionType());
      inputHandle.setExpressionProperty(FilterCondition.EXPR_MEMBER,expression);
    }
  }
 catch (  Exception e) {
    ExceptionUtil.handle(e);
  }
  super.okPressed();
}

Fixed version (ground truth):
protected void okPressed(){
  try {
    if (inputHandle == null) {
      FilterConditionElementHandle filter=DesignElementFactory.getInstance(currentItem.getModuleHandle()).newFilterConditionElement();
      filter.setProperty(IFilterConditionElementModel.OPERATOR_PROP,DEUtil.resolveNull(getValueForOperator(operator.getText())));
      Expression expression=new Expression(expButton.getDisplayExpression(),expButton.getExpressionType());
      filter.setExpressionProperty(FilterCondition.EXPR_MEMBER,expression);
      if (valueVisible == 3) {
        filter.setValue1(valueList);
        filter.setValue2("String_Node_Str");
      }
 else {
        assert(!expressionValue1.isDisposed());
        assert(!expressionValue2.isDisposed());
        if (expressionValue1.getVisible()) {
          List valueList=new ArrayList();
          valueList.add(ExpressionButtonUtil.getExpression(expressionValue1));
          filter.setValue1(valueList);
        }
 else {
          filter.setValue1(NULL_STRING);
        }
        if (expressionValue2.getVisible()) {
          ExpressionButtonUtil.saveExpressionButtonControl(expressionValue2,filter,FilterCondition.VALUE2_MEMBER);
        }
 else {
          filter.setValue2(NULL_STRING);
        }
      }
      PropertyHandle propertyHandle=designHandle.getPropertyHandle(ChartReportItemConstants.PROPERTY_CUBE_FILTER);
      propertyHandle.add(filter);
    }
 else {
      inputHandle.setOperator(DEUtil.resolveNull(getValueForOperator(operator.getText())));
      if (valueVisible == 3) {
        inputHandle.setValue1(valueList);
        inputHandle.setValue2(NULL_STRING);
      }
 else {
        assert(!expressionValue1.isDisposed());
        assert(!expressionValue2.isDisposed());
        if (expressionValue1.getVisible()) {
          List valueList=new ArrayList();
          valueList.add(ExpressionButtonUtil.getExpression(expressionValue1));
          inputHandle.setValue1(valueList);
        }
 else {
          inputHandle.setValue1(NULL_STRING);
        }
        if (expressionValue2.getVisible()) {
          ExpressionButtonUtil.saveExpressionButtonControl(expressionValue2,inputHandle,FilterCondition.VALUE2_MEMBER);
        }
 else {
          inputHandle.setValue2(NULL_STRING);
        }
      }
      Expression expression=new Expression(expButton.getDisplayExpression(),expButton.getExpressionType());
      inputHandle.setExpressionProperty(FilterCondition.EXPR_MEMBER,expression);
    }
  }
 catch (  Exception e) {
    ExceptionUtil.handle(e);
  }
  super.okPressed();
}