code: @SuppressWarnings("unchecked")
      public <T> Deserializer<T> getDeserializer(Class<T> type, String mediaType) throws SerializationException {
          checkNotNull(type, "Type (Class<T>) cannot be null.");
          checkNotNull(mediaType, "Media-Type cannot be null.");
  
          final String typeName = getClassName(type);
          final Key key = new Key(typeName, mediaType);
  
          logger.log(Level.FINE, "Querying for Deserializer of type '" + typeName + "' and " + "media-type '" + mediaType
                  + "'.");
  
          ArrayList<DeserializerHolder> holders = deserializers.get(typeName);
          if (holders != null) {
              for (DeserializerHolder holder : holders) {
                  if (holder.key.matches(key)) {
                      logger.log(Level.FINE, "Deserializer for type '" + holder.deserializer.handledType() + "' and " +
                              "media-type '" + Arrays.toString(holder.deserializer.mediaType()) + "' matched: " +
                              holder.deserializer.getClass().getName());
                      return (Deserializer<T>) holder.deserializer;
                  }
              }
          }
  
          logger.log(Level.WARNING, "There is no Deserializer registered for " + type.getName() +
                  " and media-type " + mediaType + ". If you're relying on auto-generated deserializers," +
                  " please make sure you imported the correct GWT Module.");
  
          return null;
      }
docs: Retrieve Deserializer from manager.
  
  @param type The type class of the deserializer.
  @param <T> The type of the deserializer.
  @return The deserializer of the specified type.
  
  @throws SerializationException if no deserializer was registered for the class.