/** * @see * org.apache.james.jspf.executor.DNSAsynchLookupService#getRecordsAsynch(org.apache.james.jspf.core.DNSRequest, * int, org.apache.james.jspf.executor.IResponseQueue) */ public void getRecordsAsynch(DNSRequest request, int id, IResponseQueue responsePool) { Message message; try { message = makeQuery(request, id); LookupAsynch la = new LookupAsynch(message.getQuestion().getName(), message.getQuestion().getType()); la.runAsynch( new Runnable() { private IResponseQueue responsePool; private Integer id; private LookupAsynch lookup; public void run() { responsePool.insertResponse( new IResponse() { public Exception getException() { if (lookup.getResult() == LookupAsynch.TRY_AGAIN) { return new TimeoutException(lookup.getErrorString()); } else { return null; } } public Object getId() { return id; } public List<String> getValue() { return (DNSServiceXBillImpl.convertRecordsToList(lookup.getAnswers())); } }); } public Runnable setResponsePool( LookupAsynch la, IResponseQueue responsePool, Integer integer) { this.lookup = la; this.responsePool = responsePool; this.id = integer; return this; } }.setResponsePool(la, responsePool, new Integer(id))); // this.resolver.sendAsync(message, new Integer(id), new ResponseQueueAdaptor(responsePool)); } catch (TextParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } }