code: @Override
      public void setBackReference( String referenceName, Object reference, T value, JsonDeserializationContext ctx ) {
          if ( null == value ) {
              return;
          }
  
          JsonDeserializer<T> deserializer = getDeserializer( null, ctx, value.getClass() ).getDeserializer();
          if ( deserializer.getClass() != getClass() ) {
              // we test if it's not this deserializer to avoid an infinite loop
              deserializer.setBackReference( referenceName, reference, value, ctx );
              return;
          }
  
          BackReferenceProperty backReferenceProperty = backReferenceDeserializers.get( referenceName );
          if ( null == backReferenceProperty ) {
              throw ctx.traceError( "The back reference '" + referenceName + "' does not exist" );
          }
          backReferenceProperty.setBackReference( value, reference, ctx );
      }
docs: {@inheritDoc}