Sixthhokage2 / remuco

Automatically exported from code.google.com/p/remuco
1 stars 1 forks source link

IllegalArgumentException: DataElement should be an UUID #114

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What is your environment?
* OS: Ubuntu Linux 10.4 kernel 2.6.32-24-generic
* Remuco version: 0.9.3
* Client device: LG Rumour2 (MIDP)
* Player: Rhythmbox 0.12.8 / Banshee 1.6.1

What steps will reproduce the problem?
1. Set up a Bluetooth connection to computer with remuco-banshee or Rhythmbox 
running with plugin enabled
2. Select created connection

What is the expected behavior? What happens instead?

Expected behavior is to connect to a music player.  Instead, during the 
"Searching for players" screen, the client crashes with the following exception:

java/lang/IllegalArgumentException with error message:

DataElement should be an UUID.

Additional information:
Attempting to connect with all adapters closed simply reports that there are no 
players running, but does not crash the client.

Crash occurs with both the normal and Motorola clients.

Original issue reported on code.google.com by MasterPi...@gmail.com on 25 Jul 2010 at 9:00

GoogleCodeExporter commented 9 years ago
remuco-report gives the following even after attempting connections:

Until now no client devices have been logged on this computer. There is nothing 
to report.

Please try again later, once a Remuco client has connected to this computer. 
Thanks!

Original comment by MasterPi...@gmail.com on 25 Jul 2010 at 9:02

GoogleCodeExporter commented 9 years ago
The logs don't show any attempt at a connection.

Original comment by MasterPi...@gmail.com on 25 Jul 2010 at 9:04

Attachments:

GoogleCodeExporter commented 9 years ago
Take a look at PlayerAdapterConfiguration and set the log level to DEBUG. Try 
again, this should give us more information to isolate the problem.

Original comment by igor.con...@gmail.com on 28 Jul 2010 at 12:11

GoogleCodeExporter commented 9 years ago
Here are the logs after:
1. Starting respective adapter
2. Attempting to connect once and having the client crash
3. Shutting down adapter

I also tried to connect once in between adapters to verify that they weren't 
running.  (And got the no players found message).

Original comment by MasterPi...@gmail.com on 28 Jul 2010 at 12:30

Attachments:

GoogleCodeExporter commented 9 years ago
I had a look around the source and online docs to see what I could figure out.  
This constructor looks like it could be the source of the error, though it's 
not called directly from your code anywhere as far as I can tell.

http://bluecove.org/bluecove/apidocs/javax/bluetooth/DataElement.html#DataElemen
t(int,%20java.lang.Object)

You do use a DataElement variable at one point in BluetoothServiceFinder.java, 
but it comes from a return value of a library call.  The only place I see your 
code feeding a UUID into the library is to DiscoveryAgant.searchServices in 
that same file, but everything looks in order to me.

It smells a bit like a buggy client library implementation to me, but I'm not 
anywhere near as familiar with the source as the developers, obviously.  I 
should compliment the developers on having fairly clean source code from what I 
saw; a bit of a relief after digging around in other uglier open source 
projects for the past few days.

Original comment by MasterPi...@gmail.com on 28 Jul 2010 at 12:59

GoogleCodeExporter commented 9 years ago
Thanks for trying to help yourself :)

It looks like your guess is right and the Java implementation is a bit buggy, 
especially the Bluetooth/JSR-82 part of it. On the other side it may be 
possible that the computer's Bluetooth stack replies a service search with 
malformed service records (this is unlikely, I use the same OS as you).

Hard to say where the problem originates, but it's probably where ServiceRecord 
objects are used. As a work-around you could try a failsafe service search 
(edit an existing Bluetooth connection). Indeed we have this failsafe variant 
because some phones fail with a regular one, i.e. there are other phones which 
do not implement the Bluetooth API error-free. If even the failsafe service 
search fails, you should skip the service search completely and set the channel 
to connect to manually .. details on this can be found in the FAQ.

Original comment by obensonne@googlemail.com on 28 Jul 2010 at 7:16

GoogleCodeExporter commented 9 years ago

Original comment by obensonne@googlemail.com on 8 Mar 2011 at 6:38

GoogleCodeExporter commented 9 years ago
Closing because of missing feedback.

Original comment by obensonne@googlemail.com on 17 Mar 2011 at 7:20