From f1b809ce611e943f926fff97cefe0930226ffcc2 Mon Sep 17 00:00:00 2001 From: Alex Light Date: Tue, 26 Nov 2019 18:52:06 +0000 Subject: Revert^2 "Allow structural redefinition on non-final classes." We were incorrectly racing with the rest of the runtime in a couple of places. First we would return an ObjPtr of a newly defined class after holding it over a suspend point. This could lead to DefineClass returning an obsolete class in some cases. We also failed to ensure the class-status was synchronized between the old and new classes during structural redefinition. This could lead to a class appearing to go backwards in status. This reverts commit 88b1c83080afcb2bfb6f781ded1c90fe8f9eab4d. Reason for revert: Fixed issues causing test failures. Test: ./test.py --host Bug: 134162467 Bug: 144168550 Change-Id: I4d0f7718490532f0ef14a9561b8e7000ef292b12 --- .../AbstractCollection.patch | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 test/2000-virtual-list-structural/AbstractCollection.patch (limited to 'test/2000-virtual-list-structural/AbstractCollection.patch') diff --git a/test/2000-virtual-list-structural/AbstractCollection.patch b/test/2000-virtual-list-structural/AbstractCollection.patch new file mode 100644 index 0000000000..7507c7d862 --- /dev/null +++ b/test/2000-virtual-list-structural/AbstractCollection.patch @@ -0,0 +1,16 @@ +--- ../../../libcore/ojluni/src/main/java/java/util/AbstractCollection.java 2019-05-31 10:36:26.634361294 -0700 ++++ src-ex/java/util/AbstractCollection.java 2019-11-18 13:04:48.253575013 -0800 +@@ -63,7 +63,13 @@ + * Sole constructor. (For invocation by subclass constructors, typically + * implicit.) + */ ++ public static volatile int TOTAL_COUNT; ++ public int cnt; ++ + protected AbstractCollection() { ++ synchronized (Collection.class) { ++ cnt = ++TOTAL_COUNT; ++ } + } + + // Query Operations -- cgit v1.2.3-59-g8ed1b