Mojira Archive
MC-145686

java.util.NoSuchElementException ticking entity crash when a workstation is destroyed immediately after a villager within a 1-block radius has taken the job matching the workstation

Setup
Go into creative mode and have a workstation (tested with stonecutter and cartography table) and a villager spawn egg in your inventory. Place workstation first and then spawn villager (or vice versa) and wait for it to change its texture (meaning it has taken a job) and immediately thereafter destroy the block.

All my tests had the villager within a one-block radius of the workstation.

Expectation
The game doesn't crash, but instead causes the villager to stop working at that station as it no longer exists.

Observation
The game crashes with a ticking entity crash described as java.util.NoSuchElementException.

Crash log (attached as well - crash-2019-03-28_15.32.10-server.txt )

19w13a: crash-2019-03-28_15.32.10-server.txt
---- Minecraft Crash Report ----
// Daisy, daisy...

Time: 13-3-19 17:23
Description: Ticking entity

java.util.NoSuchElementException: No value present
	at java.util.Optional.get(Optional.java:135)
	at akn.c(SourceFile:54)
	at akn.g(SourceFile:17)
	at ajk.e(SourceFile:43)
	at ajk$$Lambda$2795/893830713.test(Unknown Source)
	at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
	at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
	at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
	at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
	at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
	at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:449)
	at ajk.g(SourceFile:43)
	at ajf.c(SourceFile:52)
	at aiu.b(SourceFile:185)
	at aiu$$Lambda$2793/540347566.accept(Unknown Source)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.Iterator.forEachRemaining(Iterator.java:116)
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
	at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1612)
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
	at java.util.TreeMap$ValueSpliterator.forEachRemaining(TreeMap.java:2893)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at aiu.a(SourceFile:185)
	at atz.K(SourceFile:229)
	at aig.cW(SourceFile:622)
	at aif.k(SourceFile:2202)
	at aig.k(SourceFile:478)
	at ahu.k(SourceFile:141)
	at aif.h(SourceFile:2051)
	at aig.h(SourceFile:292)
	at vc.a(SourceFile:579)
	at vc$$Lambda$2634/1560289409.accept(Unknown Source)
	at bfy.a(SourceFile:668)
	at vc.a(SourceFile:382)
	at net.minecraft.server.MinecraftServer.b(SourceFile:814)
	at net.minecraft.server.MinecraftServer.a(SourceFile:753)
	at dwc.a(SourceFile:128)
	at net.minecraft.server.MinecraftServer.run(SourceFile:628)
	at java.lang.Thread.run(Thread.java:745)


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

-- Head --
Thread: Server thread
Stacktrace:
	at java.util.Optional.get(Optional.java:135)
	at akn.c(SourceFile:54)
	at akn.g(SourceFile:17)
	at ajk.e(SourceFile:43)
	at ajk$$Lambda$2795/893830713.test(Unknown Source)
	at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
	at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351)
	at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
	at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
	at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
	at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:449)
	at ajk.g(SourceFile:43)
	at ajf.c(SourceFile:52)
	at aiu.b(SourceFile:185)
	at aiu$$Lambda$2793/540347566.accept(Unknown Source)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.Iterator.forEachRemaining(Iterator.java:116)
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
	at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1612)
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
	at java.util.TreeMap$ValueSpliterator.forEachRemaining(TreeMap.java:2893)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at aiu.a(SourceFile:185)
	at atz.K(SourceFile:229)
	at aig.cW(SourceFile:622)
	at aif.k(SourceFile:2202)
	at aig.k(SourceFile:478)
	at ahu.k(SourceFile:141)
	at aif.h(SourceFile:2051)
	at aig.h(SourceFile:292)
	at vc.a(SourceFile:579)
	at vc$$Lambda$2634/1560289409.accept(Unknown Source)

-- Entity being ticked --
Details:
	Entity Type: minecraft:villager (atz)
	Entity ID: 165834
	Entity Name: Dorpeling
	Entity's Exact location: -90.50, 56.00, -87.50
	Entity's Block location: World: (-91,56,-88), Chunk: (at 5,3,8 in -6,-6; contains blocks -96,0,-96 to -81,255,-81), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,0,-512 to -1,255,-1)
	Entity's Momentum: 0.00, -0.08, 0.00
	Entity's Passengers: []
	Entity's Vehicle: ~~ERROR~~ NullPointerException: null
Stacktrace:
	at bfy.a(SourceFile:668)
	at vc.a(SourceFile:382)

-- Affected level --
Details:
	Level name: Testing
	All players: 1 total; [vd['DarkShadow_TNT'/3, l='Testing', x=-90.54, y=57.42, z=-85.66]]
	Chunk stats: ServerChunkCache: 2535
	Level seed: 2253500656129032334
	Level generator: ID 01 - flat, ver 0. Features enabled: true
	Level generator options: {biome:"minecraft:desert",layers:[{block:"minecraft:bedrock",height:1b},{block:"minecraft:stone",height:3b},{block:"minecraft:sandstone",height:52b}],structures:{}}
	Level spawn location: World: (8,55,8), Chunk: (at 8,3,8 in 0,0; contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
	Level time: 151541 game time, 6000 day time
	Level dimension: 0
	Level storage version: 0x04ABD - Anvil
	Level weather: Rain time: 17599 (now: false), thunder time: 8364 (now: false)
	Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true
Stacktrace:
	at net.minecraft.server.MinecraftServer.b(SourceFile:814)
	at net.minecraft.server.MinecraftServer.a(SourceFile:753)
	at dwc.a(SourceFile:128)
	at net.minecraft.server.MinecraftServer.run(SourceFile:628)
	at java.lang.Thread.run(Thread.java:745)

-- System Details --
Details:
	Minecraft Version: 19w11a
	Operating System: Windows 10 (amd64) version 10.0
	Java Version: 1.8.0_51, Oracle Corporation
	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 989206528 bytes (943 MB) / 1946157056 bytes (1856 MB) up to 2147483648 bytes (2048 MB)
	JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
	Player Count: 1 / 8; [vd['DarkShadow_TNT'/3, l='Testing', x=-90.54, y=57.42, z=-85.66]]
	Data Packs: vanilla
	Type: Integrated Server (map_client.txt)
	Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.

Log (anonimised and attached as well - 2019-03-28-4.log)

19w13a: 2019-03-28-4.log
[15:32:10] [Server thread/ERROR]: Encountered an unexpected exception
m: Ticking entity
	at net.minecraft.server.MinecraftServer.b(SourceFile:820) ~[19w13a.jar:?]
	at net.minecraft.server.MinecraftServer.a(SourceFile:755) ~[19w13a.jar:?]
	at dwo.a(SourceFile:128) ~[19w13a.jar:?]
	at net.minecraft.server.MinecraftServer.run(SourceFile:630) [19w13a.jar:?]
	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51]
Caused by: java.util.NoSuchElementException: No value present
	at java.util.Optional.get(Optional.java:135) ~[?:1.8.0_51]
	at alj.c(SourceFile:72) ~[19w13a.jar:?]
	at alj.g(SourceFile:22) ~[19w13a.jar:?]
	at ajq.c(SourceFile:45) ~[19w13a.jar:?]
	at ajq$$Lambda$2871/903543169.test(Unknown Source) ~[?:?]
	at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90) ~[?:1.8.0_51]
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_51]
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_51]
	at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351) ~[?:1.8.0_51]
	at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) ~[?:1.8.0_51]
	at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:529) ~[?:1.8.0_51]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:516) ~[?:1.8.0_51]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) ~[?:1.8.0_51]
	at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230) ~[?:1.8.0_51]
	at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196) ~[?:1.8.0_51]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_51]
	at java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:449) ~[?:1.8.0_51]
	at ajq.g(SourceFile:45) ~[19w13a.jar:?]
	at ajj.c(SourceFile:61) ~[19w13a.jar:?]
	at aix.a(SourceFile:285) ~[19w13a.jar:?]
	at aix$$Lambda$2869/1951457415.accept(Unknown Source) ~[?:?]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[?:1.8.0_51]
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_51]
	at java.util.Iterator.forEachRemaining(Iterator.java:116) ~[?:1.8.0_51]
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) ~[?:1.8.0_51]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) ~[?:1.8.0_51]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270) ~[?:1.8.0_51]
	at java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1612) ~[?:1.8.0_51]
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) ~[?:1.8.0_51]
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270) ~[?:1.8.0_51]
	at java.util.TreeMap$ValueSpliterator.forEachRemaining(TreeMap.java:2893) ~[?:1.8.0_51]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512) ~[?:1.8.0_51]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) ~[?:1.8.0_51]
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[?:1.8.0_51]
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[?:1.8.0_51]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_51]
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[?:1.8.0_51]
	at aix.e(SourceFile:285) ~[19w13a.jar:?]
	at aix.a(SourceFile:233) ~[19w13a.jar:?]
	at auz.K(SourceFile:254) ~[19w13a.jar:?]
	at aij.cX(SourceFile:623) ~[19w13a.jar:?]
	at aii.k(SourceFile:2206) ~[19w13a.jar:?]
	at aij.k(SourceFile:479) ~[19w13a.jar:?]
	at ahx.k(SourceFile:141) ~[19w13a.jar:?]
	at aii.h(SourceFile:2051) ~[19w13a.jar:?]
	at aij.h(SourceFile:293) ~[19w13a.jar:?]
	at ve.a(SourceFile:581) ~[19w13a.jar:?]
	at ve$$Lambda$2709/1546971920.accept(Unknown Source) ~[?:?]
	at bgv.a(SourceFile:668) ~[19w13a.jar:?]
	at ve.a(SourceFile:384) ~[19w13a.jar:?]
	at net.minecraft.server.MinecraftServer.b(SourceFile:816) ~[19w13a.jar:?]
	... 4 more

Fixed

DarkShadow_TNT

hkniberg

2019-03-13, 06:32 PM

2019-05-31, 02:26 PM

2019-04-01, 04:33 PM

12

8

Confirmed

Crash, Village system

crash, villager

Minecraft 19w11a - Minecraft 19w13bMinecraft 19w11a, Minecraft 19w11b, Minecraft 19w12b, Minecraft 19w13a, Minecraft 19w13b

Minecraft 19w14a