Selasa, 22 Mei 2012

Reasons of getting a java.lang.VerifyError

Pernah ngalamin error kayak gini, sekedar pengalaman dan nambah tulisan aja :nyengir. Ini error muncul kalau ada library yang berbeda versi. Jadi library pada saat di compile dan run itu berbeda.
Misal kita compile menggunakan library httpcore-4.1.1.jar tapi di classpath pada saat run kita menggunakan httpcore-4.0.jar.  Jadi ada beberapa perubahan class yang terjadi pada saat run, sehingga menyebabkan ClassNotFoundException. Karena mungkin saja ada method atau class yang ga ada.
Biasanya compiler akan memberikan flag dimana methode signature tidak sama. JVM memeriksa bytecode lagi ketika class diload, dan melempar VerifyError ketika bytecode mencoba untuk melakukan sesuatu yang tidak diijinkan, misal memanggil methode yang mengembalikan String dan kemudian menyimpan nilai balikan tersebut di dalam field yang memegang list

0 komentar:

Posting Komentar