"Connection refused" when the device is powered off?

When a device I’m reading tags from gets turned off, the OPC-UA Server shows a “java.net.ConnectException: Connection refused” error. Is this normal? I would have expected that the error would indicate a time-out.

The entire error details is:

java.lang.Exception: Error connecting to “10.19.10.145”.
com.inductiveautomation.xopc.driver.api.AbstractSocketDriver.connect(AbstractSocketDriver.java:137)
com.inductiveautomation.xopc.driver.api.AbstractDriver$5.run(AbstractDriver.java:595)
java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
java.util.concurrent.FutureTask.run(Unknown Source)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
java.net.ConnectException: Connection refused: connect
java.net.DualStackPlainSocketImpl.connect0(Native Method)
java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
java.net.AbstractPlainSocketImpl.connect(Unknown Source)
java.net.PlainSocketImpl.connect(Unknown Source)
java.net.SocksSocketImpl.connect(Unknown Source)
java.net.Socket.connect(Unknown Source)
java.net.Socket.connect(Unknown Source)
com.inductiveautomation.xopc.driver.api.AbstractSocketDriver.connect(AbstractSocketDriver.java:111)
com.inductiveautomation.xopc.driver.api.AbstractDriver$5.run(AbstractDriver.java:595)
java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
java.util.concurrent.FutureTask.run(Unknown Source)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Whether the ConnectException’s message says timed out or connection refused is likely an implementation detail (in the JDK) that we don’t have any control over. I wouldn’t worry about it.