1
votes

I'm currently unable to get rich:fileUpload working over HTTPS in Chrome 25 or IE 8. The POST is sent, but never receives a response. Strangely, it does work over HTTPS in Firefox 19. It also works in all browsers when using HTTP. Both HTTP and HTTPS requests are served through Apache httpd 2 to Tomcat 6.

When looking at a suspended HTTPS request thread, org.ajax4jsf.request.MultipartRequest keeps trying to read beyond the first byte, but never succeeds. (See stack trace below.)

Does anyone have any suggestions, please?

Note: not using allowFlash (as in, it is set to false)

Versions in use:

  • Richfaces 3.3.1
  • Tomcat 6.0.24
  • AJP 1.3
  • Java 6
  • Apache 2 running mod_jk

Stack trace from debugger:

Daemon Thread [ajp-8009-5] (Suspended)
ByteArrayOutputStream.(int) line: 60
MultipartRequest.readHeader() line: 490 MultipartRequest.readNext() line: 427
MultipartRequest.getParam(String) line: 807 MultipartRequest.getParameter(String) line: 870 IdentityRequestWrapper(ServletRequestWrapper).getParameter(String) line: 158
RequestParameterMap.getAttribute(String) line: 45
RequestParameterMap.getAttribute(String) line: 33
RequestParameterMap(AbstractAttributeMap).containsKey(Object) line: 59
HtmlResponseStateManager.isPostback(FacesContext) line: 212 DefaultRestoreViewSupport.isPostback(FacesContext) line: 128
RestoreViewExecutor.execute(FacesContext) line: 80
LifecycleImpl.executePhase(FacesContext, PhaseExecutor, PhaseListenerManager) line: 103 LifecycleImpl.execute(FacesContext) line: 76
FacesServlet.service(ServletRequest, ServletResponse) line: 151 ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 290
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 206
ExtensionsFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 190
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 235
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 206
CurrentlySelectedTabFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 42
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 235
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 206
PageLoadFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 58
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 235
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 206
TimeoutFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 45
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 235
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 206
ResourceTrackerFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 55
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 235
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 206
SeamFilter$FilterChainImpl.doFilter(ServletRequest, ServletResponse) line: 83
IdentityFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 40
SeamFilter$FilterChainImpl.doFilter(ServletRequest, ServletResponse) line: 69
MultipartFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 90 SeamFilter$FilterChainImpl.doFilter(ServletRequest, ServletResponse) line: 69
ExceptionFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 64 SeamFilter$FilterChainImpl.doFilter(ServletRequest, ServletResponse) line: 69
RedirectFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 45
SeamFilter$FilterChainImpl.doFilter(ServletRequest, ServletResponse) line: 69
ConfigurableXMLFilter(BaseXMLFilter).doXmlFilter(FilterChain, HttpServletRequest, HttpServletResponse) line: 178
Filter(BaseFilter).handleRequest(HttpServletRequest, HttpServletResponse, FilterChain) line: 290
Filter(BaseFilter).processUploadsAndHandleRequest(HttpServletRequest, HttpServletResponse, FilterChain) line: 347
Filter(BaseFilter).doFilter(ServletRequest, ServletResponse, FilterChain) line: 495 Ajax4jsfFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 56
SeamFilter$FilterChainImpl.doFilter(ServletRequest, ServletResponse) line: 69
SeamFilter.doFilter(ServletRequest, ServletResponse, FilterChain) line: 158 ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 235
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 206
CharacterEncodingFilter.doFilterInternal(HttpServletRequest, HttpServletResponse, FilterChain) line: 96 CharacterEncodingFilter(OncePerRequestFilter).doFilter(ServletRequest, ServletResponse, FilterChain) line: 75
ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 235
ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 206
StandardWrapperValve.invoke(Request, Response) line: 233
StandardContextValve.invoke(Request, Response) line: 191
BasicAuthenticator(AuthenticatorBase).invoke(Request, Response) line: 465
StandardHostValve.invoke(Request, Response) line: 127
ErrorReportValve.invoke(Request, Response) line: 102
AccessLogValve.invoke(Request, Response) line: 555
StandardEngineValve.invoke(Request, Response) line: 109 CoyoteAdapter.service(Request, Response) line: 298
AjpAprProcessor.process(long) line: 429 AjpAprProtocol$AjpConnectionHandler.process(long) line: 384 AprEndpoint$Worker.run() line: 1555 Thread.run() line: 662

2

2 Answers

0
votes

Not sure if you're using the "allowFlash" option but have the following bug on your radar. We ran into it ourselves. https://issues.jboss.org/browse/RF-5624

0
votes

Try updating richfaces to 3.3.4 (http://downloads.jboss.org/richfaces/releases/3.3.X/3.3.4.Final/richfaces-ui-3.3.4.Final-bin.zip)

I had this problem in richfaces 3.3.1 with Jboss 5.1.0GA and Seam 2.2.0GA. Updated richfaces and now everything works as expected!

Hope it helps