PM-MIES001 Crash al imprimir el tiquet de la entrada
Responsable: Josep Lluís
Fecha de reunión: (pendiente de concretar)
Resumen
La app que usan en el pabellón de la Fundació Mies Van Der Rohe se cierra al imprimir el tiquet.
Qué pasó
Los vendedores de entradas reportan que en casi todas las PDA, la app se cierra al imprimir el tiquet.
Motivo del problema
Faltava un registro para traducir el texto 'IVA incluido' en la app, y al no encontrarlo, la app se cerraba ya que la variable que lo contenía era null.
Error:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.app.miesentradesapp.Database.Entities.ConfiguracionTiquetTextoIdiomaEntity.getTexto()' on a null object reference
at com.app.miesentradesapp.Utils.Logica.imprimirTiquet(Logica.java:335)
at com.app.miesentradesapp.Utils.Logica.GenearTiquet(Logica.java:116)
at com.app.miesentradesapp.Fragments.PagoFragment$4.onClick(PagoFragment.java:226)
at android.view.View.performClick(View.java:4848)
at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:967)
at android.view.View$PerformClick.run(View.java:20262)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5637)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Código implicado:
// ERROR cuando dbHelper.obtenerLineaTextoDetalle(idioma, "IvaIncluido") devuelve null
if(configuracionTiquetEntity.isMostrarIvaIncluido()){
AidlUtil.getInstance().printText(dbHelper.obtenerLineaTextoDetalle(idioma, "IvaIncluido").getTexto(), tamanoLetraImporte, true, false);
}
Resolución
Se añade el registro para traducir el texto 'IVA incluido' en la app en la tabla 'Ventas#ConfiguracionTiquetTextoIdioma'.
Impacto
Usuarios afectados: el personal de la Fundació Mies Van Der Rohe que usa la app de entradas.
Linea temporal
Cuando empezó el impacto: (desconocido)
Cuando se reportó el incidente: 30/04/2025 08:15
Cuando se realizaron actuaciones relevantes:
30/04/2025
- 08:15 - Se recibe el primer mensaje de error de la app de entradas y Omar lo notifica:
Bones Josep Lluís,
En Víctor de la botiga del Pavelló de MIES m’ha reportat que, des de l’última actualització de l’app Mies Entrades a les PDAs Sunmi, un cop sincronitzades les dades, quan intenten imprimir un tiquet, l’aplicació es tanca repentinament. Imprimeix entre ½ i ¾ del tiquet, i tot seguit l’app fa crash.
Inicialment aquest problema es presentava a totes les PDAs, però un parell de dies més tard, algunes d’elles han deixat de imprimir per problemes de hardware (s’ha de canviar la bateria), i ja s’està gestionant el canvi.
Actualment, només poden treballar amb dues PDAs: la nova d’en Marc (V222236U20475) i la d’en Sergi (V20618AX00421), aquesta última l’única que imprimeix correctament i sense errors.
Salutacions,
Omar El Matni
- 08:32 Josep Lluís solicita una PDA para reproducir el error en la oficina.
- 12:30 Josep Lluís instala la app en una PDA y verifica que imprime correctamente el tiquet, con la base de datos de pruebas.
- 13:00 Josep Lluís deja la PDA configurada con el servidor de MIES para enviar a la Fundació Mies Van Der Rohe.
01/05/2025
- 16:06 Joan notifica que la PDA de la Fundació Mies Van Der Rohe no imprime correctamente el tiquet, y que la app se cierra al imprimirlo.
Bones Josep Lluís,
Havia preparat la PDA per Mies, ja que ara mateix només els n'hi funciona 1, però després de configurar-la com a Caixa 103 (que és nova i no hi ha tiquets), al fer una prova després de configurar-la i fer un tiquet gratuït, peta la app i NO FUNCIONA. També he reactivat la vpn site to site, per tant des del Girosystem tenim accés al servidor de Mies, el 192.168.9.123 T'he deixat la PDA sobre la teva taula.
Si us plau, necessito que això quedi resolt quan abans millor. Necessito saber què ha passat i perquè ha passat.
Gràcies,
02/05/2025
- 7:30 Josep Lluís solicita base de datos de producción para reproducir el error.
- 8:30 Se restaura la base de datos.
- 9:30 Se reproduce el error al imprimir el tiquet.
- 10:00 Se crea el registro que faltaba para traducir el texto 'IVA incluido' en la app en la tabla Ventas.
- 11:00 Ainhoa comunica que nos confirma des del pabellón que ahora ya no se cierra la app al imprimir el tiquet.
Dia y hora de finalización del impacto: 02/04/2025 10:00
Quién dirigió la incidencia? Josep Lluís
Quién era el programador? Josep Lluís
Quién mas estuvo involucrado? Joan, Ainhoa
Como lo hicimos?
Que fué bien?
Se diagnosticó y resolvió la incidencia.
Que no fué tan bien?
- No pudimos hacer un diagnóstico rápido ya que la app no está preparada para enviar el informe del error a Google Crashlytics.
Acciones
- Correcciones requeridas para prevenir que se repita el incidente.
- Modificar el código de
dbHelper.obtenerLineaTextoDetalle(idioma, "IvaIncluido")para que no se produzcan java.lang.NullPointerException. - Modificar la app para enviar el informe de errores a Google Crashlytics.
- Tareas que pueden mejorar la detección y mitigación de incidentes similares.
- Revisión del código actual.
- Tareas a realizar para finalizar el postmortem (emails, update bug status, ...)
- Informar a Xavier Castillo de la eliminación de 'hard-code' que havia para establecer a la URL base de la API.
- Mejoras al proceso de gestión del incidente.
- Poder acceder de forma rápida a los logs.
- Dar mensajes claros del problema.
Email interno
No hay
Mensajes externo
No hay