diff --git a/src/org/kde/kdeconnect/Backends/BluetoothBackend/BluetoothLinkProvider.java b/src/org/kde/kdeconnect/Backends/BluetoothBackend/BluetoothLinkProvider.java index 580a56b9..9b77603c 100644 --- a/src/org/kde/kdeconnect/Backends/BluetoothBackend/BluetoothLinkProvider.java +++ b/src/org/kde/kdeconnect/Backends/BluetoothBackend/BluetoothLinkProvider.java @@ -175,14 +175,19 @@ public class BluetoothLinkProvider extends BaseLinkProvider { } } - ConnectionMultiplexer connection = null; + Log.i("BTLinkProvider/Server", "Received connection from " + socket.getRemoteDevice().getAddress()); + + //Delay to let bluetooth initialize stuff correctly try { - Log.i("BTLinkProvider/Server", "Received connection from " + socket.getRemoteDevice().getAddress()); - - //Delay to let bluetooth initialize stuff correctly Thread.sleep(500); + } catch (Exception e) { + synchronized (sockets) { + sockets.remove(socket.getRemoteDevice()); + } + throw e; + } - connection = new ConnectionMultiplexer(socket); + try (ConnectionMultiplexer connection = new ConnectionMultiplexer(socket)) { OutputStream outputStream = connection.getDefaultOutputStream(); InputStream inputStream = connection.getDefaultInputStream(); @@ -219,7 +224,6 @@ public class BluetoothLinkProvider extends BaseLinkProvider { } catch (Exception e) { synchronized (sockets) { sockets.remove(socket.getRemoteDevice()); - IOUtils.close(connection); } throw e; } diff --git a/src/org/kde/kdeconnect/Helpers/ContactsHelper.java b/src/org/kde/kdeconnect/Helpers/ContactsHelper.java index b31bea55..b8c59c0d 100644 --- a/src/org/kde/kdeconnect/Helpers/ContactsHelper.java +++ b/src/org/kde/kdeconnect/Helpers/ContactsHelper.java @@ -36,6 +36,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import kotlin.text.Charsets; + public class ContactsHelper { static final String LOG_TAG = "ContactsHelper"; @@ -155,15 +157,10 @@ public class ContactsHelper { Uri vcardURI = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey); try (InputStream input = context.getContentResolver().openInputStream(vcardURI)) { - - if (input == null) - { + if (input == null) { throw new NullPointerException("ContentResolver did not give us a stream for the VCard for uID " + ID); } - - final Reader reader = new InputStreamReader(input); - final List lines = IOUtils.readLines(reader); - reader.close(); + final List lines = IOUtils.readLines(input, Charsets.UTF_8); toReturn.put(ID, new VCardBuilder(StringUtils.join(lines, '\n'))); } catch (IOException e) { // If you are experiencing this, please open a bug report indicating how you got here