2010-09-15 29 views
1

Lors de l'exécution de mon lanceur d'applications Web jetty intégré, je vois la sortie suivante dans stderr. J'ai juste commencé à voir ça après avoir déplacé ma build sur maven-2. Quelqu'un a-t-il déjà vu cela avant?sortie de console mystérieuse à stderr de la jetée?

IDLE [email protected] [d=false,io=1,w=true,rb=false,wb=false],NOT_HANDSHAKING, in/out=0/0 Status = OK HandshakeStatus = NOT_HANDSHAKING 
bytesConsumed = 5469 bytesProduced = 5509 

Il se répète de temps en temps apparemment à des moments aléatoires.

Répondre

2

Cela semble provenir du support de la jetée NIO - il semble que jetty pense qu'il est approprié de se connecter à stderr quand il ferme les connexions inactives.

at org.eclipse.jetty.io.nio.SelectChannelEndPoint.checkIdleTimestamp(SelectChannelEndPoint.java:231) 
at org.eclipse.jetty.io.nio.SelectorManager$SelectSet$2.run(SelectorManager.java:768) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436) 

Pour ceux qui ont des problèmes similaires, je l'emportaient sur System.err avec un flux de sortie simulé:

public class DebugOutputStream extends OutputStream { 
    private Logger s_logger = LoggerFactory.getLogger(DebugOutputStream.class); 

    private final OutputStream m_realStream; 
    private ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    private Pattern m_searchFor; 

    public DebugOutputStream(OutputStream realStream, String regex) { 
     m_realStream = realStream; 
     m_searchFor = Pattern.compile(regex); 
    } 

    public void write(int b) throws IOException { 
     baos.write(b); 
     if (m_searchFor.matcher(baos.toString()).matches()) { 
      s_logger.info("unwanted output detected", new RuntimeException()); 
     } 
     if (b == '\n') baos.reset(); 
     m_realStream.write(b); 
    } 
}