code: public void setFilters(Map<String, ? extends IoFilter> filters) {
          if (filters == null) {
              throw new NullPointerException("filters");
          }
          
          if (!isOrderedMap(filters)) {
              throw new IllegalArgumentException(
                      "filters is not an ordered map. Please try " + 
                      LinkedHashMap.class.getName() + ".");
          }
  
          filters = new LinkedHashMap<String, IoFilter>(filters);
          for (Map.Entry<String, ? extends IoFilter> e: filters.entrySet()) {
              if (e.getKey() == null) {
                  throw new NullPointerException("filters contains a null key.");
              }
              if (e.getValue() == null) {
                  throw new NullPointerException("filters contains a null value.");
              }
          }
          
          synchronized (this) {
              clear();
              for (Map.Entry<String, ? extends IoFilter> e: filters.entrySet()) {
                  addLast(e.getKey(), e.getValue());
              }
          }
      }
docs: Clears the current list of filters and adds the specified
  filter mapping to this builder.  Please note that you must specify
  a {@link Map} implementation that iterates the filter mapping in the
  order of insertion such as {@link LinkedHashMap}.  Otherwise, it will
  throw an {@link IllegalArgumentException}.