code: public List<String> getList(String key, List<String> defaultValue) {
  
          Object value = m_configurationObjects.get(key);
  
          if (value instanceof List) {
              @SuppressWarnings("unchecked")
              List<String> result = (List<String>)value;
              return new ArrayList<String>(result);
  
          } else if (value instanceof String) {
              ArrayList<String> values = new ArrayList<String>(1);
              values.add((String)value);
              m_configurationObjects.put(key, values);
              return values;
  
          } else {
              if (defaultValue == null) {
                  return new ArrayList<String>();
              } else {
                  return defaultValue;
              }
          }
      }
docs: Returns the List of Strings associated with the given parameter,
  or the default value in case there is no List of Strings for this parameter.<p>
  
  The list returned is a copy of the internal data of this object, and as
  such you may alter it freely.<p>
  
  @param key the parameter to look up the value for
  @param defaultValue the default value
  
  @return the List of Strings associated with the given parameter,
  or the default value in case there is no List of Strings for this parameter