[
https://issues.apache.org/jira/browse/AMQ-4182?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish updated AMQ-4182:
------------------------------
Priority: Minor (was: Major)
> Memory Leak for ActiveMQBytesMessage with Compression as true
> -------------------------------------------------------------
>
> Key: AMQ-4182
> URL: https://issues.apache.org/jira/browse/AMQ-4182
> Project: ActiveMQ
> Issue Type: Bug
> Components: JMS client
> Affects Versions: 5.5.1
> Environment: Linux(Redhat 5.5), Windows 7
> Reporter: Jeff Huang
> Priority: Minor
>
> InflaterInputStream is supposed to close explicitly to release resource
> allocated by its JNI methods. In ActiveMQBytesMessage, dataIn property is
> disposed simply without closing it, which results in some weird memory leak
> that can't be detected from heap size. It can't be controlled by -Xmx or
> -XX:MaxDirectMemorySize.
> Please run the following test program to verify the issue:
> import java.util.concurrent.TimeUnit;
> import javax.jms.BytesMessage;
> import javax.jms.Connection;
> import javax.jms.Session;
> import org.apache.activemq.ActiveMQConnectionFactory;
> import org.apache.activemq.command.ActiveMQBytesMessage;
> /**
> * A simple test to verify memory leak in ActiveMQBytesMessage.
> */
> public class Main
> {
> public static void main(String[] args) throws Exception
> {
> ActiveMQConnectionFactory connFactory = new
> ActiveMQConnectionFactory("vm://localhost");
> connFactory.setUseCompression(true);
> Connection conn = connFactory.createConnection();
> Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
> BytesMessage message = session.createBytesMessage();
>
> message.writeBytes(new byte[1024]);
> ActiveMQBytesMessage m = (ActiveMQBytesMessage)message;
> if(!m.isCompressed())
> {
> throw new RuntimeException();
> }
>
>
> while (true)
> {
> for (int k = 0; k < 1024; ++k)
> {
> message.reset();
> byte[] data = new byte[1024];
> message.readBytes(data);
> }
> TimeUnit.MILLISECONDS.sleep(10);
> }
> }
> }
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira