โปรแกรมเมอร์พบว่า Null Pointer Exception เกิดขึ้นในโปรแกรมที่ขัดขวางการทำงาน แต่ปรากฎว่าตัวแปรไม่เคยเป็น Null ในข้อมูลอินพุตที่ทดสอบ ปัญหานี้อาจเกิดจากสาเหตุใด
กระบบปฏิบัติการไม่ได้จัดสรรหน่วยความจำอย่างถูกต้อง
ขฮาร์ดแวร์ของเครื่องขาดเสถียรภาพในการทำงาน จึงทำให้ข้อมูลในหน่วยความจำเกิดความเสียหายระหว่างการประมวลผล
คข้อมูลถูกกำจัด (Garbage Collected) โดยระบบ
งโปรแกรมมี Race Condition ที่ทำให้ตัวแปรถูกตั้งเป็น Null จากเธรดอื่น
เฉลยอธิบาย
Race Condition เกิดขึ้นเมื่อเธรด (Thread) หลายตัวเข้าถึงและแก้ไขตัวแปรเดียวกันพร้อมๆ กันโดยไม่มี Synchronization ตัวแปรอาจถูกตั้งเป็น Null โดยเธรดหนึ่งขณะที่เธรดอื่นกำลังพยายามเข้าถึง ซึ่งไม่เกิดขึ้นในการทดสอบแบบ Single-threaded ตัวเลือก A เกี่ยวข้องกับฮาร์ดแวร์แต่ไม่อธิบายสาเหตุของ Null Pointer ตัวเลือก C ไม่ใช่สาเหตุทั่วไป ตัวเลือก D เป็นการทำความสะอาดหน่วยความจำโดยเจตนา ไม่ใช่ข้อบกพร่อง