[ 
https://issues.apache.org/jira/browse/LOG4J2-181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ralph Goers closed LOG4J2-181.
------------------------------

    
> SocketAppender reconnection doesn't work
> ----------------------------------------
>
>                 Key: LOG4J2-181
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-181
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.0-beta4
>            Reporter: Ralph Goers
>            Assignee: Ralph Goers
>             Fix For: 2.0-beta5
>
>
> This issue was actually reported by Werner Goeschl on the developers mailing 
> list.
> We configured a SocketAppender with a reconnectionDelay and defaultLayout 
> (SerializedLayout) in a XML-Config File.
> After starting the application, the SocketAppender tries to open the socket 
> periodical.
> As the next step, we start the application with the SocketServer, and so the 
> Appender connects to it.
> But after we get the following Exception, when we will open the 
> ObjectInputStream (final ObjectInputStream ois = new 
> ObjectInputStream(socket.getInputStream());
>  
> Exception in thread "Thread-2" java.lang.RuntimeException: 
> java.io.StreamCorruptedException: invalid stream header: 7372003E
>         at test.logger.LoggerTest_1$TCPSocketServer.run(LoggerTest_1.java:83)
> Caused by: java.io.StreamCorruptedException: invalid stream header: 7372003E
>         at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
>         at java.io.ObjectInputStream.<init>(Unknown Source)
>         at test.logger.LoggerTest_1$TCPSocketServer.run(LoggerTest_1.java:72)
>  
> The reason is:
> At the Startup is no socket server available, therefore a dummy 
> ByteArrayOutputStream is created.
> See TCPSocketManager:230
> After that, the Header of the layout (Object stream header) is written to the 
> Dummy ByteArrayOutputStream.
> See AbstractOutputStreamAppender:62
>  
> If the Reconnector-Thread succeeds, the Dummy ByteArrayOutputStream is 
> changed to the OutputStream from the socket.
> See TCPSocketManager:175
> But after this action the object stream header is not written again!
>  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to