code: private static void expungeStaleExceptions() {
          for (Object x; (x = exceptionTableRefQueue.poll()) != null;) {
              if (x instanceof ExceptionNode) {
                  int hashCode = ((ExceptionNode)x).hashCode;
                  ExceptionNode[] t = exceptionTable;
                  int i = hashCode & (t.length - 1);
                  ExceptionNode e = t[i];
                  ExceptionNode pred = null;
                  while (e != null) {
                      ExceptionNode next = e.next;
                      if (e == x) {
                          if (pred == null)
                              t[i] = next;
                          else
                              pred.next = next;
                          break;
                      }
                      pred = e;
                      e = next;
                  }
              }
          }
      }
docs: Polls stale refs and removes them. Call only while holding lock.