J'ai essayer de faire la conversion de 2 images différentes.
J'ai pris une première image. Pour faire la seconde, je suis partis de la première, fais une rotation à 180 degrés, et écris un texte au milieu de l'image. Je me suis dis, voila j'ai bien deux images différentes.
et pourtant :
- visuellement, elles sont bien différentes
- les clés obtenues par CacheKeyGenerator.computeKey(converterName, blobHolder, parameters) sont aussi différentes :
/>
image 1 : conv1:77984d4e6d53c6c45ee4bcf43738b2ac
/>
image 2 : conv1:76e5ae0e9f25405c2d8a7b5e3297877e
- par contre en Base64 dans la fonction getSubPathFromKey(String key) de ConversionCacheHolder.java, les premiers caractères sont semblables :
/>
image 1 : cGljdHVyZTJkemk6Nzc5ODRkNGU2ZDUzYzZjNDVlZTRiY2Y0MzczOGIyYWM=
/>
image 2 : cGljdHVyZTJkemk6NzZlNWFlMGU5ZjI1NDA1YzJkOGE3YjVlMzI5Nzg3N2U=
Et malheureusement la fonction se base sur les 10 premiers caractères pour générer le PATH du fichier de cache :
/>
image 1 : .. nxserver/data/convertcache/cG/lj/dH/Vy/ZT
/>
image 2 : .. nxserver/data/convertcache/cG/lj/dH/Vy/ZT
Du coups le cache de ma deuxième image a écrasé le cache de la première.
J'ai dû monter la valeur de la variable "subPathPartSize" à 4 pour obtenir des PATH différents et ainsi obtenir les bons fichiers depuis le cache.
Suggestion : augmenter la valeur par défaut de "subPathPartSize" ou ajouter une autre clé pour être sûr d'avoir un Hash différent pour construire le PATH ?