After upgrading from 6.1 to 6.2 our fileuploads stopped working and an exception is raised when we try to upload a file.
PF version: 6.2.0
JSF/Mojarra version: 2.2.12
Server: JBoss EAP 7
Relevant xhtml:
Code: Select all
<h:form id="uploadNewVersionForm" enctype="multipart/form-data">
<p:dialog header="#{i18n['policyAdmin.uploadNewVersionDialog.title']}"
widgetVar="uploadNewVersionDialog" modal="true"
showEffect="fade" resizable="false"
styleClass="wfs-dialog-responsive"
responsive="true" onShow="PF('uploadNewVersionDialog').initPosition();">
<p:ajax event="close" update="@(.policiesStyle)" listener="#{policyAdminBean.onUploadNewVersionDialogClose}" />
<p:fileUpload
label="#{i18n['policyAdmin.uploadNewVersionDialog.newFileSelector']}"
allowTypes="/(\.|\/)(xml)$/"
fileUploadListener="#{policyAdminBean.saveNewVersion}"
sizeLimit="5242880"
uploadLabel="#{i18n['document.upload']}"
cancelLabel="#{i18n['button.cancel']}"
invalidFileMessage="#{i18n['document.error.msg.invalid.filetype']}"
update="@(.policiesStyle)"
oncomplete="PF('uploadNewVersionDialog').hide();PF('policiesWv').filter()"
mode="advanced"/>
<f:facet name="footer">
<p:toolbar>
<f:facet name="right">
<p:commandButton type="button" value="#{i18n['button.cancel']}" styleClass="ui-confirmdialog-no" icon="ui-icon-close" onclick="PF('uploadNewVersionDialog').hide();PF('policiesWv').filter()"/>
</f:facet>
</p:toolbar>
</f:facet>
</p:dialog>
</h:form>
Relevant backing bean method:
Code: Select all
public void saveNewVersion(FileUploadEvent event) throws BusinessException
{
LOGGER.debug("saveNewVersionDialog.OK clicked - start to create new version of "
+ model.getSelectedPolicy().getId() + " Policy");
final UploadedFile uploadedDocument = event.getFile();
final UploadedDocument document = uploadedDocumentMapper.apply(uploadedDocument);
final WfsPolicyNode selectedPolicy = model.getSelectedPolicy();
final WfsFormPolicy formPolicy = ServiceProxy.getLiferayInstance().getPolicyService()
.getFormPolicyById(selectedPolicy.getId());
final WfsProcessDefinition newDefinition = new WfsProcessDefinition();
newDefinition.setDeploymentId(null);
try (InputStream is = new ByteArrayInputStream(document.getBytes()))
{
formPolicy.getAsFormPolicyTypeTransformer().saveTransformedContent(is);
final WfsPolicyNode policyNode = formPolicyMapper.toNode(formPolicy);
service.savePolicy(policyNode);
MessagesUtil.info("policyAdmin.upload.success");
} catch (final IOException e)
{
LOGGER.error("Unable to save the uploaded policy file", e);
throw BusinessExceptionFactory.createGeneralIO(e);
}
model.setPolicies(null);
}
Here is the exception:
2018/04/23 12:36:27 ERROR [default task-52][FileUploadRendererPrimeFacesImpl:131] org.primefaces.model.DefaultUploadedFile.<init>(org.apache.commons.fileupload.FileItem)
java.lang.NoSuchMethodException: org.primefaces.model.DefaultUploadedFile.<init>(org.apache.commons.fileupload.FileItem)
at java.lang.Class.getConstructor0(Class.java:3082)
at java.lang.Class.getDeclaredConstructor(Class.java:2178)
at com.liferay.faces.bridge.renderkit.primefaces.internal.FileUploadRendererPrimeFacesImpl.decode(FileUploadRendererPrimeFacesImpl.java:99)
at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:832)
at javax.faces.component.UIInput.decode(UIInput.java:771)
at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1227)
at javax.faces.component.UIInput.processDecodes(UIInput.java:676)
at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:573)
at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1689)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:403)
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:266)
at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:219)
at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:57)