try {
dev.getAdapter().removeDevice(dev.getRawDevice());
} catch (DBusException ex) {
- if (ex.getMessage().contains("Does Not Exist")) {
- // this happens when the underlying device has already been removed
- // but we don't have a way to check if that is the case beforehand so
- // we will just eat the error here.
- } else {
+ String exceptionMessage = ex.getMessage();
+ if (exceptionMessage == null || exceptionMessage.contains("Does Not Exist")) {
logger.debug("Exception occurred when trying to remove inactive device '{}': {}", address,
ex.getMessage());
}
+ // this codeblock will only be hit when the underlying device has already
+ // been removed but we don't have a way to check if that is the case beforehand
+ // so we will just eat the error here.
} catch (RuntimeException ex) {
// try to catch any other exceptions
logger.debug("Exception occurred when trying to remove inactive device '{}': {}", address,
// Have to double check because sometimes, exception but still worked
logger.debug("Got a timeout - but sometimes happen. Is Connected ? {}", dev.isConnected());
if (Boolean.FALSE.equals(dev.isConnected())) {
-
notifyListeners(BluetoothEventType.CONNECTION_STATE,
new BluetoothConnectionStatusNotification(ConnectionState.DISCONNECTED));
return false;
} catch (Exception e) {
logger.warn("error occured while trying to connect", e);
}
-
} else {
logger.debug("Device was already connected");
// we might be stuck in another state atm so we need to trigger a connected in this case
try {
c.startNotify();
} catch (DBusException e) {
- if (e.getMessage().contains("Already notifying")) {
+ String exceptionMessage = e.getMessage();
+ if (exceptionMessage != null && exceptionMessage.contains("Already notifying")) {
return null;
- } else if (e.getMessage().contains("In Progress")) {
+ } else if (exceptionMessage != null && exceptionMessage.contains("In Progress")) {
// let's retry in half a second
throw new RetryException(500, TimeUnit.MILLISECONDS);
} else {
try {
c.stopNotify();
} catch (DBusException e) {
- if (e.getMessage().contains("Already notifying")) {
+ String exceptionMessage = e.getMessage();
+ if (exceptionMessage != null && exceptionMessage.contains("Already notifying")) {
return null;
- } else if (e.getMessage().contains("In Progress")) {
+ } else if (exceptionMessage != null && exceptionMessage.contains("In Progress")) {
// let's retry in half a second
throw new RetryException(500, TimeUnit.MILLISECONDS);
} else {
import static org.junit.jupiter.api.Assertions.*;
-import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.NonNullByDefault;
import org.junit.jupiter.api.Test;
import org.openhab.binding.bluetooth.BluetoothAddress;
import org.openhab.binding.bluetooth.bluez.internal.events.BlueZEvent;
* @author Benjamin Lafois - Initial Contribution
* @author Connor Petty - Added additional test cases
*/
+@NonNullByDefault
public class BlueZEventTest {
@Test
}
@Override
- public void dispatch(@NonNull BlueZEventListener listener) {
+ public void dispatch(BlueZEventListener listener) {
listener.onDBusBlueZEvent(this);
}
}