AOTCodeCache stores AdapterBlob using the hash computed from AdapterFingerPrint. It is not guaranteed that the hash would be unique. If there is hash collision, then the AOTCodeCache fails to find the AdapterBlob in the cache and emits warnings, like this (generated by running test runtime/cds/appcds/aotClassLinking/StringConcatStress.java)
> [0.011s][warning][aot,codecache] 0 (L0): Saved adapter's name 'LLIIIIIIIILIII' is different from 'LLIIIILIIIIIII'
> [0.011s][warning][cds ] Failed to link AdapterHandlerEntry to its code in the AOT code cache
> [0.011s][warning][aot,codecache] 0 (L0): Saved adapter's name 'LLIIIIIIILIII' is different from 'LLIIIILIIIIII'
> [0.011s][warning][cds ] Failed to link AdapterHandlerEntry to its code in the AOT code cache
Although not fatal, this is undesirable. It can be easily fixed by generating a unique id for each AdapterBlob stored in the AOTCodeCache.
> [0.011s][warning][aot,codecache] 0 (L0): Saved adapter's name 'LLIIIIIIIILIII' is different from 'LLIIIILIIIIIII'
> [0.011s][warning][cds ] Failed to link AdapterHandlerEntry to its code in the AOT code cache
> [0.011s][warning][aot,codecache] 0 (L0): Saved adapter's name 'LLIIIIIIILIII' is different from 'LLIIIILIIIIII'
> [0.011s][warning][cds ] Failed to link AdapterHandlerEntry to its code in the AOT code cache
Although not fatal, this is undesirable. It can be easily fixed by generating a unique id for each AdapterBlob stored in the AOTCodeCache.