feign-form icon indicating copy to clipboard operation
feign-form copied to clipboard

Open Feign uploading multipart file fails with OOM. File only 287MB

Open andreainfogix opened this issue 1 year ago • 0 comments

Hello,

When uploading a multipart file via a feign client, the OOM is raised with the following stack. File zipped in bz2 format required by the server with only 287MB. I know some people experienced this issue with larger files. Did anyone find a solution to overcome this? thanks

	<detail xsi:type="javaExceptionDetail">
		<message>
			<![CDATA[Java heap space]]>
		</message>
		<class>
			<![CDATA[java.lang.OutOfMemoryError]]>
		</class>
		<frames>
			<frame class="java.util.Arrays" method="copyOf" file="Arrays.java" line="3745"/>
			<frame class="java.io.ByteArrayOutputStream" method="grow" file="ByteArrayOutputStream.java" line="120"/>
			<frame class="java.io.ByteArrayOutputStream" method="ensureCapacity" file="ByteArrayOutputStream.java" line="95"/>
			<frame class="java.io.ByteArrayOutputStream" method="write" file="ByteArrayOutputStream.java" line="156"/>
			<frame class="feign.form.multipart.Output" method="write" file="Output.java" line="80"/>
			<frame class="feign.form.multipart.SingleFileWriter" method="write" file="SingleFileWriter.java" line="51"/>
			<frame class="feign.form.multipart.AbstractWriter" method="write" file="AbstractWriter.java" line="36"/>
			<frame class="feign.form.multipart.PojoWriter" method="write" file="PojoWriter.java" line="52"/>
			<frame class="feign.form.MultipartFormContentProcessor" method="process" file="MultipartFormContentProcessor.java" line="87"/>
			<frame class="feign.form.FormEncoder" method="encode" file="FormEncoder.java" line="105"/>
			<frame class="feign.ReflectiveFeign$BuildFormEncodedTemplateFromArgs" method="resolve" file="ReflectiveFeign.java" line="358"/>
			<frame class="feign.ReflectiveFeign$BuildTemplateByResolvingArgs" method="create" file="ReflectiveFeign.java" line="232"/>
			<frame class="feign.SynchronousMethodHandler" method="invoke" file="SynchronousMethodHandler.java" line="84"/>
			<frame class="feign.ReflectiveFeign$FeignInvocationHandler" method="invoke" file="ReflectiveFeign.java" line="100"/>
			<frame class="com.sun.proxy.$Proxy12" method="uploadDataStoreFile"/>
			<frame class="com.lavastorm.brain.nodes.data3Sixty.publish.RequestProcessor" method="invokeFileUpload" file="RequestProcessor.java" line="131"/>
			<frame class="com.lavastorm.brain.nodes.data3Sixty.publish.Data3SixtyPublish" method="processAll" file="Data3SixtyPublish.java" line="206"/>
			<frame class="com.lavastorm.brain.execution.java.node.NodeWrapper" method="nodeProcess" file="NodeWrapper.java" line="701"/>
			<frame class="com.lavastorm.brain.execution.java.node.NodeWrapper" method="run" file="NodeWrapper.java" line="975"/>
			<frame class="com.lavastorm.brain.execution.java.node.NodeWrapper" method="main" file="NodeWrapper.java" line="1802"/>
			<frame class="jdk.internal.reflect.NativeMethodAccessorImpl" method="invoke0" file="NativeMethodAccessorImpl.java" line="-2"/>
			<frame class="jdk.internal.reflect.NativeMethodAccessorImpl" method="invoke" file="NativeMethodAccessorImpl.java" line="62"/>
			<frame class="jdk.internal.reflect.DelegatingMethodAccessorImpl" method="invoke" file="DelegatingMethodAccessorImpl.java" line="43"/>
			<frame class="java.lang.reflect.Method" method="invoke" file="Method.java" line="566"/>
			<frame class="com.lavastorm.util.app.SimpleAppWrapper" method="invokeMainMethod" file="SimpleAppWrapper.java" line="115"/>
			<frame class="com.lavastorm.util.app.SimpleAppWrapper" method="run" file="SimpleAppWrapper.java" line="143"/>
			<frame class="com.lavastorm.util.app.AbstractAppWrapperFactory" method="main" file="AbstractAppWrapperFactory.java" line="58"/>
		</frames>
	</detail>

andreainfogix avatar Sep 19 '24 11:09 andreainfogix