public ConnectionHandler(Socket sock, Plug plug, String base, NetworkSimulator simulator, ProxyPlugin[] plugins) {
public ConnectionHandler(Socket sock, Plug plug, String base, NetworkSimulator simulator, List plugins) {
    public ConnectionHandler(Socket sock, Plug plug, String base, NetworkSimulator simulator, ProxyPlugin[] plugins) {        _sock = sock;        _plug = plug;        _base = base;        _simulator = simulator;        _plugins = plugins;        if (_plugins == null) {            _plugins = new ProxyPlugin[0];        }        try {            _sock.setTcpNoDelay(true);            _sock.setSoTimeout(30 * 1000);        } catch (SocketException se) {            _logger.warning("Error setting socket parameters");        }                // try {        //     PipedInputStream scis = new PipedInputStream();        //     PipedOutputStream scos = new PipedOutputStream(scis);        //     // main (live) URLFetcher, writes a copy of what it reads from the server to scos        //     _uf = new URLFetcher(null, scos);        //     // copy URLFetcher, parses the response from scis, for submission to the model        //     _pf = new ParallelFetcher(scis);        // } catch (IOException ioe) {        //     _logger.severe("IOException creating the piped streams! " + ioe);            _logger.info("Recorded conversations will include any changes to the response by the plugins!");            _uf = new URLFetcher();        // }    }