private void parseOne() {
        synchronized (lock) {
            parsing = true;
            since = System.currentTimeMillis();
        }
        FetchEmitTuple t = null;
        try {
            long start = System.currentTimeMillis();
            t = readFetchEmitTuple();
            if (LOG.isTraceEnabled()) {
                LOG.trace("timer -- read fetchEmitTuple: {} ms",
                        System.currentTimeMillis() - start);
            }
            start = System.currentTimeMillis();
            actuallyParse(t);
            if (LOG.isTraceEnabled()) {
                LOG.trace("timer -- actually parsed: {} ms", System.currentTimeMillis() - start);
            }
        } catch (OutOfMemoryError e) {
            handleOOM(t.getId(), e);
        } finally {
            synchronized (lock) {
                parsing = false;
                since = System.currentTimeMillis();
            }
        }
    }
returns stack trace if there was a container exception or empty string
if there was no stacktrace

@param t
@param metadataList
@return
tika-core/src/main/java/org/apache/tika/pipes/PipesServer.java