diff --git a/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java b/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java
index 134eafc..d957dec 100644
--- a/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java
+++ b/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java
@@ -74,43 +74,35 @@
       throw new TException("Maximum skip depth exceeded");
     }
     switch (type) {
-    case TType.BOOL:
-      {
+      case TType.BOOL:
         prot.readBool();
         break;
-      }
-    case TType.BYTE:
-      {
+
+      case TType.BYTE:
         prot.readByte();
         break;
-      }
-    case TType.I16:
-      {
+
+      case TType.I16:
         prot.readI16();
         break;
-      }
-    case TType.I32:
-      {
+
+      case TType.I32:
         prot.readI32();
         break;
-      }
-    case TType.I64:
-      {
+
+      case TType.I64:
         prot.readI64();
         break;
-      }
-    case TType.DOUBLE:
-      {
+
+      case TType.DOUBLE:
         prot.readDouble();
         break;
-      }
-    case TType.STRING:
-      {
+
+      case TType.STRING:
         prot.readBinary();
         break;
-      }
-    case TType.STRUCT:
-      {
+
+      case TType.STRUCT:
         prot.readStructBegin();
         while (true) {
           TField field = prot.readFieldBegin();
@@ -122,9 +114,8 @@
         }
         prot.readStructEnd();
         break;
-      }
-    case TType.MAP:
-      {
+
+      case TType.MAP:
         TMap map = prot.readMapBegin();
         for (int i = 0; i < map.size; i++) {
           skip(prot, map.keyType, maxDepth - 1);
@@ -132,27 +123,25 @@
         }
         prot.readMapEnd();
         break;
-      }
-    case TType.SET:
-      {
+
+      case TType.SET:
         TSet set = prot.readSetBegin();
         for (int i = 0; i < set.size; i++) {
           skip(prot, set.elemType, maxDepth - 1);
         }
         prot.readSetEnd();
         break;
-      }
-    case TType.LIST:
-      {
+
+      case TType.LIST:
         TList list = prot.readListBegin();
         for (int i = 0; i < list.size; i++) {
           skip(prot, list.elemType, maxDepth - 1);
         }
         prot.readListEnd();
         break;
-      }
-    default:
-      break;
+
+      default:
+        break;
     }
   }
 
