[jira] [Commented] (CXF-6940) Bus Reference nullified pre-maturely in ClientImpl causing Exceptions while processing Responses

2016-06-16 Thread Daniel Kulp (JIRA)

[ 
https://issues.apache.org/jira/browse/CXF-6940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15333690#comment-15333690
 ] 

Daniel Kulp commented on CXF-6940:
--

Correct.   Closing the connection should close any access to the resource the 
connection represents.


> Bus Reference nullified pre-maturely in ClientImpl causing Exceptions while 
> processing Responses
> 
>
> Key: CXF-6940
> URL: https://issues.apache.org/jira/browse/CXF-6940
> Project: CXF
>  Issue Type: Bug
>  Components: JAX-WS Runtime
>Affects Versions: 3.1.4
> Environment: IBM JDK 1.7, Apache CXF installed as resource Adapter on 
> IBM WebSphere 8.5.5.3 on RHEL 6.0
>Reporter: Dhawalpatel
>Priority: Critical
>
> Hi Daniel,
> Test Scenario:
> Install CXF as Resource Adapter in J2EE Container and use below code to call 
> a JAX-WS API.
> /* Lookup Resource Adapter of JCA and get COnnection*/
> CXFConnectionFactory connectionFactory = getCXFConnectionFactory(portClass);
>CXFConnectionSpec connectionSpec = createCXFConnectionSpec(portClass, 
> serviceName, portName, webServiceDefinition);
> /* Get the Port from JCA Connection pool*/
>   connection = connectionFactory.getConnection(connectionSpec);
>port = connection.getService(portClass);
> /* Close the JCA Connection*/
> if(connection != null)
>  connection.close();
> /*WebService call*/
> port.getAccount();
> Description: 
> When a JCA Connection pool eviction happens due to Max Connections reached 
> state, the existing on-going outgoing JAX-WS Calls errors out with below 
> exception:
> Message received on a Client that has been closed or destroyed.
>   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:86)
>   at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:58)
>   at java.lang.reflect.Constructor.newInstance(Constructor.java:542)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1376)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1365)
>   at 
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56)
>   at 
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215)
>   at 
> org.apache.cxf.io.AbstractWrappedOutputStream.close(AbstractWrappedOutputStream.java:77)
>   at 
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>   at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
>   at 
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>   at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>   at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:520)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:429)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:283)
>   at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
>   at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
>   at com.sun.proxy.$Proxy106.inquireWirelinePaymentPlan(Unknown Source)
>   at sun.reflect.GeneratedMethodAccessor360.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
>   at java.lang.reflect.Method.invoke(Method.java:620)
>   at AppAdapter.executeWebService(AppAdapter.java:702)
>   
> Caused by: 
> java.lang.IllegalStateException: Message received on a Client that has been 
> closed or destroyed.
>   at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:707)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1669)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1550)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1347)
>   ... 26 more
> On further investigation, it seems you changed the code in ClientImpl.java as 
> per https://issues.apache.org/jira/browse/CXF-3765 and change log
> https://fisheye6.atlassian.com/changelog/cxf?cs=e0ef66391d2e7e62e63e96214eca95e292271892
> by adding the additional cleanup code in ClientImpl.java the below lines
> bus = null;
> conduitSelector = null;
> outFaultObserver = null;
> outboundChainC

[jira] [Comment Edited] (CXF-6940) Bus Reference nullified pre-maturely in ClientImpl causing Exceptions while processing Responses

2016-06-16 Thread Dhawalpatel (JIRA)

[ 
https://issues.apache.org/jira/browse/CXF-6940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15334852#comment-15334852
 ] 

Dhawalpatel edited comment on CXF-6940 at 6/16/16 10:39 PM:


[~dkulp] Well, then there is a huge number of clients who might have to adopt 
the technique of sharing the connection based on the documentation and thus, 
suddenly changing the javadoc like that will cause lots of clients to have 
incompatible code with 3.1.4 now. Can I suggest a fix to not nullify the bus 
and other obj refs and make it same as previous version ? Can we inject a 
switch which will mimic the behavior like in previous version?
I read the JCA spec as well and in the section of 7.9 Sharing the connections, 
its very well mentioned that connection can be shared and used like this.

Thanks


was (Author: dhpatel27):
[~dkulp] Well, then there is a huge number of clients who might have adopted 
the technique of sharing the connection based on the documentation and thus, 
suddenly changing the javadoc like that will cause lots of clients to have 
incompatible code with 3.1.4 now. Can I suggest a fix to not nullify the bus 
and other obj refs and make it same as previous version ? Can we inject a 
switch which will mimic the behavior like in previous version?
I read the JCA spec as well and in the section of 7.9 Sharing the connections, 
its very well mentioned that connection can be shared and used like this.

Thanks

> Bus Reference nullified pre-maturely in ClientImpl causing Exceptions while 
> processing Responses
> 
>
> Key: CXF-6940
> URL: https://issues.apache.org/jira/browse/CXF-6940
> Project: CXF
>  Issue Type: Bug
>  Components: JAX-WS Runtime
>Affects Versions: 3.1.4
> Environment: IBM JDK 1.7, Apache CXF installed as resource Adapter on 
> IBM WebSphere 8.5.5.3 on RHEL 6.0
>Reporter: Dhawalpatel
>Priority: Critical
>
> Hi Daniel,
> Test Scenario:
> Install CXF as Resource Adapter in J2EE Container and use below code to call 
> a JAX-WS API.
> /* Lookup Resource Adapter of JCA and get COnnection*/
> CXFConnectionFactory connectionFactory = getCXFConnectionFactory(portClass);
>CXFConnectionSpec connectionSpec = createCXFConnectionSpec(portClass, 
> serviceName, portName, webServiceDefinition);
> /* Get the Port from JCA Connection pool*/
>   connection = connectionFactory.getConnection(connectionSpec);
>port = connection.getService(portClass);
> /* Close the JCA Connection*/
> if(connection != null)
>  connection.close();
> /*WebService call*/
> port.getAccount();
> Description: 
> When a JCA Connection pool eviction happens due to Max Connections reached 
> state, the existing on-going outgoing JAX-WS Calls errors out with below 
> exception:
> Message received on a Client that has been closed or destroyed.
>   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:86)
>   at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:58)
>   at java.lang.reflect.Constructor.newInstance(Constructor.java:542)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1376)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1365)
>   at 
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56)
>   at 
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215)
>   at 
> org.apache.cxf.io.AbstractWrappedOutputStream.close(AbstractWrappedOutputStream.java:77)
>   at 
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>   at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
>   at 
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>   at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>   at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:520)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:429)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:283)
>   at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
>   at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
>   at com.sun.proxy.$Proxy106.inquireWirelinePaymentPlan(Unknown Source)
>   at sun.reflect.GeneratedMethodAccessor360.invoke(Unknown Source)
>   at

[jira] [Comment Edited] (CXF-6940) Bus Reference nullified pre-maturely in ClientImpl causing Exceptions while processing Responses

2016-06-16 Thread Dhawalpatel (JIRA)

[ 
https://issues.apache.org/jira/browse/CXF-6940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15334852#comment-15334852
 ] 

Dhawalpatel edited comment on CXF-6940 at 6/16/16 10:40 PM:


[~dkulp] Well, then there is a huge number of clients who might have already 
adopted the technique of sharing the connection based on the documentation and 
thus, suddenly changing the javadoc like that will cause lots of clients to 
have incompatible code with 3.1.4 now. Can I suggest a fix to not nullify the 
bus and other obj refs and make it same as previous version ? Can we inject a 
switch which will mimic the behavior like in previous version?
I read the JCA spec as well and in the section of 7.9 Sharing the connections, 
its very well mentioned that connection can be shared and used like this.

Thanks


was (Author: dhpatel27):
[~dkulp] Well, then there is a huge number of clients who might have to adopt 
the technique of sharing the connection based on the documentation and thus, 
suddenly changing the javadoc like that will cause lots of clients to have 
incompatible code with 3.1.4 now. Can I suggest a fix to not nullify the bus 
and other obj refs and make it same as previous version ? Can we inject a 
switch which will mimic the behavior like in previous version?
I read the JCA spec as well and in the section of 7.9 Sharing the connections, 
its very well mentioned that connection can be shared and used like this.

Thanks

> Bus Reference nullified pre-maturely in ClientImpl causing Exceptions while 
> processing Responses
> 
>
> Key: CXF-6940
> URL: https://issues.apache.org/jira/browse/CXF-6940
> Project: CXF
>  Issue Type: Bug
>  Components: JAX-WS Runtime
>Affects Versions: 3.1.4
> Environment: IBM JDK 1.7, Apache CXF installed as resource Adapter on 
> IBM WebSphere 8.5.5.3 on RHEL 6.0
>Reporter: Dhawalpatel
>Priority: Critical
>
> Hi Daniel,
> Test Scenario:
> Install CXF as Resource Adapter in J2EE Container and use below code to call 
> a JAX-WS API.
> /* Lookup Resource Adapter of JCA and get COnnection*/
> CXFConnectionFactory connectionFactory = getCXFConnectionFactory(portClass);
>CXFConnectionSpec connectionSpec = createCXFConnectionSpec(portClass, 
> serviceName, portName, webServiceDefinition);
> /* Get the Port from JCA Connection pool*/
>   connection = connectionFactory.getConnection(connectionSpec);
>port = connection.getService(portClass);
> /* Close the JCA Connection*/
> if(connection != null)
>  connection.close();
> /*WebService call*/
> port.getAccount();
> Description: 
> When a JCA Connection pool eviction happens due to Max Connections reached 
> state, the existing on-going outgoing JAX-WS Calls errors out with below 
> exception:
> Message received on a Client that has been closed or destroyed.
>   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:86)
>   at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:58)
>   at java.lang.reflect.Constructor.newInstance(Constructor.java:542)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1376)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1365)
>   at 
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56)
>   at 
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215)
>   at 
> org.apache.cxf.io.AbstractWrappedOutputStream.close(AbstractWrappedOutputStream.java:77)
>   at 
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>   at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
>   at 
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>   at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>   at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:520)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:429)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:283)
>   at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
>   at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
>   at com.sun.proxy.$Proxy106.inquireWirelinePaymentPlan(Unknown Source)
>   at sun.reflect.GeneratedMethodAccessor360.invoke(Unknown Source)
> 

[jira] [Commented] (CXF-6940) Bus Reference nullified pre-maturely in ClientImpl causing Exceptions while processing Responses

2016-06-16 Thread Dhawalpatel (JIRA)

[ 
https://issues.apache.org/jira/browse/CXF-6940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15334852#comment-15334852
 ] 

Dhawalpatel commented on CXF-6940:
--

[~dkulp] Well, then there is a huge number of clients who might have adopted 
the technique of sharing the connection based on the documentation and thus, 
suddenly changing the javadoc like that will cause lots of clients to have 
incompatible code with 3.1.4 now. Can I suggest a fix to not nullify the bus 
and other obj refs and make it same as previous version ? Can we inject a 
switch which will mimic the behavior like in previous version?
I read the JCA spec as well and in the section of 7.9 Sharing the connections, 
its very well mentioned that connection can be shared and used like this.

Thanks

> Bus Reference nullified pre-maturely in ClientImpl causing Exceptions while 
> processing Responses
> 
>
> Key: CXF-6940
> URL: https://issues.apache.org/jira/browse/CXF-6940
> Project: CXF
>  Issue Type: Bug
>  Components: JAX-WS Runtime
>Affects Versions: 3.1.4
> Environment: IBM JDK 1.7, Apache CXF installed as resource Adapter on 
> IBM WebSphere 8.5.5.3 on RHEL 6.0
>Reporter: Dhawalpatel
>Priority: Critical
>
> Hi Daniel,
> Test Scenario:
> Install CXF as Resource Adapter in J2EE Container and use below code to call 
> a JAX-WS API.
> /* Lookup Resource Adapter of JCA and get COnnection*/
> CXFConnectionFactory connectionFactory = getCXFConnectionFactory(portClass);
>CXFConnectionSpec connectionSpec = createCXFConnectionSpec(portClass, 
> serviceName, portName, webServiceDefinition);
> /* Get the Port from JCA Connection pool*/
>   connection = connectionFactory.getConnection(connectionSpec);
>port = connection.getService(portClass);
> /* Close the JCA Connection*/
> if(connection != null)
>  connection.close();
> /*WebService call*/
> port.getAccount();
> Description: 
> When a JCA Connection pool eviction happens due to Max Connections reached 
> state, the existing on-going outgoing JAX-WS Calls errors out with below 
> exception:
> Message received on a Client that has been closed or destroyed.
>   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:86)
>   at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:58)
>   at java.lang.reflect.Constructor.newInstance(Constructor.java:542)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1376)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1365)
>   at 
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56)
>   at 
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215)
>   at 
> org.apache.cxf.io.AbstractWrappedOutputStream.close(AbstractWrappedOutputStream.java:77)
>   at 
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>   at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
>   at 
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>   at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>   at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:520)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:429)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:283)
>   at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
>   at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
>   at com.sun.proxy.$Proxy106.inquireWirelinePaymentPlan(Unknown Source)
>   at sun.reflect.GeneratedMethodAccessor360.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
>   at java.lang.reflect.Method.invoke(Method.java:620)
>   at AppAdapter.executeWebService(AppAdapter.java:702)
>   
> Caused by: 
> java.lang.IllegalStateException: Message received on a Client that has been 
> closed or destroyed.
>   at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:707)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1669)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1550)
>   at 
> org.apache.cxf.transport.h

[jira] [Commented] (CXF-6940) Bus Reference nullified pre-maturely in ClientImpl causing Exceptions while processing Responses

2016-06-16 Thread Daniel Kulp (JIRA)

[ 
https://issues.apache.org/jira/browse/CXF-6940?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15335241#comment-15335241
 ] 

Daniel Kulp commented on CXF-6940:
--

This code has been in place for 5 years.  Anyone using this should have 
upgraded to versions that worked this way many years ago.  3.1.4 works the same 
as 2.5, 2.6, 2.7, 3.0, etc  If this was logged many years ago, I think I 
would have considered it.  But at this point I'm not about to put in a 
workaround to maintain compability with a bug in a 7 year old version of CXF.

> Bus Reference nullified pre-maturely in ClientImpl causing Exceptions while 
> processing Responses
> 
>
> Key: CXF-6940
> URL: https://issues.apache.org/jira/browse/CXF-6940
> Project: CXF
>  Issue Type: Bug
>  Components: JAX-WS Runtime
>Affects Versions: 3.1.4
> Environment: IBM JDK 1.7, Apache CXF installed as resource Adapter on 
> IBM WebSphere 8.5.5.3 on RHEL 6.0
>Reporter: Dhawalpatel
>Priority: Critical
>
> Hi Daniel,
> Test Scenario:
> Install CXF as Resource Adapter in J2EE Container and use below code to call 
> a JAX-WS API.
> /* Lookup Resource Adapter of JCA and get COnnection*/
> CXFConnectionFactory connectionFactory = getCXFConnectionFactory(portClass);
>CXFConnectionSpec connectionSpec = createCXFConnectionSpec(portClass, 
> serviceName, portName, webServiceDefinition);
> /* Get the Port from JCA Connection pool*/
>   connection = connectionFactory.getConnection(connectionSpec);
>port = connection.getService(portClass);
> /* Close the JCA Connection*/
> if(connection != null)
>  connection.close();
> /*WebService call*/
> port.getAccount();
> Description: 
> When a JCA Connection pool eviction happens due to Max Connections reached 
> state, the existing on-going outgoing JAX-WS Calls errors out with below 
> exception:
> Message received on a Client that has been closed or destroyed.
>   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>   at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:86)
>   at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:58)
>   at java.lang.reflect.Constructor.newInstance(Constructor.java:542)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1376)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1365)
>   at 
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56)
>   at 
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215)
>   at 
> org.apache.cxf.io.AbstractWrappedOutputStream.close(AbstractWrappedOutputStream.java:77)
>   at 
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>   at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
>   at 
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>   at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>   at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:520)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:429)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330)
>   at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:283)
>   at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
>   at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139)
>   at com.sun.proxy.$Proxy106.inquireWirelinePaymentPlan(Unknown Source)
>   at sun.reflect.GeneratedMethodAccessor360.invoke(Unknown Source)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
>   at java.lang.reflect.Method.invoke(Method.java:620)
>   at AppAdapter.executeWebService(AppAdapter.java:702)
>   
> Caused by: 
> java.lang.IllegalStateException: Message received on a Client that has been 
> closed or destroyed.
>   at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:707)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1669)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1550)
>   at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1347)
>   ... 26 more
> On further investigation, it seems you changed the code in ClientImpl.java as 
> per https://issues.apache.org/jira/browse/CXF-3765 and chang