java.util.UUID.fromString ne vérifiant pas la longueur

Quand j'ai regardé dans la mise en œuvre de java.util.UUID.fromStringj'ai trouvé qu'il ne recherche pas les UUID de la longueur. Est-il une raison particulière à cela? Il vérifie uniquement les composants séparés par un "-".

String[] components = name.split("-");
        if (components.length != 5)
            throw new IllegalArgumentException("Invalid UUID string: "+name);

Faut-il également jeter IllegalArgumentException lorsque la longueur n'est pas 36?

Actuellement, sans que la durée de la vérification, les nombres sont automatiquement ajoutés à 0 si elle est inférieure à la longueur de composant ou déplacé si plus. L'inconvénient est que, si on entrait dans un UUID de la chaîne avec un chiffre manquant, il est considéré comme étant valide et précédées de 0. C'est difficile à déboguer.

Par exemple, cette "12345678-1234-1234-1234-123456789ab" devient "12345678-1234-1234-1234-0123456789ab". Notez que le '0'? Et ce "12345678-1234-1234-1234-123456789abcd" devient "12345678-1234-1234-1234-23456789abcd" avec le " 1 " supprimé.

Pour pousser encore plus loin, la chaîne "1-2-3-4-5" sera également considéré comme étant valide et devient "00000001-0002-0003-0004-000000000005".

Edit: Pour préciser ma question, est-ce un bug ou d'une passe sur le but de suivre une norme ou un principe?

source d'informationauteur Adrian M