diff --git a/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java b/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
index 6393f50..10efcb9 100644
--- a/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
+++ b/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
@@ -654,8 +654,11 @@
     
     /**
      * Process the connect. 
+     * 
+     * @exception LdapException If we weren't able to connect
+     * @return A Future that can be used to check the status of the connection
      */
-    private ConnectFuture tryConnect() throws LdapException
+    public ConnectFuture tryConnect() throws LdapException
     {
         // Build the connection address
         SocketAddress address = new InetSocketAddress( config.getLdapHost(), config.getLdapPort() );
@@ -728,6 +731,8 @@
     
     /**
      * Close the connection and generate the appropriate exception
+     * 
+     * @exception LdapException If we weren't able to close the connection
      */
     private void close( ConnectFuture connectionFuture ) throws LdapException
     {
@@ -761,6 +766,8 @@
     
     /**
      * Verify that the connection has been secured, otherwise throw a meaningful exception
+     * 
+     * @exception LdapException If we weren't able to check that the connection is secured
      */
     private void checkSecured( ConnectFuture connectionFuture ) throws LdapException
     {
@@ -806,6 +813,8 @@
     
     /**
      * Set a listener associated to the closeFuture
+     * 
+     * @param connectionFuture A Future for which we want to set a listener
      */
     private void setCloseListener( ConnectFuture connectionFuture )
     {
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/OpaqueExtendedRequest.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/OpaqueExtendedRequest.java
index 63cdea7..988839b 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/OpaqueExtendedRequest.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/OpaqueExtendedRequest.java
@@ -82,6 +82,7 @@
      * Creates an ExtendedRequest implementing object used to perform
      * extended protocol operation on the server.
      * 
+     * @param requestName The extended request OID
      * @param requestValue the embedded value
      */
     public OpaqueExtendedRequest( String requestName, byte[] requestValue )
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/password/PasswordUtil.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/password/PasswordUtil.java
index c823062..d4739db 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/password/PasswordUtil.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/password/PasswordUtil.java
@@ -606,6 +606,7 @@
      *
      * @param pwdChangedZtime time when the password was last changed
      * @param pwdMaxAgeSec the max age value in seconds
+     * @param timeProvider The TimeProvider instance to use
      * @return true if expired, false otherwise
      */
     public static boolean isPwdExpired( String pwdChangedZtime, int pwdMaxAgeSec, TimeProvider timeProvider )
diff --git a/util/src/main/java/org/apache/directory/api/util/DateUtils.java b/util/src/main/java/org/apache/directory/api/util/DateUtils.java
index ad70f1c..85b9b10 100644
--- a/util/src/main/java/org/apache/directory/api/util/DateUtils.java
+++ b/util/src/main/java/org/apache/directory/api/util/DateUtils.java
@@ -73,7 +73,7 @@
 
     /**
      * 
-     * @see #getGeneralizedTime()
+     * @see DateUtils#getGeneralizedTime(TimeProvider)
      *
      * @param date the date to be converted to generalized time string
      * @return given date in the generalized time string format
@@ -86,7 +86,7 @@
 
     /**
      * 
-     * @see #getGeneralizedTime()
+     * @see DateUtils#getGeneralizedTime(TimeProvider)
      *
      * @param time the time value to be converted to generalized time string
      * @return given time in generalized time string format
