Bug in RichFaces 3.0.1RCxx
gemel May 21, 2007 12:16 PMI use the new drop-down-menu component in my tree. The nodes
are represented as drop-down-menu. It is thus easy to define specific operations for each node.
Since I integrated the drop-down-menu, it is impossible for me
to expand my nodes.
I get a runtime Error java.lang.ArrayIndexOutOfBoundsException: 8192.
As you can note it in the trace, this error comes from the tomcat code.
But the cause is in the internal representation of the
components at Ajax4jsf level. In particular the representation of the
identifiers.
I followed the execution step by step until the method
org.apache.coyote.http11.InternalOutputBuffer.write and I realized
that indeed, the drop-down-menu components have identifiers with
sometimes more than 10000 catactères thus higher than 8192
which is fixed in the InternalOutputBuffer class of tomcat.
Defining the id attribute in the tag < ddm:dropDownMenu
id="ddm1"... > does not change anything. The Framework
builds an intern id which can become very long according to the
depth of the tree.
For my specific case, I have something like this, just to
give an example.
_id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@26627eef:adminDomainDdm_menu_script, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@28e72baf:adminDomainDdm_menu_script, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@429577df:adminDomainDdm_menu_script, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@d5b791d1:adminDomainDdm_menu_script, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@50889a7f:adminDomainDdm_menu_iframe, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@b3d83e8f:adminDomainDdm_menu_script, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@55d8fc9:com.topaz.ejb.entity.TPZOtuBean@b48a13b9:adminOtuDdm_menu_iframe, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@4273009a:adminDomainDdm_menu_iframe, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@55d8fc9:com.topaz.ejb.entity.TPZOtuBean@8753712d:adminOtuDdm_menu_iframe, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@cc6bf7c:adminDomainDdm_menu_script, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@ad30bbc1:adminDomainDdm_menu_script, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@26626f6e:adminDomainDdm_menu_script, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@3187015e:adminDomainDdm_menu_script, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@3187015e:adminDomainDdm_menu_iframe, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@94a9c90a:adminDomainDdm_menu_iframe, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@4273009a:adminDomainDdm_menu_script, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@55d8fc9:com.topaz.ejb.entity.TPZOtuBean@c27ea36a:adminOtuDdm_menu_iframe, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@5902dc68:adminDomainDdm_menu_iframe, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@b6022ecd:adminDomainDdm_menu_script, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@b6022ecd:adminDomainDdm_menu_iframe, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@55d8fc9:com.topaz.ejb.entity.TPZOtuBean@b48a13b9:adminOtuDdm_menu_script, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@ad30bbc1:adminDomainDdm_menu_iframe, _id2:_id4:com.topaz.domainservices.treenode.TPZSystemResourceBean@3b27613f:com.topaz.ejb.entity.TPZDomainBean@35d5bb16:adminDomainDdm_menu_script,
I urgently need an expert opinion.
- How to prevent the framwork for defining the identifiers?
- Am I doing something wrong?
- Is this a bug of RichFaces which can be corrected before the official release of version 3.0.1?
Thank you for your help.
Hier is the code of my tree:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:rich="http://richfaces.ajax4jsf.org/rich" xmlns:f="http://java.sun.com/jsf/core" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" xmlns:ddm="http://richfaces.ajax4jsf.org/dropdown-menu" xmlns:mc="http://richfaces.ajax4jsf.org/menu-components" xmlns:tr="http://myfaces.apache.org/trinidad" > <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>ADMIN's Tree</title> </head> <body> <script type="text/javascript" src="../../../seam/resource/remoting/resource/remote.js"></script> <script type="text/javascript" src="../../../seam/resource/remoting/interface.js?TPZAdminTreeBean"></script> <script type="text/javascript" src="/topaz/view/js/TPZAdmin.js" /> <h:form > <div class="sample-container"> <a4j:outputPanel layout="block" id="treePanel" ajaxRendered="#{TPZAdminTreeBean.ajaxRendered}"> <rich:tree style="width:300px" value="#{TPZAdminTreeBean.data}" var="item" nodeFace="#{item.type}" ajaxSubmitSelection="true" icon="#{item.icon}" iconLeaf="#{item.iconLeaf}" switchType="ajax" binding="#{TPZAdminTreeBean.tree}" componentState="#{TPZAdminTreeBean.dataComponentState}"> <rich:treeNode id="#{item == null ? 'adminSystemNode' : item.nodeId}" value="item" ajaxSubmitSelection="true" type="SYSTEM" nodeSelectListener="#{TPZAdminTreeBean.onTreeSelection}"> <ddm:dropDownMenu id="#{item == null ? 'adminSystemDdm' : 'Ddm' + item.nodeId}" event="oncontextmenu" value="#{item.resource.name}"> <mc:menuItem id="#{item == null ? 'adminSystemMc1' : 'Mc1' + item.nodeId}" value="Nouveau domaine" onclick="openNewWindow('../new/TPZAdminNewDomain.seam')" submitMode="ajax" ajaxSingle="true" icon="/view/images/goblet_gold_add24.png" action="#{TPZAdminTreeBean.setAjaxRender(false)}" immediate="true"/> </ddm:dropDownMenu> </rich:treeNode> <rich:treeNode id="#{item == null ? 'adminDomainNode' : item.nodeId}" value="item" ajaxSubmitSelection="true" type="DOMAIN" nodeSelectListener="#{TPZAdminTreeBean.onTreeSelection}" style="border:1px solid #{a4jSkin.panelBorderColor}"> <a4j:outputPanel> <ddm:dropDownMenu id="#{item == null ? 'adminDomainDdm' : 'Ddm' + item.nodeId}" event="oncontextmenu" value="#{item.resource.name}"> <mc:menuItem id="#{item == null ? 'adminDomainMc1' : 'Mc1' + item.nodeId}" value="Supprimer" submitMode="ajax" ajaxSingle="true" icon="/view/images/Clear16.png" action="#{TPZAdminTreeBean.deleteNode(item)}" reRender="treePanel"/> <mc:menuItem id="#{item == null ? 'adminDomainMc2' : 'Mc2' + item.nodeId}" value="Editer" submitMode="ajax" ajaxSingle="true" icon="/view/images/Edit16.png" onclick="openEditWindow('../edit/TPZAdminEditDomain.seam')" action="#{TPZAdminTreeBean.setNodeToEdit(item)}" reRender="treePanel" immediate="true"/> <mc:menuItem id="#{item == null ? 'adminDomainMc3' : 'Mc3' + item.nodeId}" value="Inserer un OTU" submitMode="ajax" ajaxSingle="true" onclick="openEditWindow('../new/TPZAdminNewOTU.seam')" action="#{TPZAdminTreeBean.setNewOtuParentDomain(item)}" reRender="treePanel" /> </ddm:dropDownMenu> </a4j:outputPanel> </rich:treeNode> <rich:treeNode id="#{item == null ? 'adminLinkNode' : item.nodeId}" ajaxSubmitSelection="true" value="item" type="LINK" nodeSelectListener="#{TPZAdminTreeBean.onTreeSelection}"> <ddm:dropDownMenu id="#{item == null ? 'adminLinkDdm' : 'Ddm' + item.nodeId}" event="oncontextmenu" value="#{item.resource.name}"> <mc:menuItem id="#{item == null ? 'adminLinkMc1' : 'Mc1' + item.nodeId}" value="Afficher les details" submitMode="ajax" ajaxSingle="true" action="#{TPZAdminTreeBean.forwardToDetailPage('LINK')}" onclick="changePageURL('LINK')" reRender="treePanel"/> <mc:menuSeparator/> <mc:menuItem id="#{item == null ? 'adminLinkMc2' : 'Mc2' + item.nodeId}" value="Deplacer vers" submitMode="ajax" ajaxSingle="true" onclick="openMoveWindow('../move/TPZMoveDomainList.seam')" action="#{TPZAdminTreeBean.setNodeToMove(item)}" reRender="treePanel" immediate="true"/> <mc:menuItem id="#{item == null ? 'adminLinkMc3' : 'Mc3' + item.nodeId}" value="Copier vers" submitMode="ajax" ajaxSingle="true" onclick="openMoveWindow('../move/TPZCopyDomainList.seam')" action="#{TPZAdminTreeBean.setNodeToMove(item)}" reRender="treePanel" immediate="true"/> </ddm:dropDownMenu> </rich:treeNode> <rich:treeNode id="#{item == null ? 'adminSectionNode' : item.nodeId}" name="adminServiceNode" value="item" ajaxSubmitSelection="true" type="SECTION" nodeSelectListener="#{TPZAdminTreeBean.onTreeSelection}"> <ddm:dropDownMenu id="#{item == null ? 'adminSectionDdm' : 'Ddm' + item.nodeId}" event="oncontextmenu" value="#{item.resource.name}"> <mc:menuItem id="#{item == null ? 'adminSectionMc1' : 'Mc1' + item.nodeId}" value="Afficher les details" submitMode="ajax" ajaxSingle="true" action="#{TPZAdminTreeBean.forwardToDetailPage('SECTION')}" onclick="changePageURL('SECTION')" reRender="treePanel"/> <mc:menuSeparator/> <mc:menuItem id="#{item == null ? 'adminSectionMc2' : 'Mc2' + item.nodeId}" value="Deplacer vers" submitMode="ajax" ajaxSingle="true" onclick="openMoveWindow('../move/TPZMoveDomainList.seam')" action="#{TPZAdminTreeBean.setNodeToMove(item)}" reRender="treePanel" immediate="true"/> <mc:menuItem id="#{item == null ? 'adminSectionMc3' : 'Mc3' + item.nodeId}" value="Copier vers" submitMode="ajax" ajaxSingle="true" onclick="openMoveWindow('../move/TPZCopyDomainList.seam')" action="#{TPZAdminTreeBean.setNodeToMove(item)}" reRender="treePanel" immediate="true"/> </ddm:dropDownMenu> </rich:treeNode> <rich:treeNode id="#{item == null ? 'adminOtauNode' : item.nodeId}" name="adminOtauNode" value="item" ajaxSubmitSelection="true" type="OTAU" nodeSelectListener="#{TPZAdminTreeBean.onTreeSelection}"> <h:outputText value="#{item.resource.name}" /> </rich:treeNode> <rich:treeNode id="#{item == null ? 'adminOtuNode' : item.nodeId}" ajaxSubmitSelection="true" value="item" type="OTU" nodeSelectListener="#{TPZAdminTreeBean.onTreeSelection}"> <ddm:dropDownMenu id="#{item == null ? 'adminOtuDdm' : 'Ddm' + item.nodeId}" event="oncontextmenu" value="#{item.resource.name}"> <mc:menuItem id="#{item == null ? 'adminOtuMc1' : 'Mc1' + item.nodeId}" value="Afficher les details" submitMode="ajax" ajaxSingle="true" action="#{TPZAdminTreeBean.forwardToDetailPage('OTU')}" onclick="changePageURL('OTU')" reRender="treePanel"/> <mc:menuSeparator/> <mc:menuItem id="#{item == null ? 'adminOtuMc2' : 'Mc2' + item.nodeId}" value="Supprimer" submitMode="ajax" ajaxSingle="true" icon="/view/images/Clear16.png" action="#{TPZAdminTreeBean.deleteNode(item)}" reRender="treePanel"/> <mc:menuItem id="#{item == null ? 'adminOtuMc3' : 'Mc3' + item.nodeId}" value="Editer" submitMode="ajax" ajaxSingle="true" icon="/view/images/Edit16.png" onclick="openMoveWindow('../move/TPZCopyDomainList.seam')" action="#{TPZAdminTreeBean.setNodeToMove(item)}" reRender="treePanel" immediate="true"/> <mc:menuItem id="#{item == null ? 'adminOtuMc4' : 'Mc4' + item.nodeId}" value="Deplacer vers" submitMode="ajax" ajaxSingle="true" onclick="openMoveWindow('../move/TPZMoveDomainList.seam')" action="#{TPZAdminTreeBean.setNodeToMove(item)}" reRender="treePanel" immediate="true"/> <mc:menuItem id="#{item == null ? 'adminOtuMc5' : 'Mc5' + item.nodeId}" value="Copier vers" submitMode="ajax" ajaxSingle="true" onclick="openMoveWindow('../move/TPZCopyDomainList.seam')" action="#{TPZAdminTreeBean.setNodeToMove(item)}" reRender="treePanel" immediate="true"/> </ddm:dropDownMenu> </rich:treeNode> </rich:tree> </a4j:outputPanel> </div> </h:form> </body> </html>
Hier is the exception trace:
java.lang.ArrayIndexOutOfBoundsException: 8192 at org.apache.coyote.http11.InternalOutputBuffer.write(InternalOutputBuffer.java:720) at org.apache.coyote.http11.InternalOutputBuffer.write(InternalOutputBuffer.java:627) at org.apache.coyote.http11.InternalOutputBuffer.sendHeader(InternalOutputBuffer.java:500) at org.apache.coyote.http11.Http11Processor.prepareResponse(Http11Processor.java:1615) at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:962) at org.apache.coyote.Response.action(Response.java:180) at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:572) at org.apache.coyote.Response.doWrite(Response.java:559) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361) at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:324) at org.apache.tomcat.util.buf.IntermediateOutputStream.write(C2BConverter.java:235) at sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(StreamEncoder.java:336) at sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(StreamEncoder.java:404) at sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:408) at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152) at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213) at org.apache.tomcat.util.buf.WriteConvertor.flush(C2BConverter.java:184) at org.apache.tomcat.util.buf.C2BConverter.flushBuffer(C2BConverter.java:127) at org.apache.catalina.connector.OutputBuffer.realWriteChars(OutputBuffer.java:536) at org.apache.tomcat.util.buf.CharChunk.flushBuffer(CharChunk.java:439) at org.apache.tomcat.util.buf.CharChunk.append(CharChunk.java:294) at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:456) at org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.java:142) at org.ajax4jsf.io.FastBufferWriter.writeTo(FastBufferWriter.java:165) at org.ajax4jsf.org.w3c.tidy.Tidy.pprint(Tidy.java:689) at org.ajax4jsf.framework.ajax.xmlfilter.tidy.TidyParser.parseHtmlByTidy(TidyParser.java:191) at org.ajax4jsf.framework.ajax.xmlfilter.tidy.TidyParser.parseHtml(TidyParser.java:203) at org.ajax4jsf.framework.ajax.xmlfilter.FilterServletResponseWrapper.parseContent(FilterServletResponseWrapper.java:613) at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:271) at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) 17:23:04,593 ERROR [STDERR] java.lang.ArrayIndexOutOfBoundsException 17:23:04,593 ERROR [STDERR] at java.lang.System.arraycopy(Native Method) 17:23:04,593 ERROR [STDERR] at org.apache.coyote.http11.InternalOutputBuffer.write(InternalOutputBuffer.java:689) 17:23:04,593 ERROR [STDERR] at org.apache.coyote.http11.InternalOutputBuffer.sendStatus(InternalOutputBuffer.java:428) 17:23:04,593 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.prepareResponse(Http11Processor.java:1604) 17:23:04,593 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:962) 17:23:04,593 ERROR [STDERR] at org.apache.coyote.Response.action(Response.java:180) 17:23:04,593 ERROR [STDERR] at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:572) 17:23:04,593 ERROR [STDERR] at org.apache.coyote.Response.doWrite(Response.java:559) 17:23:04,593 ERROR [STDERR] at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:361) 17:23:04,593 ERROR [STDERR] at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:433) 17:23:04,593 ERROR [STDERR] at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314) 17:23:04,593 ERROR [STDERR] at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:278) 17:23:04,593 ERROR [STDERR] at org.apache.catalina.connector.Response.finishResponse(Response.java:476) 17:23:04,593 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) 17:23:04,593 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) 17:23:04,593 ERROR [STDERR] at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) 17:23:04,593 ERROR [STDERR] at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) 17:23:04,593 ERROR [STDERR] at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) 17:23:04,593 ERROR [STDERR] at java.lang.Thread.run(Thread.java:595) 17:23:04,593 ERROR [Http11Processor] Error finishing response java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at org.apache.coyote.http11.InternalOutputBuffer.write(InternalOutputBuffer.java:689) at org.apache.coyote.http11.InternalOutputBuffer.sendStatus(InternalOutputBuffer.java:428) at org.apache.coyote.http11.Http11Processor.prepareResponse(Http11Processor.java:1604) at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:962) at org.apache.coyote.Response.action(Response.java:180) at org.apache.coyote.http11.InternalOutputBuffer.endRequest(InternalOutputBuffer.java:388) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:906) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595)