diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispTeLcafAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispTeLcafAddress.java
index f019b4a..5892653 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispTeLcafAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispTeLcafAddress.java
@@ -101,7 +101,8 @@
                 .add("TE records", records).toString();
     }
 
-    public static final class TeAddressBuilder extends LcafAddressBuilder<TeAddressBuilder> {
+    public static final class TeAddressBuilder
+                                extends LcafAddressBuilder<TeAddressBuilder> {
         private List<LispTeRecord> records;
 
         /**
@@ -127,10 +128,12 @@
     /**
      * TE LCAF address reader class.
      */
-    public static class TeLcafAddressReader implements LispAddressReader<LispTeLcafAddress> {
+    public static class TeLcafAddressReader
+                        implements LispAddressReader<LispTeLcafAddress> {
 
         @Override
-        public LispTeLcafAddress readFrom(ByteBuf byteBuf) throws LispParseError, LispReaderException {
+        public LispTeLcafAddress readFrom(ByteBuf byteBuf)
+                                    throws LispParseError, LispReaderException {
 
             LispLcafAddress lcafAddress = LispLcafAddress.deserializeCommon(byteBuf);
 
@@ -148,10 +151,12 @@
     /**
      * TE LCAF address writer class.
      */
-    public static class TeLcafAddressWriter implements LispAddressWriter<LispTeLcafAddress> {
+    public static class TeLcafAddressWriter
+                            implements LispAddressWriter<LispTeLcafAddress> {
 
         @Override
-        public void writeTo(ByteBuf byteBuf, LispTeLcafAddress address) throws LispWriterException {
+        public void writeTo(ByteBuf byteBuf, LispTeLcafAddress address)
+                                                    throws LispWriterException {
 
             int lcafIndex = byteBuf.writerIndex();
             LispLcafAddress.serializeCommon(byteBuf, address);
