private void processDelete(Sim_event ev, boolean isMaster) {
        if (ev == null) {
            return;
        }
        Object[] data = (Object[]) ev.get_data();
        if (data == null) {
            return;
        }

        String filename = (String) data[0];
        int req_source = ((Integer) data[1]).intValue();
        int tag = -1;

        // check if this file can be deleted (do not delete is right now)
        int msg = deleteFileFromStorage(filename, isMaster, true);
        if (msg == DataGridTags.FILE_DELETE_SUCCESSFUL) {
            if (isMaster) // if it is a master file
            {
                masterFilesWaitingForDeleteACK_.add(data);
                tag = DataGridTags.CTLG_DELETE_MASTER;
            } else // if it is a replica
            {
                filesWaitingForDeleteACK_.add(data);
                tag = DataGridTags.CTLG_DELETE_REPLICA;
            }

            // deregister this file from RC
            super.deregisterDeletedFile(filename, tag);
        } else // if an error occured, notify user
        {
            tag = DataGridTags.FILE_DELETE_REPLICA_RESULT;
            if (isMaster) {
                tag = DataGridTags.FILE_DELETE_MASTER_RESULT;
            }
            sendResult(filename, tag, msg, req_source);
        }
    }