diff --git a/lib/java/src/reflection/limited/Argument.java b/lib/java/src/reflection/limited/Argument.java
index c24e07e..2a485e8 100644
--- a/lib/java/src/reflection/limited/Argument.java
+++ b/lib/java/src/reflection/limited/Argument.java
@@ -49,7 +49,7 @@
     while (true)
     {
       field = iprot.readFieldBegin();
-      if (field.type == TType.STOP) { 
+      if (field.type == TType.STOP) {
         break;
       }
       switch (field.id)
@@ -58,7 +58,7 @@
           if (field.type == TType.I16) {
             this.key = iprot.readI16();
             this.__isset.key = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
@@ -66,7 +66,7 @@
           if (field.type == TType.STRING) {
             this.name = iprot.readString();
             this.__isset.name = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
@@ -75,7 +75,7 @@
             this.type = new ThriftType();
             this.type.read(iprot);
             this.__isset.type = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
diff --git a/lib/java/src/reflection/limited/ContainerType.java b/lib/java/src/reflection/limited/ContainerType.java
index 11d3872..6c8bcc3 100644
--- a/lib/java/src/reflection/limited/ContainerType.java
+++ b/lib/java/src/reflection/limited/ContainerType.java
@@ -49,7 +49,7 @@
     while (true)
     {
       field = iprot.readFieldBegin();
-      if (field.type == TType.STOP) { 
+      if (field.type == TType.STOP) {
         break;
       }
       switch (field.id)
@@ -58,7 +58,7 @@
           if (field.type == TType.I32) {
             this.ttype = iprot.readI32();
             this.__isset.ttype = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
@@ -67,7 +67,7 @@
             this.subtype1 = new SimpleType();
             this.subtype1.read(iprot);
             this.__isset.subtype1 = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
@@ -76,7 +76,7 @@
             this.subtype2 = new SimpleType();
             this.subtype2.read(iprot);
             this.__isset.subtype2 = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
diff --git a/lib/java/src/reflection/limited/Method.java b/lib/java/src/reflection/limited/Method.java
index 64ba21d..41fa6ca 100644
--- a/lib/java/src/reflection/limited/Method.java
+++ b/lib/java/src/reflection/limited/Method.java
@@ -49,7 +49,7 @@
     while (true)
     {
       field = iprot.readFieldBegin();
-      if (field.type == TType.STOP) { 
+      if (field.type == TType.STOP) {
         break;
       }
       switch (field.id)
@@ -58,7 +58,7 @@
           if (field.type == TType.STRING) {
             this.name = iprot.readString();
             this.__isset.name = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
@@ -67,7 +67,7 @@
             this.return_type = new ThriftType();
             this.return_type.read(iprot);
             this.__isset.return_type = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
@@ -86,7 +86,7 @@
               iprot.readListEnd();
             }
             this.__isset.arguments = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
diff --git a/lib/java/src/reflection/limited/Service.java b/lib/java/src/reflection/limited/Service.java
index f3a9481..fcbd09c 100644
--- a/lib/java/src/reflection/limited/Service.java
+++ b/lib/java/src/reflection/limited/Service.java
@@ -49,7 +49,7 @@
     while (true)
     {
       field = iprot.readFieldBegin();
-      if (field.type == TType.STOP) { 
+      if (field.type == TType.STOP) {
         break;
       }
       switch (field.id)
@@ -58,7 +58,7 @@
           if (field.type == TType.STRING) {
             this.name = iprot.readString();
             this.__isset.name = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
@@ -77,7 +77,7 @@
               iprot.readListEnd();
             }
             this.__isset.methods = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
@@ -85,7 +85,7 @@
           if (field.type == TType.BOOL) {
             this.fully_reflected = iprot.readBool();
             this.__isset.fully_reflected = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
diff --git a/lib/java/src/reflection/limited/SimpleType.java b/lib/java/src/reflection/limited/SimpleType.java
index c0feae6..2a69e39 100644
--- a/lib/java/src/reflection/limited/SimpleType.java
+++ b/lib/java/src/reflection/limited/SimpleType.java
@@ -44,7 +44,7 @@
     while (true)
     {
       field = iprot.readFieldBegin();
-      if (field.type == TType.STOP) { 
+      if (field.type == TType.STOP) {
         break;
       }
       switch (field.id)
@@ -53,7 +53,7 @@
           if (field.type == TType.I32) {
             this.ttype = iprot.readI32();
             this.__isset.ttype = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
@@ -61,7 +61,7 @@
           if (field.type == TType.STRING) {
             this.name = iprot.readString();
             this.__isset.name = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
diff --git a/lib/java/src/reflection/limited/ThriftType.java b/lib/java/src/reflection/limited/ThriftType.java
index d3bb3eb..63022ec 100644
--- a/lib/java/src/reflection/limited/ThriftType.java
+++ b/lib/java/src/reflection/limited/ThriftType.java
@@ -49,7 +49,7 @@
     while (true)
     {
       field = iprot.readFieldBegin();
-      if (field.type == TType.STOP) { 
+      if (field.type == TType.STOP) {
         break;
       }
       switch (field.id)
@@ -58,7 +58,7 @@
           if (field.type == TType.BOOL) {
             this.is_container = iprot.readBool();
             this.__isset.is_container = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
@@ -67,7 +67,7 @@
             this.simple_type = new SimpleType();
             this.simple_type.read(iprot);
             this.__isset.simple_type = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
@@ -76,7 +76,7 @@
             this.container_type = new ContainerType();
             this.container_type.read(iprot);
             this.__isset.container_type = true;
-          } else { 
+          } else {
             TProtocolUtil.skip(iprot, field.type);
           }
           break;
