Exception "Length of Base64 encoded input string is not a multiple of 4" lors de l'enregistrement d'un diagramme (modèle métier)

4.0
Exception "Length of Base64 encoded input string is not a multiple of 4" lors de l'enregistrement d'un diagramme (modèle métier)
0
Tags: #<Tag:0x00007f4a0a227eb8>

(Bruno Montagnac) #1

Bonjour,

nous rencontrons un problème d’enregistrement de diagramme (modèle métier), reproduisible sur certaines configurations sessions utilisateur * browser de manière systématique (voir plus bas la matrice de reproduction / configurations testées).

Le problème:

  1. lors de l’enregistrement du diagramme, une erreur est tracée dans les logs système; le diagramme est bien enregistré, l’image précédente est supprimée et la nouvelle image n’est pas générée, le diagramme n’a plus d’image.
  2. si le même diagramme est ré-enregistré dans une autres configuration, l’image est bien régénérée.

L’exception générée:

2019-02-07 09:12:34,743 ERROR [com.simplicite.webapp.tools.ServletParameters] SIMPLICITE|http://515e134813ca:8080||ERROR|system|com.simplicite.webapp.tools.ServletParameters|loadParameters||Event: document error 
    java.lang.IllegalArgumentException: Length of Base64 encoded input string is not a multiple of 4. 
    	at com.simplicite.util.tools.Base64Tool.decode(Base64Tool.java:137) 
    	at com.simplicite.util.tools.Base64Tool.decode(Base64Tool.java:123) 
    	at com.simplicite.webapp.tools.ServletParameters.loadParameters(ServletParameters.java:396) 
    	at com.simplicite.webapp.tools.ServletParameters.(ServletParameters.java:67) 
    	at com.simplicite.webapp.servlets.AbstractJSONServlet.service(AbstractJSONServlet.java:56) 
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 
    	...

Les configurations:

  1. deux utilisateurs test1&test2 avec une session Firefox ou Edge : erreur lors de l’enregistrement systématiquement
  2. les mêmes utilisateurs test1&test2 avec une session Chrome: pas d’erreur, image régénérée systématiquement
  3. un autre utilisateur test3 avec une session Chrome : erreur lors de l’enregistrement systématiquement

Il semble que ça plante systématiquement sous Firefox et Edge et parfois sous Chrome (variable selon les utilisateurs).

La purge du cache des navigateurs ne change rien…


(David AZOULAY) #2

Bonjour

Quelle version/révision stp.
Je pose la question car ça me rappelle quelque chose qui a été revu/corrigé il y a peu de temps


(François Genestin) #3

Pb corrigé depuis qq semaines déjà.
ça venait d’un pb d’encoding UTF-8 dès que le diagramme avait des accents (lié à btoa/atob à proscrire pour ce genre de sérialisation)

A retester sur une version à jour, sinon c’est un nouveau cas.


(Bruno Montagnac) #4

Bonjour François, David,

merci beaucoup pour vos réponses très rapides.

@david: [Platform]
Status=OK
Version=4.0.P22b
BuiltOn=2019-01-18 19:55 (revision d254ea40bfd220d836cff0ab8ae473d217cad570)
Encoding=UTF-8
EndpointIP=21.0.9.5
EndpointURL=http://515e134813ca:8080
TimeZone=Europe/Paris
SystemDate=2019-02-07 10:24:18

@francois : le problème semble effectivement résolu sur l’isntance cloud (bcsi.renault.simplicite.io):
[Platform]
Status=OK
Version=4.0.P23b
BuiltOn=2019-02-06 16:20 (revision e32a73f3e2d36cd13d5b28b9bb427005243717e0)
Encoding=UTF-8
EndpointIP=149.202.171.75
EndpointURL=http://renault.simplicite.io:10028
TimeZone=Europe/Paris
SystemDate=2019-02-07 10:29:34

Nous allons redéployer la dernière version P22b disponible pour voir si ça corrige le pb.


(David AZOULAY) #5

De mémoire ça avait bien été poussé sur la branche prerelease.
La version à jour sur cette branche (et donc sur l’image Docker “beta”) est du 31/01:

[Platform]
Status=OK
Version=4.0.P22b
BuiltOn=2019-01-31 18:08 (revision 37afd46ce9a1d9df817abe91ef85d6b1af987a2e)```

(Bruno Montagnac) #6

Test OK après le deploy de la release du 31/01
Merci bcp!