This Bluetooth Java connection manager class and its data package class have quite a few issues - main one being that the thread for checking the incoming data stream should be reading each byte of data and queuing it rather than trying to receive discrete packages of data and queueing them - will be fixed and updated at some stage.