summaryrefslogtreecommitdiff
path: root/test/626-const-class-linking/src/DelegatingLoader.java
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2016-12-09 10:20:54 +0000
committer Vladimir Marko <vmarko@google.com> 2016-12-09 13:02:40 +0000
commitc5798bf82fc0ccd0bb90e0813d8e63df4d0576cc (patch)
tree89c94659ad977b66f4d2a90981ed7c63c0af636a /test/626-const-class-linking/src/DelegatingLoader.java
parentaea9ffece7eb32f3884a4ad0553e1df4d90fd9e4 (diff)
Revert^8 "Make sure that const-class linkage is preserved."
Replaced two ReaderMutexLocks with WriterMutexLocks. Removed some unnecessary debugging output. Test: m test-art-host Bug: 30627598 Original-Change-Id: Ie9b721464b4e9a5dcce8df8095548e983bba1fe8 This reverts commit 2c8c6b63da6ecb2ac701cc30f9b4fa4a8eea5cc8. Change-Id: I3a1aeecf64e4b202cef61cceb248d48106a2f4a6
Diffstat (limited to 'test/626-const-class-linking/src/DelegatingLoader.java')
-rw-r--r--test/626-const-class-linking/src/DelegatingLoader.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/626-const-class-linking/src/DelegatingLoader.java b/test/626-const-class-linking/src/DelegatingLoader.java
new file mode 100644
index 0000000000..49955d4e95
--- /dev/null
+++ b/test/626-const-class-linking/src/DelegatingLoader.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+public class DelegatingLoader extends DefiningLoader {
+ private DefiningLoader defining_loader;
+
+ public DelegatingLoader(ClassLoader parent, DefiningLoader defining_loader) {
+ super(parent);
+ this.defining_loader = defining_loader;
+ }
+
+ public void resetDefiningLoader(DefiningLoader defining_loader) {
+ this.defining_loader = defining_loader;
+ }
+
+ protected Class<?> findClass(String name) throws ClassNotFoundException
+ {
+ if (name.equals("Test")) {
+ throw new Error("Unexpected DelegatingLoader.findClass(\"Test\")");
+ }
+ return super.findClass(name);
+ }
+
+ protected Class<?> loadClass(String name, boolean resolve)
+ throws ClassNotFoundException
+ {
+ if (name.equals("Test")) {
+ return defining_loader.loadClass(name, resolve);
+ }
+ return super.loadClass(name, resolve);
+ }
+}