/// <exception cref="Org.Apache.Hadoop.Yarn.Exceptions.YarnException"/>
        /// <exception cref="System.IO.IOException"/>
        public virtual ReleaseSharedCacheResourceResponse Release(ReleaseSharedCacheResourceRequest
                                                                  request)
        {
            ReleaseSharedCacheResourceResponse response = recordFactory.NewRecordInstance <ReleaseSharedCacheResourceResponse
                                                                                           >();
            UserGroupInformation callerUGI;

            try
            {
                callerUGI = UserGroupInformation.GetCurrentUser();
            }
            catch (IOException ie)
            {
                Log.Info("Error getting UGI ", ie);
                throw RPCUtil.GetRemoteException(ie);
            }
            bool removed = this.store.RemoveResourceReference(request.GetResourceKey(), new SharedCacheResourceReference
                                                                  (request.GetAppId(), callerUGI.GetShortUserName()), true);

            if (removed)
            {
                this.metrics.IncCacheRelease();
            }
            return(response);
        }
        /// <exception cref="Com.Google.Protobuf.ServiceException"/>
        public virtual YarnServiceProtos.ReleaseSharedCacheResourceResponseProto Release(
            RpcController controller, YarnServiceProtos.ReleaseSharedCacheResourceRequestProto
            proto)
        {
            ReleaseSharedCacheResourceRequestPBImpl request = new ReleaseSharedCacheResourceRequestPBImpl
                                                                  (proto);

            try
            {
                ReleaseSharedCacheResourceResponse response = real.Release(request);
                return(((ReleaseSharedCacheResourceResponsePBImpl)response).GetProto());
            }
            catch (YarnException e)
            {
                throw new ServiceException(e);
            }
            catch (IOException e)
            {
                throw new ServiceException(e);
            }
        }