nus-yam/ex-repair huggingface dataset:
Program: 33246
Project: 33246
Buggy source:
private List<DebugTab> createParts(DebugInformation debugInfo){
  List<DebugTab> parts=new ArrayList<DebugTab>();
  parts.add(new DebugTabRequest(debugInfo.getRequest()));
  parts.add(new DebugTabResponse(debugInfo.getApplicationResponse(),debugInfo.getRequest().getRawBaseUri()));
  Map<String,String> serverEnvironmentVaribles=debugInfo.getServerEnvironmentVaribles();
  if (serverEnvironmentVaribles != null && !serverEnvironmentVaribles.isEmpty()) {
    parts.add(new DebugTabServer(serverEnvironmentVaribles));
  }
  if (debugInfo.getUriInfo() != null) {
    parts.add(new DebugTabUri(debugInfo.getUriInfo()));
  }
  List<RuntimeMeasurement> runtimeInformation=debugInfo.getRuntimeInformation();
  if (runtimeInformation != null && !runtimeInformation.isEmpty()) {
    parts.add(new DebugTabRuntime(runtimeInformation));
  }
  if (debugInfo.getException() != null) {
    parts.add(new DebugTabException(debugInfo.getException()));
  }
  return parts;
}

Fixed version (ground truth):
private List<DebugTab> createParts(DebugInformation debugInfo){
  List<DebugTab> parts=new ArrayList<DebugTab>();
  parts.add(new DebugTabRequest(debugInfo.getRequest()));
  parts.add(new DebugTabResponse(debugInfo.getApplicationResponse(),debugInfo.getRequest().getRawBaseUri()));
  Map<String,String> serverEnvironmentVaribles=debugInfo.getServerEnvironmentVaribles();
  if (serverEnvironmentVaribles != null && !serverEnvironmentVaribles.isEmpty()) {
    parts.add(new DebugTabServer(serverEnvironmentVaribles));
  }
  if (debugInfo.getUriInfo() != null) {
    parts.add(new DebugTabUri(debugInfo.getUriInfo()));
  }
  List<RuntimeMeasurement> runtimeInformation=debugInfo.getRuntimeInformation();
  if (runtimeInformation != null && !runtimeInformation.isEmpty()) {
    parts.add(new DebugTabRuntime(runtimeInformation));
  }
  if (debugInfo.getException() != null) {
    parts.add(new DebugTabStacktrace(debugInfo.getException()));
  }
  return parts;
}
Program: 33247
Project: 33247
Buggy source:
/** 
 * Gets the name of this debug information part, useful as title.
 * @return the name
 */
public String getName();

Fixed version (ground truth):
/** 
 * Gets the name of this debug information part, useful as title.
 * @return the name
 */
String getName();
Program: 33248
Project: 33248
Buggy source:
/** 
 * Appends the content of this debug information part to the given writer.
 * @param writer a {@link Writer}
 */
public void appendHtml(Writer writer) throws IOException ;

Fixed version (ground truth):
/** 
 * Appends the content of this debug information part to the given writer.
 * @param writer a {@link Writer}
 */
void appendHtml(Writer writer) throws IOException ;
Program: 33249
Project: 33249
Buggy source:
/** 
 * Appends the content of this debug information part to the given JSON stream writer.
 * @param jsonGenerator a JSON generator
 */
public void appendJson(JsonGenerator jsonGenerator) throws IOException ;

Fixed version (ground truth):
/** 
 * Appends the content of this debug information part to the given JSON stream writer.
 * @param jsonGenerator a JSON generator
 */
void appendJson(JsonGenerator jsonGenerator) throws IOException ;
Program: 33250
Project: 33250
Buggy source:
private String getContentString(){
  try {
    String contentString;
switch (responseContent) {
case IMAGE:
      contentString=Base64.encodeBase64String(IOUtils.toString(response.getContent()).getBytes());
    break;
case JSON:
case XML:
case TEXT:
default :
  contentString=IOUtils.toString(response.getContent(),"String_Node_Str");
break;
}
return contentString;
}
 catch (IOException e) {
return "String_Node_Str";
}
}

Fixed version (ground truth):
private String getContentString(){
  try {
    String contentString;
switch (responseContent) {
case IMAGE:
      contentString=Base64.encodeBase64String(IOUtils.toString(response.getContent()).getBytes("String_Node_Str"));
    break;
case JSON:
case XML:
case TEXT:
default :
  contentString=IOUtils.toString(response.getContent(),"String_Node_Str");
break;
}
return contentString;
}
 catch (IOException e) {
return "String_Node_Str";
}
}
Program: 33251
Project: 33251
Buggy source:
public DebugTabRequest(ODataRequest request){
  if (request != null) {
    method=request.getMethod() == null ? "String_Node_Str" : request.getMethod().toString();
    uri=request.getRawRequestUri() == null ? "String_Node_Str" : request.getRawRequestUri();
    protocol=request.getProtocol() == null ? "String_Node_Str" : request.getProtocol();
    headers=request.getAllHeaders();
  }
 else {
    method="String_Node_Str";
    uri="String_Node_Str";
    protocol="String_Node_Str";
    headers=Collections.emptyMap();
  }
}

Fixed version (ground truth):
public DebugTabRequest(ODataRequest request){
  if (request != null) {
    method=request.getMethod() == null ? UNKOWN_MSG : request.getMethod().toString();
    uri=request.getRawRequestUri() == null ? UNKOWN_MSG : request.getRawRequestUri();
    protocol=request.getProtocol() == null ? UNKOWN_MSG : request.getProtocol();
    headers=request.getAllHeaders();
  }
 else {
    method=UNKOWN_MSG;
    uri=UNKOWN_MSG;
    protocol=UNKOWN_MSG;
    headers=Collections.emptyMap();
  }
}
Program: 33252
Project: 33252
Buggy source:
/** 
 * <p>Determines whether this accept type matches a given content type.</p> <p>A match is defined as fulfilling all of the following conditions: <ul> <li>the type must be '*' or equal to the content-type's type,</li> <li>the subtype must be '*' or equal to the content-type's subtype,</li> <li>all parameters must have the same value as in the content-type's parameter map.</li> </ul></p>
 * @param contentType
 * @return whether this accept type matches the given content type
 */
public boolean matches(final ContentType contentType){
  if (type.equals(TypeUtil.MEDIA_TYPE_WILDCARD)) {
    return true;
  }
  if (!type.equalsIgnoreCase(contentType.getType())) {
    return false;
  }
  if (subtype.equals(TypeUtil.MEDIA_TYPE_WILDCARD)) {
    return true;
  }
  if (!subtype.equalsIgnoreCase(contentType.getSubtype())) {
    return false;
  }
  Map<String,String> compareParameters=contentType.getParameters();
  for (  final String key : parameters.keySet()) {
    if (compareParameters.containsKey(key) || TypeUtil.PARAMETER_Q.equalsIgnoreCase(key)) {
      if (!parameters.get(key).equalsIgnoreCase(compareParameters.get(key)) && !TypeUtil.PARAMETER_Q.equalsIgnoreCase(key)) {
        return false;
      }
    }
 else {
      return false;
    }
  }
  return true;
}

Fixed version (ground truth):
/** 
 * <p>Determines whether this accept type matches a given content type.</p> <p>A match is defined as fulfilling all of the following conditions: <ul> <li>the type must be '*' or equal to the content-type's type,</li> <li>the subtype must be '*' or equal to the content-type's subtype,</li> <li>all parameters must have the same value as in the content-type's parameter map.</li> </ul></p>
 * @param contentType content type against which is matched
 * @return whether this accept type matches the given content type
 */
public boolean matches(final ContentType contentType){
  if (type.equals(TypeUtil.MEDIA_TYPE_WILDCARD)) {
    return true;
  }
  if (!type.equalsIgnoreCase(contentType.getType())) {
    return false;
  }
  if (subtype.equals(TypeUtil.MEDIA_TYPE_WILDCARD)) {
    return true;
  }
  if (!subtype.equalsIgnoreCase(contentType.getSubtype())) {
    return false;
  }
  Map<String,String> compareParameters=contentType.getParameters();
  for (  final Map.Entry<String,String> entry : parameters.entrySet()) {
    if (compareParameters.containsKey(entry.getKey()) || TypeUtil.PARAMETER_Q.equalsIgnoreCase(entry.getKey())) {
      String compare=compareParameters.get(entry.getKey());
      if (!entry.getValue().equalsIgnoreCase(compare) && !TypeUtil.PARAMETER_Q.equalsIgnoreCase(entry.getKey())) {
        return false;
      }
    }
 else {
      return false;
    }
  }
  return true;
}
Program: 33253
Project: 33253
Buggy source:
@Override public String toString(){
  StringBuilder result=new StringBuilder();
  result.append(type).append('/').append(subtype);
  for (  final String key : parameters.keySet()) {
    result.append(';').append(key).append('=').append(parameters.get(key));
  }
  return result.toString();
}

Fixed version (ground truth):
@Override public String toString(){
  StringBuilder result=new StringBuilder();
  result.append(type).append('/').append(subtype);
  for (  final Map.Entry<String,String> entry : parameters.entrySet()) {
    result.append(';').append(entry.getKey()).append('=').append(entry.getValue());
  }
  return result.toString();
}
Program: 33254
Project: 33254
Buggy source:
/** 
 * Gets   {@link ContentType} as string as defined in<a href="http://www.ietf.org/rfc/rfc7231.txt">RFC 7231</a>, chapter 3.1.1.1: Media Type.
 * @return string representation of {@link ContentType} object
 */
public String toContentTypeString(){
  final StringBuilder sb=new StringBuilder();
  sb.append(type).append(TypeUtil.TYPE_SUBTYPE_SEPARATOR).append(subtype);
  for (  String key : parameters.keySet()) {
    sb.append(TypeUtil.PARAMETER_SEPARATOR).append(key).append(TypeUtil.PARAMETER_KEY_VALUE_SEPARATOR).append(parameters.get(key));
  }
  return sb.toString();
}

Fixed version (ground truth):
/** 
 * Gets   {@link ContentType} as string as defined in<a href="http://www.ietf.org/rfc/rfc7231.txt">RFC 7231</a>, chapter 3.1.1.1: Media Type.
 * @return string representation of {@link ContentType} object
 */
public String toContentTypeString(){
  final StringBuilder sb=new StringBuilder();
  sb.append(type).append(TypeUtil.TYPE_SUBTYPE_SEPARATOR).append(subtype);
  for (  Entry<String,String> entry : parameters.entrySet()) {
    sb.append(TypeUtil.PARAMETER_SEPARATOR).append(entry.getKey()).append(TypeUtil.PARAMETER_KEY_VALUE_SEPARATOR).append(entry.getValue());
  }
  return sb.toString();
}
Program: 33255
Project: 33255
Buggy source:
@Override public int hashCode(){
  String hash=functionName.toString();
  if (bindingParameterTypeName != null) {
    hash=hash + bindingParameterTypeName.toString();
  }
 else {
    hash=hash + "String_Node_Str";
  }
  if (isBindingParameterCollection != null) {
    hash=hash + isBindingParameterCollection.toString();
  }
 else {
    hash=hash + "String_Node_Str";
  }
  if (!parameterNames.isEmpty()) {
    for (    String name : parameterNames) {
      hash=hash + name;
    }
  }
 else {
    hash=hash + "String_Node_Str";
  }
  return hash.hashCode();
}

Fixed version (ground truth):
@Override public int hashCode(){
  int result=functionName != null ? functionName.hashCode() : 0;
  result=31 * result + (bindingParameterTypeName != null ? bindingParameterTypeName.hashCode() : 0);
  result=31 * result + (isBindingParameterCollection != null ? isBindingParameterCollection.hashCode() : 0);
  result=31 * result + parameterNames.hashCode();
  return result;
}
Program: 33256
Project: 33256
Buggy source:
@Override public boolean equals(final Object obj){
  if (this == obj) {
    return true;
  }
  if ((obj == null) || !(obj instanceof FunctionMapKey)) {
    return false;
  }
  final FunctionMapKey other=(FunctionMapKey)obj;
  if (functionName.equals(other.functionName) && (bindingParameterTypeName == null && other.bindingParameterTypeName == null) || (bindingParameterTypeName != null && bindingParameterTypeName.equals(other.bindingParameterTypeName)) && (isBindingParameterCollection == null && other.isBindingParameterCollection == null) || (isBindingParameterCollection != null && isBindingParameterCollection.equals(other.isBindingParameterCollection))) {
    if (parameterNames == null && other.parameterNames == null) {
      return true;
    }
 else     if (parameterNames.size() == other.parameterNames.size()) {
      for (      String name : parameterNames) {
        if (!other.parameterNames.contains(name)) {
          return false;
        }
      }
      return true;
    }
  }
  return false;
}

Fixed version (ground truth):
@Override public boolean equals(final Object obj){
  if (this == obj) {
    return true;
  }
  if ((obj == null) || !(obj instanceof FunctionMapKey)) {
    return false;
  }
  final FunctionMapKey other=(FunctionMapKey)obj;
  if (functionName.equals(other.functionName) && (bindingParameterTypeName == null && other.bindingParameterTypeName == null) || (bindingParameterTypeName != null && bindingParameterTypeName.equals(other.bindingParameterTypeName)) && (isBindingParameterCollection == null && other.isBindingParameterCollection == null) || (isBindingParameterCollection != null && isBindingParameterCollection.equals(other.isBindingParameterCollection))) {
    if (parameterNames.size() == other.parameterNames.size()) {
      for (      String name : parameterNames) {
        if (!other.parameterNames.contains(name)) {
          return false;
        }
      }
      return true;
    }
  }
  return false;
}
Program: 33257
Project: 33257
Buggy source:
/** 
 * Returns a string representation that can be used as value of a Preference-Applied HTTP response header. 
 */
public String toValueString(){
  StringBuilder result=new StringBuilder();
  for (  final String name : applied.keySet()) {
    if (result.length() > 0) {
      result.append(',').append(' ');
    }
    result.append(name);
    if (applied.get(name) != null) {
      final boolean safe=ODataPreferenceNames.ALLOW_ENTITY_REFERENCES.toString().equals(name) || ODataPreferenceNames.CALLBACK.toString().equals(name) || ODataPreferenceNames.CONTINUE_ON_ERROR.toString().equals(name)|| ODataPreferenceNames.MAX_PAGE_SIZE.toString().equals(name)|| ODataPreferenceNames.TRACK_CHANGES.toString().equals(name)|| ODataPreferenceNames.RETURN.toString().equals(name)|| ODataPreferenceNames.RESPOND_ASYNC.toString().equals(name)|| ODataPreferenceNames.WAIT.toString().equals(name);
      result.append('=').append(safe ? "String_Node_Str" : '"').append(applied.get(name).replaceAll("String_Node_Str","String_Node_Str")).append(safe ? "String_Node_Str" : '"');
    }
  }
  return result.toString();
}

Fixed version (ground truth):
/** 
 * Returns a string representation that can be used as value of a Preference-Applied HTTP response header. 
 */
public String toValueString(){
  StringBuilder result=new StringBuilder();
  for (  final Map.Entry<String,String> entry : applied.entrySet()) {
    if (result.length() > 0) {
      result.append(',').append(' ');
    }
    final String key=entry.getKey();
    result.append(key);
    if (entry.getValue() != null) {
      final boolean safe=ODataPreferenceNames.ALLOW_ENTITY_REFERENCES.toString().equals(key) || ODataPreferenceNames.CALLBACK.toString().equals(key) || ODataPreferenceNames.CONTINUE_ON_ERROR.toString().equals(key)|| ODataPreferenceNames.MAX_PAGE_SIZE.toString().equals(key)|| ODataPreferenceNames.TRACK_CHANGES.toString().equals(key)|| ODataPreferenceNames.RETURN.toString().equals(key)|| ODataPreferenceNames.RESPOND_ASYNC.toString().equals(key)|| ODataPreferenceNames.WAIT.toString().equals(key);
      result.append('=').append(safe ? "String_Node_Str" : '"').append(entry.getValue().replaceAll("String_Node_Str","String_Node_Str")).append(safe ? "String_Node_Str" : '"');
    }
  }
  return result.toString();
}
Program: 33258
Project: 33258
Buggy source:
private String removeSlash(final String rawODataPath,final boolean first){
  final int indexOfSlash=rawODataPath.indexOf("String_Node_Str");
  if (first) {
    return (indexOfSlash == 0) ? rawODataPath.substring(1) : rawODataPath;
  }
 else {
    return (indexOfSlash != -1) ? rawODataPath.substring(0,indexOfSlash) : rawODataPath;
  }
}

Fixed version (ground truth):
private String removeSlash(final String rawODataPath,final boolean first){
  final int indexOfSlash=rawODataPath.indexOf('/');
  if (first) {
    return (indexOfSlash == 0) ? rawODataPath.substring(1) : rawODataPath;
  }
 else {
    return (indexOfSlash != -1) ? rawODataPath.substring(0,indexOfSlash) : rawODataPath;
  }
}
Program: 33259
Project: 33259
Buggy source:
private void updateCurrentCharset(String currentLine){
  if (currentLine != null) {
    if (currentLine.startsWith(HttpHeader.CONTENT_TYPE)) {
      currentLine=currentLine.substring(13,currentLine.length() - 2).trim();
      ContentType ct=ContentType.parse(currentLine);
      if (ct != null) {
        String charsetString=ct.getParameter(ContentType.PARAMETER_CHARSET);
        if (charsetString != null) {
          currentCharset=Charset.forName(charsetString);
        }
 else {
          currentCharset=DEFAULT_CHARSET;
        }
        String boundary=ct.getParameter(BOUNDARY);
        if (boundary != null) {
          currentBoundary=DOUBLE_DASH + boundary;
        }
      }
    }
 else     if (CRLF.equals(currentLine)) {
      readState.foundLinebreak();
    }
 else     if (isBoundary(currentLine)) {
      readState.foundBoundary();
    }
  }
}

Fixed version (ground truth):
private void updateCurrentCharset(String currentLine){
  if (currentLine != null) {
    if (currentLine.startsWith(HttpHeader.CONTENT_TYPE)) {
      String clValue=currentLine.substring(13,currentLine.length() - 2).trim();
      ContentType ct=ContentType.parse(clValue);
      if (ct != null) {
        String charsetString=ct.getParameter(ContentType.PARAMETER_CHARSET);
        if (charsetString != null) {
          currentCharset=Charset.forName(charsetString);
        }
 else {
          currentCharset=DEFAULT_CHARSET;
        }
        String boundary=ct.getParameter(BOUNDARY);
        if (boundary != null) {
          currentBoundary=DOUBLE_DASH + boundary;
        }
      }
    }
 else     if (CRLF.equals(currentLine)) {
      readState.foundLinebreak();
    }
 else     if (isBoundary(currentLine)) {
      readState.foundBoundary();
    }
  }
}
Program: 33260
Project: 33260
Buggy source:
String readLine() throws IOException {
  if (limit == EOF) {
    return null;
  }
  ByteBuffer buffer=ByteBuffer.allocate(BUFFER_SIZE);
  boolean foundLineEnd=false;
  while (!foundLineEnd) {
    if (limit == offset) {
      if (fillBuffer() == EOF) {
        foundLineEnd=true;
      }
    }
    if (!foundLineEnd) {
      byte currentChar=this.buffer[offset++];
      if (!buffer.hasRemaining()) {
        buffer.flip();
        ByteBuffer tmp=ByteBuffer.allocate(buffer.limit() * 2);
        tmp.put(buffer);
        buffer=tmp;
      }
      buffer.put(currentChar);
      if (currentChar == LF) {
        foundLineEnd=true;
      }
 else       if (currentChar == CR) {
        foundLineEnd=true;
        if (limit == offset) {
          fillBuffer();
        }
        if (limit != EOF && this.buffer[offset] == LF) {
          buffer.put(LF);
          offset++;
        }
      }
    }
  }
  if (buffer.position() == 0) {
    return null;
  }
 else {
    String currentLine;
    if (readState.isReadBody()) {
      currentLine=new String(buffer.array(),0,buffer.position(),getCurrentCharset());
    }
 else {
      currentLine=new String(buffer.array(),0,buffer.position(),CS_ISO_8859_1);
    }
    updateCurrentCharset(currentLine);
    return currentLine;
  }
}

Fixed version (ground truth):
String readLine() throws IOException {
  if (limit == EOF) {
    return null;
  }
  ByteBuffer innerBuffer=ByteBuffer.allocate(BUFFER_SIZE);
  boolean foundLineEnd=false;
  while (!foundLineEnd) {
    if (limit == offset) {
      if (fillBuffer() == EOF) {
        foundLineEnd=true;
      }
    }
    if (!foundLineEnd) {
      byte currentChar=this.buffer[offset++];
      if (!innerBuffer.hasRemaining()) {
        innerBuffer.flip();
        ByteBuffer tmp=ByteBuffer.allocate(innerBuffer.limit() * 2);
        tmp.put(innerBuffer);
        innerBuffer=tmp;
      }
      innerBuffer.put(currentChar);
      if (currentChar == LF) {
        foundLineEnd=true;
      }
 else       if (currentChar == CR) {
        foundLineEnd=true;
        if (limit == offset) {
          fillBuffer();
        }
        if (limit != EOF && this.buffer[offset] == LF) {
          innerBuffer.put(LF);
          offset++;
        }
      }
    }
  }
  if (innerBuffer.position() == 0) {
    return null;
  }
 else {
    String currentLine;
    if (readState.isReadBody()) {
      currentLine=new String(innerBuffer.array(),0,innerBuffer.position(),getCurrentCharset());
    }
 else {
      currentLine=new String(innerBuffer.array(),0,innerBuffer.position(),CS_ISO_8859_1);
    }
    updateCurrentCharset(currentLine);
    return currentLine;
  }
}
Program: 33261
Project: 33261
Buggy source:
static List<String> splitSkipEmpty(final String input,final char c){
  if (input.isEmpty() || input.length() == 1 && input.charAt(0) == c) {
    return Collections.emptyList();
  }
  List<String> list=new LinkedList<String>();
  int start=0;
  int end;
  while ((end=input.indexOf(c,start)) >= 0) {
    if (start != end) {
      list.add(input.substring(start,end));
    }
    start=end + 1;
  }
  if (input.charAt(input.length() - 1) != c) {
    list.add(input.substring(start));
  }
  return list;
}

Fixed version (ground truth):
/** 
 * Split the input string at given character and drop all empty elements.
 * @param input string to split
 * @param c character at which to split
 * @return list of elements (can be empty)
 */
static List<String> splitSkipEmpty(final String input,final char c){
  if (input.isEmpty() || input.length() == 1 && input.charAt(0) == c) {
    return Collections.emptyList();
  }
  List<String> list=new LinkedList<String>();
  int start=0;
  int end;
  while ((end=input.indexOf(c,start)) >= 0) {
    if (start != end) {
      list.add(input.substring(start,end));
    }
    start=end + 1;
  }
  if (input.charAt(input.length() - 1) != c) {
    list.add(input.substring(start));
  }
  return list;
}
Program: 33262
Project: 33262
Buggy source:
@Test public void testSplit(){
  assertEquals(Arrays.asList("String_Node_Str"),UriDecoder.split("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str","String_Node_Str"),UriDecoder.split("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str"),UriDecoder.split("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str","String_Node_Str"),UriDecoder.split("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str","String_Node_Str"),UriDecoder.split("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str","String_Node_Str"),UriDecoder.split("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str","String_Node_Str","String_Node_Str"),UriDecoder.split("String_Node_Str",'/'));
  assertTrue(UriDecoder.split("String_Node_Str",'/',true).isEmpty());
  assertTrue(UriDecoder.split("String_Node_Str",'/',true).isEmpty());
  assertEquals(Arrays.asList("String_Node_Str"),UriDecoder.split("String_Node_Str",'/',true));
  assertEquals(Arrays.asList("String_Node_Str"),UriDecoder.split("String_Node_Str",'/',true));
  assertEquals(Arrays.asList("String_Node_Str"),UriDecoder.split("String_Node_Str",'/',true));
  assertEquals(Arrays.asList("String_Node_Str","String_Node_Str"),UriDecoder.split("String_Node_Str",'/',true));
  assertEquals(Arrays.asList("String_Node_Str","String_Node_Str"),UriDecoder.split("String_Node_Str",'/',true));
  assertTrue(UriDecoder.splitSkipEmpty("String_Node_Str",'/').isEmpty());
  assertTrue(UriDecoder.splitSkipEmpty("String_Node_Str",'/').isEmpty());
  assertEquals(Arrays.asList("String_Node_Str"),UriDecoder.splitSkipEmpty("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str"),UriDecoder.splitSkipEmpty("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str"),UriDecoder.splitSkipEmpty("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str","String_Node_Str"),UriDecoder.splitSkipEmpty("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str","String_Node_Str"),UriDecoder.splitSkipEmpty("String_Node_Str",'/'));
}

Fixed version (ground truth):
@Test public void testSplit(){
  assertTrue(UriDecoder.splitSkipEmpty("String_Node_Str",'/').isEmpty());
  assertTrue(UriDecoder.splitSkipEmpty("String_Node_Str",'/').isEmpty());
  assertEquals(Arrays.asList("String_Node_Str"),UriDecoder.splitSkipEmpty("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str"),UriDecoder.splitSkipEmpty("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str"),UriDecoder.splitSkipEmpty("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str","String_Node_Str"),UriDecoder.splitSkipEmpty("String_Node_Str",'/'));
  assertEquals(Arrays.asList("String_Node_Str","String_Node_Str"),UriDecoder.splitSkipEmpty("String_Node_Str",'/'));
}
Program: 33263
Project: 33263
Buggy source:
public static InputStream convertLineListToInputStream(final List<Line> list,final int length){
  final String message=trimLineListToLength(list,length);
  return new ByteArrayInputStream(message.getBytes());
}

Fixed version (ground truth):
public static InputStream convertLineListToInputStream(final List<Line> list,final Charset charset,final int length){
  final String message=trimLineListToLength(list,length);
  return new ByteArrayInputStream(message.getBytes(charset));
}
Program: 33264
Project: 33264
Buggy source:
private InputStream getBodyStream(final BatchQueryOperation operation,final HttpRequestStatusLine statusLine) throws BatchDeserializerException {
  if (statusLine.getMethod().equals(HttpMethod.GET)) {
    return new ByteArrayInputStream(new byte[0]);
  }
 else {
    int contentLength=BatchTransformatorCommon.getContentLength(operation.getHeaders());
    if (contentLength == -1) {
      return BatchParserCommon.convertLineListToInputStream(operation.getBody());
    }
 else {
      return BatchParserCommon.convertLineListToInputStream(operation.getBody(),contentLength);
    }
  }
}

Fixed version (ground truth):
private InputStream getBodyStream(final BatchQueryOperation operation,final HttpRequestStatusLine statusLine,final Charset charset) throws BatchDeserializerException {
  if (statusLine.getMethod().equals(HttpMethod.GET)) {
    return new ByteArrayInputStream(new byte[0]);
  }
 else {
    int contentLength=BatchTransformatorCommon.getContentLength(operation.getHeaders());
    if (contentLength == -1) {
      return BatchParserCommon.convertLineListToInputStream(operation.getBody(),charset);
    }
 else {
      return BatchParserCommon.convertLineListToInputStream(operation.getBody(),charset,contentLength);
    }
  }
}
Program: 33265
Project: 33265
Buggy source:
private ODataRequest createRequest(final BatchQueryOperation operation,final String baseUri,final boolean isChangeSet) throws BatchDeserializerException {
  final HttpRequestStatusLine statusLine=new HttpRequestStatusLine(operation.getHttpStatusLine(),baseUri,rawServiceResolutionUri);
  statusLine.validateHttpMethod(isChangeSet);
  validateBody(statusLine,operation);
  InputStream bodyStrean=getBodyStream(operation,statusLine);
  validateForbiddenHeader(operation);
  final ODataRequest request=new ODataRequest();
  request.setBody(bodyStrean);
  request.setMethod(statusLine.getMethod());
  request.setRawBaseUri(statusLine.getRawBaseUri());
  request.setRawODataPath(statusLine.getRawODataPath());
  request.setRawQueryPath(statusLine.getRawQueryPath());
  request.setRawRequestUri(statusLine.getRawRequestUri());
  request.setRawServiceResolutionUri(statusLine.getRawServiceResolutionUri());
  for (  final HeaderField field : operation.getHeaders()) {
    request.addHeader(field.getFieldName(),field.getValues());
  }
  return request;
}

Fixed version (ground truth):
private ODataRequest createRequest(final BatchQueryOperation operation,final String baseUri,final boolean isChangeSet) throws BatchDeserializerException {
  final HttpRequestStatusLine statusLine=new HttpRequestStatusLine(operation.getHttpStatusLine(),baseUri,rawServiceResolutionUri);
  statusLine.validateHttpMethod(isChangeSet);
  validateBody(statusLine,operation);
  Charset charset=getCharset(operation);
  InputStream bodyStrean=getBodyStream(operation,statusLine,charset);
  validateForbiddenHeader(operation);
  final ODataRequest request=new ODataRequest();
  request.setBody(bodyStrean);
  request.setMethod(statusLine.getMethod());
  request.setRawBaseUri(statusLine.getRawBaseUri());
  request.setRawODataPath(statusLine.getRawODataPath());
  request.setRawQueryPath(statusLine.getRawQueryPath());
  request.setRawRequestUri(statusLine.getRawRequestUri());
  request.setRawServiceResolutionUri(statusLine.getRawServiceResolutionUri());
  for (  final HeaderField field : operation.getHeaders()) {
    request.addHeader(field.getFieldName(),field.getValues());
  }
  return request;
}
Program: 33266
Project: 33266
Buggy source:
public String toString(){
  return new String(buffer.array(),0,buffer.position());
}

Fixed version (ground truth):
public String toString(){
  return new String(buffer.array(),0,buffer.position(),CHARSET_ISO_8859_1);
}
Program: 33268
Project: 33268
Buggy source:
/** 
 * Adds system query option.
 * @param systemOption the option to be added
 * @return this object for method chaining
 * @throws ODataRuntimeException if an unsupported option is providedor an option of this kind has been added before
 */
public UriInfoImpl setSystemQueryOption(final SystemQueryOption systemOption){
  final SystemQueryOptionKind kind=systemOption.getKind();
switch (kind) {
case EXPAND:
case FILTER:
case FORMAT:
case ID:
case COUNT:
case ORDERBY:
case SEARCH:
case SELECT:
case SKIP:
case SKIPTOKEN:
case TOP:
case LEVELS:
    if (systemQueryOptions.containsKey(kind)) {
      throw new ODataRuntimeException("String_Node_Str" + systemOption.getName());
    }
 else {
      systemQueryOptions.put(kind,systemOption);
    }
  break;
default :
throw new ODataRuntimeException("String_Node_Str" + systemOption.getName());
}
return this;
}

Fixed version (ground truth):
/** 
 * Adds system query option.
 * @param systemOption the option to be added
 * @return this object for method chaining
 * @throws ODataRuntimeException if an unsupported option is providedor an option of this kind has been added before
 */
public UriInfoImpl setSystemQueryOption(final SystemQueryOption systemOption){
  final SystemQueryOptionKind kind=systemOption.getKind();
  if (systemQueryOptions.containsKey(kind)) {
    throw new ODataRuntimeException("String_Node_Str" + systemOption.getName());
  }
switch (kind) {
case EXPAND:
case FILTER:
case FORMAT:
case ID:
case COUNT:
case ORDERBY:
case SEARCH:
case SELECT:
case SKIP:
case SKIPTOKEN:
case TOP:
case LEVELS:
    systemQueryOptions.put(kind,systemOption);
  break;
default :
throw new ODataRuntimeException("String_Node_Str" + systemOption.getName());
}
return this;
}
Program: 33269
Project: 33269
Buggy source:
private static <T>T loadClass(Class<T> typeOfClass,String className,Class<?>[] ctorParameterClasses,Object[] ctorParameters){
  try {
    Class<?> clazz=Thread.currentThread().getContextClassLoader().loadClass(className);
    if (ctorParameters == null || ctorParameterClasses == null) {
      return typeOfClass.cast(clazz.newInstance());
    }
    Constructor<?> ctor=clazz.getConstructor(ctorParameterClasses);
    return typeOfClass.cast(ctor.newInstance(ctorParameters));
  }
 catch (  ClassNotFoundException e) {
    throw new RuntimeException("String_Node_Str" + className + "String_Node_Str",e);
  }
catch (  InstantiationException e) {
    throw new RuntimeException("String_Node_Str" + className + "String_Node_Str",e);
  }
catch (  IllegalAccessException e) {
    throw new RuntimeException("String_Node_Str" + className + "String_Node_Str",e);
  }
catch (  NoSuchMethodException e) {
    throw new RuntimeException("String_Node_Str" + className + "String_Node_Str",e);
  }
catch (  InvocationTargetException e) {
    throw new RuntimeException("String_Node_Str" + className + "String_Node_Str",e);
  }
}

Fixed version (ground truth):
private static <T>T loadClass(Class<T> typeOfClass,String className,Class<?>[] ctorParameterClasses,Object[] ctorParameters){
  try {
    Class<?> clazz=Thread.currentThread().getContextClassLoader().loadClass(className);
    if (ctorParameters == null || ctorParameterClasses == null) {
      return typeOfClass.cast(clazz.newInstance());
    }
    Constructor<?> ctor=clazz.getConstructor(ctorParameterClasses);
    return typeOfClass.cast(ctor.newInstance(ctorParameters));
  }
 catch (  ClassNotFoundException e) {
    throw wrapException(className,e);
  }
catch (  InstantiationException e) {
    throw wrapException(className,e);
  }
catch (  IllegalAccessException e) {
    throw wrapException(className,e);
  }
catch (  NoSuchMethodException e) {
    throw wrapException(className,e);
  }
catch (  InvocationTargetException e) {
    throw wrapException(className,e);
  }
}
Program: 33270
Project: 33270
Buggy source:
/** 
 * Gets an invoke request instance for the action bound to given URI (with parameters).
 * @param < RES > OData domain object result
 * @param bindingParameterURI binding parameter URI
 * @param actionName operation to be invoked
 * @param bindingParameterTypeName binding parameter type full qualified name
 * @param isBindingParameterCollection whether binding parameter is collection
 * @param parameters parameters to pass to function invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<RES extends ClientInvokeResult>ODataInvokeRequest<RES> getBoundActionInvokeRequest(URI bindingParameterURI,FullQualifiedName actionName,FullQualifiedName bindingParameterTypeName,Boolean isBindingParameterCollection,Map<String,ClientValue> parameters);

Fixed version (ground truth):
/** 
 * Gets an invoke request instance for the action bound to given URI (with parameters).
 * @param < T > OData domain object result
 * @param bindingParameterURI binding parameter URI
 * @param actionName operation to be invoked
 * @param bindingParameterTypeName binding parameter type full qualified name
 * @param isBindingParameterCollection whether binding parameter is collection
 * @param parameters parameters to pass to function invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<T extends ClientInvokeResult>ODataInvokeRequest<T> getBoundActionInvokeRequest(URI bindingParameterURI,FullQualifiedName actionName,FullQualifiedName bindingParameterTypeName,Boolean isBindingParameterCollection,Map<String,ClientValue> parameters);
Program: 33271
Project: 33271
Buggy source:
/** 
 * Gets an invoke request instance for the function import with the given name and matching parameter names.
 * @param < RES > OData domain object result, derived from return type defined in the function import
 * @param functionImportName operation to be invoked
 * @param parameters parameters to pass to operation import invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<RES extends ClientInvokeResult>ODataInvokeRequest<RES> getFunctionImportInvokeRequest(String functionImportName,Map<String,ClientValue> parameters);

Fixed version (ground truth):
/** 
 * Gets an invoke request instance for the function import with the given name and matching parameter names.
 * @param < T > OData domain object result, derived from return type defined in the function import
 * @param functionImportName operation to be invoked
 * @param parameters parameters to pass to operation import invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<T extends ClientInvokeResult>ODataInvokeRequest<T> getFunctionImportInvokeRequest(String functionImportName,Map<String,ClientValue> parameters);
Program: 33272
Project: 33272
Buggy source:
/** 
 * Gets an invoke request instance for the action import with the given name.
 * @param < RES > OData domain object result, derived from return type defined in the action import
 * @param actionImportName operation to be invoked
 * @param parameters parameters to pass to operation import invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<RES extends ClientInvokeResult>ODataInvokeRequest<RES> getActionImportInvokeRequest(String actionImportName,Map<String,ClientValue> parameters);

Fixed version (ground truth):
/** 
 * Gets an invoke request instance for the action import with the given name.
 * @param < T > OData domain object result, derived from return type defined in the action import
 * @param actionImportName operation to be invoked
 * @param parameters parameters to pass to operation import invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<T extends ClientInvokeResult>ODataInvokeRequest<T> getActionImportInvokeRequest(String actionImportName,Map<String,ClientValue> parameters);
Program: 33273
Project: 33273
Buggy source:
/** 
 * Gets an invoke request instance for the function bound to given URI (with parameters).
 * @param < RES > OData domain object result
 * @param bindingParameterURI binding parameter URI
 * @param functionName operation to be invoked
 * @param bindingParameterTypeName binding parameter type full qualified name
 * @param isBindingParameterCollection whether binding parameter is collection
 * @param parameters parameters to pass to function invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<RES extends ClientInvokeResult>ODataInvokeRequest<RES> getBoundFunctionInvokeRequest(URI bindingParameterURI,FullQualifiedName functionName,FullQualifiedName bindingParameterTypeName,Boolean isBindingParameterCollection,Map<String,ClientValue> parameters);

Fixed version (ground truth):
/** 
 * Gets an invoke request instance for the function bound to given URI (with parameters).
 * @param < T > OData domain object result
 * @param bindingParameterURI binding parameter URI
 * @param functionName operation to be invoked
 * @param bindingParameterTypeName binding parameter type full qualified name
 * @param isBindingParameterCollection whether binding parameter is collection
 * @param parameters parameters to pass to function invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<T extends ClientInvokeResult>ODataInvokeRequest<T> getBoundFunctionInvokeRequest(URI bindingParameterURI,FullQualifiedName functionName,FullQualifiedName bindingParameterTypeName,Boolean isBindingParameterCollection,Map<String,ClientValue> parameters);
Program: 33274
Project: 33274
Buggy source:
/** 
 * Gets an invoke request instance for the function bound to given URI (with parameters).
 * @param < RES > OData domain object result
 * @param uri invocation URI
 * @param resultRef reference Class for result
 * @param parameters parameters to pass to function invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<RES extends ClientInvokeResult>ODataInvokeRequest<RES> getFunctionInvokeRequest(URI uri,Class<RES> resultRef,Map<String,ClientValue> parameters);

Fixed version (ground truth):
/** 
 * Gets an invoke request instance for the function bound to given URI (with parameters).
 * @param < T > OData domain object result
 * @param uri invocation URI
 * @param resultRef reference Class for result
 * @param parameters parameters to pass to function invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<T extends ClientInvokeResult>ODataInvokeRequest<T> getFunctionInvokeRequest(URI uri,Class<T> resultRef,Map<String,ClientValue> parameters);
Program: 33275
Project: 33275
Buggy source:
/** 
 * Gets an invoke request instance for the action bound to given URI (with parameters).
 * @param < RES > OData domain object result
 * @param uri invocation URI
 * @param resultRef reference Class for result
 * @param parameters parameters to pass to action invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<RES extends ClientInvokeResult>ODataInvokeRequest<RES> getActionInvokeRequest(URI uri,Class<RES> resultRef,Map<String,ClientValue> parameters);

Fixed version (ground truth):
/** 
 * Gets an invoke request instance for the action bound to given URI (with parameters).
 * @param < T > OData domain object result
 * @param uri invocation URI
 * @param resultRef reference Class for result
 * @param parameters parameters to pass to action invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<T extends ClientInvokeResult>ODataInvokeRequest<T> getActionInvokeRequest(URI uri,Class<T> resultRef,Map<String,ClientValue> parameters);
Program: 33276
Project: 33276
Buggy source:
/** 
 * Gets an invoke request instance for the operation bound to given URI. <br/> This method is mainly meant for internal usage, but defined for generic calls from proxy; normally, one of other methods should be used instead.
 * @param < RES > OData domain object result
 * @param method HTTP invocation method
 * @param uri invocation URI
 * @param resultRef reference Class for result
 * @param parameters parameters to pass to function invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<RES extends ClientInvokeResult>ODataInvokeRequest<RES> getInvokeRequest(HttpMethod method,URI uri,Class<RES> resultRef,Map<String,ClientValue> parameters);

Fixed version (ground truth):
/** 
 * Gets an invoke request instance for the operation bound to given URI. <br/> This method is mainly meant for internal usage, but defined for generic calls from proxy; normally, one of other methods should be used instead.
 * @param < T > OData domain object result
 * @param method HTTP invocation method
 * @param uri invocation URI
 * @param resultRef reference Class for result
 * @param parameters parameters to pass to function invocation
 * @return new {@link ODataInvokeRequest} instance.
 */
<T extends ClientInvokeResult>ODataInvokeRequest<T> getInvokeRequest(HttpMethod method,URI uri,Class<T> resultRef,Map<String,ClientValue> parameters);
Program: 33277
Project: 33277
Buggy source:
/** 
 * Adds a value to the collection.
 * @param value value to be added.
 */
ClientCollectionValue<OV> add(ClientValue value);

Fixed version (ground truth):
/** 
 * Adds a value to the collection.
 * @param value value to be added.
 */
ClientCollectionValue<T> add(ClientValue value);
Program: 33278
Project: 33278
Buggy source:
@SuppressWarnings("String_Node_Str") @Override public boolean hasNext(){
  if (available && cached == null) {
    if (contentType.isCompatible(ContentType.APPLICATION_ATOM_SVC) || contentType.isCompatible(ContentType.APPLICATION_ATOM_XML)) {
      cached=nextAtomEntityFromEntitySet(stream,osEntitySet,namespaces);
    }
 else {
      cached=nextJSONEntityFromEntitySet(stream,osEntitySet);
    }
    if (cached == null) {
      available=false;
      try {
        entitySet=(ES)odataClient.getReader().readEntitySet(new ByteArrayInputStream(osEntitySet.toByteArray()),contentType);
      }
 catch (      final ODataDeserializerException e) {
        available=false;
      }
      close();
    }
  }
  return available;
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") @Override public boolean hasNext(){
  if (available && cached == null) {
    if (contentType.isCompatible(ContentType.APPLICATION_ATOM_SVC) || contentType.isCompatible(ContentType.APPLICATION_ATOM_XML)) {
      cached=nextAtomEntityFromEntitySet(stream,osEntitySet,namespaces);
    }
 else {
      cached=nextJSONEntityFromEntitySet(stream,osEntitySet);
    }
    if (cached == null) {
      available=false;
      try {
        entitySet=(T)odataClient.getReader().readEntitySet(new ByteArrayInputStream(osEntitySet.toByteArray()),contentType);
      }
 catch (      final ODataDeserializerException e) {
        available=false;
      }
      close();
    }
  }
  return available;
}
Program: 33279
Project: 33279
Buggy source:
/** 
 * Casts to collection value.
 * @param < OV > The actual ODataValue interface.
 * @return collection value.
 */
<OV extends ClientValue>ClientCollectionValue<OV> asCollection();

Fixed version (ground truth):
/** 
 * Casts to collection value.
 * @param < T > The actual ODataValue interface.
 * @return collection value.
 */
<T extends ClientValue>ClientCollectionValue<T> asCollection();
Program: 33280
Project: 33280
Buggy source:
protected void closeCircleStreamBufferOutput(CircleStreamBuffer buffer,SerializerException cachedException) throws SerializerException {
  if (buffer != null && buffer.getOutputStream() != null) {
    try {
      buffer.getOutputStream().close();
    }
 catch (    IOException e) {
      if (cachedException != null) {
        throw cachedException;
      }
 else {
        throw new SerializerException("String_Node_Str",e,SerializerException.MessageKeys.IO_EXCEPTION);
      }
    }
  }
}

Fixed version (ground truth):
protected void closeCircleStreamBufferOutput(OutputStream outputStream,SerializerException cachedException) throws SerializerException {
  if (outputStream != null) {
    try {
      outputStream.close();
    }
 catch (    IOException e) {
      if (cachedException != null) {
        throw cachedException;
      }
 else {
        throw new SerializerException("String_Node_Str",e,SerializerException.MessageKeys.IO_EXCEPTION);
      }
    }
  }
}
Program: 33282
Project: 33282
Buggy source:
@Override public SerializerResult serviceDocument(final ServiceMetadata metadata,final String serviceRoot) throws SerializerException {
  CircleStreamBuffer buffer=null;
  SerializerException cachedException=null;
  try {
    buffer=new CircleStreamBuffer();
    JsonGenerator json=new JsonFactory().createGenerator(buffer.getOutputStream());
    new ServiceDocumentJsonSerializer(metadata,serviceRoot,isODataMetadataNone).writeServiceDocument(json);
    json.close();
    buffer.getOutputStream().close();
    return SerializerResultImpl.with().content(buffer.getInputStream()).build();
  }
 catch (  final IOException e) {
    cachedException=new SerializerException("String_Node_Str",e,SerializerException.MessageKeys.IO_EXCEPTION);
    throw cachedException;
  }
 finally {
    closeCircleStreamBufferOutput(buffer,cachedException);
  }
}

Fixed version (ground truth):
@Override public SerializerResult serviceDocument(final ServiceMetadata metadata,final String serviceRoot) throws SerializerException {
  OutputStream outputStream=null;
  SerializerException cachedException=null;
  try {
    CircleStreamBuffer buffer=new CircleStreamBuffer();
    outputStream=buffer.getOutputStream();
    JsonGenerator json=new JsonFactory().createGenerator(outputStream);
    new ServiceDocumentJsonSerializer(metadata,serviceRoot,isODataMetadataNone).writeServiceDocument(json);
    json.close();
    outputStream.close();
    return SerializerResultImpl.with().content(buffer.getInputStream()).build();
  }
 catch (  final IOException e) {
    cachedException=new SerializerException("String_Node_Str",e,SerializerException.MessageKeys.IO_EXCEPTION);
    throw cachedException;
  }
 finally {
    closeCircleStreamBufferOutput(outputStream,cachedException);
  }
}
Program: 33283
Project: 33283
Buggy source:
@Override public SerializerResult error(final ODataServerError error) throws SerializerException {
  CircleStreamBuffer buffer=null;
  SerializerException cachedException=null;
  try {
    buffer=new CircleStreamBuffer();
    JsonGenerator json=new JsonFactory().createGenerator(buffer.getOutputStream());
    new ODataErrorSerializer().writeErrorDocument(json,error);
    json.close();
    buffer.getOutputStream().close();
    return SerializerResultImpl.with().content(buffer.getInputStream()).build();
  }
 catch (  final IOException e) {
    cachedException=new SerializerException("String_Node_Str",e,SerializerException.MessageKeys.IO_EXCEPTION);
    throw cachedException;
  }
 finally {
    closeCircleStreamBufferOutput(buffer,cachedException);
  }
}

Fixed version (ground truth):
@Override public SerializerResult error(final ODataServerError error) throws SerializerException {
  OutputStream outputStream=null;
  SerializerException cachedException=null;
  try {
    CircleStreamBuffer buffer=new CircleStreamBuffer();
    outputStream=buffer.getOutputStream();
    JsonGenerator json=new JsonFactory().createGenerator(outputStream);
    new ODataErrorSerializer().writeErrorDocument(json,error);
    json.close();
    outputStream.close();
    return SerializerResultImpl.with().content(buffer.getInputStream()).build();
  }
 catch (  final IOException e) {
    cachedException=new SerializerException("String_Node_Str",e,SerializerException.MessageKeys.IO_EXCEPTION);
    throw cachedException;
  }
 finally {
    closeCircleStreamBufferOutput(outputStream,cachedException);
  }
}