Class LeakTrackingByteBufferPool

  • All Implemented Interfaces:
    ByteBufferPool, org.eclipse.jetty.util.component.Container, org.eclipse.jetty.util.component.Destroyable, org.eclipse.jetty.util.component.Dumpable, org.eclipse.jetty.util.component.Dumpable.DumpableContainer, org.eclipse.jetty.util.component.LifeCycle

    @ManagedObject
    public class LeakTrackingByteBufferPool
    extends org.eclipse.jetty.util.component.ContainerLifeCycle
    implements ByteBufferPool
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopException
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container

        org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.Listener
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable

        org.eclipse.jetty.util.component.Dumpable.DumpableContainer
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle

        org.eclipse.jetty.util.component.LifeCycle.Listener
    • Field Summary

      • Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        FAILED, STARTED, STARTING, STOPPED, STOPPING
      • Fields inherited from interface org.eclipse.jetty.util.component.Dumpable

        KEY
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.nio.ByteBuffer acquire​(int size, boolean direct)
      Requests a ByteBuffer of the given size.
      void clearTracking()
      Clears the tracking data returned by getLeakedAcquires(), getLeakedReleases(), getLeakedResources().
      long getLeakedAcquires()  
      long getLeakedReleases()  
      long getLeakedRemoves()  
      long getLeakedResources()  
      protected void leaked​(org.eclipse.jetty.util.LeakDetector.LeakInfo leakInfo)  
      void release​(java.nio.ByteBuffer buffer)
      Returns a ByteBuffer, usually obtained with ByteBufferPool.acquire(int, boolean) (but not necessarily), making it available for recycling and reuse.
      void remove​(java.nio.ByteBuffer buffer)
      Removes a ByteBuffer that was previously obtained with ByteBufferPool.acquire(int, boolean).
      • Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle

        addBean, addBean, addEventListener, addManaged, contains, destroy, doStart, doStop, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeans
      • Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.eclipse.jetty.util.component.Container

        getCachedBeans, getEventListeners
      • Methods inherited from interface org.eclipse.jetty.util.component.Dumpable

        dumpSelf
      • Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer

        isDumpable
    • Constructor Detail

      • LeakTrackingByteBufferPool

        public LeakTrackingByteBufferPool​(ByteBufferPool delegate)
    • Method Detail

      • acquire

        public java.nio.ByteBuffer acquire​(int size,
                                           boolean direct)
        Description copied from interface: ByteBufferPool

        Requests a ByteBuffer of the given size.

        The returned buffer may have a bigger capacity than the size being requested but it will have the limit set to the given size.

        Specified by:
        acquire in interface ByteBufferPool
        Parameters:
        size - the size of the buffer
        direct - whether the buffer must be direct or not
        Returns:
        the requested buffer
        See Also:
        ByteBufferPool.release(ByteBuffer)
      • getLeakedAcquires

        @ManagedAttribute("The number of acquires that produced a leak")
        public long getLeakedAcquires()
        Returns:
        count of ByteBufferPool.acquire() calls that detected a leak
      • getLeakedReleases

        @ManagedAttribute("The number of releases that produced a leak")
        public long getLeakedReleases()
        Returns:
        count of ByteBufferPool.release() calls that detected a leak
      • getLeakedRemoves

        @ManagedAttribute("The number of removes that produced a leak")
        public long getLeakedRemoves()
        Returns:
        count of ByteBufferPool.remove() calls that detected a leak
      • getLeakedResources

        @ManagedAttribute("The number of resources that were leaked")
        public long getLeakedResources()
        Returns:
        count of resources that were acquired but not released
      • leaked

        protected void leaked​(org.eclipse.jetty.util.LeakDetector.LeakInfo leakInfo)