Handle UnknownHostException gracefully

Issue #288 resolved
Adam Winer created an issue

java.net.UnknownHostException: ebird.org

java.util.concurrent.ExecutionException: java.net.UnknownHostException: ebird.org

        at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)

        at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)

        at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)

        at .ui.actions.locationapi.combined.CombinedGeocoder$2.run(CombinedGeocoder.java:87)

        at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)

        at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)

        at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)

        at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:202)

        at com.google.common.util.concurrent.Futures$CombinedFuture.setExceptionAndMaybeLog(Futures.java:1551)

        at com.google.common.util.concurrent.Futures$CombinedFuture.setOneValue(Futures.java:1593)

        at com.google.common.util.concurrent.Futures$CombinedFuture.access$400(Futures.java:1458)

        at com.google.common.util.concurrent.Futures$CombinedFuture$2.run(Futures.java:1534)

        at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)

        at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)

        at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)

        at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:202)

        at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:845)

        at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)

        at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)

        at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)

        at com.google.common.util.concurrent.ListenableFutureTask.done(ListenableFutureTask.java:91)

        at java.util.concurrent.FutureTask.finishCompletion(Unknown Source)

        at java.util.concurrent.FutureTask.setException(Unknown Source)

        at java.util.concurrent.FutureTask.run(Unknown Source)

        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

        at java.util.concurrent.FutureTask.run(Unknown Source)

        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)

        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.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)

Caused by: java.net.UnknownHostException: ebird.org

        at java.net.InetAddress.getAllByName0(Unknown Source)

        at java.net.InetAddress.getAllByName(Unknown Source)

        at java.net.InetAddress.getAllByName(Unknown Source)

        at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:44)

        at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:102)

        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:319)

        at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363)

        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219)

        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)

        at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)

        at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)

        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)

        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)

        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)

        at .ui.actions.locationapi.ebird.EBirdGeocoder$1.call(EBirdGeocoder.java:191)

        at .ui.actions.locationapi.ebird.EBirdGeocoder$1.call(EBirdGeocoder.java:184)

        ... 8 more

Comments (2)

  1. Adam Winer reporter

    Also:

    java.net.SocketTimeoutException: Read timed out

    java.util.concurrent.ExecutionException: java.net.SocketTimeoutException: Read timed out

            at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
    
            at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
    
            at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
    
            at .ui.actions.locationapi.combined.CombinedGeocoder$2.run(CombinedGeocoder.java:107)
    
            at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
    
            at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)
    
            at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)
    
            at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:202)
    
            at com.google.common.util.concurrent.Futures$CombinedFuture.setExceptionAndMaybeLog(Futures.java:1551)
    
            at com.google.common.util.concurrent.Futures$CombinedFuture.setOneValue(Futures.java:1593)
    
            at com.google.common.util.concurrent.Futures$CombinedFuture.access$400(Futures.java:1458)
    
            at com.google.common.util.concurrent.Futures$CombinedFuture$2.run(Futures.java:1534)
    
            at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
    
            at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)
    
            at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)
    
            at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:202)
    
            at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:845)
    
            at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
    
            at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)
    
            at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)
    
            at com.google.common.util.concurrent.ListenableFutureTask.done(ListenableFutureTask.java:91)
    
            at java.util.concurrent.FutureTask.finishCompletion(Unknown Source)
    
            at java.util.concurrent.FutureTask.setException(Unknown Source)
    
            at java.util.concurrent.FutureTask.run(Unknown Source)
    
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    
            at java.util.concurrent.FutureTask.run(Unknown Source)
    
            at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
    
            at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.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)
    

    Caused by: java.net.SocketTimeoutException: Read timed out

            at java.net.SocketInputStream.socketRead0(Native Method)
    
            at java.net.SocketInputStream.socketRead(Unknown Source)
    
            at java.net.SocketInputStream.read(Unknown Source)
    
            at java.net.SocketInputStream.read(Unknown Source)
    
            at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:136)
    
            at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:152)
    
            at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:270)
    
            at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140)
    
            at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
    
            at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:260)
    
            at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:161)
    
            at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:153)
    
            at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:271)
    
            at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
    
            at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:254)
    
            at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)
    
            at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)
    
            at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
    
            at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
    
            at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
    
            at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)
    
            at .ui.actions.locationapi.google.GoogleGeocoder$1.call(GoogleGeocoder.java:172)
    
            at .ui.actions.locationapi.google.GoogleGeocoder$1.call(GoogleGeocoder.java:165)
    
            ... 8 more
    
  2. Log in to comment