Program: 44506
Project: 44506
Buggy source:
private static void loadMmsSettings(Context context){
  XmlResourceParser parser=context.getResources().getXml(R.xml.mms_config);
  try {
    XmlUtils.beginDocument(parser,"String_Node_Str");
    while (true) {
      XmlUtils.nextElement(parser);
      String tag=parser.getName();
      if (tag == null) {
        break;
      }
      String name=parser.getAttributeName(0);
      String value=parser.getAttributeValue(0);
      String text=null;
      if (parser.next() == XmlPullParser.TEXT) {
        text=parser.getText();
      }
      if (DEBUG) {
        Log.v(TAG,"String_Node_Str" + tag + "String_Node_Str"+ value);
      }
      if ("String_Node_Str".equalsIgnoreCase(name)) {
        if ("String_Node_Str".equals(tag)) {
          if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMmsEnabled="String_Node_Str".equalsIgnoreCase(text) ? 1 : 0;
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mTransIdEnabled="String_Node_Str".equalsIgnoreCase(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mNotifyWapMMSC="String_Node_Str".equalsIgnoreCase(text);
          }
        }
 else         if ("String_Node_Str".equals(tag)) {
          if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMaxMessageSize=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMaxImageHeight=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMaxImageWidth=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mDefaultSMSMessagesPerThread=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mDefaultMMSMessagesPerThread=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMinMessageCountPerThread=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMaxMessageCountPerThread=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mSmsToMmsTextThreshold=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mRecipientLimit=Integer.parseInt(text);
            if (mRecipientLimit < 0) {
              mRecipientLimit=Integer.MAX_VALUE;
            }
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mHttpSocketTimeout=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMinimumSlideElementDuration=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMaxSizeScaleForPendingMmsAllowed=Integer.parseInt(text);
          }
        }
 else         if ("String_Node_Str".equals(tag)) {
          if ("String_Node_Str".equalsIgnoreCase(value)) {
            mUserAgent=text;
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mUaProfTagName=text;
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mUaProfUrl=text;
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mHttpParams=text;
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mHttpParamsLine1Key=text;
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mEmailGateway=text;
          }
        }
      }
    }
  }
 catch (  XmlPullParserException e) {
    Log.e(TAG,"String_Node_Str",e);
  }
catch (  NumberFormatException e) {
    Log.e(TAG,"String_Node_Str",e);
  }
catch (  IOException e) {
    Log.e(TAG,"String_Node_Str",e);
  }
 finally {
    parser.close();
  }
  String errorStr=null;
  if (mMmsEnabled == -1) {
    errorStr="String_Node_Str";
  }
  if (mMaxMessageSize == 0) {
    errorStr="String_Node_Str";
  }
  if (mMaxImageHeight == 0) {
    errorStr="String_Node_Str";
  }
  if (mMaxImageWidth == 0) {
    errorStr="String_Node_Str";
  }
  if (getMmsEnabled() && mUaProfUrl == null) {
    errorStr="String_Node_Str";
  }
  if (mUaProfTagName == null) {
    mUaProfTagName=DEFAULT_HTTP_KEY_X_WAP_PROFILE;
  }
  if (mUserAgent == null) {
    mUserAgent=DEFAULT_USER_AGENT;
  }
  if (errorStr != null) {
    String err=String.format("String_Node_Str",errorStr);
    Log.e(TAG,err);
    throw new ContentRestrictionException(err);
  }
}

Fixed version (ground truth):
private static void loadMmsSettings(Context context){
  XmlResourceParser parser=context.getResources().getXml(R.xml.mms_config);
  try {
    XmlUtils.beginDocument(parser,"String_Node_Str");
    while (true) {
      XmlUtils.nextElement(parser);
      String tag=parser.getName();
      if (tag == null) {
        break;
      }
      String name=parser.getAttributeName(0);
      String value=parser.getAttributeValue(0);
      String text=null;
      if (parser.next() == XmlPullParser.TEXT) {
        text=parser.getText();
      }
      if (DEBUG) {
        Log.v(TAG,"String_Node_Str" + tag + "String_Node_Str"+ value);
      }
      if ("String_Node_Str".equalsIgnoreCase(name)) {
        if ("String_Node_Str".equals(tag)) {
          if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMmsEnabled="String_Node_Str".equalsIgnoreCase(text) ? 1 : 0;
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mTransIdEnabled="String_Node_Str".equalsIgnoreCase(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mNotifyWapMMSC="String_Node_Str".equalsIgnoreCase(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mAliasEnabled="String_Node_Str".equalsIgnoreCase(text);
          }
        }
 else         if ("String_Node_Str".equals(tag)) {
          if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMaxMessageSize=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMaxImageHeight=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMaxImageWidth=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mDefaultSMSMessagesPerThread=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mDefaultMMSMessagesPerThread=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMinMessageCountPerThread=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMaxMessageCountPerThread=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mSmsToMmsTextThreshold=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mRecipientLimit=Integer.parseInt(text);
            if (mRecipientLimit < 0) {
              mRecipientLimit=Integer.MAX_VALUE;
            }
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mHttpSocketTimeout=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMinimumSlideElementDuration=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mMaxSizeScaleForPendingMmsAllowed=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mAliasRuleMinChars=Integer.parseInt(text);
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mAliasRuleMaxChars=Integer.parseInt(text);
          }
        }
 else         if ("String_Node_Str".equals(tag)) {
          if ("String_Node_Str".equalsIgnoreCase(value)) {
            mUserAgent=text;
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mUaProfTagName=text;
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mUaProfUrl=text;
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mHttpParams=text;
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mHttpParamsLine1Key=text;
          }
 else           if ("String_Node_Str".equalsIgnoreCase(value)) {
            mEmailGateway=text;
          }
        }
      }
    }
  }
 catch (  XmlPullParserException e) {
    Log.e(TAG,"String_Node_Str",e);
  }
catch (  NumberFormatException e) {
    Log.e(TAG,"String_Node_Str",e);
  }
catch (  IOException e) {
    Log.e(TAG,"String_Node_Str",e);
  }
 finally {
    parser.close();
  }
  String errorStr=null;
  if (mMmsEnabled == -1) {
    errorStr="String_Node_Str";
  }
  if (mMaxMessageSize == 0) {
    errorStr="String_Node_Str";
  }
  if (mMaxImageHeight == 0) {
    errorStr="String_Node_Str";
  }
  if (mMaxImageWidth == 0) {
    errorStr="String_Node_Str";
  }
  if (getMmsEnabled() && mUaProfUrl == null) {
    errorStr="String_Node_Str";
  }
  if (mUaProfTagName == null) {
    mUaProfTagName=DEFAULT_HTTP_KEY_X_WAP_PROFILE;
  }
  if (mUserAgent == null) {
    mUserAgent=DEFAULT_USER_AGENT;
  }
  if (errorStr != null) {
    String err=String.format("String_Node_Str",errorStr);
    Log.e(TAG,err);
    throw new ContentRestrictionException(err);
  }
}