	protected void extractResult(Message reqMessage, List<IIndexerDocument> results) {
		List<Message> messageList = null;
		synchronized (this.resultMap) {				
			if (!this.resultMap.containsKey(Integer.valueOf(reqMessage.getMessageNumber()))) {
				this.logger.warn("Unknown requestID: " + reqMessage.getMessageNumber());
				messageList = Collections.EMPTY_LIST;
			} else {
				messageList = this.resultMap.remove(Integer.valueOf(reqMessage.getMessageNumber()));
			}
		}	
		for (Message msg : messageList) {
			try {
				MessageElement resultListElement = msg.getMessageElement(SearchServiceConstants.RESP_RESULT);			
				SAXReader reader = new SAXReader();
				Document xmlDoc = reader.read(resultListElement.getStream());
				Element xmlRoot = xmlDoc.getRootElement();
		        for (Iterator<Element> i = xmlRoot.elementIterator(SearchServiceConstants.RESULT_ENTRY); i.hasNext(); ) {
		            Element resultElement = i.next();
			        for (Iterator<Element> j = resultElement.elementIterator(SearchServiceConstants.RESULT_ENTRY_ITEM); j.hasNext(); ) {
			        	Element resultItemElement = j.next();			        	
			        	IndexerDocument indexerDoc = new IndexerDocument();
			        	for (Iterator<Element> k = resultItemElement.elementIterator(); k.hasNext(); ) {
			        		Element resultItemFieldElement = k.next();
			        		String fieldName = resultItemFieldElement.getName();
			        		String fieldValue = resultItemFieldElement.getText();
			        		final org.paxle.core.doc.Field<?> pfield = this.fieldManager.get(fieldName);
			    			if (pfield != null) {			    				
			    				indexerDoc.put(pfield, fieldValue);
			    			}
			        	}
			        	results.add(indexerDoc);
			        }
		        }
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	protected void extractResult(Message reqMessage, List<IIndexerDocument> results) {
		List<Message> messageList = null;
		synchronized (this.resultMap) {				
			if (!this.resultMap.containsKey(Integer.valueOf(reqMessage.getMessageNumber()))) {
				this.logger.warn("Unknown requestID: " + reqMessage.getMessageNumber());
				messageList = Collections.emptyList();
			} else {
				messageList = this.resultMap.remove(Integer.valueOf(reqMessage.getMessageNumber()));
			}
		}	
		for (Message msg : messageList) {
			try {
				MessageElement resultListElement = msg.getMessageElement(SearchServiceConstants.RESP_RESULT);			
				SAXReader reader = new SAXReader();
				Document xmlDoc = reader.read(resultListElement.getStream());
				Element xmlRoot = xmlDoc.getRootElement();
		        for (Iterator<Element> i = xmlRoot.elementIterator(SearchServiceConstants.RESULT_ENTRY); i.hasNext(); ) {
		            Element resultElement = i.next();
			        for (Iterator<Element> j = resultElement.elementIterator(SearchServiceConstants.RESULT_ENTRY_ITEM); j.hasNext(); ) {
			        	Element resultItemElement = j.next();			        	
			        	IndexerDocument indexerDoc = new IndexerDocument();
			        	for (Iterator<Element> k = resultItemElement.elementIterator(); k.hasNext(); ) {
			        		Element resultItemFieldElement = k.next();
			        		String fieldName = resultItemFieldElement.getName();
			        		String fieldValue = resultItemFieldElement.getText();
			        		final org.paxle.core.doc.Field<?> pfield = this.fieldManager.get(fieldName);
			    			if (pfield != null) {			    				
			    				indexerDoc.put(pfield, fieldValue);
			    			}
			        	}
			        	results.add(indexerDoc);
			        }
		        }
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
