code: protected synchronized void remove(Object id, int bufferType, boolean returnToPool) {
          // final String methodName = "remove(Object,bufferType)";
          if (id == null) {
              return;
          }
          if (bufferType == this.EXPLICIT_BUFFER) {
              this.explicitBuffer.remove(id);
          } else if (bufferType == this.SCAN_BUFFER) {
              this.scanBuffer.remove(id);
          } else if (bufferType == this.GC_BUFFER) {
              if (id instanceof EvictionTableEntry) {
                  EvictionTableEntry evt1 = (EvictionTableEntry) id;
                  int i;
                  for (i = 0; i < garbageCollectorBuffer.size(); i++) {
                      EvictionTableEntry evt = (EvictionTableEntry) garbageCollectorBuffer.get(i);
                      if (evt == evt1)
                          break;
                  }
                  if (i < garbageCollectorBuffer.size())
                      this.garbageCollectorBuffer.remove(i);
                  if (returnToPool) {
                      cod.htod.evictionEntryPool.add(id);
                  }
              }
          }
          // traceDebug(methodName, "cacheName=" + this.cod.cacheName + " id=" + id + " bufferType=" + bufferType);
      }
docs: returnToPool boolean is used by GC buffer only