org.opends.server.protocols.jmx
Class JmxClientConnection

java.lang.Object
  extended by org.opends.server.api.ClientConnection
      extended by org.opends.server.protocols.jmx.JmxClientConnection
All Implemented Interfaces:
java.util.EventListener, javax.management.NotificationListener

public class JmxClientConnection
extends ClientConnection
implements javax.management.NotificationListener

This class defines the set of methods and structures that must be implemented by a Directory Server client connection.


Field Summary
protected  java.lang.String jmxConnectionID
          The JMX connection ID for this client connection.
 
Constructor Summary
JmxClientConnection(JmxConnectionHandler jmxConnectionHandler, AuthenticationInfo authInfo)
          Creates a new Jmx client connection that will be authenticated as as the specified user.
 
Method Summary
 boolean bindInProgress()
          Indicates whether a bind operation is in progress on this client connection.
 void cancelAllOperations(CancelRequest cancelRequest)
          Attempts to cancel all operations in progress on this connection.
 void cancelAllOperationsExcept(CancelRequest cancelRequest, int messageID)
          Attempts to cancel all operations in progress on this connection except the operation with the specified message ID.
 CancelResult cancelOperation(int messageID, CancelRequest cancelRequest)
          Attempts to cancel the specified operation.
 void disconnect(DisconnectReason disconnectReason, boolean sendNotification, Message message)
          Closes the connection to the client, optionally sending it a message indicating the reason for the closure.
protected  void finalize()
          Called by the Gc when the object is garbage collected Release the cursor in case the iterator was badly used and releaseCursor was never called.
 java.lang.String getClientAddress()
          Retrieves a string representation of the address of the client.
 ConnectionHandler getConnectionHandler()
          Retrieves the connection handler that accepted this client connection.
 long getConnectionID()
          Retrieves the unique identifier that has been assigned to this connection.
 ConnectionSecurityProvider getConnectionSecurityProvider()
          Retrieves the connection security provider for this client connection.
 java.net.InetAddress getLocalAddress()
          Retrieves the java.net.InetAddress for the Directory Server system to which the client has established the connection.
 java.lang.String getMonitorSummary()
          Retrieves a one-line summary of this client connection in a form that is suitable for including in the monitor entry for the associated connection handler.
 AbstractOperation getOperationInProgress(int messageID)
          Retrieves the operation in progress with the specified message ID.
 java.util.Collection<AbstractOperation> getOperationsInProgress()
          Retrieves the set of operations in progress for this client connection.
 java.lang.String getProtocol()
          Retrieves the protocol that the client is using to communicate with the Directory Server.
 java.net.InetAddress getRemoteAddress()
          Retrieves the java.net.InetAddress associated with the remote client system.
 java.lang.String getSecurityMechanism()
          Retrieves the human-readable name of the security mechanism that is used to protect communication with this client.
 java.lang.String getServerAddress()
          Retrieves a string representation of the address on the server to which the client connected.
 void handleNotification(javax.management.Notification notif, java.lang.Object handback)
          
 boolean isSecure()
          Indicates whether this client connection is currently using a secure mechanism to communicate with the server.
 int nextMessageID()
          Retrieves the message ID that should be used for the next Jmx operation.
 long nextOperationID()
          Retrieves the operation ID that should be used for the next Jmx operation.
 AddOperation processAdd(ASN1OctetString rawEntryDN, java.util.ArrayList<RawAttribute> rawAttributes)
          Processes an Jmx add operation with the provided information.
 AddOperation processAdd(DN entryDN, java.util.Map<ObjectClass,java.lang.String> objectClasses, java.util.Map<AttributeType,java.util.List<Attribute>> userAttributes, java.util.Map<AttributeType,java.util.List<Attribute>> operationalAttributes)
          Processes an internal add operation with the provided information.
 CompareOperation processCompare(ASN1OctetString rawEntryDN, java.lang.String attributeType, ASN1OctetString assertionValue)
          Processes an Jmx compare operation with the provided information.
 boolean processDataRead(java.nio.ByteBuffer buffer)
          Indicates that the data in the provided buffer has been read from the client and should be processed.
 DeleteOperation processDelete(ASN1OctetString rawEntryDN)
          Processes an Jmx delete operation with the provided information.
 DeleteOperation processDelete(DN entryDN)
          Processes an internal delete operation with the provided information.
 ExtendedOperation processExtendedOperation(java.lang.String requestOID, ASN1OctetString requestValue)
          Processes an Jmx extended operation with the provided information.
 ModifyOperation processModify(ASN1OctetString rawEntryDN, java.util.ArrayList<RawModification> rawModifications)
          Processes an Jmx modify operation with the provided information.
 ModifyOperation processModify(DN entryDN, java.util.List<Modification> modifications)
          Processes an internal modify operation with the provided information.
 ModifyDNOperation processModifyDN(ASN1OctetString rawEntryDN, ASN1OctetString rawNewRDN, boolean deleteOldRDN)
          Processes an Jmx modify DN operation with the provided information.
 ModifyDNOperation processModifyDN(ASN1OctetString rawEntryDN, ASN1OctetString rawNewRDN, boolean deleteOldRDN, ASN1OctetString rawNewSuperior)
          Processes an Jmx modify DN operation with the provided information.
 ModifyDNOperation processModifyDN(DN entryDN, RDN newRDN, boolean deleteOldRDN, DN newSuperior)
          Processes an internal modify DN operation with the provided information.
 InternalSearchOperation processSearch(ASN1OctetString rawBaseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, LDAPFilter filter, java.util.LinkedHashSet<java.lang.String> attributes)
          Processes an Jmx search operation with the provided information.
 InternalSearchOperation processSearch(ASN1OctetString rawBaseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, LDAPFilter filter, java.util.LinkedHashSet<java.lang.String> attributes, InternalSearchListener searchListener)
          Processes an Jmx search operation with the provided information.
 InternalSearchOperation processSearch(ASN1OctetString rawBaseDN, SearchScope scope, LDAPFilter filter)
          Processes an Jmx search operation with the provided information.
 boolean removeOperationInProgress(int messageID)
          Removes the provided operation from the set of operations in progress for this client connection.
protected  boolean sendIntermediateResponseMessage(IntermediateResponse intermediateResponse)
          Sends the provided intermediate response message to the client.
 void sendResponse(Operation operation)
          Sends a response to the client based on the information in the provided operation.
 void sendSearchEntry(SearchOperation searchOperation, SearchResultEntry searchEntry)
          Sends the provided search result entry to the client.
 boolean sendSearchReference(SearchOperation searchOperation, SearchResultReference searchReference)
          Sends the provided search result reference to the client.
 void setBindInProgress(boolean bindInProgress)
          Specifies whether a bind operation is in progress on this client connection.
 void setConnectionSecurityProvider(ConnectionSecurityProvider securityProvider)
          Specifies the connection security provider for this client connection.
 void toString(java.lang.StringBuilder buffer)
          Appends a string representation of this client connection to the provided buffer.
 
Methods inherited from class org.opends.server.api.ClientConnection
deregisterPersistentSearch, finalizeClientConnection, finalizeConnectionInternal, getAuthenticationInfo, getCertificateAlias, getConnectTime, getConnectTimeString, getGroups, getIdleTime, getIdleTimeLimit, getKeyManagerProviderDN, getLookthroughLimit, getMaxBlockedWriteTimeLimit, getNetworkGroup, getPersistentSearches, getSASLAuthStateInfo, getSizeLimit, getTimeLimit, getTrustManagerProviderDN, getWriteSelector, hasAllPrivileges, hasPrivilege, isMemberOf, mustChangePassword, registerPersistentSearch, sendIntermediateResponse, setAuthenticationInfo, setIdleTimeLimit, setLookthroughLimit, setMustChangePassword, setNetworkGroup, setSASLAuthStateInfo, setSizeLimit, setTimeLimit, setUnauthenticated, toString, updateAuthenticationInfo
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

jmxConnectionID

protected java.lang.String jmxConnectionID
The JMX connection ID for this client connection.

Constructor Detail

JmxClientConnection

public JmxClientConnection(JmxConnectionHandler jmxConnectionHandler,
                           AuthenticationInfo authInfo)
Creates a new Jmx client connection that will be authenticated as as the specified user.

Parameters:
jmxConnectionHandler - The connection handler on which we should be registered
authInfo - the User authentication info
Method Detail

handleNotification

public void handleNotification(javax.management.Notification notif,
                               java.lang.Object handback)

Specified by:
handleNotification in interface javax.management.NotificationListener

nextOperationID

public long nextOperationID()
Retrieves the operation ID that should be used for the next Jmx operation.

Returns:
The operation ID that should be used for the next Jmx operation.

nextMessageID

public int nextMessageID()
Retrieves the message ID that should be used for the next Jmx operation.

Returns:
The message ID that should be used for the next Jmx operation.

getConnectionID

public long getConnectionID()
Retrieves the unique identifier that has been assigned to this connection.

Specified by:
getConnectionID in class ClientConnection
Returns:
The unique identifier that has been assigned to this connection.

getConnectionHandler

public ConnectionHandler getConnectionHandler()
Retrieves the connection handler that accepted this client connection.

Specified by:
getConnectionHandler in class ClientConnection
Returns:
The connection handler that accepted this client connection.

getProtocol

public java.lang.String getProtocol()
Retrieves the protocol that the client is using to communicate with the Directory Server.

Specified by:
getProtocol in class ClientConnection
Returns:
The protocol that the client is using to communicate with the Directory Server.

getClientAddress

public java.lang.String getClientAddress()
Retrieves a string representation of the address of the client.

Specified by:
getClientAddress in class ClientConnection
Returns:
A string representation of the address of the client.

getServerAddress

public java.lang.String getServerAddress()
Retrieves a string representation of the address on the server to which the client connected.

Specified by:
getServerAddress in class ClientConnection
Returns:
A string representation of the address on the server to which the client connected.

getRemoteAddress

public java.net.InetAddress getRemoteAddress()
Retrieves the java.net.InetAddress associated with the remote client system.

Specified by:
getRemoteAddress in class ClientConnection
Returns:
The java.net.InetAddress associated with the remote client system. It may be null if the client is not connected over an IP-based connection.

getLocalAddress

public java.net.InetAddress getLocalAddress()
Retrieves the java.net.InetAddress for the Directory Server system to which the client has established the connection.

Specified by:
getLocalAddress in class ClientConnection
Returns:
The java.net.InetAddress for the Directory Server system to which the client has established the connection. It may be null if the client is not connected over an IP-based connection.

isSecure

public boolean isSecure()
Indicates whether this client connection is currently using a secure mechanism to communicate with the server. Note that this may change over time based on operations performed by the client or server (e.g., it may go from false to true if the client uses the StartTLS extended operation).

Specified by:
isSecure in class ClientConnection
Returns:
true if the client connection is currently using a secure mechanism to communicate with the server, or false if not.

getConnectionSecurityProvider

public ConnectionSecurityProvider getConnectionSecurityProvider()
Retrieves the connection security provider for this client connection.

Specified by:
getConnectionSecurityProvider in class ClientConnection
Returns:
The connection security provider for this client connection.

setConnectionSecurityProvider

public void setConnectionSecurityProvider(ConnectionSecurityProvider securityProvider)
Specifies the connection security provider for this client connection.

Specified by:
setConnectionSecurityProvider in class ClientConnection
Parameters:
securityProvider - The connection security provider to use for communication on this client connection.

getSecurityMechanism

public java.lang.String getSecurityMechanism()
Retrieves the human-readable name of the security mechanism that is used to protect communication with this client.

Specified by:
getSecurityMechanism in class ClientConnection
Returns:
The human-readable name of the security mechanism that is used to protect communication with this client, or null if no security is in place.

processDataRead

public boolean processDataRead(java.nio.ByteBuffer buffer)
Indicates that the data in the provided buffer has been read from the client and should be processed. The contents of the provided buffer will be in clear-text (the data may have been passed through a connection security provider to obtain the clear-text version), and may contain part or all of one or more client requests.

Specified by:
processDataRead in class ClientConnection
Parameters:
buffer - The byte buffer containing the data available for reading.
Returns:
true if all the data in the provided buffer was processed and the client connection can remain established, or false if a decoding error occurred and requests from this client should no longer be processed. Note that if this method does return false, then it must have already disconnected the client.

sendResponse

public void sendResponse(Operation operation)
Sends a response to the client based on the information in the provided operation.

Specified by:
sendResponse in class ClientConnection
Parameters:
operation - The operation for which to send the response.

processAdd

public AddOperation processAdd(ASN1OctetString rawEntryDN,
                               java.util.ArrayList<RawAttribute> rawAttributes)
Processes an Jmx add operation with the provided information.

Parameters:
rawEntryDN - The DN to use for the entry to add.
rawAttributes - The set of attributes to include in the entry to add.
Returns:
A reference to the add operation that was processed and contains information about the result of the processing.

processAdd

public AddOperation processAdd(DN entryDN,
                               java.util.Map<ObjectClass,java.lang.String> objectClasses,
                               java.util.Map<AttributeType,java.util.List<Attribute>> userAttributes,
                               java.util.Map<AttributeType,java.util.List<Attribute>> operationalAttributes)
Processes an internal add operation with the provided information.

Parameters:
entryDN - The entry DN for the add operation.
objectClasses - The set of objectclasses for the add operation.
userAttributes - The set of user attributes for the add operation.
operationalAttributes - The set of operational attributes for the add operation.
Returns:
A reference to the add operation that was processed and contains information about the result of the processing.

processDelete

public DeleteOperation processDelete(DN entryDN)
Processes an internal delete operation with the provided information.

Parameters:
entryDN - The entry DN for the delete operation.
Returns:
A reference to the delete operation that was processed and contains information about the result of the processing.

processCompare

public CompareOperation processCompare(ASN1OctetString rawEntryDN,
                                       java.lang.String attributeType,
                                       ASN1OctetString assertionValue)
Processes an Jmx compare operation with the provided information.

Parameters:
rawEntryDN - The entry DN for the compare operation.
attributeType - The attribute type for the compare operation.
assertionValue - The assertion value for the compare operation.
Returns:
A reference to the compare operation that was processed and contains information about the result of the processing.

processDelete

public DeleteOperation processDelete(ASN1OctetString rawEntryDN)
Processes an Jmx delete operation with the provided information.

Parameters:
rawEntryDN - The entry DN for the delete operation.
Returns:
A reference to the delete operation that was processed and contains information about the result of the processing.

processExtendedOperation

public ExtendedOperation processExtendedOperation(java.lang.String requestOID,
                                                  ASN1OctetString requestValue)
Processes an Jmx extended operation with the provided information.

Parameters:
requestOID - The OID for the extended request.
requestValue - The encoded +value for the extended operation, or null if there is no value.
Returns:
A reference to the extended operation that was processed and contains information about the result of the processing.

processModify

public ModifyOperation processModify(ASN1OctetString rawEntryDN,
                                     java.util.ArrayList<RawModification> rawModifications)
Processes an Jmx modify operation with the provided information.

Parameters:
rawEntryDN - The raw entry DN for this modify operation.
rawModifications - The set of modifications for this modify operation.
Returns:
A reference to the modify operation that was processed and contains information about the result of the processing

processModify

public ModifyOperation processModify(DN entryDN,
                                     java.util.List<Modification> modifications)
Processes an internal modify operation with the provided information.

Parameters:
entryDN - The entry DN for this modify operation.
modifications - The set of modifications for this modify operation.
Returns:
A reference to the modify operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(ASN1OctetString rawEntryDN,
                                         ASN1OctetString rawNewRDN,
                                         boolean deleteOldRDN)
Processes an Jmx modify DN operation with the provided information.

Parameters:
rawEntryDN - The current DN of the entry to rename.
rawNewRDN - The new RDN to use for the entry.
deleteOldRDN - The flag indicating whether the old RDN value is to be removed from the entry.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(ASN1OctetString rawEntryDN,
                                         ASN1OctetString rawNewRDN,
                                         boolean deleteOldRDN,
                                         ASN1OctetString rawNewSuperior)
Processes an Jmx modify DN operation with the provided information.

Parameters:
rawEntryDN - The current DN of the entry to rename.
rawNewRDN - The new RDN to use for the entry.
deleteOldRDN - The flag indicating whether the old RDN value is to be removed from the entry.
rawNewSuperior - The new superior for the modify DN operation, or null if the entry will remain below the same parent.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(DN entryDN,
                                         RDN newRDN,
                                         boolean deleteOldRDN,
                                         DN newSuperior)
Processes an internal modify DN operation with the provided information.

Parameters:
entryDN - The current DN of the entry to rename.
newRDN - The new RDN to use for the entry.
deleteOldRDN - The flag indicating whether the old RDN value is to be removed from the entry.
newSuperior - The new superior for the modify DN operation, or null if the entry will remain below the same parent.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processSearch

public InternalSearchOperation processSearch(ASN1OctetString rawBaseDN,
                                             SearchScope scope,
                                             LDAPFilter filter)
Processes an Jmx search operation with the provided information. It will not dereference any aliases, will not request a size or time limit, and will retrieve all user attributes.

Parameters:
rawBaseDN - The base DN for the search.
scope - The scope for the search.
filter - The filter for the search.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing as well as lists of the matching entries and search references.

processSearch

public InternalSearchOperation processSearch(ASN1OctetString rawBaseDN,
                                             SearchScope scope,
                                             DereferencePolicy derefPolicy,
                                             int sizeLimit,
                                             int timeLimit,
                                             boolean typesOnly,
                                             LDAPFilter filter,
                                             java.util.LinkedHashSet<java.lang.String> attributes)
Processes an Jmx search operation with the provided information.

Parameters:
rawBaseDN - The base DN for the search.
scope - The scope for the search.
derefPolicy - The alias dereferencing policy for the search.
sizeLimit - The size limit for the search.
timeLimit - The time limit for the search.
typesOnly - The typesOnly flag for the search.
filter - The filter for the search.
attributes - The set of requested attributes for the search.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing as well as lists of the matching entries and search references.

processSearch

public InternalSearchOperation processSearch(ASN1OctetString rawBaseDN,
                                             SearchScope scope,
                                             DereferencePolicy derefPolicy,
                                             int sizeLimit,
                                             int timeLimit,
                                             boolean typesOnly,
                                             LDAPFilter filter,
                                             java.util.LinkedHashSet<java.lang.String> attributes,
                                             InternalSearchListener searchListener)
Processes an Jmx search operation with the provided information.

Parameters:
rawBaseDN - The base DN for the search.
scope - The scope for the search.
derefPolicy - The alias dereferencing policy for the search.
sizeLimit - The size limit for the search.
timeLimit - The time limit for the search.
typesOnly - The typesOnly flag for the search.
filter - The filter for the search.
attributes - The set of requested attributes for the search.
searchListener - The internal search listener that should be used to handle the matching entries and references.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing.

sendSearchEntry

public void sendSearchEntry(SearchOperation searchOperation,
                            SearchResultEntry searchEntry)
                     throws DirectoryException
Sends the provided search result entry to the client.

Specified by:
sendSearchEntry in class ClientConnection
Parameters:
searchOperation - The search operation with which the entry is associated.
searchEntry - The search result entry to be sent to the client.
Throws:
DirectoryException - If a problem occurs while attempting to send the entry to the client and the search should be terminated.

sendSearchReference

public boolean sendSearchReference(SearchOperation searchOperation,
                                   SearchResultReference searchReference)
                            throws DirectoryException
Sends the provided search result reference to the client.

Specified by:
sendSearchReference in class ClientConnection
Parameters:
searchOperation - The search operation with which the reference is associated.
searchReference - The search result reference to be sent to the client.
Returns:
true if the client is able to accept referrals, or false if the client cannot handle referrals and no more attempts should be made to send them for the associated search operation.
Throws:
DirectoryException - If a problem occurs while attempting to send the reference to the client and the search should be terminated.

sendIntermediateResponseMessage

protected boolean sendIntermediateResponseMessage(IntermediateResponse intermediateResponse)
Sends the provided intermediate response message to the client.

Specified by:
sendIntermediateResponseMessage in class ClientConnection
Parameters:
intermediateResponse - The intermediate response message to be sent.
Returns:
true if processing on the associated operation should continue, or false if not.

disconnect

public void disconnect(DisconnectReason disconnectReason,
                       boolean sendNotification,
                       Message message)
Closes the connection to the client, optionally sending it a message indicating the reason for the closure. Note that the ability to send a notice of disconnection may not be available for all protocols or under all circumstances.

Specified by:
disconnect in class ClientConnection
Parameters:
disconnectReason - The disconnect reason that provides the generic cause for the disconnect.
sendNotification - Indicates whether to try to provide notification to the client that the connection will be closed.
message - The message to send to the client. It may be null if no notification is to be sent.

bindInProgress

public boolean bindInProgress()
Indicates whether a bind operation is in progress on this client connection. If so, then no new operations should be allowed until the bind has completed.

Overrides:
bindInProgress in class ClientConnection
Returns:
true if a bind operation is in progress on this connection, or false if not.

setBindInProgress

public void setBindInProgress(boolean bindInProgress)
Specifies whether a bind operation is in progress on this client connection. If so, then no new operations should be allowed until the bind has completed.

Overrides:
setBindInProgress in class ClientConnection
Parameters:
bindInProgress - Specifies whether a bind operation is in progress on this client connection.

getOperationsInProgress

public java.util.Collection<AbstractOperation> getOperationsInProgress()
Retrieves the set of operations in progress for this client connection. This list must not be altered by any caller.

Specified by:
getOperationsInProgress in class ClientConnection
Returns:
The set of operations in progress for this client connection.

getOperationInProgress

public AbstractOperation getOperationInProgress(int messageID)
Retrieves the operation in progress with the specified message ID.

Specified by:
getOperationInProgress in class ClientConnection
Parameters:
messageID - The message ID of the operation to retrieve.
Returns:
The operation in progress with the specified message ID, or null if no such operation could be found.

removeOperationInProgress

public boolean removeOperationInProgress(int messageID)
Removes the provided operation from the set of operations in progress for this client connection. Note that this does not make any attempt to cancel any processing that may already be in progress for the operation.

Specified by:
removeOperationInProgress in class ClientConnection
Parameters:
messageID - The message ID of the operation to remove from the set of operations in progress.
Returns:
true if the operation was found and removed from the set of operations in progress, or false if not.

cancelOperation

public CancelResult cancelOperation(int messageID,
                                    CancelRequest cancelRequest)
Attempts to cancel the specified operation.

Specified by:
cancelOperation in class ClientConnection
Parameters:
messageID - The message ID of the operation to cancel.
cancelRequest - An object providing additional information about how the cancel should be processed.
Returns:
A cancel result that either indicates that the cancel was successful or provides a reason that it was not.

cancelAllOperations

public void cancelAllOperations(CancelRequest cancelRequest)
Attempts to cancel all operations in progress on this connection.

Specified by:
cancelAllOperations in class ClientConnection
Parameters:
cancelRequest - An object providing additional information about how the cancel should be processed.

cancelAllOperationsExcept

public void cancelAllOperationsExcept(CancelRequest cancelRequest,
                                      int messageID)
Attempts to cancel all operations in progress on this connection except the operation with the specified message ID.

Specified by:
cancelAllOperationsExcept in class ClientConnection
Parameters:
cancelRequest - An object providing additional information about how the cancel should be processed.
messageID - The message ID of the operation that should not be canceled.

getMonitorSummary

public java.lang.String getMonitorSummary()
Retrieves a one-line summary of this client connection in a form that is suitable for including in the monitor entry for the associated connection handler. It should be in a format that is both humand readable and machine parseable (e.g., a space-delimited name-value list, with quotes around the values).

Specified by:
getMonitorSummary in class ClientConnection
Returns:
A one-line summary of this client connection in a form that is suitable for including in the monitor entry for the associated connection handler.

toString

public void toString(java.lang.StringBuilder buffer)
Appends a string representation of this client connection to the provided buffer.

Specified by:
toString in class ClientConnection
Parameters:
buffer - The buffer to which the information should be appended.

finalize

protected void finalize()
Called by the Gc when the object is garbage collected Release the cursor in case the iterator was badly used and releaseCursor was never called.

Overrides:
finalize in class ClientConnection