PROTON-1708: simplify the look-ahead for map element type constructors, remove some unused code
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/MapType.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/MapType.java
index eba075a..72d1bbd 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/MapType.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/codec/MapType.java
@@ -26,7 +26,6 @@
 import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.Map;
-import java.util.Map.Entry;
 
 public class MapType extends AbstractPrimitiveType<Map>
 {
@@ -96,18 +95,6 @@
         return len;
     }
 
-    private AMQPType<?> getKeyEncoding(EncoderImpl encoder, Object key)
-    {
-        if (fixedKeyType != null)
-        {
-            return fixedKeyType;
-        }
-        else
-        {
-            return encoder.getType(key);
-        }
-    }
-
     private static TypeConstructor<?> findNextDecoder(DecoderImpl decoder, ByteBuffer buffer, TypeConstructor<?> previousConstructor)
     {
         if (previousConstructor == null)
@@ -116,12 +103,9 @@
         }
         else
         {
-            buffer.mark();
-
-            byte encodingCode = buffer.get();
+            byte encodingCode = buffer.get(buffer.position());
             if (encodingCode == EncodingCodes.DESCRIBED_TYPE_INDICATOR || !(previousConstructor instanceof PrimitiveTypeEncoding<?>))
             {
-                buffer.reset();
                 return decoder.readConstructor();
             }
             else
@@ -129,9 +113,13 @@
                 PrimitiveTypeEncoding<?> primitiveConstructor = (PrimitiveTypeEncoding<?>) previousConstructor;
                 if (encodingCode != primitiveConstructor.getEncodingCode())
                 {
-                    buffer.reset();
                     return decoder.readConstructor();
                 }
+                else
+                {
+                    // consume the encoding code byte for real
+                    encodingCode = buffer.get();
+                }
             }
         }