Temporary destinations that created are bound to the underlying connection. If the connection is destroyed, then the temp destinations that bound to the connection will be destroyed.
In the case that a PooledConnectionFactory is used, the underlying connection won't be destroyed even though PooledConnection.close() is called. Instead it is returned back to the pool. Thus, the temp desinations that created would never be destroyed and all of them would be accumulated until the connection is destroyed.
We should delete the temp destinations every time when the PooledConnection.close() is called to avoid accumulation of the temporary destinations.