كيف أُظهر تفاصيل خطأ java.lang.NullPointerException عندما تظهر بدون أرقام أسطر في اللوج؟

Viewed 0

عند تشغيل النظام تظهر في اللوج رسالة java.lang.NullPointerException بدون أي stack trace أو أرقام أسطر، فلا تظهر معلومات كافية لتحديد مصدر الخطأ.

ما الإعداد المطلوب على التومكات (Tomcat) حتى يتم عرض تفاصيل الخطأ كاملةً؟


Originally posted at https://answers.namasoft.com/question/19/ on 2018-06-13.

1 Answers

هذا السلوك ناتج عن تحسين (optimization) في JVM يُعرف باسم Fast Throw. بعد تكرار رمي نفس الاستثناء عدة مرات، تقوم JVM بإسقاط الـ stack trace لتسريع الأداء، فيظهر الاستثناء في اللوج بدون أي أسطر.

لتعطيل هذا السلوك وإجبار JVM على طباعة الـ stack trace كاملاً، أضف الخيار التالي إلى Java Options في إعدادات التومكات:

-XX:-OmitStackTraceInFastThrow

بعد ذلك قم بعمل Restart للتومكات حتى يأخذ الإعداد مفعوله، وستظهر تفاصيل الاستثناء كاملةً في المرات اللاحقة.


Originally posted at https://answers.namasoft.com/question/19/ on 2018-06-13.