[
https://issues.apache.org/jira/browse/OFBIZ-12016?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17427758#comment-17427758
]
Benjamin Jugl commented on OFBIZ-12016:
---------------------------------------
Hello all,
I just had a look at this. The main issue here is, that there is no Caller that
can handle the Exception. The exception is thrown on a request-redirect and
thus the error is never handled.
I had a look at OFBIZ-12216 and the version history and comments are quite
confusing.
In UtilObject.java (ll.99) the comment states that "DiskFileItem [...] are not
serializable, so So SafeObjectInputStream::resolveClass return
ClassNotFoundException"
That is not true, SafeObjectInputStream::resolveClass returns
ClassCastException.
In the actual version of UtilObject.java, ClassCastException ist not handled,
but in the first version of OFBIZ-12216s resolution it had been.
I cannot find an explanation anywhere, why it had been removed.
Although handling this error would at least solve the hard exception on the
frontend, this alone is not a sufficial solution.
Since Request-Redirects can not handle DiskFileItems, is anything
contraindicative for removing them in the redirect
(RequestHandler::callRedirect) and logging a warning, that it has been removed?
Or are there other solutions that I am not aware of?
If not, I would provide a patch that does this.
> DiskFileItem as request attribute creates problems
> --------------------------------------------------
>
> Key: OFBIZ-12016
> URL: https://issues.apache.org/jira/browse/OFBIZ-12016
> Project: OFBiz
> Issue Type: Bug
> Affects Versions: 18.12.01, Trunk
> Reporter: Sebastian Berg
> Assignee: Jacques Le Roux
> Priority: Major
> Fix For: Upcoming Branch
>
>
> Hi,
> while working on a custom project based on the 18.12.01 version, I noticed a
> problem with the request handling during a request-redirect-noparam if a
> DiskFileItem was involved.
> So the situation for me is as follows: during the first request a file is
> uploaded. I choose a wrong format on purpose, which results in an error
> respond for that event. Nevertheless the DiskFileItem is set as request
> attribute together with the error message.
> The request is finished and based on the controller configurations redirected
> to a second request.
> While handling the second request the previous request's attributes get
> restored (RequestHandler.java line 733ff). This goes down into
> SafeObjectInfo.resolveClass() where an Incompatible class exception is
> thrown. I compared my custom project with the current development status and
> worked in the changes from commit 3f60efb343a11723aa56c1bc1f5afac3a2f26e9f in
> OFBIZ-10837.
> While this fixes the issue with the incompatible class exception it also
> makes it impossible to retrieve any attributes from the first request.
> Therefore my error message cannot be shown.
> Is there a way to fix it or is it otherwise necessary to always set
> "fileItems" as request attribute as added in -OFBIZ-11246-?
--
This message was sent by Atlassian Jira
(v8.3.4#803005)