@Override
    public T add(K name, V value) {
        validateName(nameValidator, true, name);
        validateValue(valueValidator, name, value);
        checkNotNull(value, "value");
        int h = hashingStrategy.hashCode(name);
        int i = index(h);
        add0(h, i, name, value);
        return thisT();
    }
@Test
    public void testAddSelf() {
        final TestDefaultHeaders headers = newInstance();
        assertThrows(IllegalArgumentException.class, new Executable() {
            @Override
            public void execute() {
                headers.add(headers);
            }
        });
    }