2015-12-09
10:38 Fixed ticket [0750310f08]: transliterator_transliterate() crash sur 1&1 plus 3 other changes artifact: 33efb44025 user: bohwaz
2015-09-09
05:00 Ticket [0750310f08]: 5 changes artifact: ac7f30c611 user: bohwaz
2015-09-06
18:30 New ticket [0750310f08]. artifact: 65913add6e user: sylvain.philip

Ticket Hash: 0750310f088a1eedfd05f6ddcd302f68e791855f
Title: transliterator_transliterate() crash sur 1&1
Status: Fixed Type: Code_Defect
Severity: Critical Priority: Immediate
Subsystem: Resolution: Fixed
Last Modified: 2015-12-09 10:38:20
Version Found In: 0.7.1
User Comments:

sylvain.philip added on 2015-09-06 16:30:36:

Quand Garradin tourne sur un hébergement mutualisé 1&1, l'application crashe lorsq'une page du WIKI est appelée (erreur 500). Le problème, c'est qu'aucune erreur n'est récupérable.
En déboguant le code, j'ai pu constater que c'est la fonction  transliterator_transliterate() dans SkrivLite.php qui provoque ce crash.
Pour avoir un rapport d'erreur, il faudrait placer ini_set('intl.use_exceptions', 1) avant l'appel de cette fonction. Ce que j'ai fait.
Ainsi, l'erreur que j'ai récupérée est : unable to open ICU transliterator with id "Any-Latin; Latin-ASCII"

Cela semble signifié que le transliterator n'est pas installé.

Il faudrait donc pouvoir gérer ce cas de figure au niveau du code dans le genre :

try {
   $text = transliterator_transliterate('Any-Latin; Latin-ASCII', $text);
} catch (Exception $e) {
  // appel fonction de remplacement
}

bohwaz added on 2015-09-09 03:00:47:

Corrigé dans https://fossil.kd2.org/kd2fw/info/97c8ea4c34a1e1278fc098deb2fff73970b215cc

Merci.