@SuppressWarnings("deprecation")
    public void processRequest(OMMSolicitedItemEvent event)
    {
        OMMMsg msg = event.getMsg();
        int msgType = msg.getMsgType();
        Token token = event.getRequestToken();

        switch (msgType)
        {
            case OMMMsg.MsgType.REQUEST:
            {
    
                OMMAttribInfo attribInfo = msg.getAttribInfo();
                String serviceName = attribInfo.getServiceName();
                // if we don't have dictionary for this service,
                // we cannot make a request
                // we need to wait for the dictionary
                if (!_parent.getDictionaryManager().hasDictionary(serviceName))
                {
                    System.out.println(_instanceName + " Dictionary for " + serviceName
                            + " is not yet available. Request is pending.");
    
                    boolean found = _parent.getDictionaryManager()
                            .requestDictionaryForService(this, this, serviceName);
                    if (found)
                    {
                        PendingRequest pendingRequest = new PendingRequest();
                        pendingRequest.requestMsg = _pool.acquireMsg();
                        pendingRequest.requestMsg.initFrom(msg);
                        pendingRequest.requestToken = token;
                        List<PendingRequest> pendingList = _pendingRequests.get(serviceName);
                        if (pendingList == null)
                        {
                            pendingList = new ArrayList<PendingRequest>();
                            pendingList.add(pendingRequest);
                            _pendingRequests.put(serviceName, pendingList);
                        }
                        else
                        {
                            pendingList.add(pendingRequest);
                        }
                    }
                    else
                    {
                        System.out.println(_instanceName
                                        + " Cannot find any service providing dictionary needed. DIRECTORY response might not arrive yet.");
                        makeRequest(msg, token);
                    }
                    return;
                }
    
                makeRequest(msg, token);
                return;
            }
            case OMMMsg.MsgType.STREAMING_REQ:
            case OMMMsg.MsgType.NONSTREAMING_REQ:
            case OMMMsg.MsgType.PRIORITY_REQ:
                System.out.println("Received deprecated message type of "
                        + OMMMsg.MsgType.toString(msg.getMsgType())
                        + ", not supported. ");
                return;
            case OMMMsg.MsgType.CLOSE_REQ:
                closeRequest(token);
                return;
         }
    }