Sony Binding [3.2.0;3.9.0)

Hi everyone, my TV is Sony 55X8500E. I wonder if with only some simple operations (like changing input, volume, power on/off, switch channel) then which method should I choose between Scalar and Simple IP? Which is fast, stable, and more power-saving?

Although I have no experience with the SimpleIP protocol, I would assume that it is more suited for the simple use cases you mentioned.

However, if you want to keep options open for more advanced use cases (e.g. controlling apps, creating favorite channels list etc) I would go for the Scalar protocol. This should also be stable and fast enough.

1 Like

Hi is it normal that certain Thing channels do not get updated when i change them on the TV?

For example my two item channels here are always ā€œNULLā€ (unless i update them from openhab of course)

sony:scalar:mysonytv:avContent#tm_source-main
sony:scalar:mysonytv:avContent#ps_channel-dvbt

while others are updated (like audio mute etc.) Thanks :slight_smile:

This is not the expected/normal behaviour. Iā€™ve just tested this with a simple label cell which references an item linked to tm_source-main channel and this works fine for me (cell label is updated on refresh when input source is changed from the TVā€™s remote control).

For which other channels are you observing the issue? Iā€™m asking because the stated channels use dynamically generated state options, which might attribute to the cause of the problem.

Difficult to say, because besides that i only use these presumably static channels

sony:scalar:mysonytv:system#powerstatus
sony:scalar:mysonytv:audio#volume-speaker
sony:scalar:mysonytv:audio#mute-speaker
sony:scalar:mysonytv:system#powersavingmode

Iā€™ll create some other channels for testing and report back. Something else i can provide to find the cause?

Hi, after a reboot the things shows UNITIALIZED for both Simple IP and Scalar. Running 3.2.0 Release build and installed from marketplace. Removing the binding and reinstalling brings it back to life. Using the Sony binding since 3.2 M5, had same issue there.

Any suggestions how I can fix this?

This has already been discussed a couple of posts above. Afaik there no fix for this problem yet.

Thanks, sorry must have missed that.

@DrRSatzteil @mario1967

I opened an issue a few weeks ago ( [marketplace] Failed reinstalling add-on from cache on restart Ā· Issue #2614 Ā· openhab/openhab-core (github.com)) and until now have assumed that it had been fixed as it didnā€™t re-occur for me.

Strangely enough, in a todayā€™s test I did see this issue again but without any log info, so I guess there is something else not working properly which I 'm now going to investigate.

You could try to re-install the binding from the local cache as follows (note that the path depends on your environment)

kar:install file:/var/lib/openhab/marketplace/kar/128262/org.openhab.binding.sony-3.2.0.kar

If you use the release build, this should not occur.

Iā€™m using the release build and I think I can confirm that the mentioned Github issue has been fixed.

The current issue shows a different behaviour: The binding appears as ā€˜Resolvedā€™ for a short time in the bundle list and then disappears without any log info. But it can be manually installed from the marketplace cache without problems. So I assume that something goes wrong with the binding installation on startup. Any hint for further investigation would be helpful.

1 Like

Iā€™m also using the release build but havenā€™t noticed that the behaviour is different now. I just thought nothing had changed since I still see the thing in UNINITIALIZED state on startup. Please let me know if I can assist by sending log files or anything.

Just looked through the list of channels and canā€™t identify a further one that is dynamically generated.
Do you have one in mind that i can test? And is there something else i can provide while i am at it?
Thanks :slight_smile:

Iā€™ve created a new topic Problem with binding from marketplace being installed and subsequently uninstalled on OH start-up for this issue as my current analysis of the log files have been unsuccessful. At least I would have expected to see a warning or error message in the log files, which I havenā€™t.

So for now the only option I see is to await a helpful response unless you have made other or complementing observations than Iā€™ve stated in the issue topic.

Iā€™ve published a new version on the marketplace that should fix the issue with binding removal on (re-) start of openhab.

@andan Removed and re-installed the binding, after reboot loaded as planned :smile:
Thanks for the fix.

What could help if you copuld send me details of your item and UI configs. Please also check if the items are properly linked to the channels (one channel per item, no orphan links etc).

Works for me as well! Thank you!

And now I can install the binding from the marketplace as well.

Ok here are some details:

Thing definition (I removed the MacAdress and access code)

Thing sony:scalar:mysonytv "Sony TV - Scalar" [ deviceMacAddress="xxx", deviceAddress="http://192.168.1.11", ignoreChannels="analog", checkStatusPolling=30, accessCode="xxxx", refresh=30, commandsMapFile="KD-49XD7005-Scalar.map", retryPolling=30 ]

Items (also includes metadata for Google Assistant)

/* Sony TV */
Group  gTv "TV" { ga="TV" [ volumeDefaultPercentage="18", levelStepSize="1", volumeMaxLevel="22", availableApplications="Startseite=Startseite:StartmenĆ¼,YouTube=YouTube,Netflix=Netflix,ARD-Mediathek=ARD-Mediathek,ZDFmediathek=ZDFmediathek,ARTE=ARTE,Kodi=Kodi", availableChannels="001=channel001=ARD,002=channel002=ARD_alpha,003=channel003=ONE,004=channel004=ZDF,005=channel005=ZDF_neo,006=channel006=ZDFinfo,007=channel007=WDR" ] }
Switch Sw_Tv_State_Lr "TV Power" <screen> (gTv) { channel="sony:scalar:mysonytv:system#powerstatus", ga="tvPower" }
String St_Tv_Source_Lr "TV Quelle" <list> (gTv) { channel="sony:scalar:mysonytv:avContent#tm_source-main" }
Dimmer Di_Tv_Volume_Lr "TV LautstƤrke [%d]" <soundvolume> (gTv) { channel="sony:scalar:mysonytv:audio#volume-speaker", ga="tvVolume" }
Switch Sw_Tv_Mute_Lr "TV Mute" <mutesound> (gMutemultimedia, gTV) { channel="sony:scalar:mysonytv:audio#mute-speaker", ga="tvMute" }
String St_Tv_Channel_Lr "TV Kanal [%s]" <video> (gTv) { channel="sony:scalar:mysonytv:avContent#ps_channel-dvbt", ga="tvChannel" }
String St_Tv_PowerSavings_Lr "TV Displayabschaltung []" <screen>  { channel="sony:scalar:mysonytv:system#powersavingmode" }

Sitemap

Frame label="Video" {
				Switch item=Sw_Tv_State_Lr
				Selection item=St_Tv_Source_Lr mappings=["tv:dvbt"="TV", "extInput:hdmi?port=3"="HDMI3"]
				Setpoint item=Di_Tv_Volume_Lr minValue=0 maxValue=26 step=1
				Switch item=Sw_Tv_Mute_Lr
				Selection item=St_Tv_Channel_Lr mappings=["001"="ARD", "002"="ARD alpha", "003"="ONE", "004"="ZDF", "005"="ZDF_neo", "006"="ZDFinfo", "007"="WDR"]
				Switch item=St_Tv_PowerSavings_Lr mappings=["off"="aus", "pictureOff"="an"]
			}

IMO the definition should be alright, but i assume you donā€™t like the Thing definition in the textfile with pre-shared key :slight_smile:

EDIT: But i just gave it a try with re-enabling scalar discovery and configuring via UI with a requested ā€œRQSTā€ key. But same problem, these two items do not refresh.

However when initialzing with the UI configured Thing no error shows up in the log. But with my text file definition this shows up (maybe itā€™s interesting for you):

2022-01-06 06:26:56.993 [WARN ] [ache.cxf.phase.PhaseInterceptorChain] - Interceptor for {http://192.168.1.11:10000/sony/guide}WebClient has thrown exception, unwinding now

org.apache.cxf.interceptor.Fault: Could not send Message.

	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:67) ~[?:?]

	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) ~[?:?]

	at org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:703) ~[?:?]

	at org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:1086) ~[?:?]

	at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:932) ~[?:?]

	at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:901) ~[?:?]

	at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:461) ~[?:?]

	at org.apache.cxf.jaxrs.client.SyncInvokerImpl.method(SyncInvokerImpl.java:150) ~[?:?]

	at org.apache.cxf.jaxrs.client.SyncInvokerImpl.method(SyncInvokerImpl.java:145) ~[?:?]

	at org.apache.cxf.jaxrs.client.SyncInvokerImpl.post(SyncInvokerImpl.java:85) ~[?:?]

	at org.apache.cxf.jaxrs.client.spec.InvocationBuilderImpl.post(InvocationBuilderImpl.java:153) ~[?:?]

	at org.openhab.binding.sony.internal.net.HttpRequest.sendPostCommand(HttpRequest.java:158) ~[?:?]

	at org.openhab.binding.sony.internal.net.HttpRequest.sendPostJsonCommand(HttpRequest.java:138) ~[?:?]

	at org.openhab.binding.sony.internal.transports.SonyHttpTransport.executePostJson(SonyHttpTransport.java:331) ~[?:?]

	at org.openhab.binding.sony.internal.transports.SonyHttpTransport.executePostJson(SonyHttpTransport.java:308) ~[?:?]

	at org.openhab.binding.sony.internal.transports.SonyHttpTransport.execute(SonyHttpTransport.java:129) ~[?:?]

	at org.openhab.binding.sony.internal.transports.SonyTransport.execute(SonyTransport.java:108) ~[?:?]

	at org.openhab.binding.sony.internal.scalarweb.ScalarWebClientFactory.tryDefaultClientUrl(ScalarWebClientFactory.java:166) ~[?:?]

	at org.openhab.binding.sony.internal.scalarweb.ScalarWebClientFactory.getDefaultClient(ScalarWebClientFactory.java:125) ~[?:?]

	at org.openhab.binding.sony.internal.scalarweb.ScalarWebClientFactory.get(ScalarWebClientFactory.java:101) ~[?:?]

	at org.openhab.binding.sony.internal.scalarweb.ScalarWebClientFactory.get(ScalarWebClientFactory.java:80) ~[?:?]

	at org.openhab.binding.sony.internal.scalarweb.ScalarWebHandler.connect(ScalarWebHandler.java:327) ~[?:?]

	at org.openhab.binding.sony.internal.AbstractThingHandler.doConnect(AbstractThingHandler.java:137) ~[?:?]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]

	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]

	at java.lang.Thread.run(Thread.java:829) [?:?]

Caused by: java.net.ConnectException: ConnectException invoking http://192.168.1.11:10000/sony/guide: Connection refused (Connection refused)

	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]

	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:?]

	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]

	at java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[?:?]

	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1400) ~[?:?]

	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1384) ~[?:?]

	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:671) ~[?:?]

	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63) ~[?:?]

	... 28 more

Caused by: java.net.ConnectException: Connection refused (Connection refused)

	at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:?]

	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399) ~[?:?]

	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242) ~[?:?]

	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224) ~[?:?]

	at java.net.Socket.connect(Socket.java:609) ~[?:?]

	at sun.net.NetworkClient.doConnect(NetworkClient.java:177) ~[?:?]

	at sun.net.www.http.HttpClient.openServer(HttpClient.java:474) ~[?:?]

	at sun.net.www.http.HttpClient.openServer(HttpClient.java:569) ~[?:?]

	at sun.net.www.http.HttpClient.<init>(HttpClient.java:242) ~[?:?]

	at sun.net.www.http.HttpClient.New(HttpClient.java:341) ~[?:?]

	at sun.net.www.http.HttpClient.New(HttpClient.java:362) ~[?:?]

	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1253) ~[?:?]

	at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1232) ~[?:?]

	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081) ~[?:?]

	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015) ~[?:?]

	at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1367) ~[?:?]

	at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1342) ~[?:?]

	at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setupWrappedStream(URLConnectionHTTPConduit.java:274) ~[?:?]

	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1343) ~[?:?]

	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1304) ~[?:?]

	at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.onFirstWrite(URLConnectionHTTPConduit.java:307) ~[?:?]

	at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:47) ~[?:?]

	at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69) ~[?:?]

	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1356) ~[?:?]

	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:671) ~[?:?]

	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63) ~[?:?]

	... 28 more

2022-01-06 06:26:57.184 [WARN ] [ache.cxf.phase.PhaseInterceptorChain] - Interceptor for {http://192.168.1.11:54480/sony/guide}WebClient has thrown exception, unwinding now

org.apache.cxf.interceptor.Fault: Could not send Message.

	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:67) ~[?:?]

	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308) ~[?:?]

	at org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:703) ~[?:?]

	at org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:1086) ~[?:?]

	at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:932) ~[?:?]

	at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:901) ~[?:?]

	at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:461) ~[?:?]

	at org.apache.cxf.jaxrs.client.SyncInvokerImpl.method(SyncInvokerImpl.java:150) ~[?:?]

	at org.apache.cxf.jaxrs.client.SyncInvokerImpl.method(SyncInvokerImpl.java:145) ~[?:?]

	at org.apache.cxf.jaxrs.client.SyncInvokerImpl.post(SyncInvokerImpl.java:85) ~[?:?]

	at org.apache.cxf.jaxrs.client.spec.InvocationBuilderImpl.post(InvocationBuilderImpl.java:153) ~[?:?]

	at org.openhab.binding.sony.internal.net.HttpRequest.sendPostCommand(HttpRequest.java:158) ~[?:?]

	at org.openhab.binding.sony.internal.net.HttpRequest.sendPostJsonCommand(HttpRequest.java:138) ~[?:?]

	at org.openhab.binding.sony.internal.transports.SonyHttpTransport.executePostJson(SonyHttpTransport.java:331) ~[?:?]

	at org.openhab.binding.sony.internal.transports.SonyHttpTransport.executePostJson(SonyHttpTransport.java:308) ~[?:?]

	at org.openhab.binding.sony.internal.transports.SonyHttpTransport.execute(SonyHttpTransport.java:129) ~[?:?]

	at org.openhab.binding.sony.internal.transports.SonyTransport.execute(SonyTransport.java:108) ~[?:?]

	at org.openhab.binding.sony.internal.scalarweb.ScalarWebClientFactory.tryDefaultClientUrl(ScalarWebClientFactory.java:166) ~[?:?]

	at org.openhab.binding.sony.internal.scalarweb.ScalarWebClientFactory.getDefaultClient(ScalarWebClientFactory.java:130) ~[?:?]

	at org.openhab.binding.sony.internal.scalarweb.ScalarWebClientFactory.get(ScalarWebClientFactory.java:101) ~[?:?]

	at org.openhab.binding.sony.internal.scalarweb.ScalarWebClientFactory.get(ScalarWebClientFactory.java:80) ~[?:?]

	at org.openhab.binding.sony.internal.scalarweb.ScalarWebHandler.connect(ScalarWebHandler.java:327) ~[?:?]

	at org.openhab.binding.sony.internal.AbstractThingHandler.doConnect(AbstractThingHandler.java:137) ~[?:?]

	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]

	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]

	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]

	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]

	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]

	at java.lang.Thread.run(Thread.java:829) [?:?]

Caused by: java.net.ConnectException: ConnectException invoking http://192.168.1.11:54480/sony/guide: Connection refused (Connection refused)

	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]

	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:?]

	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]

	at java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[?:?]

	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1400) ~[?:?]

	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1384) ~[?:?]

	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:671) ~[?:?]

	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63) ~[?:?]

	... 28 more

Caused by: java.net.ConnectException: Connection refused (Connection refused)

	at java.net.PlainSocketImpl.socketConnect(Native Method) ~[?:?]

	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399) ~[?:?]

	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242) ~[?:?]

	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224) ~[?:?]

	at java.net.Socket.connect(Socket.java:609) ~[?:?]

	at sun.net.NetworkClient.doConnect(NetworkClient.java:177) ~[?:?]

	at sun.net.www.http.HttpClient.openServer(HttpClient.java:474) ~[?:?]

	at sun.net.www.http.HttpClient.openServer(HttpClient.java:569) ~[?:?]

	at sun.net.www.http.HttpClient.<init>(HttpClient.java:242) ~[?:?]

	at sun.net.www.http.HttpClient.New(HttpClient.java:341) ~[?:?]

	at sun.net.www.http.HttpClient.New(HttpClient.java:362) ~[?:?]

	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1253) ~[?:?]

	at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1232) ~[?:?]

	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081) ~[?:?]

	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015) ~[?:?]

	at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1367) ~[?:?]

	at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1342) ~[?:?]

	at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setupWrappedStream(URLConnectionHTTPConduit.java:274) ~[?:?]

	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1343) ~[?:?]

	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1304) ~[?:?]

	at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.onFirstWrite(URLConnectionHTTPConduit.java:307) ~[?:?]

	at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:47) ~[?:?]

	at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69) ~[?:?]

	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1356) ~[?:?]

	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:671) ~[?:?]

	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63) ~[?:?]

	... 28 more