< prev index next >

test/com/sun/jdi/InstanceFilter.java

Print this page
rev 11659 : 8076154: com/sun/jdi/InstanceFilter.java failing due to missing MethodEntryRequest calls
Summary: Some jdi tests are failing due to missing MethodEntryRequest events during the test execution.
Reviewed-by: duke

*** 1,7 **** /* ! * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 102,112 **** } catch (IncompatibleThreadStateException ee) { failure("FAILED: Exception occured in methodEntered: " + ee); return; } if (theThis == null) { ! // This happens when the thread has exited. methodEntryRequest.disable(); return; } if (!theThis.equals(theInstance)) { --- 102,115 ---- } catch (IncompatibleThreadStateException ee) { failure("FAILED: Exception occured in methodEntered: " + ee); return; } if (theThis == null) { ! // This happens when the thread has exited or when a ! // static method is called. Setting an instance ! // filter does not prevent this event from being ! // emitted with a this that is null. methodEntryRequest.disable(); return; } if (!theThis.equals(theInstance)) {
*** 136,145 **** --- 139,152 ---- theInstance = (ObjectReference)(targetClass.getValue(field)); EventRequestManager mgr = vm().eventRequestManager(); methodEntryRequest = mgr.createMethodEntryRequest(); methodEntryRequest.addInstanceFilter(theInstance); + // Thread filter is needed to prevent MethodEntry events + // to be emitted by the debugee when a static method + // is called on any thread. + methodEntryRequest.addThreadFilter(bpe.thread()); methodEntryRequest.enable(); listenUntilVMDisconnect(); if (!testFailed && methodCount < expectedMethods.length) {
< prev index next >