Index: vm/vmcore/src/class_support/Class_File_Loader.cpp =================================================================== --- vm/vmcore/src/class_support/Class_File_Loader.cpp (revision 526730) +++ vm/vmcore/src/class_support/Class_File_Loader.cpp (working copy) @@ -23,6 +23,7 @@ #include "cxxlog.h" + #include "port_filepath.h" #include @@ -1745,17 +1746,13 @@ } // JVM spec hints that LocalVariableTypeTable is meant to be a supplement to LocalVariableTable // See specification 4.8.13 second paragraph. - if (!failed && generic_vars) { + if (_class->get_version() >= JAVA5_CLASS_FILE_VERSION && get_boolean_property("vm.use_verifier", TRUE, VM_PROPERTIES) && !failed && generic_vars) { unsigned j = i = 0; for (i = 0; i < generic_vars->length; i++) { for (j = 0; j < lv_table->length; j++) { if (generic_vars->table[i].name == lv_table->table[j].name && generic_vars->table[i].start_pc == lv_table->table[j].start_pc - /* FIXME This is temporary solution. One broken class file - was found in eclipse plugin. RI loads this class successfully, DRLVM doesn't. - Tests show that this depends on classloader, so further evaluation is needed - to fix it permanently. */ - //&& generic_vars->table[i].length == lv_table->table[j].length + && generic_vars->table[i].length == lv_table->table[j].length && generic_vars->table[i].index == lv_table->table[j].index) { lv_table->table[j].generic_type = generic_vars->table[i].type;