Manage JDWP errors related to garbage collection.
Returns INVALID_OBJECT error in case of invalid object ID or null object ID in
commands ObjectReference.DisableCollection, ObjectReference.EnableCollection
and ObjectReference.IsCollected.
Note: JDWP specs do not state ObjectReference.EnableCollection must return any
error code. We choose to be more strict so these three commands all behave the
same.
Change-Id: I06fb75b75f7d33cf4d23e121d9541bfd70b778bb
diff --git a/runtime/jdwp/object_registry.cc b/runtime/jdwp/object_registry.cc
index be2219c..b2371e8 100644
--- a/runtime/jdwp/object_registry.cc
+++ b/runtime/jdwp/object_registry.cc
@@ -130,9 +130,7 @@
Thread* self = Thread::Current();
MutexLock mu(self, lock_);
id_iterator it = id_to_entry_.find(id);
- if (it == id_to_entry_.end()) {
- return;
- }
+ CHECK(it != id_to_entry_.end());
Promote(*(it->second));
}
@@ -140,9 +138,7 @@
Thread* self = Thread::Current();
MutexLock mu(self, lock_);
id_iterator it = id_to_entry_.find(id);
- if (it == id_to_entry_.end()) {
- return;
- }
+ CHECK(it != id_to_entry_.end());
Demote(*(it->second));
}
@@ -172,9 +168,7 @@
Thread* self = Thread::Current();
MutexLock mu(self, lock_);
id_iterator it = id_to_entry_.find(id);
- if (it == id_to_entry_.end()) {
- return true; // TODO: can we report that this was an invalid id?
- }
+ CHECK(it != id_to_entry_.end());
ObjectRegistryEntry& entry = *(it->second);
if (entry.jni_reference_type == JNIWeakGlobalRefType) {