[ https://issues.apache.org/jira/browse/CXF-3472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13031516#comment-13031516 ]
David Liu commented on CXF-3472: -------------------------------- Hi, Yup, this is the problem. I can extend both HttpConduit and its WrappedOutputStream class, and also I can override the handleResponse() and handleResponseInternal() method in the sub class. However, the problem is that I cannot access WrappedOutputStream's protected field to construct my sub class (java does not allow it). please see my code: {code} public class MyHTTPConduit extends HTTPConduit { public MyHTTPConduit(Bus b, EndpointInfo ei) throws IOException { super(b, ei); } public void prepare(Message message) throws IOException { super.prepare(message); WrappedOutputStream wos = (WrappedOutputStream) message.getContent(OutputStream.class); MyWrappedOutputStream my = new MyWrappedOutputStream(wos);//compile error message.put(OutputStream.class, my); } protected class MyWrappedOutputStream extends WrappedOutputStream { protected MyWrappedOutputStream(WrappedOutputStream wos) { //Message m = wos.outMessage;// java access restriction, cannot access protected outMessage in WrappedOutputStream super(m, c, possibleRetransmit, isChunking, chunkThreshold); } protected void handleResponse() throws IOException { super.handleResponse(); } protected void handleResponseInternal() throws IOException { super.handleResponseInternal(); } } } {code} > Cannot override HTTPConduit's handleResponse() method > ----------------------------------------------------- > > Key: CXF-3472 > URL: https://issues.apache.org/jira/browse/CXF-3472 > Project: CXF > Issue Type: Bug > Components: Core > Affects Versions: 2.2, 2.4 > Reporter: David Liu > Assignee: Willem Jiang > > Current, all response message processing of HTTPConduit is in the class > WrappedOutputStream, e.g. handleResponse(), and handleResponseInternal() > method, so we cannot extend HTTPConduit to override both method if we want to > add more functions during processing response. because the class > WrappedOutputStream need some input parameter and the its sub-class cannot > get these private properties. > My use case is: I have my customized HTTPConduit which needs to override > handleResponse() method to catch its instead of cxf's default logic. > Can cxf move both meothd from WrappedOutputStream class to HTTPConduit so > that we can override them? thanks. > David -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira