code: @Override
      public void setOption(int optID, Object value) throws SocketException {
          copyToDelegate();
          long start = System.currentTimeMillis();
          try {
              delegate.setOption(optID, value);
  
              if (SocketOptions.SO_RCVBUF == optID) {
                  try {
                      receiveBufferSize = ((Number) value).intValue();
                  } catch (Exception e) {
                      // TODO: log me maybe
                  }
              } else if (SocketOptions.SO_SNDBUF == optID) {
                  try {
                      sendBufferSize = ((Number) value).intValue();
                  } catch (Exception e) {
                      // TODO: log me maybe
                  }
              }
  
          } finally {
              logSocket(System.currentTimeMillis() - start);
              copyFromDelegate();
          }
      }
docs: interface