static OptimizedClassDescriptor classDescriptor(ConcurrentMap<Class,OptimizedClassDescriptor> clsMap,int id,ClassLoader ldr,MarshallerContext ctx,OptimizedMarshallerIdMapper mapper) throws IOException, ClassNotFoundException {
  Class cls;
  try {
    cls=ctx.getClass(id,ldr);
  }
 catch (  IgniteCheckedException e) {
    throw new IOException("Failed to resolve class for ID: " + id,e);
  }
  OptimizedClassDescriptor desc=clsMap.get(cls);
  if (desc == null) {
    OptimizedClassDescriptor old=clsMap.putIfAbsent(cls,desc=new OptimizedClassDescriptor(cls,resolveTypeId(cls.getName(),mapper),clsMap,ctx,mapper));
    if (old != null)     desc=old;
  }
  return desc;
}

static OptimizedClassDescriptor classDescriptor ( ConcurrentMap < Class , OptimizedClassDescriptor > clsMap , int id , ClassLoader ldr , MarshallerContext ctx , OptimizedMarshallerIdMapper mapper ) throws IOException , ClassNotFoundException { Class cls ; try { cls = ctx . getClass ( id , ldr ) ; } catch ( IgniteCheckedException e ) { throw new IOException ( "Failed to resolve class for ID: " + id , e ) ; } OptimizedClassDescriptor desc = clsMap . get ( cls ) ; if ( desc == null ) { OptimizedClassDescriptor old = clsMap . putIfAbsent ( cls , desc = new OptimizedClassDescriptor ( cls , resolveTypeId ( cls . getName ( ) , mapper ) , clsMap , ctx , mapper ) ) ; if ( old != null ) desc = old ; } return desc ; }
gets descriptor for provided id .
