Properties dialog crashes on multiple tags or missing data

Bug #419625 reported by Aly Hirani
28
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Exaile
Fix Released
Medium
Unassigned

Bug Description

STR:
1) Open player
2) Right click on any song in the current playlist
3) Click on "Properties"

Nothing happens. Attached is the traceback by running Exaile from a console

Tags: properties
Revision history for this message
Aly Hirani (alyhirani) wrote :
Changed in exaile:
assignee: nobody → Adam Olsen (arolsen)
importance: Undecided → Medium
milestone: none → 0.3.0.1
status: New → Confirmed
Aly Hirani (alyhirani)
Changed in exaile:
status: Confirmed → New
status: New → Confirmed
Revision history for this message
Steve Dodier-Lazaro (sidi) wrote :

Adding a simple print line before line 71 of xlgui/properties.py shows that this happen when a tag has multiple values.

Apparently the strings returned contain some null bytes (see xl/metadata/__init__.py 's j() function : return u'\u0000'.join(value)), which causes the traceback above.

Instead, the different tags should be joined with, imo, a backslash, and the backslash used to parse the text entry into several values for the tag when the user closes the dialog. I prefer the backslash over slash because some songs (for instance from Coldplay's albums) are labelled "foo / bar", so that would break their title tag into two values, while I don't think there is any song that contains a backslash in it's name.

Revision history for this message
reacocard (reacocard) wrote :

retargeting to 0.3.0.2

Changed in exaile:
milestone: 0.3.0.1 → 0.3.0.2
Revision history for this message
reacocard (reacocard) wrote :

Additionally, if there is no bitrate (eg. flac files), we get a similar traceback:

Traceback (most recent call last):
  File "/usr/lib/exaile/xlgui/playlist.py", line 94, in <lambda>
    self.properties_dialog())
  File "/usr/lib/exaile/xlgui/playlist.py", line 116, in properties_dialog
    tracks[0])
  File "/usr/lib/exaile/xlgui/properties.py", line 21, in __init__
    self._populate_from_track(track)
  File "/usr/lib/exaile/xlgui/properties.py", line 58, in _populate_from_track
    self.bitrate_entry.set_text(track.get_bitrate())
TypeError: GtkLabel.set_text() argument 1 must be string, not None

reacocard (reacocard)
summary: - Properties of a song in the playlist crashes with a traceback
+ Properties dialog crashes on multiple tags or missing data
Revision history for this message
reacocard (reacocard) wrote :

fixed in 0.3.0.x/2444. " || " is used to separate tags in the dialog, which is a suboptimal solution, but 0.3.1's new tagger will fix that.

Changed in exaile:
assignee: Adam Olsen (arolsen) → nobody
status: Confirmed → Fix Committed
reacocard (reacocard)
Changed in exaile:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.