Commits

BuildTools authored 17962f66ec0
SPIGOT-443: Synchronize access to HANDLED_TAGS as Spigot uses it async
No tags

src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java

Modified
684 684
685 685 return false;
686 686 }
687 687
688 688 @Override
689 689 public final String toString() {
690 690 return SerializableMeta.classMap.get(getClass()) + "_META:" + serialize(); // TODO: cry
691 691 }
692 692
693 693 public static Set<String> getHandledTags() {
694 - if (HANDLED_TAGS.isEmpty()) {
695 - HANDLED_TAGS.addAll(Arrays.asList(
696 - DISPLAY.NBT,
697 - REPAIR.NBT,
698 - ATTRIBUTES.NBT,
699 - ENCHANTMENTS.NBT,
700 - CraftMetaMap.MAP_SCALING.NBT,
701 - CraftMetaPotion.POTION_EFFECTS.NBT,
702 - CraftMetaSkull.SKULL_OWNER.NBT,
703 - CraftMetaTileEntity.BLOCK_ENTITY_TAG.NBT,
704 - CraftMetaBook.BOOK_TITLE.NBT,
705 - CraftMetaBook.BOOK_AUTHOR.NBT,
706 - CraftMetaBook.BOOK_PAGES.NBT,
707 - CraftMetaBook.RESOLVED.NBT,
708 - CraftMetaBook.GENERATION.NBT,
709 - CraftMetaFirework.FIREWORKS.NBT,
710 - CraftMetaEnchantedBook.STORED_ENCHANTMENTS.NBT,
711 - CraftMetaCharge.EXPLOSION.NBT
712 - ));
713 - }
714 - return HANDLED_TAGS;
694 + synchronized (HANDLED_TAGS) {
695 + if (HANDLED_TAGS.isEmpty()) {
696 + HANDLED_TAGS.addAll(Arrays.asList(
697 + DISPLAY.NBT,
698 + REPAIR.NBT,
699 + ATTRIBUTES.NBT,
700 + ENCHANTMENTS.NBT,
701 + CraftMetaMap.MAP_SCALING.NBT,
702 + CraftMetaPotion.POTION_EFFECTS.NBT,
703 + CraftMetaSkull.SKULL_OWNER.NBT,
704 + CraftMetaTileEntity.BLOCK_ENTITY_TAG.NBT,
705 + CraftMetaBook.BOOK_TITLE.NBT,
706 + CraftMetaBook.BOOK_AUTHOR.NBT,
707 + CraftMetaBook.BOOK_PAGES.NBT,
708 + CraftMetaBook.RESOLVED.NBT,
709 + CraftMetaBook.GENERATION.NBT,
710 + CraftMetaFirework.FIREWORKS.NBT,
711 + CraftMetaEnchantedBook.STORED_ENCHANTMENTS.NBT,
712 + CraftMetaCharge.EXPLOSION.NBT
713 + ));
714 + }
715 + return HANDLED_TAGS;
716 + }
715 717 }
716 718 }

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut