Uploaded image for project: 'Spigot'
  1. Spigot
  2. SPIGOT-7333

CraftMetaColorableArmor#applyColor() throws NullPointerException on deserialization

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • None
    • None
    • None
    • craftbukkit-790be710b58
    • Yes

      This error can be replicated when serializing and deserializing an ItemStack with the `ColorableItemMeta`

      [04:33:18] [Server thread/ERROR]: [org.bukkit.configuration.serialization.ConfigurationSerialization] Could not call method 'public static org.bukkit.inventory.ItemStack org.bukkit.inventory.ItemStack.deserialize(java.util.Map)' of class org.bukkit.inventory.ItemStack for deserialization
      java.lang.NullPointerException: Cannot invoke "org.bukkit.Color.asRGB()" because the return value of "org.bukkit.inventory.meta.LeatherArmorMeta.getColor()" is null
      	at org.bukkit.craftbukkit.v1_19_R3.inventory.CraftMetaLeatherArmor.applyColor(CraftMetaLeatherArmor.java:153) ~[paper-1.19.4.jar:git-Paper-501]
      	at org.bukkit.craftbukkit.v1_19_R3.inventory.CraftMetaColorableArmor.applyToItem(CraftMetaColorableArmor.java:44) ~[paper-1.19.4.jar:git-Paper-501]
      	at org.bukkit.craftbukkit.v1_19_R3.inventory.CraftItemStack.setItemMeta(CraftItemStack.java:627) ~[paper-1.19.4.jar:git-Paper-501]
      	at org.bukkit.craftbukkit.v1_19_R3.inventory.CraftItemStack.asNMSCopy(CraftItemStack.java:42) ~[paper-1.19.4.jar:git-Paper-501]
      	at org.bukkit.craftbukkit.v1_19_R3.inventory.CraftItemFactory.ensureServerConversions(CraftItemFactory.java:474) ~[paper-1.19.4.jar:git-Paper-501]
      	at org.bukkit.inventory.ItemStack.ensureServerConversions(ItemStack.java:702) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?]
      	at org.bukkit.inventory.ItemStack.deserialize(ItemStack.java:547) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?]
      	at jdk.internal.reflect.GeneratedMethodAccessor62.invoke(Unknown Source) ~[?:?]
      	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
      	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
      	at org.bukkit.configuration.serialization.ConfigurationSerialization.deserializeViaMethod(ConfigurationSerialization.java:85) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?]
      	at org.bukkit.configuration.serialization.ConfigurationSerialization.deserialize(ConfigurationSerialization.java:127) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?]
      	at org.bukkit.configuration.serialization.ConfigurationSerialization.deserializeObject(ConfigurationSerialization.java:207) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?]
      	at org.bukkit.util.io.BukkitObjectInputStream.resolveObject(BukkitObjectInputStream.java:49) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?]
      	at java.io.ObjectInputStream.checkResolve(ObjectInputStream.java:1757) ~[?:?]
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1706) ~[?:?]
      	at java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2571) ~[?:?]
      	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2429) ~[?:?]
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2229) ~[?:?]
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1706) ~[?:?]
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:496) ~[?:?]
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:454) ~[?:?]
      	at java.util.HashMap.readObject(HashMap.java:1551) ~[?:?]
      	at jdk.internal.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) ~[?:?]
      	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
      	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
      	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1224) ~[?:?]
      	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2395) ~[?:?]
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2229) ~[?:?]
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1706) ~[?:?]
      	at java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2571) ~[?:?]
      	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2429) ~[?:?]
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2229) ~[?:?]
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1706) ~[?:?]
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:496) ~[?:?]
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:454) ~[?:?]
      	at java.util.HashMap.readObject(HashMap.java:1551) ~[?:?]
      	at jdk.internal.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) ~[?:?]
      	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
      	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
      	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1224) ~[?:?]
      	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2395) ~[?:?]
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2229) ~[?:?]
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1706) ~[?:?]
      	at java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2571) ~[?:?]
      	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2429) ~[?:?]
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2229) ~[?:?]
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1706) ~[?:?]
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:496) ~[?:?]
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:454) ~[?:?]
      	at com.guppy.PersonalChest.Vault.load(Vault.java:64) ~[PersonalChest.jar:?]
      	at com.guppy.PersonalChest.VaultCommand.onCommand(VaultCommand.java:70) ~[PersonalChest.jar:?]
      	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?]
      	at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?]
      	at org.bukkit.craftbukkit.v1_19_R3.CraftServer.dispatchCommand(CraftServer.java:906) ~[paper-1.19.4.jar:git-Paper-501]
      	at org.bukkit.craftbukkit.v1_19_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[paper-1.19.4.jar:git-Paper-501]
      	at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:264) ~[paper-1.19.4.jar:?]
      	at net.minecraft.commands.Commands.performCommand(Commands.java:322) ~[?:?]
      	at net.minecraft.commands.Commands.performCommand(Commands.java:306) ~[?:?]
      	at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2289) ~[?:?]
      	at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$20(ServerGamePacketListenerImpl.java:2249) ~[?:?]
      	at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?]
      	at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
      	at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.19.4.jar:git-Paper-501]
      	at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
      	at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
      	at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1342) ~[paper-1.19.4.jar:git-Paper-501]
      	at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197) ~[paper-1.19.4.jar:git-Paper-501]
      	at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
      	at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1319) ~[paper-1.19.4.jar:git-Paper-501]
      	at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1312) ~[paper-1.19.4.jar:git-Paper-501]
      	at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
      	at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1290) ~[paper-1.19.4.jar:git-Paper-501]
      	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1178) ~[paper-1.19.4.jar:git-Paper-501]
      	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:320) ~[paper-1.19.4.jar:git-Paper-501]
      	at java.lang.Thread.run(Thread.java:831) ~[?:?]
      [04:33:18] [Server thread/WARN]: java.io.IOException: Failed to deserialize object
      [04:33:18] [Server thread/WARN]: 	at org.bukkit.util.io.BukkitObjectInputStream.newIOException(BukkitObjectInputStream.java:59)
      [04:33:18] [Server thread/WARN]: 	at org.bukkit.util.io.BukkitObjectInputStream.resolveObject(BukkitObjectInputStream.java:51)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.checkResolve(ObjectInputStream.java:1757)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1706)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2571)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2429)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2229)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1706)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:496)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:454)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.util.HashMap.readObject(HashMap.java:1551)
      [04:33:18] [Server thread/WARN]: 	at java.base/jdk.internal.reflect.GeneratedMethodAccessor64.invoke(Unknown Source)
      [04:33:18] [Server thread/WARN]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1224)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2395)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2229)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1706)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2571)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2429)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2229)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1706)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:496)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:454)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.util.HashMap.readObject(HashMap.java:1551)
      [04:33:18] [Server thread/WARN]: 	at java.base/jdk.internal.reflect.GeneratedMethodAccessor64.invoke(Unknown Source)
      [04:33:18] [Server thread/WARN]: 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1224)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2395)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2229)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1706)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2571)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2429)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2229)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1706)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:496)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:454)
      [04:33:18] [Server thread/WARN]: 	at PersonalChest.jar//com.guppy.PersonalChest.Vault.load(Vault.java:64)
      [04:33:18] [Server thread/WARN]: 	at PersonalChest.jar//com.guppy.PersonalChest.VaultCommand.onCommand(VaultCommand.java:70)
      [04:33:18] [Server thread/WARN]: 	at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
      [04:33:18] [Server thread/WARN]: 	at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155)
      [04:33:18] [Server thread/WARN]: 	at org.bukkit.craftbukkit.v1_19_R3.CraftServer.dispatchCommand(CraftServer.java:906)
      [04:33:18] [Server thread/WARN]: 	at org.bukkit.craftbukkit.v1_19_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64)
      [04:33:18] [Server thread/WARN]: 	at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:264)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.commands.CommandDispatcher.performCommand(CommandDispatcher.java:322)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.commands.CommandDispatcher.a(CommandDispatcher.java:306)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:2289)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.server.network.PlayerConnection.lambda$handleChatCommand$20(PlayerConnection.java:2249)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.util.thread.IAsyncTaskHandler.b(IAsyncTaskHandler.java:59)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.server.TickTask.run(TickTask.java:18)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.util.thread.IAsyncTaskHandler.d(IAsyncTaskHandler.java:153)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.d(IAsyncTaskHandlerReentrant.java:24)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1342)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.util.thread.IAsyncTaskHandler.x(IAsyncTaskHandler.java:126)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.bi(MinecraftServer.java:1319)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1312)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.util.thread.IAsyncTaskHandler.c(IAsyncTaskHandler.java:136)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.i_(MinecraftServer.java:1290)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1178)
      [04:33:18] [Server thread/WARN]: 	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:320)
      [04:33:18] [Server thread/WARN]: 	at java.base/java.lang.Thread.run(Thread.java:831)
      [04:33:18] [Server thread/WARN]: Caused by: java.lang.NullPointerException: Cannot invoke "Object.getClass()" because the return value of "org.bukkit.configuration.serialization.ConfigurationSerialization.deserializeObject(java.util.Map)" is null
      [04:33:18] [Server thread/WARN]: 	at org.bukkit.util.io.BukkitObjectInputStream.resolveObject(BukkitObjectInputStream.java:49)
      [04:33:18] [Server thread/WARN]: 	... 62 more 

            Unassigned Unassigned
            2008Choco Parker Hawke
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: