--- a/net/minecraft/world/entity/projectile/Fireball.java
+++ b/net/minecraft/world/entity/projectile/Fireball.java
@@ -14,6 +14,7 @@
 import net.minecraft.world.phys.Vec3;
 
 public abstract class Fireball extends AbstractHurtingProjectile implements ItemSupplier {
+
     private static final EntityDataAccessor<ItemStack> DATA_ITEM_STACK = SynchedEntityData.defineId(Fireball.class, EntityDataSerializers.ITEM_STACK);
 
     public Fireball(EntityType<? extends Fireball> type, Level world) {
@@ -30,20 +31,21 @@
 
     public void setItem(ItemStack stack) {
         if (stack.isEmpty()) {
-            this.getEntityData().set(DATA_ITEM_STACK, this.getDefaultItem());
+            this.getEntityData().set(Fireball.DATA_ITEM_STACK, this.getDefaultItem());
         } else {
-            this.getEntityData().set(DATA_ITEM_STACK, stack.copyWithCount(1));
+            this.getEntityData().set(Fireball.DATA_ITEM_STACK, stack.copyWithCount(1));
         }
+
     }
 
     @Override
     public ItemStack getItem() {
-        return this.getEntityData().get(DATA_ITEM_STACK);
+        return (ItemStack) this.getEntityData().get(Fireball.DATA_ITEM_STACK);
     }
 
     @Override
     protected void defineSynchedData(SynchedEntityData.Builder builder) {
-        builder.define(DATA_ITEM_STACK, this.getDefaultItem());
+        builder.define(Fireball.DATA_ITEM_STACK, this.getDefaultItem());
     }
 
     @Override
@@ -56,10 +58,16 @@
     public void readAdditionalSaveData(CompoundTag nbt) {
         super.readAdditionalSaveData(nbt);
         if (nbt.contains("Item", 10)) {
-            this.setItem(ItemStack.parse(this.registryAccess(), nbt.getCompound("Item")).orElse(this.getDefaultItem()));
+            // CraftBukkit start - SPIGOT-5474 probably came from bugged earlier versions
+            ItemStack itemstack = (ItemStack) ItemStack.parse(this.registryAccess(), nbt.getCompound("Item")).orElse(this.getDefaultItem());
+            if (!itemstack.isEmpty()) {
+                this.setItem(itemstack);
+            }
+            // CraftBukkit end
         } else {
             this.setItem(this.getDefaultItem());
         }
+
     }
 
     private ItemStack getDefaultItem() {
