openairplay / jolivia

An Java implementation of DMAP, DAAP, DPAP, DMCP, DACP and RAOP with Guice + Jetty - Essentially a iTunes share, iPhoto share and Airport Express emulation
Other
64 stars 11 forks source link

java.net.UnknownHostException on Windows Client #1

Closed yacchin1205 closed 11 years ago

yacchin1205 commented 11 years ago

When executing org.dyndns.jkiddo.Jolivia on Windows PC and pairing with iTunes, the following exception occurs:

java.net.UnknownHostException: yazawa-Mac-mini.local.
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.net.NetworkClient.doConnect(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.<init>(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.http.HttpClient.New(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
    at org.dyndns.jkiddo.service.daap.client.RequestHelper.request(RequestHelper.java:159)
    at org.dyndns.jkiddo.service.daap.client.RequestHelper.requestParsed(RequestHelper.java:118)
    at org.dyndns.jkiddo.service.daap.client.RequestHelper.requestParsed(RequestHelper.java:106)
    at org.dyndns.jkiddo.service.daap.client.RequestHelper.requestParsed(RequestHelper.java:111)
    at org.dyndns.jkiddo.service.daap.client.Session.<init>(Session.java:112)
    at org.dyndns.jkiddo.service.daap.client.PairedRemoteDiscoverer.serviceResolved(PairedRemoteDiscoverer.java:77)
    at javax.jmdns.impl.ListenerStatus$ServiceListenerStatus.serviceResolved(ListenerStatus.java:104)
    at javax.jmdns.impl.JmDNSImpl$1.run(JmDNSImpl.java:872)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

On Mac OS X, it works fine.

I guess that the name by Bonjour (such as "foo.local.") can't be resolved by the OS (or Java Runtime?) on Windows. As a workaround, I replaced "event.getInfo().getServer()" by "event.getInfo().getInet4Addresses()[0].getHostAddress()" on line 77 of PairedRemoteDiscoverer.java, then it seems to work.

yacchin1205 commented 11 years ago

Thanks! The fixed version works fine on Windows.