298 * if (shutdown) {
299 * throw new VMDisconnectedException();
300 * }
301 */
302 }
303
304 public boolean equals(Object obj) {
305 return this == obj;
306 }
307
308 public int hashCode() {
309 return System.identityHashCode(this);
310 }
311
312 public List<ModuleReference> allModules() {
313 validateVM();
314 List<ModuleReference> modules = retrieveAllModules();
315 return Collections.unmodifiableList(modules);
316 }
317
318 public List<ReferenceType> classesByName(String className) {
319 validateVM();
320 String signature = JNITypeParser.typeNameToSignature(className);
321 List<ReferenceType> list;
322 if (retrievedAllTypes) {
323 list = findReferenceTypes(signature);
324 } else {
325 list = retrieveClassesBySignature(signature);
326 }
327 return Collections.unmodifiableList(list);
328 }
329
330 public List<ReferenceType> allClasses() {
331 validateVM();
332
333 if (!retrievedAllTypes) {
334 retrieveAllClasses();
335 }
336 ArrayList<ReferenceType> a;
337 synchronized (this) {
1377 return null;
1378 }
1379 ObjectReferenceImpl object = null;
1380 Long key = id;
1381
1382 /*
1383 * Attempt to retrieve an existing object reference
1384 */
1385 SoftObjectReference ref = objectsByID.get(key);
1386 if (ref != null) {
1387 object = ref.object();
1388 }
1389
1390 /*
1391 * If the object wasn't in the table, or it's soft reference was
1392 * cleared, create a new instance.
1393 */
1394 if (object == null) {
1395 switch (tag) {
1396 case JDWP.Tag.OBJECT:
1397 object = new ObjectReferenceImpl(vm, id);
1398 break;
1399 case JDWP.Tag.STRING:
1400 object = new StringReferenceImpl(vm, id);
1401 break;
1402 case JDWP.Tag.ARRAY:
1403 object = new ArrayReferenceImpl(vm, id);
1404 break;
1405 case JDWP.Tag.THREAD:
1406 ThreadReferenceImpl thread =
1407 new ThreadReferenceImpl(vm, id);
1408 thread.addListener(this);
1409 object = thread;
1410 break;
1411 case JDWP.Tag.THREAD_GROUP:
1412 object = new ThreadGroupReferenceImpl(vm, id);
1413 break;
1414 case JDWP.Tag.CLASS_LOADER:
1415 object = new ClassLoaderReferenceImpl(vm, id);
1416 break;
|
298 * if (shutdown) {
299 * throw new VMDisconnectedException();
300 * }
301 */
302 }
303
304 public boolean equals(Object obj) {
305 return this == obj;
306 }
307
308 public int hashCode() {
309 return System.identityHashCode(this);
310 }
311
312 public List<ModuleReference> allModules() {
313 validateVM();
314 List<ModuleReference> modules = retrieveAllModules();
315 return Collections.unmodifiableList(modules);
316 }
317
318 List<ReferenceType> classesBySignature(String signature) {
319 validateVM();
320 List<ReferenceType> list;
321 if (retrievedAllTypes) {
322 list = findReferenceTypes(signature);
323 } else {
324 list = retrieveClassesBySignature(signature);
325 }
326 return Collections.unmodifiableList(list);
327 }
328
329 public List<ReferenceType> classesByName(String className) {
330 validateVM();
331 String signature = JNITypeParser.typeNameToSignature(className);
332 List<ReferenceType> list;
333 if (retrievedAllTypes) {
334 list = findReferenceTypes(signature);
335 } else {
336 list = retrieveClassesBySignature(signature);
337 }
338 return Collections.unmodifiableList(list);
339 }
340
341 public List<ReferenceType> allClasses() {
342 validateVM();
343
344 if (!retrievedAllTypes) {
345 retrieveAllClasses();
346 }
347 ArrayList<ReferenceType> a;
348 synchronized (this) {
1388 return null;
1389 }
1390 ObjectReferenceImpl object = null;
1391 Long key = id;
1392
1393 /*
1394 * Attempt to retrieve an existing object reference
1395 */
1396 SoftObjectReference ref = objectsByID.get(key);
1397 if (ref != null) {
1398 object = ref.object();
1399 }
1400
1401 /*
1402 * If the object wasn't in the table, or it's soft reference was
1403 * cleared, create a new instance.
1404 */
1405 if (object == null) {
1406 switch (tag) {
1407 case JDWP.Tag.OBJECT:
1408 case JDWP.Tag.INLINE_OBJECT:
1409 object = new ObjectReferenceImpl(vm, id);
1410 break;
1411 case JDWP.Tag.STRING:
1412 object = new StringReferenceImpl(vm, id);
1413 break;
1414 case JDWP.Tag.ARRAY:
1415 object = new ArrayReferenceImpl(vm, id);
1416 break;
1417 case JDWP.Tag.THREAD:
1418 ThreadReferenceImpl thread =
1419 new ThreadReferenceImpl(vm, id);
1420 thread.addListener(this);
1421 object = thread;
1422 break;
1423 case JDWP.Tag.THREAD_GROUP:
1424 object = new ThreadGroupReferenceImpl(vm, id);
1425 break;
1426 case JDWP.Tag.CLASS_LOADER:
1427 object = new ClassLoaderReferenceImpl(vm, id);
1428 break;
|