diff --git a/lib/java/src/org/apache/thrift/transport/TFramedTransport.java b/lib/java/src/org/apache/thrift/transport/TFramedTransport.java
index 1387ac1..fab9c9b 100644
--- a/lib/java/src/org/apache/thrift/transport/TFramedTransport.java
+++ b/lib/java/src/org/apache/thrift/transport/TFramedTransport.java
@@ -27,6 +27,10 @@
  */
 public class TFramedTransport extends TTransport {
 
+  protected static final int DEFAULT_MAX_LENGTH = 0x7FFFFFFF;
+
+  private int maxLength_;
+
   /**
    * Underlying transport
    */
@@ -44,19 +48,32 @@
   private TMemoryInputTransport readBuffer_ = new TMemoryInputTransport(new byte[0]);
 
   public static class Factory extends TTransportFactory {
+    private int maxLength_;
+
     public Factory() {
+      maxLength_ = TFramedTransport.DEFAULT_MAX_LENGTH;
+    }
+
+    public Factory(int maxLength) {
+      maxLength_ = maxLength;
     }
 
     public TTransport getTransport(TTransport base) {
-      return new TFramedTransport(base);
+      return new TFramedTransport(base, maxLength_);
     }
   }
 
   /**
    * Constructor wraps around another tranpsort
    */
+  public TFramedTransport(TTransport transport, int maxLength) {
+    transport_ = transport;
+    maxLength_ = maxLength;
+  }
+
   public TFramedTransport(TTransport transport) {
     transport_ = transport;
+    maxLength_ = TFramedTransport.DEFAULT_MAX_LENGTH;
   }
 
   public void open() throws TTransportException {
@@ -118,6 +135,10 @@
       throw new TTransportException("Read a negative frame size (" + size + ")!");
     }
 
+    if (size > maxLength_) {
+      throw new TTransportException("Frame size (" + size + ") larger than max length (" + maxLength_ + ")!");
+    }
+
     byte[] buff = new byte[size];
     transport_.readAll(buff, 0, size);
     readBuffer_.reset(buff);
