1

I had written a library and published it as a jar. Other applications used my library and everything was great.

Now the other application upgraded their dependencies. and now when they run. the application crashes when it calls my library. It seems that the application now depends on netty 4.1.8 whereas my library depended on a third party library which used an older version. Now when building the other application, sbt evicts my netty version with the newer one. The newer netty version does not have the method on which my code depends upon.

Thus the exception

org.jboss.netty.handler.codec.http.HttpRequest.setHeader(Ljava/lang/String;Ljava/lang/Object;)V"
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.construct(NettyAsyncHttpProvider.java:693) 
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.buildRequest(NettyAsyncHttpProvider.java:650) 
com.ning.http.client.providers.netty.NettyConnectListener$Builder.build(NettyConnectListener.java:144) 
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.doConnect(NettyAsyncHttpProvider.java:1070) 
com.ning.http.client.providers.netty.NettyAsyncHttpProvider.execute(NettyAsyncHttpProvider.java:935) 
com.ning.http.client.AsyncHttpClient.executeRequest(AsyncHttpClient.java:499) 
dispatch.HttpExecutor$class.apply(execution.scala:47) 
dispatch.Http.apply(execution.scala:12) 
dispatch.HttpExecutor$class.apply(execution.scala:42) 
dispatch.Http.apply(execution.scala:12) 
scalaxb.DispatchHttpClients$DispatchHttpClient$class.request(httpclients_dispatch.scala:21) 
scalaxb.DispatchHttpClients$$anon$1.request(httpclients_dispatch.scala:6) 
scalaxb.SoapClients$SoapClient$class.soapRequest(soap12.scala:41) 
scalaxb.SoapClients$$anon$1.soapRequest(soap12.scala:23) scalaxb.SoapClients$SoapClient$class.requestResponse(soap12.scala:60) 
scalaxb.SoapClients$$anon$1.requestResponse(soap12.scala:23) 

I am already using the latest version of the 3rd party library (scalaxb) which depends on old netty.

This is really killing because my library is holding back the entire upgrade process of the application.

1

1 Answer 1

1

There isn't much you can do about this, aside from telling that application's maintainers that using your library requires that specific version of netty, and is not compatible with newer versions. They have to either downgrade back or replace you library with something else.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.