2011-12-14 2 views
2

http://jersey.java.net/nonav/documentation/latest/client-api.html#d4e704에서 설명서를 읽으면 추가 된 순서대로 ClientFilter이 처리되었다고 생각합니다. 그러나 나는 그 반대를보고있다. 다음은 문서에 표시되는 것과 유사한 내가 함께 테스트있어 코드입니다 :Jersey ClientFilter Ordering

ClientFilter filter1 = new ClientFilter() { 
    @Override 
    public ClientResponse handle(ClientRequest cr) throws ClientHandlerException { 
     System.out.println("Modify Request 1"); 
     ClientResponse response = getNext().handle(cr); 
     System.out.println("Modify Response 1"); 
     return response; 
    } 
}; 
ClientFilter filter2 = new ClientFilter() { 
    @Override 
    public ClientResponse handle(ClientRequest cr) throws ClientHandlerException { 
     System.out.println("Modify Request 2"); 
     ClientResponse response = getNext().handle(cr); 
     System.out.println("Modify Response 2"); 
     return response; 
    } 
}; 
Client c = Client.create(); 
c.addFilter(filter1); 
c.addFilter(filter2); 

ClientFilter filter3 = new ClientFilter() { 
    @Override 
    public ClientResponse handle(ClientRequest cr) throws ClientHandlerException { 
     System.out.println("Modify Request 3"); 
     ClientResponse response = getNext().handle(cr); 
     System.out.println("Modify Response 3"); 
     return response; 
    } 
}; 
WebResource r = c.resource("http://www.stackoverflow.com"); 
r.addFilter(filter3); 

System.out.println(r.get(ClientResponse.class).getStatus()); 

내가 요청 1 2 3 수정을 참조하십시오 기대, 수정 응답 3 2 1,하지만 내가 대신 요청 3 2 1에게 수정을 참조하십시오 응답 수정 1 2 3.

설명서를 거꾸로 해석합니까?

답변

0

당신은 버그를 발견했습니다! 아직 정확한 위치를 결정하지 못했습니다. 그러나 역방향 구현으로 인해 구현을 변경하고 싶지는 않을 것입니다. 따라서 클라이언트 필터가 실제로 작동하는 방식을 반영하도록 사용자 안내서를 업데이트 할 수 있습니다 (참조 용 사용자 안내서 링크 - http://jersey.java.net/nonav/documentation/latest/client-api.html#d4e704).

저지 이슈 트래커에 새로운 이슈를 제출할 수 있습니까? http://java.net/jira/browse/JERSEY/

고마워요!

+0

작성 됨 http://java.net/jira/browse/JERSEY-907 –

+0

감사합니다. 그것에 대해 무엇을 할 수 있는지 보겠습니다. –