private void processDeleteResult(Sim_event ev, boolean isMaster) {
        if (ev == null) {
            return;
        }

        Object[] pack = (Object[]) ev.get_data();
        if (pack == null) {
            return;
        }

        String filename = (String) pack[0]; // get file name
        int msg = ((Integer) pack[1]).intValue(); // get result

        // replica request
        int successTag = DataGridTags.CTLG_DELETE_REPLICA_SUCCESSFUL;
        int sendTag = DataGridTags.FILE_DELETE_REPLICA_RESULT;
        ArrayList eventList = filesWaitingForDeleteACK_;

        // master request
        if (isMaster) {
            successTag = DataGridTags.CTLG_DELETE_MASTER_SUCCESSFUL;
            sendTag = DataGridTags.FILE_DELETE_MASTER_RESULT;
            eventList = masterFilesWaitingForDeleteACK_;
        }

        // search this record from the waiting event list
        Object[] dataTemp = searchEvent(filename, eventList);
        if (dataTemp != null) {
            if (msg == successTag) {
                deleteFileFromStorage(filename, false, false);
                msg = DataGridTags.FILE_DELETE_SUCCESSFUL;
            }

            eventList.remove(dataTemp); // remove this request from the list

            // send the result back to sender
            sendResult(filename, sendTag, msg, ((Integer) dataTemp[1])
                    .intValue());
        }
    }