Idea get into infinite sending request to my web app when web app start up

Idea version : 14.1
tomcat version: 7.0.47
java version: 1.7.0_51
OS: OS X 10.10.2
Default browser: chrome 41.0.2272.104 (64-bit)

I set up a simple web app sample of java servlet. But it get into infinite loop when I use the idea option "Run/Debug Configurations - Open browser - After launch".

My Code:

LogFilter.java

 
public class LogFilter implements Filter {

    @Override
    public void init
(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter
(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        System.out.println("Test");
        
chain.doFilter(request, response);
    
}

    @Override
    public void destroy
() {

    }
}


SimpleServlet.java

 
public class SimpleServlet extends HttpServlet {

    private final static String USERNAME = "test";
    private final static
String PASSWORD = "root";

    @Override
    protected void doGet
(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String user = req.getParameter("username");
        
String pass = req.getParameter("password");

        
resp.setHeader(HttpHeaders.CONTENT_TYPE, "text/html; charset=UTF-8");
        if
(user != null && user.equals(USERNAME) && pass != null && pass.equals(PASSWORD)) {
            resp.getWriter().write("succ");
        
} else {
            resp.getWriter().write("fail");
        
}
    }
}


web.xml

 
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

    <filter>
        <filter-name>logFilter</filter-name>
        <filter-class>
com.qunar.fresh.zhenweiliu.servlet.LogFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>
logFilter</filter-name>
        <url-pattern>
/*</url-pattern>
    </filter-mapping>

    <servlet>
        <servlet-name>
controlServlet</servlet-name>
        <servlet-class>
com.qunar.fresh.zhenweiliu.servlet.SimpleServlet</servlet-class>
        <!--<load-on-startup>1</load-on-startup>-->
    </servlet>

    <servlet-mapping>
        <servlet-name>
controlServlet</servlet-name>
        <!--<url-pattern>/*</url-pattern>-->
        <url-pattern>
/login</url-pattern>
    </servlet-mapping>
</web-app>



The thing is, when I click the debug button, the artifact deploy successfully.But the browser window never pop up, and the console keep infinite print "Test Test Test ...",
which means the filter is invoked infinitely.

If I uncheck the After Launch option in Run/Debug Configurations. Problem disappeard.

So I think there is something makes idea can not open the brower. And idea keep openning the browser, and keep sending a request "localhost:8080" and triger the Filter infinitely.

Is there something wrong with my code ? Or a bug of idea ?

Update :

I use tcpdump to grep some packet.

sudo tcpdump -X -i lo0 dst host localhost and dst port 8080


It shows there many packets like below:

22:45:50.208234 IP localhost.60174 > localhost.http-alt: Flags [P.], seq 0:219, ack 1, win 12759, options [nop,nop,TS val 452236887 ecr 452236887], length 219
     0x0000:  4500 010f 0491 4000 4006 0000 7f00 0001  E.....@.@.......
     0x0010:  7f00 0001 eb0e 1f90 a3ae 7690 cd4f 06b3  ..........v..O..
     0x0020:  8018 31d7 ff03 0000 0101 080a 1af4 9657  ..1............W
     0x0030:  1af4 9657 4745 5420 2f20 4854 5450 2f31  ...WGET./.HTTP/1
     0x0040:  2e31 0d0a 5573 6572 2d41 6765 6e74 3a20  .1..User-Agent:.
     0x0050:  496e 7465 6c6c 694a 2049 4445 410d 0a41  IntelliJ.IDEA..A
     0x0060:  6363 6570 742d 456e 636f 6469 6e67 3a20  ccept-Encoding:.
     0x0070:  677a 6970 0d0a 4361 6368 652d 436f 6e74  gzip..Cache-Cont
     0x0080:  726f 6c3a 206e 6f2d 6361 6368 650d 0a50  rol:.no-cache..P
     0x0090:  7261 676d 613a 206e 6f2d 6361 6368 650d  ragma:.no-cache.
     0x00a0:  0a48 6f73 743a 206c 6f63 616c 686f 7374  .Host:.localhost
     0x00b0:  3a38 3038 300d 0a41 6363 6570 743a 2074  :8080..Accept:.t
     0x00c0:  6578 742f 6874 6d6c 2c20 696d 6167 652f  ext/html,.image/
     0x00d0:  6769 662c 2069 6d61 6765 2f6a 7065 672c  gif,.image/jpeg,
     0x00e0:  202a 3b20 713d 2e32 2c20 2a2f 2a3b 2071  .*;.q=.2,.*/*;.q
     0x00f0:  3d2e 320d 0a43 6f6e 6e65 6374 696f 6e3a  =.2..Connection:
     0x0100:  206b 6565 702d 616c 6976 650d 0a0d 0a    .keep-alive....

2 comments
Comment actions Permalink

It's a known bug, already fixed: https://youtrack.jetbrains.com/issue/IDEA-138455 .

The fix will be available soon (hopefully in the tomorrow's 14.1.2 EAP build).

0

Please sign in to leave a comment.