<!-- 
RSS generated by JIRA (8.1.3#801003-sha1:6b6f07cffadda9a0d6efe24639daed8ce94dcdd6) at Sat Feb 10 05:51:19 GMT 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Rivet Logic Corporation JIRA </title>
    <link>https://issues.rivetlogic.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.1.3</version>
        <build-number>801003</build-number>
        <build-date>13-09-2019</build-date>
    </build-info>


<item>
            <title>[CMA-16] Improve the readContentIntoStream(..) method in ContentService</title>
                <link>https://issues.rivetlogic.com/browse/CMA-16</link>
                <project id="10015" key="CMA">Remote Alfresco API rivet</project>
                    <description>Improve the readContentIntoStream(..) method in ContentService to prevent an OutOfMemoryError because the stream from Alfresco to CMA fills up faster than the stream from CMA to the client is flushing. Currently, a quick fix would be to increase the memory in the JVM running CMA, or to run CMA on a different box than Alfresco (to make it slower).&lt;br/&gt;
&lt;br/&gt;
With default settings for memory, and if running both JVMs on the same machine, the CMA JVM is out of memory when downloading a file of size around 32MB.</description>
                <environment></environment>
        <key id="11011">CMA-16</key>
            <summary>Improve the readContentIntoStream(..) method in ContentService</summary>
                <type id="4" iconUrl="https://issues.rivetlogic.com/secure/viewavatar?size=xsmall&amp;avatarId=11090&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://issues.rivetlogic.com/images/icons/priorities/major.svg">Major</priority>
                        <status id="1" iconUrl="https://issues.rivetlogic.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="nattar">Nazem Attar [X]</reporter>
                        <labels>
                    </labels>
                <created>Tue, 17 Jun 2008 09:43:16 -0400</created>
                <updated>Fri, 15 Oct 2010 10:50:39 -0400</updated>
                                                                            <component>CMA API</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>0</watches>
                                                                <comments>
                            <comment id="20339" author="skhaja" created="Tue, 10 Feb 2009 11:04:30 -0500"  >This error is probably occuring here in the RestExecuterImpl.java&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;executeHttpMethod(httpMethod);&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String responseType = getResponseType(httpMethod);&lt;br/&gt;
	if (responseType.equals(CmaConstants.RESPONSE_BINARY)) {&lt;br/&gt;
	    writeToStream(httpMethod.getResponseBodyAsStream(), output);&lt;br/&gt;
&lt;br/&gt;
When this call is made, getResponseBodyAsStream is the whole file that is already loaded into the memory.&lt;br/&gt;
&lt;br/&gt;
Java 1.5 HttpURLConnection supports  something called setChunkedStreamingMode&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/java/net/HttpURLConnection.html#setChunkedStreamingMode(int)&quot;&gt;http://java.sun.com/j2se/1.5.0/docs/api/java/net/HttpURLConnection.html#setChunkedStreamingMode(int)&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
Also HttpURLConnection of commons httpClient supports this from the super class.&lt;br/&gt;
&lt;br/&gt;
&lt;a href=&quot;http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/util/HttpURLConnection.html&quot;&gt;http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/util/HttpURLConnection.html&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
This may solve the issue that we have with OutOfMemoryError.&lt;br/&gt;
&lt;br/&gt;
-Shagul&lt;br/&gt;
&amp;nbsp;&lt;br/&gt;
		</comment>
                            <comment id="20340" author="skhaja" created="Tue, 10 Feb 2009 11:06:12 -0500"  >&lt;a href=&quot;https://issues.rivetlogic.com/browse/CMA-16&quot; title=&quot;Improve the readContentIntoStream(..) method in ContentService&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CMA-16&quot;&gt;CMA-16&lt;/a&gt; and &lt;a href=&quot;https://issues.rivetlogic.com/browse/CMA-23&quot; title=&quot;Uploading large files throws OutOfMemoryError for the Java heap space&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CMA-23&quot;&gt;CMA-23&lt;/a&gt; are related. Solving one may solve the other.</comment>
                            <comment id="20352" author="skhaja" created="Wed, 11 Feb 2009 07:49:27 -0500"  >This issue is fixed and happens only while using seam with richfaces on the client side.&lt;br/&gt;
&lt;br/&gt;
RestExecuterImpl execute method is reading from an input stream and writing into an output stream.&lt;br/&gt;
&lt;br/&gt;
There is no obvious buffering.&lt;br/&gt;
&lt;br/&gt;
When using seam with richfaces, all output stream pass through the ajax4jsf filter which was doing the buffering.&lt;br/&gt;
&lt;br/&gt;
The hint was in the stackTrace.&lt;br/&gt;
&lt;br/&gt;
Caused by: java.lang.OutOfMemoryError: Java heap space&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.ajax4jsf.io.ByteBuffer.&amp;lt;init&amp;gt;(ByteBuffer.java:54)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.ajax4jsf.io.ByteBuffer.append(ByteBuffer.java:112)&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.ajax4jsf.io.FastBufferOutputStream.write(FastBufferOutputStream.java:107)&lt;br/&gt;
&lt;br/&gt;
Adding the below to components.xml prevents the filter from being applied to /seam/resource/alfdocument* pattern.&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;web:ajax4jsf-filter force-parser=&amp;quot;true&amp;quot; &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enable-cache=&amp;quot;true&amp;quot; &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log4j-init-file=&amp;quot;log4j.xml&amp;quot; &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;regex-url-pattern=&amp;quot;^(?:[^/]|/(?!seam/resource/alfdocument))*$&amp;quot;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/&amp;gt; &lt;br/&gt;
&lt;br/&gt;
In earlier versions while using just ajax4jsf these filter exceptions can be placed in web.xml.&lt;br/&gt;
&lt;br/&gt;
Change the regular expression accordingly to avoid ajax4jsf filter.&lt;br/&gt;
&lt;br/&gt;
So the issue is not with Raar buffering. Further testing is being done to see if all other ajax calls from the apps are working.&lt;br/&gt;
&lt;br/&gt;
Any finding will be updated here.&lt;br/&gt;
&lt;br/&gt;
-Shagul</comment>
                            <comment id="20358" author="skhaja" created="Wed, 11 Feb 2009 09:15:13 -0500"  >If you get an error like &lt;br/&gt;
&lt;br/&gt;
java.lang.NoClassDefFoundError: org/cyberneko/html/HTMLAugmentations&lt;br/&gt;
&lt;br/&gt;
Add the below dependency to your seam/richfaces project.&lt;br/&gt;
&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;dependency&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;			&amp;lt;groupId&amp;gt;nekohtml&amp;lt;/groupId&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;			&amp;lt;artifactId&amp;gt;nekohtml&amp;lt;/artifactId&amp;gt;&lt;br/&gt;
&amp;nbsp;&amp;nbsp;			&amp;lt;version&amp;gt;0.9.5&amp;lt;/version&amp;gt;&lt;br/&gt;
		&amp;lt;/dependency&amp;gt;&lt;br/&gt;
&lt;br/&gt;
Any other NoClassDefFoundError, include the appropriate maven dependencies/jars.&lt;br/&gt;
&lt;br/&gt;
-Shagul</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10001">
                    <name>Duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="11140">CMA-23</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                        <customfield id="customfield_11470" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_11170" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i00adr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10070" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1683</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>