<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="https://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
InterruptedIO in wildfly main thread
</h3>
<span style="margin-bottom: 10px;">
created by <a href="https://community.jboss.org/people/b.eckenfels">Bernd Eckenfels</a> in <i>JBoss AS 7 Development</i> - <a href="https://community.jboss.org/message/826029#826029">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Hello,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>in Domain mode the wildfly server will loop over the inputStream and read the connection coordinates of the master controller. When this loop is ended by a closed input stream the server will terminate. </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>There is a catch in InterruptedIOException, which clears the interrupted state (which should not be needed as throwing that exception will already do). This catch will then continue to loop. I see this a bit problematic as you never know how many objects (and partial objects) have been read. So if you loop on interrupt you might read corrupt information or even worse read partial information and wait endless for its end.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>We could I guess try to analyse where the exception have been thrown and also look at InterruptedIOException#bytesTransferred, but I think the safest thing to do here would be to actually break aka terminate.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>One thing which could be considered is to have the protocol beween PC and server a bit more robust. A first step would be to define a well known message length (and possibly version header) and a magic signature. Under those conditions the interrupted read could be more sanely retried.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>What do you think?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><a class="jive-link-external-small" href="https://github.com/wildfly/wildfly/blob/master/server/src/main/java/org/jboss/as/server/DomainServerMain.java#L140" target="_blank">https://github.com/wildfly/wildfly/blob/master/server/src/main/java/org/jboss/as/server/DomainServerMain.java#L140</a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Bernd</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>PS: The </p><p><a class="jive-link-wiki-small" href="https://community.jboss.org/docs/DOC-48381">Hacking on WildFly</a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p> wiki page still points to this forum instead of the ML, is this intentional?</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="https://community.jboss.org/message/826029#826029">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in JBoss AS 7 Development at <a href="https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2225">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>