https://issues.apache.org/bugzilla/show_bug.cgi?id=53301

Konstantin Kolinko <knst.koli...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|INVALID                     |---
           Severity|major                       |normal

--- Comment #6 from Konstantin Kolinko <knst.koli...@gmail.com> ---
Ok. Reproducible.

I modified your SampleServlet to print stacktrace when init() is called, like
this:
[[[
    @Override
    public void init( ServletConfig config )
        throws ServletException
    {
        log.info( "Init called, config="+config, new Throwable() );
        super.init( config );
...
]]]

I'll attach full source later. There are two calls to init() in a row and stack
traces are the following:
[[[
00:58:32.187 [main] INFO  init - Tomcat started on port:4396
00:58:32.609 [http-bio-auto-1-exec-1] INFO  init - Init called,
config=org.apache.catalina.core.StandardWrapperFacade@15e2075
java.lang.Throwable: null
 at org.apache.tomcat.tomcat53301.SampleServlet.init(SampleServlet.java:43)
[classes/:na]
 at
org.apache.catalina.startup.Tomcat$ExistingStandardWrapper.loadServlet(Tomcat.java:854)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:857)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[na:1.6.0_32]
 at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[na:1.6.0_32]
 at java.lang.Thread.run(Thread.java:662) [na:1.6.0_32]
00:58:32.625 [http-bio-auto-1-exec-1] INFO  init - Init called,
config=org.apache.catalina.core.StandardWrapperFacade@15e2075
java.lang.Throwable: null
 at org.apache.tomcat.tomcat53301.SampleServlet.init(SampleServlet.java:43)
[classes/:na]
 at
org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:877)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[na:1.6.0_32]
 at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[na:1.6.0_32]
 at java.lang.Thread.run(Thread.java:662) [na:1.6.0_32]
]]]

Essentially it is the same single call to
org.apache.catalina.core.StandardWrapper.allocate()
and it calls init() twice with the following stack traces
a)
[[[
 at org.apache.tomcat.tomcat53301.SampleServlet.init(SampleServlet.java:43)
[classes/:na]
 at
org.apache.catalina.startup.Tomcat$ExistingStandardWrapper.loadServlet(Tomcat.java:854)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:857)
[tomcat-embed-core-7.0.27.jar:7.0.27]
]]]
b)
[[[
 at org.apache.tomcat.tomcat53301.SampleServlet.init(SampleServlet.java:43)
[classes/:na]
 at
org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)
[tomcat-embed-core-7.0.27.jar:7.0.27]
 at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:877)
[tomcat-embed-core-7.0.27.jar:7.0.27]
]]]

The second call happens because StandardWrapper#instanceInitialized flag is
still false, but init() has already been called by
Tomcat$ExistingStandardWrapper.loadServlet().

So either Tomcat$ExistingStandardWrapper should not call init(), or it should
update the flag when doing so.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to