mojira.dev
MC-46456

Written books given by command crashes when copied in crafting table if "Author" is missing

When you use the give command to get a written book and don't specify any nbt-data you get a book that has no author. If you try to make a copy of it the game crashes.

Steps to reproduce:
1. give your self a written book using the command "/give playername minecraft:written_book"
2. when you try to craft a copy of this book the game crashes

What probably causes this bug:

When the game tries to make a copy of the book it also tries to copy the author name of the book but because the book has no author it throws a NullPointerException.

Description: Updating screen events

java.lang.NullPointerException: Updating screen events
	at afc.g(SourceFile:47)
	at afm.a(SourceFile:60)
	at afv.a(SourceFile:851)
	at abh.a(SourceFile:82)
	at aau.a(SourceFile:104)
	at abq.c(SourceFile:81)
	at aai.a(SourceFile:238)
	at bnd.a(SourceFile:357)
	at bgp.a(SourceFile:515)
	at bgp.b(SourceFile:486)
	at bfk.d(SourceFile:248)
	at bfk.k(SourceFile:219)

Code analysis by @unknown in this comment

Attachments

Comments 9

Here you can see, that the given book doesn't display an author.

Confirmed for

  • 14w30c

  • 14w31a

  • Minecraft 1.8-pre 1

Latest crash report (Minecraft 1.8-pre 1)

---- Minecraft Crash Report ----
// Everything's going to plan. No, really, that was supposed to happen.

Time: 25.08.14 14:49
Description: Updating screen events

java.lang.NullPointerException: Updating screen events
	at anp.h(SourceFile:60)
	at aoe.a(SourceFile:63)
	at aon.a(SourceFile:1165)
	at aim.a(SourceFile:54)
	at ail.a(SourceFile:103)
	at aji.d(SourceFile:81)
	at ahz.a(SourceFile:171)
	at cei.a(SourceFile:368)
	at byh.a(SourceFile:515)
	at byh.b(SourceFile:477)
	at bxb.k(SourceFile:407)
	at bxb.p(SourceFile:378)
	at bss.r(SourceFile:1473)
	at bss.as(SourceFile:877)
	at bss.a(SourceFile:314)
	at net.minecraft.client.main.Main.main(SourceFile:120)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Stacktrace:
	at anp.h(SourceFile:60)
	at aoe.a(SourceFile:63)
	at aon.a(SourceFile:1165)
	at aim.a(SourceFile:54)
	at ail.a(SourceFile:103)
	at aji.d(SourceFile:81)
	at ahz.a(SourceFile:171)
	at cei.a(SourceFile:368)
	at byh.a(SourceFile:515)
	at byh.b(SourceFile:477)
	at bxb.k(SourceFile:407)
	at bxb.p(SourceFile:378)

-- Affected screen --
Details:
	Screen name: byt

-- Affected level --
Details:
	Level name: MpServer
	All players: 1 total; [cik['Marcono1234'/1211520, l='MpServer', x=-959,50, y=56,00, z=-525,50]]
	Chunk stats: MultiplayerChunkCache: 441, 441
	Level seed: 0
	Level generator: ID 01 - flat, ver 0. Features enabled: false
	Level generator options: 
	Level spawn location: -950,00,4,00,-521,00 - World: (-950,4,-521), Chunk: (at 10,0,7 in -60,-33; contains blocks -960,0,-528 to -945,255,-513), Region: (-2,-2; contains chunks -64,-64 to -33,-33, blocks -1024,0,-1024 to -513,255,-513)
	Level time: 452 game time, 452 day time
	Level dimension: 0
	Level storage version: 0x00000 - Unknown?
	Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
	Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
	Forced entities: 1 total; [cik['Marcono1234'/1211520, l='MpServer', x=-959,50, y=56,00, z=-525,50]]
	Retry entities: 0 total; []
	Server brand: vanilla
	Server type: Integrated singleplayer server
Stacktrace:
	at cej.a(SourceFile:308)
	at bss.b(SourceFile:2252)
	at bss.a(SourceFile:323)
	at net.minecraft.client.main.Main.main(SourceFile:120)

-- System Details --
Details:
	Minecraft Version: 1.8-pre1
	Operating System: Windows 7 (amd64) version 6.1
	Java Version: 1.6.0_45, Sun Microsystems Inc.
	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Sun Microsystems Inc.
	Memory: 237368816 bytes (226 MB) / 475938816 bytes (453 MB) up to 1060372480 bytes (1011 MB)
	JVM Flags: 6 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx1G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M
	IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
	Launched Version: 1.8-pre1
	LWJGL: 2.9.1
	OpenGL: AMD Radeon HD 6800 Series GL version 4.4.12874 Compatibility Profile Context 14.100.0.0, ATI Technologies Inc.
	GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Shaders are available because OpenGL 2.1 is supported.
VBOs are available because OpenGL 1.5 is supported.

	Using VBOs: No
	Is Modded: Probably not. Jar signature remains and client brand is untouched.
	Type: Client (map_client.txt)
	Resource Packs: []
	Current Language: Deutsch (Deutschland)
	Profiler Position: N/A (disabled)

Please link to this comment in the description

The following is based on a decompiled version of Minecraft 1.10 using MCP 9.30.

The problem is that the game tries to get the value of the generation tag but the book has no tag tag (it is null). The affected method is net.minecraft.item.crafting.RecipeBookCloning.getCraftingResult(InventoryCrafting). This report might be invalid because the provided NBT data is incomplete.

In my opinion this should be invalid like Marcono1234 said it could be.

Things that make the game crash should not be resolved as invalid, the (unmodded) game shouldn't crash under circumstances like these.

Jan Eich

Agnes Larsson

Confirmed

crash

Minecraft 14w05a, Minecraft 14w30c, Minecraft 14w31a, Minecraft 1.8-pre1, Minecraft 1.8.8, Minecraft 15w37a, Minecraft 1.10.2

Minecraft 16w38a

Retrieved