Author: jleroux
Date: Fri Jun 8 20:38:19 2018 New Revision: 1833212 URL: http://svn.apache.org/viewvc?rev=1833212&view=rev Log: "Applied fix from trunk for revision: 1833211 " ------------------------------------------------------------------------ r1833211 | jleroux | 2018-06-08 22:37:32 +0200 (ven. 08 juin 2018) | 8 lignes Fixed: streaming large content cause out of memory exception. (OFBIZ-10133) With r1821036 DataResourceWorker.getDataResourceStream() may return an InputStream (if the data resource is a file) instead of a ByteArrayInputStream which was expected in few places. This fixes it ------------------------------------------------------------------------ Modified: ofbiz/ofbiz-framework/branches/release17.12/ (props changed) ofbiz/ofbiz-framework/branches/release17.12/applications/content/src/main/java/org/apache/ofbiz/content/data/DataEvents.java ofbiz/ofbiz-framework/branches/release17.12/applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java ofbiz/ofbiz-framework/branches/release17.12/applications/order/src/main/java/org/apache/ofbiz/order/order/OrderEvents.java Propchange: ofbiz/ofbiz-framework/branches/release17.12/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Jun 8 20:38:19 2018 @@ -10,4 +10,4 @@ /ofbiz/branches/json-integration-refactoring:1634077-1635900 /ofbiz/branches/multitenant20100310:921280-927264 /ofbiz/branches/release13.07:1547657 -/ofbiz/ofbiz-framework/trunk:1819499,1819598,1819800,1819805,1819811,1820038,1820262,1820374-1820375,1820441,1820457,1820644,1820658,1820790,1820823,1820949,1820966,1821012,1821036,1821112,1821115,1821144,1821186,1821219,1821226,1821230,1821386,1821613,1821628,1821965,1822125,1822310,1822377,1822383,1822393,1823467,1823562,1823876,1824314,1824316,1824732,1824803,1824847,1824855,1825192,1825211,1825216,1825233,1825450,1826374,1826502,1826592,1826671,1826674,1826805,1826938,1826997,1827439,1828255,1828316,1828346,1828424,1828512,1828514,1829690,1830936,1831074,1831078,1831234,1831608,1831831,1832577,1832662,1832756,1832800,1832944,1833173 +/ofbiz/ofbiz-framework/trunk:1819499,1819598,1819800,1819805,1819811,1820038,1820262,1820374-1820375,1820441,1820457,1820644,1820658,1820790,1820823,1820949,1820966,1821012,1821036,1821112,1821115,1821144,1821186,1821219,1821226,1821230,1821386,1821613,1821628,1821965,1822125,1822310,1822377,1822383,1822393,1823467,1823562,1823876,1824314,1824316,1824732,1824803,1824847,1824855,1825192,1825211,1825216,1825233,1825450,1826374,1826502,1826592,1826671,1826674,1826805,1826938,1826997,1827439,1828255,1828316,1828346,1828424,1828512,1828514,1829690,1830936,1831074,1831078,1831234,1831608,1831831,1832577,1832662,1832756,1832800,1832944,1833173,1833211 Modified: ofbiz/ofbiz-framework/branches/release17.12/applications/content/src/main/java/org/apache/ofbiz/content/data/DataEvents.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/branches/release17.12/applications/content/src/main/java/org/apache/ofbiz/content/data/DataEvents.java?rev=1833212&r1=1833211&r2=1833212&view=diff ============================================================================== --- ofbiz/ofbiz-framework/branches/release17.12/applications/content/src/main/java/org/apache/ofbiz/content/data/DataEvents.java (original) +++ ofbiz/ofbiz-framework/branches/release17.12/applications/content/src/main/java/org/apache/ofbiz/content/data/DataEvents.java Fri Jun 8 20:38:19 2018 @@ -18,7 +18,6 @@ *******************************************************************************/ package org.apache.ofbiz.content.data; -import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -281,7 +280,7 @@ public class DataEvents { } OutputStream os = response.getOutputStream(); Map<String, Object> resourceData = DataResourceWorker.getDataResourceStream(dataResource, "", application.getInitParameter("webSiteId"), UtilHttp.getLocale(request), application.getRealPath("/"), false); - os.write(IOUtils.toByteArray((ByteArrayInputStream)resourceData.get("stream"))); + os.write(IOUtils.toByteArray((InputStream)resourceData.get("stream"))); os.flush(); } catch (GeneralException | IOException e) { String errMsg = "Error downloading digital product content: " + e.toString(); Modified: ofbiz/ofbiz-framework/branches/release17.12/applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/branches/release17.12/applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java?rev=1833212&r1=1833211&r2=1833212&view=diff ============================================================================== --- ofbiz/ofbiz-framework/branches/release17.12/applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java (original) +++ ofbiz/ofbiz-framework/branches/release17.12/applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java Fri Jun 8 20:38:19 2018 @@ -1132,7 +1132,7 @@ public class DataResourceWorker impleme public static ByteBuffer getContentAsByteBuffer(Delegator delegator, String dataResourceId, String https, String webSiteId, Locale locale, String rootDir) throws IOException, GeneralException { GenericValue dataResource = EntityQuery.use(delegator).from("DataResource").where("dataResourceId", dataResourceId).queryOne(); Map<String, Object> resourceData = DataResourceWorker.getDataResourceStream(dataResource, https, webSiteId, locale, rootDir, false); - ByteArrayInputStream stream = (ByteArrayInputStream) resourceData.get("stream"); + InputStream stream = (InputStream) resourceData.get("stream"); ByteBuffer byteBuffer = ByteBuffer.wrap(IOUtils.toByteArray(stream)); return byteBuffer; } Modified: ofbiz/ofbiz-framework/branches/release17.12/applications/order/src/main/java/org/apache/ofbiz/order/order/OrderEvents.java URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/branches/release17.12/applications/order/src/main/java/org/apache/ofbiz/order/order/OrderEvents.java?rev=1833212&r1=1833211&r2=1833212&view=diff ============================================================================== --- ofbiz/ofbiz-framework/branches/release17.12/applications/order/src/main/java/org/apache/ofbiz/order/order/OrderEvents.java (original) +++ ofbiz/ofbiz-framework/branches/release17.12/applications/order/src/main/java/org/apache/ofbiz/order/order/OrderEvents.java Fri Jun 8 20:38:19 2018 @@ -18,8 +18,8 @@ *******************************************************************************/ package org.apache.ofbiz.order.order; -import java.io.ByteArrayInputStream; import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; import java.math.BigDecimal; import java.util.HashMap; @@ -80,7 +80,7 @@ public class OrderEvents { OutputStream os = response.getOutputStream(); GenericValue dataResource = EntityQuery.use(delegator).from("DataResource").where("dataResourceId", dataResourceId).cache().queryOne(); Map<String, Object> resourceData = DataResourceWorker.getDataResourceStream(dataResource, "", application.getInitParameter("webSiteId"), UtilHttp.getLocale(request), application.getRealPath("/"), false); - os.write(IOUtils.toByteArray((ByteArrayInputStream) resourceData.get("stream"))); + os.write(IOUtils.toByteArray((InputStream) resourceData.get("stream"))); os.flush(); } catch (GeneralException | IOException e) { String errMsg = "Error downloading digital product content: " + e.toString(); @@ -106,9 +106,9 @@ public class OrderEvents { if (selectedItems != null) { for (String selectedItem : selectedItems) { - String [] orderItemSeqIdAndOrderItemShipGrpId = selectedItem.split(":"); - String orderItemSeqId = orderItemSeqIdAndOrderItemShipGrpId[0]; - String shipGroupSeqId = orderItemSeqIdAndOrderItemShipGrpId[1]; + String [] orderItemSeqIdAndOrderItemShipGrpId = selectedItem.split(":"); + String orderItemSeqId = orderItemSeqIdAndOrderItemShipGrpId[0]; + String shipGroupSeqId = orderItemSeqIdAndOrderItemShipGrpId[1]; BigDecimal cancelQuantity = new BigDecimal(request.getParameter("iqm_"+orderItemSeqId+":"+shipGroupSeqId)); Map<String, Object> contextMap = new HashMap<>(); contextMap.put("orderId", orderId); |
Free forum by Nabble | Edit this page |