Hi all,
 
I am having a problem with Tapestry 4.1.6.  I have a form with many
(>1000) components.  I get an exception trying to render the page.  It
looks like the attempt in RequestCycle to call encodeIdState is hitting
a 65k length limit in ObjectOutputStream.writeUTF.  Has anyone else
encountered this problem?  I cannot restructure the page to reduce the
number of components, so I need another way to get around this limit.  I
am thinking that I will need to override RequestCycle so I can call
ObjectOutputStream.writeObject instead of .writeUTF when the string is
long.  Does anyone have a better solution?
 
Exception details follow [[
Exception class: org.apache.hivemind.ApplicationRuntimeException
Exception message: Unable to encode object
,service$0,page$0,component$0,container$0,session$0,sp$0,layout$1,link1$
0,shell$0,Insert$2633,Any$9,Insert_0$12,ie6$0,body$0,OnErrorHandler$0,If
$6398,ConfirmFunctions$0,DownloadableJavaScript$5,BootstrapJavaScript$0,
homeTab$0,tabAnnouncement$1,RenderBody$728,sheetsTab$0,tabOverview$1,glo
balsTab$0,tabGlobalsOverview$1,sharedFormulasTab$0,tabSharedFormulas$1,i
mportTab$0,tabModelImport$1,exportTab$0,tabExportVersion$1,reportsTab$0,
Else$637,tabReportMenu$1,masterVersionChangeForm$0,apstate$1,apVerSel$1,
subMenuList$1,submenuItem$0,content$1,WarnOnUnsavedChan
 
... really long string truncated ...

enu$0,APPageLink$0,Image_5$0,APPageLink_0$0,Image_6$0,APPageLink_1$0,Ima
ge_7$0,APPageLink_2$0,Image_8$0,sampleBalanceSheetReport$1,Image_9$0,sam
plePLReport$1,Image_100,addFavoriteSubmitForm$0:java.io.UTFDataFormatExc
eption. This is sometimes caused when classes being serialized to a
stream dont implement java.io.Serializable.
Stack Trace: {
null
}
Exception class: java.io.UTFDataFormatException
Exception message: null
Stack Trace: {
java.io.ObjectOutputStream$BlockDataOutputStream.writeUTF(Unknown
Source)
java.io.ObjectOutputStream$BlockDataOutputStream.writeUTF(Unknown
Source)
java.io.ObjectOutputStream.writeUTF(Unknown Source)
org.apache.tapestry.util.io.CompressedDataEncoder.encodeStringCompressed
DataEncoder.java:55
org.apache.tapestry.engine.RequestCycle.encodeIdStateRequestCycle.java:6
78
org.apache.tapestry.form.FormSupportImpl.renderFormSupportImpl.java:482
org.apache.tapestry.form.Form.renderComponentForm.java:217
org.apache.tapestry.AbstractComponent.renderAbstractComponent.java:724
org.apache.tapestry.services.impl.DefaultResponseBuilder.renderDefaultRe
sponseBuilder.java:187
org.apache.tapestry.AbstractComponent.renderBodyAbstractComponent.java:5
38
org.apache.tapestry.components.RenderBody.renderComponentRenderBody.java
:39
org.apache.tapestry.AbstractComponent.renderAbstractComponent.java:724
org.apache.tapestry.services.impl.DefaultResponseBuilder.renderDefaultRe
sponseBuilder.java:187
org.apache.tapestry.AbstractComponent.renderBodyAbstractComponent.java:5
38
org.apache.tapestry.components.RenderBody.renderComponentRenderBody.java
:39
org.apache.tapestry.AbstractComponent.renderAbstractComponent.java:724
org.apache.tapestry.services.impl.DefaultResponseBuilder.renderDefaultRe
sponseBuilder.java:187
org.apache.tapestry.AbstractComponent.renderBodyAbstractComponent.java:5
38
org.apache.tapestry.html.Body.renderComponentBody.java:38
org.apache.tapestry.AbstractComponent.renderAbstractComponent.java:724
org.apache.tapestry.services.impl.DefaultResponseBuilder.renderDefaultRe
sponseBuilder.java:187
org.apache.tapestry.AbstractComponent.renderBodyAbstractComponent.java:5
38
org.apache.tapestry.html.Shell.renderComponentShell.java:125
org.apache.tapestry.AbstractComponent.renderAbstractComponent.java:724
org.apache.tapestry.services.impl.DefaultResponseBuilder.renderDefaultRe
sponseBuilder.java:187
org.apache.tapestry.BaseComponent.renderComponentBaseComponent.java:107
org.apache.tapestry.AbstractComponent.renderAbstractComponent.java:724
org.apache.tapestry.services.impl.DefaultResponseBuilder.renderDefaultRe
sponseBuilder.java:187
org.apache.tapestry.BaseComponent.renderComponentBaseComponent.java:107
org.apache.tapestry.AbstractComponent.renderAbstractComponent.java:724
org.apache.tapestry.services.impl.DefaultResponseBuilder.renderDefaultRe
sponseBuilder.java:187
org.apache.tapestry.BaseComponent.renderComponentBaseComponent.java:107
org.apache.tapestry.AbstractComponent.renderAbstractComponent.java:724
org.apache.tapestry.services.impl.DefaultResponseBuilder.renderDefaultRe
sponseBuilder.java:185
org.apache.tapestry.AbstractPage.renderPageAbstractPage.java:249
org.apache.tapestry.engine.RequestCycle.renderPageRequestCycle.java:400
org.apache.tapestry.services.impl.DefaultResponseBuilder.renderResponseD
efaultResponseBuilder.java:159
org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponseRes
ponseRendererImpl.java:33
$ResponseRenderer_12220132922.renderResponse($ResponseRenderer_122201329
22.java)
org.apache.tapestry.engine.ExternalService.serviceExternalService.java:1
61
$IEngineService_122201329aa.service($IEngineService_122201329aa.java)
org.apache.tapestry.services.impl.EngineServiceOuterProxy.serviceEngineS
erviceOuterProxy.java:72
org.apache.tapestry.engine.AbstractEngine.serviceAbstractEngine.java:241
org.apache.tapestry.services.impl.InvokeEngineTerminator.serviceInvokeEn
gineTerminator.java:54
$WebRequestServicer_1222013297a.service($WebRequestServicer_1222013297a.
java)
com.adaptiveplanning.util.TokenizedRequestFilter.serviceTokenizedRequest
Filter.java:65
$WebRequestServicerFilter_12220132978.service($WebRequestServicerFilter_
12220132978.java)
$WebRequestServicer_1222013297c.service($WebRequestServicer_1222013297c.
java)
$WebRequestServicer_12220132974.service($WebRequestServicer_12220132974.
java)
org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.servi
ceWebRequestServicerPipelineBridge.java:61
$ServletRequestServicer_1222013295a.service($ServletRequestServicer_1222
013295a.java)
org.apache.tapestry.request.DecodedRequestInjector.serviceDecodedRequest
Injector.java:55
$ServletRequestServicerFilter_12220132956.service($ServletRequestService
rFilter_12220132956.java)
$ServletRequestServicer_1222013295c.service($ServletRequestServicer_1222
013295c.java)
org.apache.tapestry.multipart.MultipartDecoderFilter.serviceMultipartDec
oderFilter.java:52
$ServletRequestServicerFilter_12220132954.service($ServletRequestService
rFilter_12220132954.java)
$ServletRequestServicer_1222013295c.service($ServletRequestServicer_1222
013295c.java)
org.apache.tapestry.services.impl.SetupRequestEncoding.serviceSetupReque
stEncoding.java:53
$ServletRequestServicerFilter_12220132958.service($ServletRequestService
rFilter_12220132958.java)
$ServletRequestServicer_1222013295c.service($ServletRequestServicer_1222
013295c.java)
$ServletRequestServicer_1222013294e.service($ServletRequestServicer_1222
013294e.java)
org.apache.tapestry.ApplicationServlet.doServiceApplicationServlet.java:
126
org.apache.tapestry.ApplicationServlet.doGetApplicationServlet.java:103
javax.servlet.http.HttpServlet.serviceHttpServlet.java:690
javax.servlet.http.HttpServlet.serviceHttpServlet.java:803
org.apache.catalina.core.ApplicationFilterChain.internalDoFilterApplicat
ionFilterChain.java:290
org.apache.catalina.core.ApplicationFilterChain.doFilterApplicationFilte
rChain.java:206
com.adaptiveplanning.system.ConnectionLeakDetector.doFilterConnectionLea
kDetector.java:58
org.apache.catalina.core.ApplicationFilterChain.internalDoFilterApplicat
ionFilterChain.java:235
org.apache.catalina.core.ApplicationFilterChain.doFilterApplicationFilte
rChain.java:206
com.adaptiveplanning.system.RequestMonitor$RequestHandler.performNativeP
rocessingRequestMonitor.java:197
com.adaptiveplanning.system.RequestMonitor$ForkedRequestHandler$1.callRe
questMonitor.java:285
com.adaptiveplanning.system.RequestMonitor$ForkedRequestHandler$1.callRe
questMonitor.java:283
java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
java.util.concurrent.FutureTask.run(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
}
]]
Request parameters are [[
]]

 
Thanks and Regards,
Aaron Kaminsky

Reply via email to