You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ofbiz.apache.org by "Benjamin Jugl (Jira)" <ji...@apache.org> on 2021/10/12 15:17:00 UTC
[jira] [Commented] (OFBIZ-12016) DiskFileItem as request attribute
creates problems
[ 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)