I observed some code clones in Tomcat and found inconsistent code. Could anyone 
explain why this is not a bug?

/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java

1048                    try {
1049                        Thread.sleep(1000);
1050                    } catch (InterruptedException e) {
1051                        // Ignore
1052                    }
1053                    long now = System.currentTimeMillis();
1054                    Iterator<SocketWrapper<Long>> sockets =
1055                        waitingRequests.iterator();
1056                    while (sockets.hasNext()) {
1057                        SocketWrapper<Long> socket = sockets.next();
1058                        if (socket.async) {
1059                            long access = socket.getLastAccess();
1060                            if (socket.getTimeout() > 0 &&
1061                                    (now-access)>socket.getTimeout()) {
1062                               
processSocketAsync(socket,SocketStatus.TIMEOUT);
1063                            }
1064                        }
1065                    }

/tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java

147                    try {
148                        Thread.sleep(1000);
149                    } catch (InterruptedException e) {
150                        // Ignore
151                    }
152                    long now = System.currentTimeMillis();
153                    Iterator<SocketWrapper<Socket>> sockets =
154                        waitingRequests.iterator();
155                    while (sockets.hasNext()) {
156                        SocketWrapper<Socket> socket = sockets.next();
157                        long access = socket.getLastAccess();
158                        if (socket.getTimeout() > 0 &&
159                                (now-access)>socket.getTimeout()) {
160                            processSocketAsync(socket,SocketStatus.TIMEOUT);
161                        }
162                    }
Quick description of the inconsistency
Two code snippets are very similar code, but as you see, in JIoEndpoint.java 
does not check "if (socket.async)" while AprEndpoint.java has the checker.

Reply via email to