Download [#GLASSFISH-17150] GF throws NPE when IE9 closes connection

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
[GLASSFISH-17150] GF throws NPE when IE9 closes connection before the
execution of doGet in a servlet is ready. Created: 05/Aug/11 Updated: 02/Sep/11 Resolved: 15/Aug/11
Status:
Project:
Component/s:
Affects
Version/s:
Fix Version/s:
Resolved
glassfish
grizzly-kernel
3.1.1
3.1.2
Bug
Type:
Priority:
Wasomumba
Reporter:
Assignee:
Resolution: Fixed
Votes:
None
Labels:
Not Specified
Remaining
Estimate:
Time Spent: Not Specified
Not Specified
Original
Estimate:
Environment: Windows 7 Enterprise 64 bit.
JVM 1.7 32 Bit
Aug 05, 2011 12:45:43 PM com.sun.enterprise.admin.launcher.GFLauncherLogger info
Information: JVM invocation command line:
D:\Java\jdk1.7.0\bin\java.exe
-cp
D:/Java/glassfish3/glassfish/modules/glassfish.jar
-XX:+UnlockDiagnosticVMOptions
-XX:MaxPermSize=192m
-XX:NewRatio=2
-Xmx512m
-javaagent :/Java/glassfish3/glassfish/lib/monitor/flashlight-agent.jar
-client
-Dfelix.fileinstall.disableConfigSave=false
-Djavax.net.ssl.keyStore=D:\Java\glassfish3\glassfish\domains\domain1/config/keystore.jks
-Djava.awt.headless=true
-Dfelix.fileinstall.poll=5000
-Djava.endorsed.dirs=D:\Java\glassfish3\glassfish/modules/endorsed;D:\Java\glassfish3\glassfish
-Dfelix.fileinstall.bundles.startTransient=true
-Djavax.net.ssl.trustStore=D:\Java\glassfish3\glassfish\domains\domain1/config/cacerts.jks
-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as
-DANTLR_USE_DIRECT_CLASS_LOADING=true
-Djava.security.auth.login.config=D:\Java\glassfish3\glassfish\domains\domain1/config/login.co
-nointeractive
-Dosgi.shell.telnet.maxconn=1
-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver
-Dfelix.fileinstall.dir=D:\Java\glassfish3\glassfish/modules/autostart/
-Dosgi.shell.telnet.port=6666
-Djava.security.policy=D:\Java\glassfish3\glassfish\domains\domain1/config/server.policy
-Dfelix.fileinstall.log.level=2
-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serve
-Dosgi.shell.telnet.ip=127.0.0.1
-Dcom.sun.aas.instanceRoot=D:\Java\glassfish3\glassfish\domains\domain1
-Dcom.sun.aas.installRoot=D:\Java\glassfish3\glassfish
-Djava.ext.dirs=D:\Java\jdk1.7.0/lib/ext;D:\Java\jdk1.7.0/jre/lib/ext;D:\Java\glassfish3\glassfish\
-Dfelix.fileinstall.bundles.new.start=true
Dorg.glassfish.additionalOSGiBundlesToStart=org.apache.felix.shell,org.apache.felix.gogo.runti
-Djava.library.path=D:/Java/glassfish3/glassfish/lib;D:/Java/jdk1.7.0/bin;C:/Windows/Sun/Java/b
(x86)/Java/jre7/bin/client;C:/Program Files (x86)/Java/jre7/bin;C:/Program Files (x86)/Java/jre7/
Studio/7.0/bin;C:/Users/Public/Documents/RAD Studio/7.0/Bpl;C:/Program Files (x86)/Pervasiv
Software/PSQL/bin;C:/Windows/System32/wbem;C:/Windows/System32/WindowsPowerShell/
com.sun.enterprise.glassfish.bootstrap.ASMain
-domainname
domain1
-asadmin-args
--domaindir,,,D:\Java\glassfish3\glassfish\domains,,,domain1
-instancename
server
-verbose
true
-debug
false
-asadmin-classpath
D:/Java/glassfish3/glassfish/modules/admin-cli.jar
-asadmin-classname
com.sun.enterprise.admin.cli.AsadminMain
-upgrade
false
-type
DAS
-domaindir
D:/Java/glassfish3/glassfish/domains/domain1
-read-stdin
true
Attachments:
Issue Links:
grizzly-utils.jar
Dependency
depends
on
GLASSFISH17270
Integrate Grizzly 1.9.37 into
Glassfi...
Resolved
Description
If the doGet method is not ready if Internet Explorer 9 (32 Bit) on localhost closes the connection, a NPE is thro
simple test servlet:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
try
{ Thread.sleep(5000); }
catch (InterruptedException e)
{ //ignored }
PrintWriter out = response.getWriter();
out.print("<HTML><BODY>Hallo</BODY></HTML>");
out.close();
}
If you open the page in IE9, the text "Hallo" is shown. Now press F5 and hold the key down for a few seconds. A
stack trace on the GF log:
[#|2011-0805T12:46:46.311+0200|WARNING|glassfish3.1.1|javax.enterprise.system.container.web.com.sun.enterprise.we
thread-pool-8080(3);|StandardWrapperValve[de.aidaorga.npetest.Test]: PWC1406: Servlet.service() for servlet d
java.lang.NullPointerException
at
com.sun.enterprise.v3.services.impl.monitor.MonitorableSelectionKeyHandler$CloseHandler.notifyClosed(Mon
at
com.sun.enterprise.v3.services.impl.monitor.MonitorableSelectionKeyHandler$CloseHandler.remotlyClosed(M
at com.sun.grizzly.BaseSelectionKeyHandler.notifyRemotlyClose(BaseSelectionKeyHandler.java:233)
at com.sun.grizzly.util.OutputWriter.notifyRemotelyClosed(OutputWriter.java:353)
at com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:148)
at com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:76)
at com.sun.grizzly.http.SocketChannelOutputBuffer.flushChannel(SocketChannelOutputBuffer.java:326)
at com.sun.grizzly.http.SocketChannelOutputBuffer.flushBuffer(SocketChannelOutputBuffer.java:398)
at com.sun.grizzly.http.SocketChannelOutputBuffer.endRequest(SocketChannelOutputBuffer.java:389)
at com.sun.grizzly.http.ProcessorTask.action(ProcessorTask.java:1090)
at com.sun.grizzly.tcp.Response.action(Response.java:268)
at com.sun.grizzly.tcp.Response.finish(Response.java:412)
at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:341)
at org.apache.catalina.connector.CoyoteWriter.close(CoyoteWriter.java:172)
at de.aidaorga.npetest.Test.doGet(Test.java:43)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
Comments
Comment by Wasomumba [ 05/Aug/11 ]
If you change teh do Get method to
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
try
{ Thread.sleep(5000); }
catch (InterruptedException e)
{ //ignored }
}
you get the following stack trace:
[#|2011-0805T12:53:57.126+0200|WARNING|glassfish3.1.1|javax.enterprise.system.container.web.com.sun.enterprise.we
thread-pool-8080(4);|Response Error during finishResponse
java.lang.NullPointerException
at
com.sun.enterprise.v3.services.impl.monitor.MonitorableSelectionKeyHandler$CloseHandler.notifyClosed(Mon
at
com.sun.enterprise.v3.services.impl.monitor.MonitorableSelectionKeyHandler$CloseHandler.remotlyClosed(M
at com.sun.grizzly.BaseSelectionKeyHandler.notifyRemotlyClose(BaseSelectionKeyHandler.java:233)
at com.sun.grizzly.util.OutputWriter.notifyRemotelyClosed(OutputWriter.java:353)
at com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:148)
at com.sun.grizzly.util.OutputWriter.flushChannel(OutputWriter.java:76)
at com.sun.grizzly.http.SocketChannelOutputBuffer.flushChannel(SocketChannelOutputBuffer.java:326)
at com.sun.grizzly.http.SocketChannelOutputBuffer.flushBuffer(SocketChannelOutputBuffer.java:398)
at com.sun.grizzly.http.SocketChannelOutputBuffer.endRequest(SocketChannelOutputBuffer.java:389)
at com.sun.grizzly.http.ProcessorTask.action(ProcessorTask.java:1090)
at com.sun.grizzly.tcp.Response.action(Response.java:268)
at com.sun.grizzly.tcp.Response.finish(Response.java:412)
at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:341)
at org.apache.catalina.connector.Response.finishResponse(Response.java:582)
at org.apache.catalina.connector.CoyoteAdapter.afterService(CoyoteAdapter.java:370)
at com.sun.enterprise.v3.services.impl.ContainerMapper.afterService(ContainerMapper.java:366)
at com.sun.grizzly.http.ProcessorTask.finishResponse(ProcessorTask.java:760)
at com.sun.grizzly.http.ProcessorTask.postResponse(ProcessorTask.java:750)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:726)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
Comment by oleksiys [ 05/Aug/11 ]
we'll definitely take a look into this.
meanwhile, can i ask you to try the same usecase with jdk6?
Comment by Wasomumba [ 05/Aug/11 ]
Exactly the same with JDK6.
Comment by oleksiys [ 12/Aug/11 ]
correspondent Grizzly issue
http://java.net/jira/browse/GRIZZLY-1060
Comment by oleksiys [ 12/Aug/11 ]
patch for GF 3.1.1
Comment by oleksiys [ 12/Aug/11 ]
can you pls. apply the attached patch (grizzly-utils.jar), by copying it to glassfish3/glassfish/modules folder?
pls. let me know if it fixed the problem.
Thanks.
Comment by dan_ [ 12/Aug/11 ]
in my project the error message is gone. Thank you!
Comment by oleksiys [ 15/Aug/11 ]
fixed
Comment by shreedhar_ganapathy [ 01/Sep/11 ]
Could you update Fix Version to 3.1.2_<buildnumber> if the jar has been integrated into GF?Next upcoming bu
Comment by oleksiys [ 02/Sep/11 ]
umbrella issue
http://java.net/jira/browse/GLASSFISH-17270
Generated at Wed May 03 07:02:04 UTC 2017 using JIRA 6.2.3#6260sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.
Related documents