Opened 8 years ago

Closed 8 years ago

#3919 closed defect (fixed)

[modelfilter] Problems when changing global status and we have a self contact

Reported by: Jim++ Owned by: steve-e
Priority: normal Milestone: 0.12
Component: roster Version: hg
Severity: normal Keywords:
Cc: Blocked By:
Blocking: OS: All

Description

13:32:40 cilugnedon: Hi Asterix. I've a problem with the combo box in my roster. Changing the status message globally for all online accounts doesn't work.
13:41:17 cilugnedon: I can klick on the combo box in the roster and choose another status message.
13:41:47 cilugnedon: But after that the combo box stays with the item "change status message" and doesn't show online (desync'ed)
13:43:39 cilugnedon: Here is the traceback: http://gajim.pastebin.com/d458546b2
13:44:10 cilugnedon: I also still have the General group in my roster show zero contacts online.
13:45:43 Jim++: Don't you have a self contact in your roster ? (Yourself on another resource) 
13:46:31 cilugnedon: Jim++, I have myself from another resource in my roster.
13:47:29 cilugnedon: Going offline with other resource lets me change the status message globally again.
13:47:34 cilugnedon: No traceback.
13:48:01 Jim++: yes that's what let guess TB
13:49:36 cilugnedon: The traceback only comes up on my gentoo box.
13:49:53 cilugnedon: My debian box does not seem to have a problem with two resources online.
13:50:14 cilugnedon: Both boxes have the same svn version of gajim, the recent one.

Change History (5)

comment:1 Changed 8 years ago by cilugnedon

I'm online with gajim revision 9565 on two resources, A and B. Both resources have the contacts in the roster. Changing the global status message on resource A throws the below shown traceback. Changing the global status message on resource B doesn't throw that traceback. Going offline with resource B lets me change the global status message.

Traceback (most recent call last):
  File "/usr/local/gajim-latest-svn//share/gajim/src/roster_window.py", line 3157, in on_status_combobox_changed
    self.send_status(account, current_show, message)
  File "/usr/local/gajim-latest-svn//share/gajim/src/roster_window.py", line 1767, in send_status
    gajim.connections[account].change_status(status, txt, auto)
  File "/usr/local/gajim-latest-svn//share/gajim/src/common/connection.py", line 979, in change_status
    self._on_disconnected()
  File "/usr/local/gajim-latest-svn//share/gajim/src/common/connection.py", line 1010, in _on_disconnected
    self.dispatch('STATUS', 'offline')
  File "/usr/local/gajim-latest-svn//share/gajim/src/common/connection.py", line 175, in dispatch
    self.put_event((event, data))
  File "/usr/local/gajim-latest-svn//share/gajim/src/common/connection.py", line 171, in put_event
    gajim.handlers[ev[0]](self.name, ev[1])
  File "gajim.py", line 577, in handle_event_status
    self.roster.on_status_changed(account, status)
  File "/usr/local/gajim-latest-svn//share/gajim/src/roster_window.py", line 1866, in on_status_changed
    self.remove_contact(gajim.get_jid_from_account(account), account)
  File "/usr/local/gajim-latest-svn//share/gajim/src/roster_window.py", line 662, in remove_contact
    self._remove_entity(contact, account)
  File "/usr/local/gajim-latest-svn//share/gajim/src/roster_window.py", line 400, in _remove_entity
    iters = self._get_contact_iter(contact.jid, account, contact, self.model)
AttributeError: 'NoneType' object has no attribute 'jid'

comment:2 Changed 8 years ago by steve-e

  • Owner changed from asterix to steve-e

comment:3 Changed 8 years ago by Jim++

I can't reproduce. If it still exists, it could mean that contacts.get_contact_with_highest_priority() can't return a contact for self contact IMO

comment:4 Changed 8 years ago by Jim++

I thinks that's it. And I'm gonna introduce this one (no time to fix now) :

Traceback (most recent call last):
  File "/home/jim/gajim/gajim-propre-svn/src/common/xmpp/idlequeue.py", line 132, in process_events
    obj.pollin()
  File "/home/jim/gajim/gajim-propre-svn/src/common/xmpp/transports_nb.py", line 351, in pollin
    self._do_receive() 
  File "/home/jim/gajim/gajim-propre-svn/src/common/xmpp/transports_nb.py", line 495, in _do_receive
    self.on_receive(received)
  File "./common/xmpp/dispatcher_nb.py", line 355, in dispatch
    handler['func'](session,stanza)
  File "/home/jim/gajim/gajim-propre-svn/src/common/connection_handlers.py", line 2130, in _presenceCB
    keyID, timestamp, contact_nickname))
  File "/home/jim/gajim/gajim-propre-svn/src/common/connection.py", line 176, in dispatch
    self.put_event((event, data))
  File "/home/jim/gajim/gajim-propre-svn/src/common/connection.py", line 172, in put_event
    gajim.handlers[ev[0]](self.name, ev[1])
  File "gajim.py", line 748, in handle_event_notify
    account)
  File "/home/jim/gajim/gajim-propre-svn/src/roster_window.py", line 1889, in chg_contact_status
    self.draw_completely_and_show_if_needed(contact.jid, account)
  File "/home/jim/gajim/gajim-propre-svn/src/roster_window.py", line 1182, in draw_completely_and_show_if_needed
    for group in contact.groups:
AttributeError: 'NoneType' object has no attribute 'groups'

comment:5 Changed 8 years ago by steve-e

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.