]> source.dussan.org Git - javassist.git/commit
Fix a race condition in CtClassType#getClassFile3 363/head
authormichalkurka <michalk@h2o.ai>
Wed, 17 Mar 2021 17:12:21 +0000 (13:12 -0400)
committermichalkurka <michalk@h2o.ai>
Wed, 17 Mar 2021 17:12:21 +0000 (13:12 -0400)
commit64e15350cfdb7aa42a627e374d5c5de880fc9bed
tree666269b0d918325c006db9a0bf71531f97f16372
parent0d468da4e95daeef7413c99a81b71d72eb8e7cad
Fix a race condition in CtClassType#getClassFile3

javassist fails to find a class when concurrently running process
compresses the class (converts classfile to raw bytes)

the idea of the fix is to make sure to only update rawClassfile and classfile
under lock in getClassFile3, all other places that modify classfile are
already synchronized

when reading the object state, we need to read under lock both classfile and
rawClassFile otherwise we might get an inconsistent state
src/main/javassist/CtClassType.java