java - Richfaces fileuploader nullpointer firefox
问题描述
随着 Firefox 62 的引入,我现有的 RichFaces 文件上传器在尝试解码上传的文件时突然抛出空指针。这是在 JBoss 5.1 环境中使用 Richfaces 3.3.3。我试过上传不同的图像类型无济于事。还需要注意的是,这个问题只发生在 Firefox 62 上,以后所有其他浏览器都可以正常工作。
堆栈跟踪:
Caused by: java.lang.NullPointerException
at org.richfaces.renderkit.FileUploadRendererBase.doDecode(FileUploadRendererBase.java:139)
at org.ajax4jsf.renderkit.RendererBase.decode(RendererBase.java:75)
at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:789)
at javax.faces.component.UIInput.decode(UIInput.java:725)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1031)
at javax.faces.component.UIInput.processDecodes(UIInput.java:639)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1026)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1026)
at javax.faces.component.UIForm.processDecodes(UIForm.java:209)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1026)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1026)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1026)
at javax.faces.component.UIInput.processDecodes(UIInput.java:639)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1026)
at org.ajax4jsf.component.AjaxViewRoot$1.invokeContextCallback(AjaxViewRoot.java:400)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:240)
at org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:417)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
文件上传器 xhtml:
<rich:fileUpload fileUploadListener="#{manageAttachmentContentItemAction.listener}"
maxFilesQuantity="1"
id="upload" immediateUpload="true"
uploadControlLabel="#{messagesAction.getMessage('manage.content.item.action.upload.add_label')}" addControlLabel="#{messagesAction.getMessage('manage.content.item.action.upload.add_label')}"
progressLabel="#{messagesAction.getMessage('manage.content.item.action.upload.progress_label')}"
disabled="#{manageAttachmentContentItemAction.previewItem != null}"
listHeight="60px" listWidth="350px"
allowFlash="false" required="true" noDuplicate="true">
<a4j:support event="onuploadcomplete" reRender="image_preview,uploadFunction" />
<a4j:support event="onerror" action="#{manageAttachmentContentItemAction.onErrorOccurred}" reRender="uploadFunction" />
<a4j:support event="ontyperejected" action="#{manageAttachmentContentItemAction.onTypeRejected}" reRender="uploadFunction" />
<a4j:support event="onsizerejected" action="#{manageAttachmentContentItemAction.onFileSizeRejected}" reRender="uploadFunction" />
任何提示将不胜感激
解决方案
有一个解决这个问题的方法,我们可以通过 try/catch 包围抛出这个异常的代码,一切都会正常工作。我已经尝试过了,它工作正常。
推荐阅读
- java - 虽然循环重复太多次
- python - Python中DataFrame.append中的SORT参数
- javascript - Django 模板变量在脚本标签中不被识别,但在常规 h1 标签中被识别。是什么原因造成的?
- python - 为什么我不能安装mysqlclient==1.3.10
- sql - 无法将 SQL Server 与实例连接 - SSMS
- php - 遇到未捕获的异常类型:ArgumentCountError
- python - 安装 rasa_core 时面临的问题
- google-drive-api - 使用 google drive API 将文件夹添加到文件夹
- javascript - 如何确保画布包含在视口中
- angular - 获取 ID 并将页面重定向到产品详细信息时出现问题