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