Program: 28445
Project: 28445
Buggy source:
/** 
 * Release all object references, and initialize instance variables, in preparation for reuse of this object.
 */
@Override public void recycle(){
  if (isAsyncStarted()) {
    return;
  }
  context=null;
  servletContext=null;
  contextPath=null;
  servletPath=null;
  pathInfo=null;
  wrapper=null;
  dispatcherTypeAttr=null;
  requestDispatcherPath=null;
  authType=null;
  requestURI=null;
  inputBuffer.recycle();
  usingInputStream=false;
  usingReader=false;
  userPrincipal=null;
  subject=null;
  sessionParsed=false;
  parametersProcessed=false;
  cookiesParsed=false;
  locales.clear();
  localesParsed=false;
  secure=false;
  remoteAddr=null;
  remoteHost=null;
  remotePort=-1;
  localPort=-1;
  localAddr=null;
  localName=null;
  multipart=null;
  jrouteId=null;
  upgrade=false;
  attributes.clear();
  notes.clear();
  cookies.clear();
  unsuccessfulSessionFind=false;
  if (session != null) {
    session.endAccess();
  }
  session=null;
  requestedSessionCookie=false;
  requestedSessionId=null;
  requestedSessionCookiePath=null;
  requestedSessionURL=false;
  uriParamsCC.recycle();
  sessionTracker.reset();
  dispatchDepth=0;
  parameterMap.setLocked(false);
  parameterMap.clear();
  mappingData.recycle();
  initRequestFacadeHelper=false;
  if (enforceScope) {
    if (facade != null) {
      facade.clear();
      facade=null;
    }
    if (defaultContextMaskingFacade != null) {
      defaultContextMaskingFacade.clear();
      defaultContextMaskingFacade=null;
    }
    if (inputStream != null) {
      inputStream.clear();
      inputStream=null;
    }
    if (reader != null) {
      reader.clear();
      reader=null;
    }
  }
  if (asyncContext != null) {
    asyncContext.clear();
    asyncContext=null;
  }
  isAsyncSupported=true;
  asyncStarted.set(false);
  isAsyncComplete=false;
  delayAsyncDispatchAndComplete=true;
  asyncStartedThread=null;
}

Fixed version (ground truth):
/** 
 * Release all object references, and initialize instance variables, in preparation for reuse of this object.
 */
@Override public void recycle(){
  if (isAsyncStarted()) {
    return;
  }
  context=null;
  servletContext=null;
  contextPath=null;
  servletPath=null;
  pathInfo=null;
  wrapper=null;
  dispatcherTypeAttr=null;
  requestDispatcherPath=null;
  authType=null;
  requestURI=null;
  inputBuffer.recycle();
  usingInputStream=false;
  usingReader=false;
  userPrincipal=null;
  subject=null;
  sessionParsed=false;
  parametersProcessed=false;
  cookiesParsed=false;
  locales.clear();
  localesParsed=false;
  secure=false;
  remoteAddr=null;
  remoteHost=null;
  remotePort=-1;
  localPort=-1;
  localAddr=null;
  localName=null;
  multipart=null;
  jrouteId=null;
  upgrade=false;
  afterService=false;
  resume=false;
  attributes.clear();
  notes.clear();
  cookies.clear();
  unsuccessfulSessionFind=false;
  if (session != null) {
    session.endAccess();
  }
  session=null;
  requestedSessionCookie=false;
  requestedSessionId=null;
  requestedSessionCookiePath=null;
  requestedSessionURL=false;
  uriParamsCC.recycle();
  sessionTracker.reset();
  dispatchDepth=0;
  parameterMap.setLocked(false);
  parameterMap.clear();
  mappingData.recycle();
  initRequestFacadeHelper=false;
  if (enforceScope) {
    if (facade != null) {
      facade.clear();
      facade=null;
    }
    if (defaultContextMaskingFacade != null) {
      defaultContextMaskingFacade.clear();
      defaultContextMaskingFacade=null;
    }
    if (inputStream != null) {
      inputStream.clear();
      inputStream=null;
    }
    if (reader != null) {
      reader.clear();
      reader=null;
    }
  }
  if (asyncContext != null) {
    asyncContext.clear();
    asyncContext=null;
  }
  isAsyncSupported=true;
  asyncStarted.set(false);
  isAsyncComplete=false;
  delayAsyncDispatchAndComplete=true;
  asyncStartedThread=null;
}