diff --git a/lib/java/src/org/apache/thrift/TServiceClient.java b/lib/java/src/org/apache/thrift/TServiceClient.java
index c70e66f..15715f1 100644
--- a/lib/java/src/org/apache/thrift/TServiceClient.java
+++ b/lib/java/src/org/apache/thrift/TServiceClient.java
@@ -44,7 +44,7 @@
 
   /**
    * Get the TProtocol being used as the input (read) protocol.
-   * @return
+   * @return the TProtocol being used as the input (read) protocol.
    */
   public TProtocol getInputProtocol() {
     return this.iprot_;
@@ -52,7 +52,7 @@
 
   /**
    * Get the TProtocol being used as the output (write) protocol.
-   * @return
+   * @return the TProtocol being used as the output (write) protocol.
    */
   public TProtocol getOutputProtocol() {
     return this.oprot_;
diff --git a/lib/java/src/org/apache/thrift/TServiceClientFactory.java b/lib/java/src/org/apache/thrift/TServiceClientFactory.java
index 808d5e6..988e655 100644
--- a/lib/java/src/org/apache/thrift/TServiceClientFactory.java
+++ b/lib/java/src/org/apache/thrift/TServiceClientFactory.java
@@ -30,7 +30,7 @@
   /**
    * Get a brand-new T using <i>prot</i> as both the input and output protocol.
    * @param prot
-   * @return
+   * @return A brand-new T using <i>prot</i> as both the input and output protocol.
    */
   public T getClient(TProtocol prot);
 
@@ -39,7 +39,7 @@
    * input and output protocols may be the same instance.
    * @param iprot
    * @param oprot
-   * @return
+   * @return a brand new T using the specified input and output protocols
    */
   public T getClient(TProtocol iprot, TProtocol oprot);
 }
diff --git a/lib/java/src/org/apache/thrift/TUnion.java b/lib/java/src/org/apache/thrift/TUnion.java
index 1962c80..240163f 100644
--- a/lib/java/src/org/apache/thrift/TUnion.java
+++ b/lib/java/src/org/apache/thrift/TUnion.java
@@ -179,7 +179,7 @@
    * Implementation should be generated to read the right stuff from the wire 
    * based on the field header. 
    * @param field
-   * @return
+   * @return read Object based on the field header, as specified by the argument.
    */
   protected abstract Object readValue(TProtocol iprot, TField field) throws TException;
 
diff --git a/lib/java/src/org/apache/thrift/async/TAsyncClient.java b/lib/java/src/org/apache/thrift/async/TAsyncClient.java
index d3b009a..9a22717 100644
--- a/lib/java/src/org/apache/thrift/async/TAsyncClient.java
+++ b/lib/java/src/org/apache/thrift/async/TAsyncClient.java
@@ -58,7 +58,7 @@
 
   /**
    * Is the client in an error state?
-   * @return
+   * @return If client in an error state?
    */
   public boolean hasError() {
     return ___error != null;
@@ -66,7 +66,7 @@
 
   /**
    * Get the client's error - returns null if no error
-   * @return
+   * @return Get the client's error. <br /> returns null if no error
    */
   public Exception getError() {
     return ___error;
diff --git a/lib/java/src/org/apache/thrift/protocol/TTupleProtocol.java b/lib/java/src/org/apache/thrift/protocol/TTupleProtocol.java
index 5e9a14e..4592738 100644
--- a/lib/java/src/org/apache/thrift/protocol/TTupleProtocol.java
+++ b/lib/java/src/org/apache/thrift/protocol/TTupleProtocol.java
@@ -82,7 +82,7 @@
    * assumed to be the least significant bit.
    * 
    * @param bits
-   * @return
+   * @return a byte array of at least length 1
    */
   public static byte[] toByteArray(BitSet bits) {
     byte[] bytes = new byte[bits.length() / 8 + 1];
diff --git a/lib/java/src/org/apache/thrift/transport/TFileProcessor.java b/lib/java/src/org/apache/thrift/transport/TFileProcessor.java
index 7a58eea..19db896 100644
--- a/lib/java/src/org/apache/thrift/transport/TFileProcessor.java
+++ b/lib/java/src/org/apache/thrift/transport/TFileProcessor.java
@@ -95,7 +95,7 @@
    * Process from start to last chunk both inclusive where chunks begin from 0
 
    * @param startChunkNum first chunk to be processed
-   * @param lastChunkNum last chunk to be processed
+   * @param endChunkNum last chunk to be processed
    */
   public void processChunk(int startChunkNum, int endChunkNum) throws TException {
     int numChunks = inputTransport_.getNumChunks();
diff --git a/lib/java/src/org/apache/thrift/transport/TFileTransport.java b/lib/java/src/org/apache/thrift/transport/TFileTransport.java
index 24a884f..f5abe53 100644
--- a/lib/java/src/org/apache/thrift/transport/TFileTransport.java
+++ b/lib/java/src/org/apache/thrift/transport/TFileTransport.java
@@ -418,7 +418,7 @@
   /**
    * File Transport ctor
    *
-   * @param inputFile_ open TSeekableFile to read/write from
+   * @param inputFile open TSeekableFile to read/write from
    * @param readOnly Whether this is a read-only transport
    */
   public TFileTransport(TSeekableFile inputFile, boolean readOnly) {
diff --git a/lib/java/src/org/apache/thrift/transport/TSSLTransportFactory.java b/lib/java/src/org/apache/thrift/transport/TSSLTransportFactory.java
index 1e1c4c9..ae4544e 100644
--- a/lib/java/src/org/apache/thrift/transport/TSSLTransportFactory.java
+++ b/lib/java/src/org/apache/thrift/transport/TSSLTransportFactory.java
@@ -323,7 +323,7 @@
     /**
      * Set if client authentication is required
      * 
-     * @param auth
+     * @param clientAuth
      */
     public void requireClientAuth(boolean clientAuth) {
       this.clientAuth = clientAuth;
diff --git a/lib/java/src/org/apache/thrift/transport/TTransport.java b/lib/java/src/org/apache/thrift/transport/TTransport.java
index c9f3e93..6eab3b0 100644
--- a/lib/java/src/org/apache/thrift/transport/TTransport.java
+++ b/lib/java/src/org/apache/thrift/transport/TTransport.java
@@ -127,7 +127,7 @@
   /**
    * Access the protocol's underlying buffer directly. If this is not a
    * buffered transport, return null.
-   * @return
+   * @return protocol's Underlying buffer
    */
   public byte[] getBuffer() {
     return null;
@@ -136,7 +136,8 @@
   /**
    * Return the index within the underlying buffer that specifies the next spot
    * that should be read from.
-   * @return
+   * @return index within the underlying buffer that specifies the next spot
+   * that should be read from
    */
   public int getBufferPosition() {
     return 0;
@@ -145,7 +146,8 @@
   /**
    * Get the number of bytes remaining in the underlying buffer. Returns -1 if
    * this is a non-buffered transport.
-   * @return
+   * @return the number of bytes remaining in the underlying buffer. <br> Returns -1 if
+   * this is a non-buffered transport.
    */
   public int getBytesRemainingInBuffer() {
     return -1;
