You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2021/10/19 07:16:19 UTC
[ofbiz-framework] branch release18.12 updated: Fixed: DiskFileItem
as request attribute creates problems (OFBIZ-12016)
This is an automated email from the ASF dual-hosted git repository.
jleroux pushed a commit to branch release18.12
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/release18.12 by this push:
new b21dff7 Fixed: DiskFileItem as request attribute creates problems (OFBIZ-12016)
b21dff7 is described below
commit b21dff75d845df3977e1d70e5d305145c843ec09
Author: Jacques Le Roux <ja...@les7arts.com>
AuthorDate: Tue Oct 19 07:07:01 2021 +0200
Fixed: DiskFileItem as request attribute creates problems (OFBIZ-12016)
This was related to reques-redirect usage with a file upload in the request.
More info at the Jira...
Thanks: Sebastian Berg and Benjamin Jugl for report
---
.../org/apache/ofbiz/base/util/UtilObject.java | 26 +++-------------------
1 file changed, 3 insertions(+), 23 deletions(-)
diff --git a/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilObject.java b/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilObject.java
index e1908a8..33016fc 100644
--- a/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilObject.java
+++ b/framework/base/src/main/java/org/apache/ofbiz/base/util/UtilObject.java
@@ -21,7 +21,6 @@ package org.apache.ofbiz.base.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.lang.reflect.Array;
import java.util.Iterator;
@@ -39,22 +38,7 @@ public final class UtilObject {
private UtilObject() {
}
- public static final String module = UtilObject.class.getName();
-
- public static byte[] getBytes(InputStream is) {
- byte[] buffer = new byte[4 * 1024];
- byte[] data = null;
- try (ByteArrayOutputStream bos = new ByteArrayOutputStream()){
- int numBytesRead;
- while ((numBytesRead = is.read(buffer)) != -1) {
- bos.write(buffer, 0, numBytesRead);
- }
- data = bos.toByteArray();
- } catch (IOException e) {
- Debug.logError(e, module);
- }
- return data;
- }
+ private static final String module = UtilObject.class.getName();
/** Serialize an object to a byte array */
public static byte[] getBytes(Object obj) {
@@ -93,24 +77,20 @@ public final class UtilObject {
Object obj = null;
try {
obj = getObjectException(bytes);
- } catch (IOException e) {
+ } catch (IOException | ClassCastException | ClassNotFoundException e) {
Debug.logError(e, module);
- } catch (ClassNotFoundException e1) {
- // DiskFileItem, FileItemHeadersImpl are not serializable. So SafeObjectInputStream::resolveClass return ClassNotFoundException
- return null;
}
return obj;
}
/**
* Deserializes a byte array back to an object.
- *
* @param bytes the array of bytes
* @return the deserialized object.
* @throws ClassNotFoundException when the class can not be deserialized.
* @throws IOException when a general Input/Output error happen.
*/
- public static Object getObjectException(byte[] bytes) throws ClassNotFoundException, IOException {
+ public static Object getObjectException(byte[] bytes) throws ClassCastException, ClassNotFoundException, IOException {
try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
SafeObjectInputStream wois = new SafeObjectInputStream(bis)) {
return wois.readObject();