Incidencia #750 (closed Error: Resuelto)

Abierto hace 4 años

Última modificación 4 años

Fondos Dinamicos, falla al crear archivo XML

Informado por: erickcion Propietario: franj
Prioridad: No Definido Hito: Canaima Popular 4.0~estable
Componente: Canaima Popular Versión: 4.0
Gravedad: Importante Palabras clave: canaima-fondos-dinamicos
Cc: Asignar A:

Descripción

En canaima-fondos-dinamicos, luego de seleccionar las imágenes que deseo como fondo de escritorio y presiono el botón aceptar, la aplicación no hace nada y se muestra en la consola el siguiente error:

$ canaima-fondos-dinamicos 
Este  directorio no tiene un archivo xml construido por la aplicación
Traceback (most recent call last):
  File "/usr/bin/canaima-fondos-dinamicos", line 211, in button_clicked
    ci = self.imagenes.pop()
IndexError: pop from empty list
Traceback (most recent call last):
  File "/usr/bin/canaima-fondos-dinamicos", line 401, in ok_button_clicked
    doc = xml.dom.minidom.parse(backgrounds_file)
  File "/usr/lib/python2.7/xml/dom/minidom.py", line 1920, in parse
    return expatbuilder.parse(file)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 922, in parse
    fp = open(file, 'rb')
IOError: [Errno 2] No existe el fichero o el directorio: '/home/canaima/.gnome2/backgrounds.xml'

La aplicación está intentando abrir un archivo que no existe y por lo tanto falla, acá el comportamiento correcto debería ser: si no existe el archivo, se crea automáticamente y si no se puede crear, se muestra un mensaje de error al usuario.

Tratando de ayudar a la aplicación para que consiguiera el archivo xml que buscaba, ejecuté el siguiente comando para crearlo:

{{
touch /home/canaima/.gnome2/backgrounds.xml
}}

Pero al intentar nuevamente crear el fondo dinámico generó ahora esta excepción:

$ canaima-fondos-dinamicos 
Traceback (most recent call last):
  File "/usr/bin/canaima-fondos-dinamicos", line 211, in button_clicked
    ci = self.imagenes.pop()
IndexError: pop from empty list
Traceback (most recent call last):
  File "/usr/bin/canaima-fondos-dinamicos", line 401, in ok_button_clicked
    doc = xml.dom.minidom.parse(backgrounds_file)
  File "/usr/lib/python2.7/xml/dom/minidom.py", line 1920, in parse
    return expatbuilder.parse(file)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 924, in parse
    result = builder.parseFile(fp)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 211, in parseFile
    parser.Parse("", True)
xml.parsers.expat.ExpatError: no element found: line 1, column 0

Por lo que se puede notar, el programa sólo reconoce archivos XML válidos, por lo tanto al leer el archivo creado con el comando touch (un archivo vacío), falla como se muestra porque no encuentra ninguna etiqueta XML en el documento.

El comportamiento en este caso debería ser, si el archivo existe, pero está vacío o tiene un contenido inválido, debe crearse nuevamente con el formato correcto.

Versión Paquete: 2.1+2

Historial de cambios

comment:1 Cambiado el 4 años por franj

  • Propietario cambiado de $USER a franj
  • Estado cambiado de new to accepted
  • Cc franj añadido

comment:2 Cambiado el 4 años por franj

  • Estado cambiado de accepted to resuelta
  • Resolución establecido a Fijada

comment:3 Cambiado el 4 años por erickcion

  • Hito cambiado de No Definido to Canaima Popular 4.0~estable

comment:4 Cambiado el 4 años por ssolano

  • Estado cambiado de resuelta to new

sigue dando error no tiene el archivo archivo backgrounds.xml
Traceback (most recent call last):

File "/usr/bin/canaima-fondos-dinamicos", line 403, in ok_button_clicked

doc = xml.dom.minidom.parse(backgrounds_file)

File "/usr/lib/python2.7/xml/dom/minidom.py", line 1920, in parse

return expatbuilder.parse(file)

File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 922, in parse

fp = open(file, 'rb')

IOError: [Errno 2] No existe el fichero o el directorio: '/home/ssolano/.gnome2/backgrounds.xml'

comment:5 Cambiado el 4 años por franj

  • Cc franj eliminado
  • Estado cambiado de new to accepted

comment:7 Cambiado el 4 años por erickcion

Esa forma de responder los tckets es bien extraña franj jaja

No se explica nada y sólo se tira ahi un poco de comentarios, comandos de trac y unas URLs, como por no dejar. Hazle un cariñito al ticket vale, explicanos ahí mas o menos que es eso.

Recuerda que lo que está acá es público y puede haber aunque sea una sola persona interesada en lo que acá se hizo, esa sola persona sería importante y hay que darle una respuesta adecuada.

;-)

Lo mismo va con los tickets:

ticket:749#comment:2
ticket:751#comment:3
ticket:752#comment:2
ticket:773#comment:5 -> este más que todo

comment:8 Cambiado el 4 años por erickcion

  • Estado cambiado de resuelta to closed

Cambios aplicados a partir de:

  • canaima-fondos-dinamicos 2.2+5
Nota: Vea TracTickets para ayuda en el uso de incidencias.