@Override public void destroyObject(final TypeNameKeyWithIndices key, final PooledObject<Writer> p) throws Exception { super.destroyObject(key, p); p.getObject().close(); }
@Override public void activateObject(ThriftClientKey key, PooledObject<TServiceClient> p) throws Exception { super.activateObject(key, p); ThriftClientPooledObject<TServiceClient> pooledObject = (ThriftClientPooledObject<TServiceClient>) p; Span span = this.tracer .nextSpan() .name(key.getServiceName()) .kind(Span.Kind.CLIENT) .start(); pooledObject.setSpan(span); TTransport transport = pooledObject.getObject().getOutputProtocol().getTransport(); injectTraceHeaders(span, transport); }
@Override public void passivateObject(ThriftClientKey key, PooledObject<TServiceClient> p) throws Exception { ThriftClientPooledObject<TServiceClient> pooledObject = (ThriftClientPooledObject<TServiceClient>) p; TTransport transport = pooledObject.getObject().getOutputProtocol().getTransport(); if (transport instanceof THttpClient) { ((THttpClient) transport).setCustomHeaders(null); } else { ((TLoadBalancerClient) transport).setCustomHeaders(null); } resetAndClose(p); super.passivateObject(key, pooledObject); if (pooledObject.getSpan() != null) { Span span = pooledObject.getSpan(); span.finish(); } }
@Override public void destroyObject(HostAndPort hostAndPort, PooledObject<SocketWriter> socketWriterRef) throws Exception { super.destroyObject(hostAndPort, socketWriterRef); SocketWriter socketWriter = socketWriterRef.getObject(); socketWriter.close(); socketWriter.getDatagramSocket().close(); } }
@Override public void destroyObject(HostAndPort hostAndPort, PooledObject<SocketWriter> socketWriterRef) throws Exception { super.destroyObject(hostAndPort, socketWriterRef); SocketWriter socketWriter = socketWriterRef.getObject(); socketWriter.close(); socketWriter.getSocket().close(); }
@Override public void destroyObject(SocketConnectionInfos socketConnectionInfos, PooledObject<SocketOutputStream> socketOutputStream) throws Exception { super.destroyObject(socketConnectionInfos, socketOutputStream); SocketOutputStream outputStream = socketOutputStream.getObject(); JOrphanUtils.closeQuietly(outputStream); JOrphanUtils.closeQuietly(outputStream.getSocket()); }