private void processResp(OMMItemEvent event)
    {
        OMMMsg msg = event.getMsg();
        Token token = (Token)event.getClosure();

        // we need to set dictionary in case we reencode FieldList
        Handle handle = (Handle)_reqMap.get(token);

        // this can happen, when the dictionary stream is close or dictionary
        // has been changed
        // we have still have response msgs in the queue, we will discard this
        // response
        if (handle == null)
            return;

        HandleEntry he = _itemGroupManager.getHandleEntry(handle);

        // item is not in the watchlist
        if (he == null)
            return;

        FieldDictionary dictionary = _parent.getDictionaryManager().getDictionary(he.serviceName);
        OMMMsgReencoder.setLocalDictionary(dictionary);

        // Refresh will always provide group id
        // Status response can contain group id
        if ((msg.getMsgType() == OMMMsg.MsgType.REFRESH_RESP)
                || (msg.getMsgType() == OMMMsg.MsgType.STATUS_RESP && msg
                        .has(OMMMsg.HAS_ITEM_GROUP)))
        {
            OMMItemGroup group = msg.getItemGroup();
            Handle itemHandle = event.getHandle();
            _itemGroupManager.applyGroup(itemHandle, group);
        }
        else if (msg.getMsgType() == OMMMsg.MsgType.GENERIC)
        {
            System.out.println("Received generic message type, not supported. ");
        }

        if (msg.isFinal())
        {
            _itemGroupManager.removeItem(handle);
            System.out.println(_instanceName + " Received stream closed. Remove " + handle);
        }

        boolean growEncoderFlag = false;
        int encoderSize = msg.getEncodedLength() + 100;

        do
        {
            try
            {
                _providerServer.submitResp(msg, token, encoderSize);
                growEncoderFlag = false;
            }
            catch (IndexOutOfBoundsException e)
            {
                // Not enough room, need to grow the encoderSize and try submit
                // again.
                growEncoderFlag = true;
                encoderSize = (int)(encoderSize * 1.1);
            }
        }
        while (growEncoderFlag);
    }