<!DOCTYPE html>

<html lang="en">
<head>
    <title>5.15 - Reference Counting Filter &mdash; Apache MINA</title>

    <link href="/assets/css/common.css" rel="stylesheet" type="text/css"/>
    <link href="/assets/css/mina.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<script src="https://www.apachecon.com/event-images/snippet.js"></script>
<div id="container">
    <div id="header">
    <div id="subProjectsNavBar">
        <a href="/">
            
                Apache MINA Project
            
        </a>
        &nbsp;|&nbsp;
        <a href="/mina-project/">
            
                <strong>MINA</strong>
            
        </a>
        &nbsp;|&nbsp;
        <a href="/asyncweb-project/">
            
                AsyncWeb
            
        </a>
        &nbsp;|&nbsp;
        <a href="/ftpserver-project/">
            
                FtpServer
            
        </a>
        &nbsp;|&nbsp;
        <a href="/sshd-project/">
            
                SSHD
            
        </a>
        &nbsp;|&nbsp;
        <a href="/vysper-project/">
            
                Vysper
            
        </a>
    </div>
</div>


    <div id="content">
        <div id="leftColumn">
            <div id="navigation">
                <a class="acevent" data-format="wide" data-width="170"></a>
                <h5>Social Networks</h5>
                <ul>
                    <li><a href="https://fosstodon.org/@apachemina">Apache MINA Mastodon</a></li>
                </ul>
                <h5>Latest Downloads</h5>
                <ul>
                    <li><a href="/mina-project/downloads_2_0.html">Mina 2.0.25</a></li>
                    <li><a href="/mina-project/downloads_2_1.html">Mina 2.1.8</a></li>
                    <li><a href="/mina-project/downloads_2_2.html">Mina 2.2.3</a></li>
                    <li><a href="/mina-project/downloads_old.html">Mina old versions</a></li>
                </ul>
                <h5>Documentation</h5>
                <ul>
                    <li><a href="/mina-project/documentation.html" class="external-link" rel="nofollow">Base documentation</a></li>
                    <li><a href="/mina-project/userguide/user-guide-toc.html" class="external-link" rel="nofollow">User guide</a></li>
                    <li><a href="/mina-project/2.2-vs-2.1.html" class="external-link" rel="nofollow">2.2 vs 2.1</a></li>
                    <li><a href="/mina-project/2.1-vs-2.0.html" class="external-link" rel="nofollow">2.1 vs 2.0</a></li>
                    <li><a href="/mina-project/features.html" class="external-link" rel="nofollow">Features</a></li>
                    <li><a href="/mina-project/road-map.html" class="external-link" rel="nofollow">Road Map</a></li>
                    <li><a href="/mina-project/quick-start-guide.html" class="external-link" rel="nofollow">Quick Start Guide</a></li>
                    <li><a href="/mina-project/faq.html" class="external-link" rel="nofollow">FAQ</a></li>
                </ul>
                <h5>Resources</h5>
                <ul>
                    <li><a href="/mina-project/mailing-lists.html" class="external-link" rel="nofollow">Mailing lists &amp; IRC</a></li>
                    <li><a href="/mina-project/issue-tracking.html" class="external-link" rel="nofollow">Issue tracking</a></li>
                    <li><a href="/mina-project/sources.html" class="external-link" rel="nofollow">Sources</a></li>
                    <li><a href="/mina-project/gen-docs/latest-2.0/apidocs/index.html" class="external-link" rel="nofollow">API Javadoc 2.0.25</a></li>
                    <li><a href="/mina-project/gen-docs/latest-2.1/apidocs/index.html" class="external-link" rel="nofollow">API Javadoc 2.1.8</a></li>
                    <li><a href="/mina-project/gen-docs/latest-2.2/apidocs/index.html" class="external-link" rel="nofollow">API Javadoc 2.2.3</a></li>
                    <li><a href="/mina-project/gen-docs/latest-2.0/xref/index.html" class="external-link" rel="nofollow">API xref  2.0.25</a></li>
                    <li><a href="/mina-project/gen-docs/latest-2.1/xref/index.html" class="external-link" rel="nofollow">API xref 2.1.8</a></li>
                    <li><a href="/mina-project/gen-docs/latest-2.2/xref/index.html" class="external-link" rel="nofollow">API xref 2.2.3</a></li>
                    <li><a href="/mina-project/performances.html" class="external-link" rel="nofollow">Performances</a></li>
                    <li><a href="/mina-project/testimonials.html" class="external-link" rel="nofollow">Testimonials</a></li>
                    <li><a href="/mina-project/conferences.html" class="external-link" rel="nofollow">Conferences</a></li>
                    <li><a href="/mina-project/developer-guide.html" class="external-link" rel="nofollow">Developers Guide</a></li>
                    <li><a href="/mina-project/related-projects.html" class="external-link" rel="nofollow">Related Projects</a></li>
                    <li><a href="https://people.apache.org/~vgritsenko/stats/projects/mina.html" class="external-link" rel="nofollow">Statistics</a></li>
                </ul>

                <h5>Community</h5>
                <ul>
                    <li><a href="https://www.apache.org/foundation/contributing.html" class="external-link" rel="nofollow">Contributing</a></li>
                    <li><a href="/contributors.html" class="external-link" rel="nofollow">Team</a></li>
                    <li><a href="/special-thanks.html" class="external-link" rel="nofollow">Special Thanks</a></li>
                    <li><a href="https://www.apache.org/security/" class="external-link" rel="nofollow">Security</a></li>
                </ul>

                <h5>About Apache</h5>
                <ul>
                    <li><a href="https://www.apache.org" class="external-link" rel="nofollow">Apache main site</a></li>
                    <li><a href="https://www.apache.org/licenses/" class="external-link" rel="nofollow">License</a></li>
                    <li><a href="https://www.apache.org/foundation/sponsorship.html" title="The ASF sponsorship program" class="external-link" rel="nofollow">Sponsorship program</a></li>
                    <li><a href="https://www.apache.org/foundation/thanks.html" class="external-link" rel="nofollow">Thanks</a></li>
                </ul>

                <h3><a name="Navigation-Upcoming"></a>Upcoming</h3>
                <ul>
                    <li>No event</li>
                </ul>
            </div>
        </div>
        <div id="rightColumn">
            
    <div class="nav">
        <div class="nav_prev">
            
                
                <a href="ch5.14-proxy-filter.html">5.14 - Proxy Filter</a>
            
        </div>
        <div class="nav_up">
            
                
                <a href="ch5-filters.html">Chapter 5 - Filters</a>
            
        </div>
        <div class="nav_next">
            
                
                <a href="ch5.16-request-response-filter.html">5.16 - Request/Response Filter</a>
            
        </div>
        <div class="clearfix"></div>
    </div>


            
	<h1 id="515---reference-counting-filter">5.15 - Reference Counting Filter</h1>
<p>TBD&hellip;</p>


            
    <div class="nav">
        <div class="nav_prev">
            
                
                <a href="ch5.14-proxy-filter.html">5.14 - Proxy Filter</a>
            
        </div>
        <div class="nav_up">
            
                
                <a href="ch5-filters.html">Chapter 5 - Filters</a>
            
        </div>
        <div class="nav_next">
            
                
                <a href="ch5.16-request-response-filter.html">5.16 - Request/Response Filter</a>
            
        </div>
        <div class="clearfix"></div>
    </div>


        </div>
        <div id="endContent"></div>
    </div>

    <div id="footer">
    &copy; 2003-2024, <a href="https://www.apache.org">The Apache Software Foundation</a> - <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a><br />
    Apache MINA, MINA, Apache Vysper, Vysper, Apache SSHd, SSHd, Apache FtpServer, FtpServer, Apache AsyncWeb, AsyncWeb,
    Apache, the Apache feather logo, and the Apache Mina project logos are trademarks of The Apache Software Foundation.
</div>

</div>

</body>

</html>
