Merge "Add presubmit repo hook to check license headers in luni/ojluni"
diff --git a/JavaLibrary.bp b/JavaLibrary.bp
index 968072b..2d26422 100644
--- a/JavaLibrary.bp
+++ b/JavaLibrary.bp
@@ -615,6 +615,8 @@
// Generates stubs for the parts of the public SDK API provided by the core
// library.
+//
+// Only for use by core.current.stubs target below.
droidstubs {
name: "core-current-stubs-gen",
srcs: [":core_api_files"],
@@ -626,6 +628,25 @@
merge_inclusion_annotations_dirs: ["ojluni-annotated-mmodule-stubs"],
}
+// A stubs target containing the parts of the public SDK API provided by the
+// core library.
+//
+// Don't use this directly, use "sdk_version: core_current".
+java_library {
+ name: "core.current.stubs",
+ srcs: [":core-current-stubs-gen"],
+ errorprone: {
+ javacflags: [
+ "-Xep:MissingOverride:OFF",
+ ],
+ },
+ openjdk9: {
+ javacflags: ["--patch-module=java.base=."],
+ },
+ no_standard_libs: true,
+ system_modules: "none",
+}
+
// Target for validating nullability annotations for correctness and
// completeness. To check that there are no nullability errors:
// make core-current-stubs-nullability-validation
@@ -654,25 +675,6 @@
check_nullability_warnings: "nullability_warnings.txt",
}
-// A stubs target containing the parts of the public SDK API provided by the
-// core library.
-//
-// Don't use this directly, use "sdk_version: core_current".
-java_library {
- name: "core.current.stubs",
- srcs: [":core-current-stubs-gen"],
- errorprone: {
- javacflags: [
- "-Xep:MissingOverride:OFF",
- ],
- },
- openjdk9: {
- javacflags: ["--patch-module=java.base=."],
- },
- no_standard_libs: true,
- system_modules: "none",
-}
-
// A host library containing time zone related classes. Used for
// host-side tools and tests that have to deal with Android
// time zone data.
diff --git a/NativeCode.bp b/NativeCode.bp
index f3b4217..9e68b07 100644
--- a/NativeCode.bp
+++ b/NativeCode.bp
@@ -86,6 +86,9 @@
"core_native_default_libs",
],
srcs: [":libopenjdk_native_srcs"],
+ include_dirs: [
+ "libcore/luni/src/main/native",
+ ],
cflags: [
// TODO(narayan): Prune down this list of exclusions once the underlying
// issues have been fixed. Most of these are small changes except for
@@ -100,9 +103,9 @@
shared_libs: [
"libcrypto",
"libicuuc",
- "libz",
-
+ "libjavacore",
"libnativehelper",
+ "libz",
],
static_libs: ["libfdlibm"],
diff --git a/dalvik/src/main/java/dalvik/system/ZygoteHooks.java b/dalvik/src/main/java/dalvik/system/ZygoteHooks.java
index 5ae9f23..13769e1 100644
--- a/dalvik/src/main/java/dalvik/system/ZygoteHooks.java
+++ b/dalvik/src/main/java/dalvik/system/ZygoteHooks.java
@@ -30,10 +30,10 @@
*/
@libcore.api.CorePlatformApi
public final class ZygoteHooks {
- private long token;
+ private static long token;
- @libcore.api.CorePlatformApi
- public ZygoteHooks() {
+ /** All methods are static, no need to instantiate. */
+ private ZygoteHooks() {
}
/**
@@ -101,7 +101,7 @@
* the child process.
*/
@libcore.api.CorePlatformApi
- public void preFork() {
+ public static void preFork() {
Daemons.stop();
token = nativePreFork();
waitUntilAllThreadsStopped();
@@ -112,7 +112,7 @@
* before {@code postForkChild} for system server.
*/
@libcore.api.CorePlatformApi
- public void postForkSystemServer() {
+ public static void postForkSystemServer() {
nativePostForkSystemServer();
}
@@ -122,7 +122,7 @@
* {@code instructionSet} determines whether to use a native bridge.
*/
@libcore.api.CorePlatformApi
- public void postForkChild(int runtimeFlags, boolean isSystemServer, boolean isZygote,
+ public static void postForkChild(int runtimeFlags, boolean isSystemServer, boolean isZygote,
String instructionSet) {
nativePostForkChild(token, runtimeFlags, isSystemServer, isZygote, instructionSet);
@@ -135,7 +135,7 @@
* {@code postForkChild}.
*/
@libcore.api.CorePlatformApi
- public void postForkCommon() {
+ public static void postForkCommon() {
Daemons.startPostZygoteFork();
nativePostZygoteFork();
}
diff --git a/dalvik/src/main/java/org/apache/harmony/dalvik/ddmc/DdmServer.java b/dalvik/src/main/java/org/apache/harmony/dalvik/ddmc/DdmServer.java
index cfc16f1..e961d56 100644
--- a/dalvik/src/main/java/org/apache/harmony/dalvik/ddmc/DdmServer.java
+++ b/dalvik/src/main/java/org/apache/harmony/dalvik/ddmc/DdmServer.java
@@ -31,9 +31,6 @@
@libcore.api.CorePlatformApi
public class DdmServer {
- @libcore.api.CorePlatformApi
- public static final int CLIENT_PROTOCOL_VERSION = 1;
-
private static HashMap<Integer,ChunkHandler> mHandlerMap =
new HashMap<Integer,ChunkHandler>();
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/SimpleDateFormatTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/SimpleDateFormatTest.java
index 7793169..2eb64fe 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/SimpleDateFormatTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/SimpleDateFormatTest.java
@@ -891,51 +891,76 @@
assertEquals(f2.toPattern(), f2.toLocalizedPattern());
}
- public void test_parse_with_spaces() {
- // Regression for HARMONY-502
- SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
- df.setLenient(false);
+ // Regression for HARMONY-502
+ public void test_parse_whitespace_within_date() {
+ Date date = new GregorianCalendar(2003, Calendar.APRIL, 5, 9, 7, 6).getTime();
+ parse_whitespace_variants(
+ new SimpleDateFormat("HH:mm:ss dd/MM/yy"),
+ date,
+ new String[] {
+ "%c9:07:06 05/04/03",
+ "%c09:07:06 05/04/03",
+ "09:%c7:06 05/04/03",
+ "09:%c07:06 05/04/03",
+ "09:07:%c6 05/04/03",
+ "09:07:%c06 05/04/03",
+ "09:07:06 %c05/04/03",
+ "09:07:06 %c5/04/03",
+ "09:07:06 05/%c4/03",
+ "09:07:06 05/%c04/03",
+ "09:07:06 05/04/%c03",
+ });
- char allowed_chars[] = { 0x9, 0x20 };
- String allowed_char_names[] = { "tab", "space" };
- for (int i = 0; i < allowed_chars.length; i++) {
- Date expected = new GregorianCalendar(1970, Calendar.JANUARY, 1, 9, 7, 6).getTime();
- ParsePosition pp = new ParsePosition(0);
- Date d = df.parse(allowed_chars[i] + "9:07:06", pp);
- assertNotNull("hour may be prefixed by " + allowed_char_names[i], d);
- assertEquals(expected, d);
+ parse_whitespace_variants(
+ new SimpleDateFormat("HH:mm:ss dd/MM/yyyy"),
+ date,
+ new String[] {
+ "09:07:06 05/04/%c2003",
+ });
+ }
- pp = new ParsePosition(0);
- d = df.parse("09:" + allowed_chars[i] + "7:06", pp);
- assertNotNull("minute may be prefixed by " + allowed_char_names[i], d);
- assertEquals(expected, d);
-
- pp = new ParsePosition(0);
- d = df.parse("09:07:" + allowed_chars[i] + "6", pp);
- assertNotNull("second may be prefixed by " + allowed_char_names[i], d);
- assertEquals(expected, d);
- }
-
- char not_allowed_chars[] = {
- // whitespace
+ // Tests valid and invalid whitespace characters are parsed correctly within
+ // a date string. dateFormat and expected are the SimpleDateFormat and expected date.
+ // variants is a list of input variations where %c will be substituted with
+ // the whitespace characters to test.
+ private void parse_whitespace_variants(SimpleDateFormat dateFormat, Date expected,
+ String[] variants) {
+ char validWhitespace[] = { 0x9, 0x20 };
+ char invalidWhitespace[] = {
+ // Whitespace
0x1c, 0x1d, 0x1e, 0x1f, 0xa, 0xb, 0xc, 0xd, 0x2001, 0x2002,
0x2003, 0x2004, 0x2005, 0x2006, 0x2008, 0x2009, 0x200a, 0x200b,
0x2028, 0x2029, 0x3000,
- // non-breaking space
+ // Non-breaking space
0xA0, 0x2007, 0x202F };
- for (int i = 0; i < not_allowed_chars.length; i++) {
- ParsePosition pp = new ParsePosition(0);
- Date d = df.parse(not_allowed_chars[i] + "9:07", pp);
- assertNull(d);
+ dateFormat.setLenient(false);
+ for (String variant: variants) {
+ for (char c : validWhitespace) {
+ String info = String.format("Parsing variant='%s', c=0x%x:", variant, (int) c);
+ String input = String.format(variant, c);
+ Date date = dateFormat.parse(input, new ParsePosition(0));
+ assertEquals(info, expected, date);
+ try {
+ date = dateFormat.parse(input);
+ } catch (ParseException e) {
+ fail(info);
+ }
+ assertEquals(info, expected, date);
- pp = new ParsePosition(0);
- d = df.parse("09:" + not_allowed_chars[i] + "7", pp);
- assertNull(d);
-
- pp = new ParsePosition(0);
- d = df.parse("09:07:" + not_allowed_chars[i] + "6", pp);
- assertNull(d);
+ }
+ for (char c : invalidWhitespace) {
+ String info = String.format("Parsing variant='%s', c=0x%x:", variant, (int) c);
+ String input = String.format(variant, c);
+ Date date = dateFormat.parse(input, new ParsePosition(0));
+ assertNull(info, date);
+ try {
+ dateFormat.parse(input);
+ fail(info);
+ } catch (ParseException e) {
+ // Expected
+ }
+ }
}
}
}
diff --git a/libart/src/main/java/dalvik/system/VMRuntime.java b/libart/src/main/java/dalvik/system/VMRuntime.java
index d2f0317..c5cabe3 100644
--- a/libart/src/main/java/dalvik/system/VMRuntime.java
+++ b/libart/src/main/java/dalvik/system/VMRuntime.java
@@ -56,6 +56,77 @@
}
/**
+ * Interface for logging hidden API usage events.
+ */
+ @libcore.api.CorePlatformApi
+ public interface HiddenApiUsageLogger {
+
+ // The following ACCESS_METHOD_ constants must match the values in
+ // art/runtime/hidden_api.h
+ /**
+ * Internal test value that does not correspond to an actual access by the
+ * application. Never logged, added for completeness.
+ */
+ public static final int ACCESS_METHOD_NONE = 0;
+
+ /**
+ * Used when a method has been accessed via reflection.
+ */
+ public static final int ACCESS_METHOD_REFLECTION = 1;
+
+ /**
+ * Used when a method has been accessed via JNI.
+ */
+ public static final int ACCESS_METHOD_JNI = 2;
+
+ /**
+ * Used when a method is accessed at link time. Never logged, added only
+ * for completeness.
+ */
+ public static final int ACCESS_METHOD_LINKING = 3;
+
+ /**
+ * Logs hidden API access
+ *
+ * @param appPackageName package name of the app attempting the access
+ * @param signature signature of the method being called, i.e
+ * class_name->member_name:type_signature (e.g.
+ * {@code com.android.app.Activity->mDoReportFullyDrawn:Z}) for fields and
+ * class_name->method_name_and_signature for methods (e.g
+ * {@code com.android.app.Activity->finish(I)V})
+ * @param accessType how the accessed was done
+ * @param accessDenied whether the access was allowed or not
+ */
+ public void hiddenApiUsed(String appPackageName, String signature,
+ int accessType, boolean accessDenied);
+ }
+
+ static HiddenApiUsageLogger hiddenApiUsageLogger;
+
+ /**
+ * Sets the hidden API usage logger {@link #hiddenApiUsageLogger}.
+ * It should only be called if {@link #setHiddenApiAccessLogSamplingRate(int)}
+ * is called with a value > 0
+ */
+ @libcore.api.CorePlatformApi
+ public static void setHiddenApiUsageLogger(HiddenApiUsageLogger hiddenApiUsageLogger) {
+ VMRuntime.hiddenApiUsageLogger = hiddenApiUsageLogger;
+ }
+
+ /**
+ * Records an attempted hidden API access to
+ * {@link HiddenApiUsageLogger#hiddenApiUsed(String, String, int, boolean}
+ * if a logger is registered via {@link #setHiddenApiUsageLogger}.
+ */
+ private static void hiddenApiUsed(String appPackageName, String signature,
+ int accessType, boolean accessDenied) {
+ if (VMRuntime.hiddenApiUsageLogger != null) {
+ VMRuntime.hiddenApiUsageLogger.hiddenApiUsed(appPackageName, signature,
+ accessType, accessDenied);
+ }
+ }
+
+ /**
* Magic version number for a current development build, which has not
* yet turned into an official release. This number must be larger than
* any released version in {@code android.os.Build.VERSION_CODES}.
diff --git a/libart/src/main/java/java/lang/Daemons.java b/libart/src/main/java/java/lang/Daemons.java
index a04bee8..c827532 100644
--- a/libart/src/main/java/java/lang/Daemons.java
+++ b/libart/src/main/java/java/lang/Daemons.java
@@ -25,6 +25,7 @@
import java.lang.ref.ReferenceQueue;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeoutException;
import libcore.util.EmptyArray;
@@ -40,28 +41,44 @@
private static final int NANOS_PER_SECOND = NANOS_PER_MILLI * 1000;
@UnsupportedAppUsage
private static final long MAX_FINALIZE_NANOS = 10L * NANOS_PER_SECOND;
+ private static final Daemon[] DAEMONS = new Daemon[] {
+ HeapTaskDaemon.INSTANCE,
+ ReferenceQueueDaemon.INSTANCE,
+ FinalizerDaemon.INSTANCE,
+ FinalizerWatchdogDaemon.INSTANCE,
+ };
+ private static final CountDownLatch POST_ZYGOTE_START_LATCH = new CountDownLatch(DAEMONS.length);
+ private static final CountDownLatch PRE_ZYGOTE_START_LATCH = new CountDownLatch(DAEMONS.length);
+
+ private static boolean postZygoteFork = false;
@UnsupportedAppUsage
public static void start() {
- ReferenceQueueDaemon.INSTANCE.start();
- FinalizerDaemon.INSTANCE.start();
- FinalizerWatchdogDaemon.INSTANCE.start();
- HeapTaskDaemon.INSTANCE.start();
+ for (Daemon daemon : DAEMONS) {
+ daemon.start();
+ }
}
public static void startPostZygoteFork() {
- ReferenceQueueDaemon.INSTANCE.startPostZygoteFork();
- FinalizerDaemon.INSTANCE.startPostZygoteFork();
- FinalizerWatchdogDaemon.INSTANCE.startPostZygoteFork();
- HeapTaskDaemon.INSTANCE.startPostZygoteFork();
+ postZygoteFork = true;
+ for (Daemon daemon : DAEMONS) {
+ daemon.startPostZygoteFork();
+ }
}
@UnsupportedAppUsage
public static void stop() {
- HeapTaskDaemon.INSTANCE.stop();
- ReferenceQueueDaemon.INSTANCE.stop();
- FinalizerDaemon.INSTANCE.stop();
- FinalizerWatchdogDaemon.INSTANCE.stop();
+ for (Daemon daemon : DAEMONS) {
+ daemon.stop();
+ }
+ }
+
+ private static void waitForDaemonStart() throws Exception {
+ if (postZygoteFork) {
+ POST_ZYGOTE_START_LATCH.await();
+ } else {
+ PRE_ZYGOTE_START_LATCH.await();
+ }
}
/**
@@ -95,16 +112,20 @@
}
thread = new Thread(ThreadGroup.systemThreadGroup, this, name);
thread.setDaemon(true);
+ thread.setSystemDaemon(true);
thread.start();
}
- public void run() {
+ public final void run() {
if (postZygoteFork) {
// We don't set the priority before the Thread.start() call above because
// Thread.start() will call SetNativePriority and overwrite the desired native
// priority. We (may) use a native priority that doesn't have a corresponding
// java.lang.Thread-level priority (native priorities are more coarse-grained.)
VMRuntime.getRuntime().setSystemDaemonThreadPriority();
+ POST_ZYGOTE_START_LATCH.countDown();
+ } else {
+ PRE_ZYGOTE_START_LATCH.countDown();
}
runInternal();
}
diff --git a/luni/src/main/java/android/system/Os.java b/luni/src/main/java/android/system/Os.java
index 0f13a83..8451884 100644
--- a/luni/src/main/java/android/system/Os.java
+++ b/luni/src/main/java/android/system/Os.java
@@ -42,12 +42,6 @@
public static FileDescriptor accept(FileDescriptor fd, InetSocketAddress peerAddress) throws ErrnoException, SocketException { return Libcore.os.accept(fd, peerAddress); }
/**
- * TODO Change the public API by removing the overload above and unhiding this version.
- * @hide
- */
- public static FileDescriptor accept(FileDescriptor fd, SocketAddress peerAddress) throws ErrnoException, SocketException { return Libcore.os.accept(fd, peerAddress); }
-
- /**
* See <a href="http://man7.org/linux/man-pages/man2/access.2.html">access(2)</a>.
*/
public static boolean access(String path, int mode) throws ErrnoException { return Libcore.os.access(path, mode); }
@@ -60,9 +54,9 @@
*/
public static void bind(FileDescriptor fd, InetAddress address, int port) throws ErrnoException, SocketException { Libcore.os.bind(fd, address, port); }
- /** @hide */
- @UnsupportedAppUsage
- @libcore.api.CorePlatformApi
+ /**
+ * See <a href="http://man7.org/linux/man-pages/man2/bind.2.html">bind(2)</a>.
+ */
public static void bind(FileDescriptor fd, SocketAddress address) throws ErrnoException, SocketException { Libcore.os.bind(fd, address); }
/**
@@ -517,10 +511,7 @@
/**
* See <a href="http://man7.org/linux/man-pages/man2/sendto.2.html">sendto(2)</a>.
- * @hide
*/
- @UnsupportedAppUsage
- @libcore.api.CorePlatformApi
public static int sendto(FileDescriptor fd, byte[] bytes, int byteOffset, int byteCount, int flags, SocketAddress address) throws ErrnoException, SocketException { return Libcore.os.sendto(fd, bytes, byteOffset, byteCount, flags, address); }
/**
diff --git a/luni/src/main/native/Android.bp b/luni/src/main/native/Android.bp
index e63fa42..4e03c1f 100644
--- a/luni/src/main/native/Android.bp
+++ b/luni/src/main/native/Android.bp
@@ -1,6 +1,7 @@
filegroup {
name: "luni_native_srcs",
srcs: [
+ "AsynchronousCloseMonitor.cpp",
"ExecStrings.cpp",
"IcuUtilities.cpp",
"JniConstants.cpp",
diff --git a/luni/src/main/native/AsynchronousCloseMonitor.cpp b/luni/src/main/native/AsynchronousCloseMonitor.cpp
new file mode 100644
index 0000000..7fea936
--- /dev/null
+++ b/luni/src/main/native/AsynchronousCloseMonitor.cpp
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+#define LOG_TAG "AsynchronousCloseMonitor"
+
+#include <log/log.h>
+
+#include <errno.h>
+#include <signal.h>
+#include <string.h>
+
+#include <mutex>
+
+#include "AsynchronousCloseMonitor.h"
+
+namespace {
+
+class AsynchronousCloseMonitorImpl {
+public:
+ explicit AsynchronousCloseMonitorImpl(int fd);
+ ~AsynchronousCloseMonitorImpl();
+ bool wasSignaled() const;
+
+ static void init();
+
+ static void signalBlockedThreads(int fd);
+
+private:
+ AsynchronousCloseMonitorImpl(const AsynchronousCloseMonitorImpl&) = delete;
+ AsynchronousCloseMonitorImpl& operator=(const AsynchronousCloseMonitorImpl&) = delete;
+
+ AsynchronousCloseMonitorImpl* mPrev;
+ AsynchronousCloseMonitorImpl* mNext;
+ pthread_t mThread;
+ int mFd;
+ bool mSignaled;
+};
+
+/**
+ * We use an intrusive doubly-linked list to keep track of blocked threads.
+ * This gives us O(1) insertion and removal, and means we don't need to do any allocation.
+ * (The objects themselves are stack-allocated.)
+ * Waking potentially-blocked threads when a file descriptor is closed is O(n) in the total number
+ * of blocked threads (not the number of threads actually blocked on the file descriptor in
+ * question). For now at least, this seems like a good compromise for Android.
+ */
+static std::mutex blockedThreadListMutex;
+static AsynchronousCloseMonitorImpl* blockedThreadList = NULL;
+
+/**
+ * The specific signal chosen here is arbitrary, but bionic needs to know so that SIGRTMIN
+ * starts at a higher value.
+ */
+#if defined(__Fuchsia__)
+static const int BLOCKED_THREAD_SIGNAL = SIGRTMIN + 2;
+#else
+static const int BLOCKED_THREAD_SIGNAL = __SIGRTMIN + 2;
+#endif
+
+static void blockedThreadSignalHandler(int /*signal*/) {
+ // Do nothing. We only sent this signal for its side-effect of interrupting syscalls.
+}
+
+void AsynchronousCloseMonitorImpl::init() {
+ // Ensure that the signal we send interrupts system calls but doesn't kill threads.
+ // Using sigaction(2) lets us ensure that the SA_RESTART flag is not set.
+ // (The whole reason we're sending this signal is to unblock system calls!)
+ struct sigaction sa;
+ memset(&sa, 0, sizeof(sa));
+ sa.sa_handler = blockedThreadSignalHandler;
+ sa.sa_flags = 0;
+ int rc = sigaction(BLOCKED_THREAD_SIGNAL, &sa, NULL);
+ if (rc == -1) {
+ ALOGE("setting blocked thread signal handler failed: %s", strerror(errno));
+ }
+}
+
+void AsynchronousCloseMonitorImpl::signalBlockedThreads(int fd) {
+ std::lock_guard<std::mutex> lock(blockedThreadListMutex);
+ for (AsynchronousCloseMonitorImpl* it = blockedThreadList; it != NULL; it = it->mNext) {
+ if (it->mFd == fd) {
+ it->mSignaled = true;
+ pthread_kill(it->mThread, BLOCKED_THREAD_SIGNAL);
+ // Keep going, because there may be more than one thread...
+ }
+ }
+}
+
+bool AsynchronousCloseMonitorImpl::wasSignaled() const {
+ return mSignaled;
+}
+
+AsynchronousCloseMonitorImpl::AsynchronousCloseMonitorImpl(int fd) {
+ std::lock_guard<std::mutex> lock(blockedThreadListMutex);
+ // Who are we, and what are we waiting for?
+ mThread = pthread_self();
+ mFd = fd;
+ mSignaled = false;
+ // Insert ourselves at the head of the intrusive doubly-linked list...
+ mPrev = NULL;
+ mNext = blockedThreadList;
+ if (mNext != NULL) {
+ mNext->mPrev = this;
+ }
+ blockedThreadList = this;
+}
+
+AsynchronousCloseMonitorImpl::~AsynchronousCloseMonitorImpl() {
+ std::lock_guard<std::mutex> lock(blockedThreadListMutex);
+ // Unlink ourselves from the intrusive doubly-linked list...
+ if (mNext != NULL) {
+ mNext->mPrev = mPrev;
+ }
+ if (mPrev == NULL) {
+ blockedThreadList = mNext;
+ } else {
+ mPrev->mNext = mNext;
+ }
+}
+
+} // namespace
+
+//
+// C ABI and API boundary
+//
+
+extern "C" {
+void async_close_monitor_static_init() {
+ AsynchronousCloseMonitorImpl::init();
+}
+
+void async_close_monitor_signal_blocked_threads(int fd) {
+ AsynchronousCloseMonitorImpl::signalBlockedThreads(fd);
+}
+
+void* async_close_monitor_create(int fd) {
+ return new AsynchronousCloseMonitorImpl(fd);
+}
+
+void async_close_monitor_destroy(void* instance) {
+ auto monitor = reinterpret_cast<AsynchronousCloseMonitorImpl*>(instance);
+ delete monitor;
+}
+
+int async_close_monitor_was_signalled(const void* instance) {
+ auto monitor = reinterpret_cast<const AsynchronousCloseMonitorImpl*>(instance);
+ return monitor->wasSignaled() ? 1 : 0;
+}
+}
diff --git a/luni/src/main/native/AsynchronousCloseMonitor.h b/luni/src/main/native/AsynchronousCloseMonitor.h
new file mode 100644
index 0000000..5bccf3d
--- /dev/null
+++ b/luni/src/main/native/AsynchronousCloseMonitor.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2010 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.
+ */
+
+#ifndef ASYNCHRONOUS_CLOSE_MONITOR_H_included
+#define ASYNCHRONOUS_CLOSE_MONITOR_H_included
+
+#include <pthread.h>
+
+// Public API for library function.
+extern "C" {
+void async_close_monitor_destroy(void* instance);
+void async_close_monitor_static_init();
+void async_close_monitor_signal_blocked_threads(int fd);
+int async_close_monitor_was_signalled(const void* instance);
+void* async_close_monitor_create(int fd);
+}
+
+/**
+ * AsynchronousCloseMonitor helps implement Java's asynchronous close semantics.
+ *
+ * AsynchronousCloseMonitor::init must be called before anything else.
+ *
+ * Every blocking I/O operation must be surrounded by an AsynchronousCloseMonitor
+ * instance. For example:
+ *
+ * {
+ * AsynchronousCloseMonitor monitor(fd);
+ * byteCount = ::read(fd, buf, sizeof(buf));
+ * }
+ *
+ * To interrupt all threads currently blocked on file descriptor 'fd', call signalBlockedThreads:
+ *
+ * AsynchronousCloseMonitor::signalBlockedThreads(fd);
+ *
+ * To test to see if the interruption was due to the signalBlockedThreads call:
+ *
+ * monitor.wasSignaled();
+ */
+class AsynchronousCloseMonitor {
+public:
+ explicit AsynchronousCloseMonitor(int fd) {
+ instance_ = async_close_monitor_create(fd);
+ }
+ ~AsynchronousCloseMonitor() {
+ async_close_monitor_destroy(instance_);
+ }
+ bool wasSignaled() const {
+ return async_close_monitor_was_signalled(instance_) != 0;
+ }
+
+ static void init() {
+ async_close_monitor_static_init();
+ }
+
+ static void signalBlockedThreads(int fd) {
+ async_close_monitor_signal_blocked_threads(fd);
+ }
+
+private:
+ AsynchronousCloseMonitor(const AsynchronousCloseMonitor&) = delete;
+ AsynchronousCloseMonitor& operator=(const AsynchronousCloseMonitor&) = delete;
+
+ void* instance_;
+};
+
+#endif // ASYNCHRONOUS_CLOSE_MONITOR_H_included
diff --git a/luni/src/main/native/NetFd.h b/luni/src/main/native/NetFd.h
deleted file mode 100644
index ae4e5ab..0000000
--- a/luni/src/main/native/NetFd.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2010 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.
- */
-
-#ifndef NET_FD_H_included
-#define NET_FD_H_included
-
-#include <nativehelper/JNIHelp.h>
-
-/**
- * Wraps access to the int inside a java.io.FileDescriptor, taking care of throwing exceptions.
- */
-class NetFd {
-public:
- NetFd(JNIEnv* env, jobject fileDescriptor)
- : mEnv(env), mFileDescriptor(fileDescriptor), mFd(-1)
- {
- }
-
- bool isClosed() {
- mFd = jniGetFDFromFileDescriptor(mEnv, mFileDescriptor);
- bool closed = (mFd == -1);
- if (closed) {
- jniThrowException(mEnv, "java/net/SocketException", "Socket closed");
- }
- return closed;
- }
-
- int get() const {
- return mFd;
- }
-
-private:
- JNIEnv* mEnv;
- jobject mFileDescriptor;
- int mFd;
-
- // Disallow copy and assignment.
- NetFd(const NetFd&);
- void operator=(const NetFd&);
-};
-
-/**
- * Used to retry syscalls that can return EINTR. This differs from TEMP_FAILURE_RETRY in that
- * it also considers the case where the reason for failure is that another thread called
- * Socket.close.
- */
-#define NET_FAILURE_RETRY(fd, exp) ({ \
- typeof (exp) _rc; \
- do { \
- _rc = (exp); \
- if (_rc == -1) { \
- if (fd.isClosed() || errno != EINTR) { \
- break; \
- } \
- } \
- } while (_rc == -1); \
- _rc; })
-
-#endif // NET_FD_H_included
diff --git a/luni/src/main/native/libcore_io_AsynchronousCloseMonitor.cpp b/luni/src/main/native/libcore_io_AsynchronousCloseMonitor.cpp
index d9119c8..55803b8 100644
--- a/luni/src/main/native/libcore_io_AsynchronousCloseMonitor.cpp
+++ b/luni/src/main/native/libcore_io_AsynchronousCloseMonitor.cpp
@@ -16,10 +16,11 @@
#define LOG_TAG "AsynchronousCloseMonitor"
-#include <nativehelper/AsynchronousCloseMonitor.h>
#include <nativehelper/JNIHelp.h>
#include <nativehelper/jni_macros.h>
+#include "AsynchronousCloseMonitor.h"
+
static void AsynchronousCloseMonitor_signalBlockedThreads(JNIEnv* env, jclass, jobject javaFd) {
int fd = jniGetFDFromFileDescriptor(env, javaFd);
AsynchronousCloseMonitor::signalBlockedThreads(fd);
diff --git a/luni/src/main/native/libcore_io_Linux.cpp b/luni/src/main/native/libcore_io_Linux.cpp
index 55de1bd..5d621de 100644
--- a/luni/src/main/native/libcore_io_Linux.cpp
+++ b/luni/src/main/native/libcore_io_Linux.cpp
@@ -58,7 +58,6 @@
#include <android-base/macros.h>
#include <android-base/strings.h>
#include <log/log.h>
-#include <nativehelper/AsynchronousCloseMonitor.h>
#include <nativehelper/JNIHelp.h>
#include <nativehelper/ScopedBytes.h>
#include <nativehelper/ScopedLocalRef.h>
@@ -67,6 +66,7 @@
#include <nativehelper/jni_macros.h>
#include <nativehelper/toStringArray.h>
+#include "AsynchronousCloseMonitor.h"
#include "ExecStrings.h"
#include "JniConstants.h"
#include "JniException.h"
diff --git a/luni/src/test/java/libcore/java/net/InetAddressTest.java b/luni/src/test/java/libcore/java/net/InetAddressTest.java
index e55d38f..307cd1d 100644
--- a/luni/src/test/java/libcore/java/net/InetAddressTest.java
+++ b/luni/src/test/java/libcore/java/net/InetAddressTest.java
@@ -192,6 +192,20 @@
}
@Test
+ public void test_isNumeric_notNumeric_null() throws Exception {
+ try {
+ boolean result = InetAddress.isNumeric(null);
+ fail("Expected isNumeric(null) to throw a NPE but instead returned " + result);
+ } catch (NullPointerException expected) {
+ }
+ }
+
+ @Test
+ public void test_isNumeric_notNumeric_empty() throws Exception {
+ assertFalse(InetAddress.isNumeric(""));
+ }
+
+ @Test
public void test_isNumeric_notNumeric() throws Exception {
// Negative test
assertFalse(InetAddress.isNumeric("example.com"));
diff --git a/luni/src/test/java/libcore/libcore/icu/ICUCurrencyTest.java b/luni/src/test/java/libcore/libcore/icu/ICUCurrencyTest.java
new file mode 100644
index 0000000..48c8655
--- /dev/null
+++ b/luni/src/test/java/libcore/libcore/icu/ICUCurrencyTest.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package libcore.libcore.icu;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.util.Currency;
+import java.util.Locale;
+import org.junit.Test;
+
+public class ICUCurrencyTest {
+
+ /**
+ * Regression test that ensures CLDR root data has U+00A4 ¤ as the
+ * symbol for unknown currency XXX.
+ * http://b/113149899
+ */
+ @Test
+ public void test_fallbackCurrencySymbolForUnknownLocale() {
+ final String unknownCurrencySymbol = "\u00a4"; // "¤"
+
+ Currency c = Currency.getInstance("XXX");
+ assertNotNull(c);
+ assertEquals(unknownCurrencySymbol, c.getSymbol(Locale.ROOT));
+
+ android.icu.util.Currency ac = android.icu.util.Currency.getInstance("XXX");
+ assertNotNull(ac);
+ assertEquals(unknownCurrencySymbol, ac.getSymbol(android.icu.util.ULocale.ROOT));
+ }
+
+}
diff --git a/luni/src/test/java/libcore/libcore/icu/TimeZoneIntegrationTest.java b/luni/src/test/java/libcore/libcore/icu/TimeZoneIntegrationTest.java
index bd5c1b1..0c5f938 100644
--- a/luni/src/test/java/libcore/libcore/icu/TimeZoneIntegrationTest.java
+++ b/luni/src/test/java/libcore/libcore/icu/TimeZoneIntegrationTest.java
@@ -20,6 +20,7 @@
import android.icu.text.TimeZoneNames;
import android.icu.util.VersionInfo;
+import android.system.Os;
import java.io.File;
import java.util.ArrayList;
@@ -260,7 +261,7 @@
* expectations.
*/
@Test
- public void testTimeZoneDebugInfo() {
+ public void testTimeZoneDebugInfo() throws Exception {
DebugInfo debugInfo = CoreLibraryDebug.getDebugInfo();
// Devices are expected to have a time zone module which overrides or extends the data in
@@ -294,7 +295,9 @@
runtimeModuleFiles.forEach(TimeZoneIntegrationTest::assertFileExists);
String icuDatFileName = "icudt" + VersionInfo.ICU_VERSION.getMajor() + "l.dat";
- assertFileExists(TimeZoneDataFiles.getRuntimeModuleFile("icu/" + icuDatFileName));
+ String runtimeModuleIcuData =
+ TimeZoneDataFiles.getRuntimeModuleFile("icu/" + icuDatFileName);
+ assertFileExists(runtimeModuleIcuData);
// Devices currently have a subset of the time zone files in /system. These are going away
// but we test them while they exist. Host ART should match device.
@@ -304,8 +307,15 @@
TimeZoneDataFiles.getSystemTimeZoneFile(TzDataSetVersion.DEFAULT_FILE_NAME));
assertFileExists(TimeZoneDataFiles.getSystemTimeZoneFile("tzdata"));
// The following files once existed in /system but have been removed as part of APEX work.
- assertFileDoesNotExist(TimeZoneDataFiles.getSystemIcuFile(icuDatFileName));
assertFileDoesNotExist(TimeZoneDataFiles.getSystemTimeZoneFile("tzlookup.xml"));
+
+ // It's hard to assert much about this file as there is a symlink in /system on device for
+ // app compatibility (b/122985829) but it doesn't exist in host environments. If the file
+ // exists we can say it should resolve (realpath) to the same file as the runtime module.
+ String systemIcuData = TimeZoneDataFiles.getSystemIcuFile(icuDatFileName);
+ if (new File(systemIcuData).exists()) {
+ assertEquals(Os.realpath(runtimeModuleIcuData), Os.realpath(systemIcuData));
+ }
}
private static List<String> createModuleTzFileNames(
diff --git a/luni/src/test/java/libcore/libcore/io/OsTest.java b/luni/src/test/java/libcore/libcore/io/OsTest.java
index e1dafe1..5d09939 100644
--- a/luni/src/test/java/libcore/libcore/io/OsTest.java
+++ b/luni/src/test/java/libcore/libcore/io/OsTest.java
@@ -41,6 +41,8 @@
import java.net.InetSocketAddress;
import java.net.NetworkInterface;
import java.net.ServerSocket;
+import java.net.SocketAddress;
+import java.net.SocketException;
import java.net.SocketOptions;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
@@ -307,6 +309,157 @@
Libcore.os.close(clientFd);
}
+ private static void expectBindConnectSendtoSuccess(FileDescriptor socket, String socketDesc,
+ SocketAddress addr) {
+ String msg = socketDesc + " socket to " + addr.toString();
+
+ try {
+ // Expect bind to succeed.
+ try {
+ Libcore.os.bind(socket, addr);
+
+ // Find out which port we're actually bound to, and use that in subsequent connect() and
+ // send() calls. We can't send to addr because that has a port of 0.
+ if (addr instanceof InetSocketAddress) {
+ InetSocketAddress addrISA = (InetSocketAddress) addr;
+ InetSocketAddress socknameISA = (InetSocketAddress) Libcore.os.getsockname(socket);
+
+ assertEquals(addrISA.getAddress(), socknameISA.getAddress());
+ assertEquals(0, addrISA.getPort());
+ assertFalse(0 == socknameISA.getPort());
+ addr = socknameISA;
+ }
+
+ // Expect connect to succeed.
+ Libcore.os.connect(socket, addr);
+ assertEquals(Libcore.os.getsockname(socket), Libcore.os.getpeername(socket));
+
+ // Expect sendto to succeed.
+ byte[] packet = new byte[42];
+ Libcore.os.sendto(socket, packet, 0, packet.length, 0, addr);
+ } catch (SocketException | ErrnoException e) {
+ fail("Expected success for " + msg + ", but got: " + e);
+ }
+
+ } finally {
+ IoUtils.closeQuietly(socket);
+ }
+ }
+
+ private static void expectBindConnectSendtoErrno(int bindErrno, int connectErrno, int sendtoErrno,
+ FileDescriptor socket, String socketDesc,
+ SocketAddress addr) {
+ try {
+
+ // Expect bind to fail with bindErrno.
+ String msg = "bind " + socketDesc + " socket to " + addr.toString();
+ try {
+ Libcore.os.bind(socket, addr);
+ fail("Expected to fail " + msg);
+ } catch (ErrnoException e) {
+ assertEquals("Expected errno " + bindErrno + " " + msg, bindErrno, e.errno);
+ } catch (SocketException e) {
+ fail("Unexpected SocketException " + msg);
+ }
+
+ // Expect connect to fail with connectErrno.
+ msg = "connect " + socketDesc + " socket to " + addr.toString();
+ try {
+ Libcore.os.connect(socket, addr);
+ fail("Expected to fail " + msg);
+ } catch (ErrnoException e) {
+ assertEquals("Expected errno " + connectErrno + " " + msg, connectErrno, e.errno);
+ } catch (SocketException e) {
+ fail("Unexpected SocketException " + msg);
+ }
+
+ // Expect sendto to fail with sendtoErrno.
+ byte[] packet = new byte[42];
+ msg = "sendto " + socketDesc + " socket to " + addr.toString();
+ try {
+ Libcore.os.sendto(socket, packet, 0, packet.length, 0, addr);
+ fail("Expected to fail " + msg);
+ } catch (ErrnoException e) {
+ assertEquals("Expected errno " + sendtoErrno + " " + msg, sendtoErrno, e.errno);
+ } catch (SocketException e) {
+ fail("Unexpected SocketException " + msg);
+ }
+
+ } finally {
+ // No matter what happened, close the socket.
+ IoUtils.closeQuietly(socket);
+ }
+ }
+
+ private FileDescriptor makeIpv4Socket() throws Exception {
+ return Libcore.os.socket(AF_INET, SOCK_DGRAM, 0);
+ }
+
+ private FileDescriptor makeIpv6Socket() throws Exception {
+ return Libcore.os.socket(AF_INET6, SOCK_DGRAM, 0);
+ }
+
+ private FileDescriptor makeUnixSocket() throws Exception {
+ return Libcore.os.socket(AF_UNIX, SOCK_DGRAM, 0);
+ }
+
+ public void testCrossFamilyBindConnectSendto() throws Exception {
+ SocketAddress addrIpv4 = new InetSocketAddress(InetAddress.getByName("127.0.0.1"), 0);
+ SocketAddress addrIpv6 = new InetSocketAddress(InetAddress.getByName("::1"), 0);
+ SocketAddress addrUnix = UnixSocketAddress.createAbstract("/abstract_name_unix_socket");
+
+ // TODO: fix and uncomment. Currently fails with EAFNOSUPPORT because
+ // Linux_bindSocketAddress uses NET_FAILURE_RETRY instead of NET_IPV4_RETRY.
+ // expectBindConnectSendtoSuccess(makeIpv4Socket(), "ipv4", addrIpv4);
+ expectBindConnectSendtoErrno(EAFNOSUPPORT, EAFNOSUPPORT, EAFNOSUPPORT,
+ makeIpv4Socket(), "ipv4", addrIpv6);
+ expectBindConnectSendtoErrno(EAFNOSUPPORT, EAFNOSUPPORT, EAFNOSUPPORT,
+ makeIpv4Socket(), "ipv4", addrUnix);
+
+ // This succeeds because Java always uses dual-stack sockets and all InetAddress and
+ // InetSocketAddress objects represent IPv4 addresses using IPv4-mapped IPv6 addresses.
+ expectBindConnectSendtoSuccess(makeIpv6Socket(), "ipv6", addrIpv4);
+ expectBindConnectSendtoSuccess(makeIpv6Socket(), "ipv6", addrIpv6);
+ expectBindConnectSendtoErrno(EAFNOSUPPORT, EAFNOSUPPORT, EINVAL,
+ makeIpv6Socket(), "ipv6", addrUnix);
+
+ expectBindConnectSendtoErrno(EINVAL, EINVAL, EINVAL,
+ makeUnixSocket(), "unix", addrIpv4);
+ expectBindConnectSendtoErrno(EINVAL, EINVAL, EINVAL,
+ makeUnixSocket(), "unix", addrIpv6);
+ expectBindConnectSendtoSuccess(makeUnixSocket(), "unix", addrUnix);
+ }
+
+ public void testUnknownSocketAddressSubclass() throws Exception {
+ class MySocketAddress extends SocketAddress {}
+ MySocketAddress myaddr = new MySocketAddress();
+
+ for (int family : new int[]{AF_INET, AF_INET6, AF_NETLINK}) {
+ FileDescriptor s = Libcore.os.socket(family, SOCK_DGRAM, 0);
+ try {
+
+ try {
+ Libcore.os.bind(s, myaddr);
+ fail("bind socket family " + family + " to unknown SocketAddress subclass succeeded");
+ } catch (UnsupportedOperationException expected) {}
+
+ try {
+ Libcore.os.connect(s, myaddr);
+ fail("connect socket family " + family + " to unknown SocketAddress subclass succeeded");
+ } catch (UnsupportedOperationException expected) {}
+
+ byte[] msg = new byte[42];
+ try {
+ Libcore.os.sendto(s, msg, 0, msg.length, 0, myaddr);
+ fail("sendto socket family " + family + " to unknown SocketAddress subclass succeeded");
+ } catch (UnsupportedOperationException expected) {}
+
+ } finally {
+ Libcore.os.close(s);
+ }
+ }
+ }
+
public void test_NetlinkSocket() throws Exception {
FileDescriptor nlSocket = Libcore.os.socket(AF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE);
Libcore.os.bind(nlSocket, new NetlinkSocketAddress());
diff --git a/mmodules/core_platform_api/api/platform/current-api.txt b/mmodules/core_platform_api/api/platform/current-api.txt
index d2ecf29..10d7819 100644
--- a/mmodules/core_platform_api/api/platform/current-api.txt
+++ b/mmodules/core_platform_api/api/platform/current-api.txt
@@ -88,7 +88,6 @@
}
public final class Os {
- method @dalvik.annotation.compat.UnsupportedAppUsage public static void bind(java.io.FileDescriptor, java.net.SocketAddress) throws android.system.ErrnoException, java.net.SocketException;
method public static android.system.StructCapUserData[] capget(android.system.StructCapUserHeader) throws android.system.ErrnoException;
method public static void capset(android.system.StructCapUserHeader, android.system.StructCapUserData[]) throws android.system.ErrnoException;
method @dalvik.annotation.compat.UnsupportedAppUsage public static void connect(java.io.FileDescriptor, java.net.SocketAddress) throws android.system.ErrnoException, java.net.SocketException;
@@ -101,7 +100,6 @@
method public static int ioctlInt(java.io.FileDescriptor, int, android.system.Int32Ref) throws android.system.ErrnoException;
method public static java.io.FileDescriptor[] pipe2(int) throws android.system.ErrnoException;
method public static String realpath(String) throws android.system.ErrnoException;
- method @dalvik.annotation.compat.UnsupportedAppUsage public static int sendto(java.io.FileDescriptor, byte[], int, int, int, java.net.SocketAddress) throws android.system.ErrnoException, java.net.SocketException;
method public static void setpgid(int, int) throws android.system.ErrnoException;
method public static void setregid(int, int) throws android.system.ErrnoException;
method public static void setreuid(int, int) throws android.system.ErrnoException;
@@ -774,6 +772,7 @@
method public static void setDedupeHiddenApiWarnings(boolean);
method public void setHiddenApiAccessLogSamplingRate(int);
method public void setHiddenApiExemptions(String[]);
+ method public static void setHiddenApiUsageLogger(dalvik.system.VMRuntime.HiddenApiUsageLogger);
method public static void setNonSdkApiUsageConsumer(java.util.function.Consumer<java.lang.String>);
method public static void setProcessPackageName(String);
method @dalvik.annotation.compat.UnsupportedAppUsage public float setTargetHeapUtilization(float);
@@ -785,6 +784,14 @@
field public static final int SDK_VERSION_CUR_DEVELOPMENT = 10000; // 0x2710
}
+ public static interface VMRuntime.HiddenApiUsageLogger {
+ method public void hiddenApiUsed(String, String, int, boolean);
+ field public static final int ACCESS_METHOD_JNI = 2; // 0x2
+ field public static final int ACCESS_METHOD_LINKING = 3; // 0x3
+ field public static final int ACCESS_METHOD_NONE = 0; // 0x0
+ field public static final int ACCESS_METHOD_REFLECTION = 1; // 0x1
+ }
+
public final class VMStack {
method @dalvik.annotation.optimization.FastNative public static dalvik.system.AnnotatedStackTraceElement[] getAnnotatedThreadStackTrace(Thread);
}
@@ -795,14 +802,13 @@
}
public final class ZygoteHooks {
- ctor public ZygoteHooks();
method public static void gcAndFinalize();
method public static void onBeginPreload();
method public static void onEndPreload();
- method public void postForkChild(int, boolean, boolean, String);
- method public void postForkCommon();
- method public void postForkSystemServer();
- method public void preFork();
+ method public static void postForkChild(int, boolean, boolean, String);
+ method public static void postForkCommon();
+ method public static void postForkSystemServer();
+ method public static void preFork();
method public static void startZygoteNoThreadCreation();
method public static void stopZygoteNoThreadCreation();
}
@@ -1345,7 +1351,6 @@
method public static void registerHandler(int, org.apache.harmony.dalvik.ddmc.ChunkHandler);
method public static void registrationComplete();
method @dalvik.annotation.compat.UnsupportedAppUsage public static void sendChunk(org.apache.harmony.dalvik.ddmc.Chunk);
- field public static final int CLIENT_PROTOCOL_VERSION = 1; // 0x1
}
public class DdmVmInternal {
diff --git a/mmodules/core_platform_api/api/platform/last-api.txt b/mmodules/core_platform_api/api/platform/last-api.txt
index 1851150..e69de29 100644
--- a/mmodules/core_platform_api/api/platform/last-api.txt
+++ b/mmodules/core_platform_api/api/platform/last-api.txt
@@ -1,1412 +0,0 @@
-package android.icu.impl {
-
- public class CalendarAstronomer {
- ctor public CalendarAstronomer(double, double);
- method public long getSunRiseSet(boolean);
- method public void setTime(long);
- }
-
- public class TimeZoneAdapter extends java.util.TimeZone {
- method public static java.util.TimeZone wrap(android.icu.util.TimeZone);
- }
-
-}
-
-package android.icu.text {
-
- public final class StringPrep {
- method public static android.icu.text.StringPrep getInstance(int);
- method public java.lang.String prepare(java.lang.String, int) throws android.icu.text.StringPrepParseException;
- field public static final int DEFAULT = 0; // 0x0
- field public static final int RFC3920_RESOURCEPREP = 8; // 0x8
- }
-
- public class StringPrepParseException extends java.text.ParseException {
- ctor public StringPrepParseException(java.lang.String, int);
- ctor public StringPrepParseException(java.lang.String, int, java.lang.String, int);
- ctor public StringPrepParseException(java.lang.String, int, java.lang.String, int, int);
- method public int getError();
- field public static final int ACE_PREFIX_ERROR = 6; // 0x6
- field public static final int BUFFER_OVERFLOW_ERROR = 9; // 0x9
- field public static final int CHECK_BIDI_ERROR = 4; // 0x4
- field public static final int DOMAIN_NAME_TOO_LONG_ERROR = 11; // 0xb
- field public static final int ILLEGAL_CHAR_FOUND = 1; // 0x1
- field public static final int INVALID_CHAR_FOUND = 0; // 0x0
- field public static final int LABEL_TOO_LONG_ERROR = 8; // 0x8
- field public static final int PROHIBITED_ERROR = 2; // 0x2
- field public static final int STD3_ASCII_RULES_ERROR = 5; // 0x5
- field public static final int UNASSIGNED_ERROR = 3; // 0x3
- field public static final int VERIFICATION_ERROR = 7; // 0x7
- field public static final int ZERO_LENGTH_LABEL = 10; // 0xa
- }
-
- public abstract class Transliterator {
- method public static final android.icu.text.Transliterator getInstance(java.lang.String);
- method public final java.lang.String transliterate(java.lang.String);
- }
-
-}
-
-package android.icu.util {
-
- public abstract class BasicTimeZone extends android.icu.util.TimeZone {
- method public abstract android.icu.util.TimeZoneTransition getNextTransition(long, boolean);
- }
-
- public class Region implements java.lang.Comparable {
- method public static java.util.Set<android.icu.util.Region> getAvailable(android.icu.util.Region.RegionType);
- }
-
- public static final class Region.RegionType extends java.lang.Enum {
- enum_constant public static final android.icu.util.Region.RegionType TERRITORY;
- }
-
- public abstract class TimeZoneRule implements java.io.Serializable {
- method public int getDSTSavings();
- }
-
- public class TimeZoneTransition {
- method public android.icu.util.TimeZoneRule getFrom();
- method public long getTime();
- method public android.icu.util.TimeZoneRule getTo();
- }
-
-}
-
-package android.system {
-
- public final class ErrnoException extends java.lang.Exception {
- method public java.io.IOException rethrowAsIOException() throws java.io.IOException;
- method public java.net.SocketException rethrowAsSocketException() throws java.net.SocketException;
- }
-
- public class Int32Ref {
- ctor public Int32Ref(int);
- field public int value;
- }
-
- public final class NetlinkSocketAddress extends java.net.SocketAddress {
- ctor public NetlinkSocketAddress(int, int);
- method public int getGroupsMask();
- method public int getPortId();
- }
-
- public final class Os {
- method public static void bind(java.io.FileDescriptor, java.net.SocketAddress) throws android.system.ErrnoException, java.net.SocketException;
- method public static android.system.StructCapUserData[] capget(android.system.StructCapUserHeader) throws android.system.ErrnoException;
- method public static void capset(android.system.StructCapUserHeader, android.system.StructCapUserData[]) throws android.system.ErrnoException;
- method public static void connect(java.io.FileDescriptor, java.net.SocketAddress) throws android.system.ErrnoException, java.net.SocketException;
- method public static int fcntlInt(java.io.FileDescriptor, int, int) throws android.system.ErrnoException;
- method public static int getpgid(int) throws android.system.ErrnoException;
- method public static android.system.StructRlimit getrlimit(int) throws android.system.ErrnoException;
- method public static int getsockoptInt(java.io.FileDescriptor, int, int) throws android.system.ErrnoException;
- method public static android.system.StructLinger getsockoptLinger(java.io.FileDescriptor, int, int) throws android.system.ErrnoException;
- method public static android.system.StructTimeval getsockoptTimeval(java.io.FileDescriptor, int, int) throws android.system.ErrnoException;
- method public static int ioctlInt(java.io.FileDescriptor, int, android.system.Int32Ref) throws android.system.ErrnoException;
- method public static java.io.FileDescriptor[] pipe2(int) throws android.system.ErrnoException;
- method public static java.lang.String realpath(java.lang.String) throws android.system.ErrnoException;
- method public static int sendto(java.io.FileDescriptor, byte[], int, int, int, java.net.SocketAddress) throws android.system.ErrnoException, java.net.SocketException;
- method public static void setpgid(int, int) throws android.system.ErrnoException;
- method public static void setregid(int, int) throws android.system.ErrnoException;
- method public static void setreuid(int, int) throws android.system.ErrnoException;
- method public static void setsockoptIfreq(java.io.FileDescriptor, int, int, java.lang.String) throws android.system.ErrnoException;
- method public static void setsockoptLinger(java.io.FileDescriptor, int, int, android.system.StructLinger) throws android.system.ErrnoException;
- method public static void setsockoptTimeval(java.io.FileDescriptor, int, int, android.system.StructTimeval) throws android.system.ErrnoException;
- method public static long splice(java.io.FileDescriptor, android.system.Int64Ref, java.io.FileDescriptor, android.system.Int64Ref, long, int) throws android.system.ErrnoException;
- method public static void unlink(java.lang.String) throws android.system.ErrnoException;
- }
-
- public final class OsConstants {
- method public static int CAP_TO_INDEX(int);
- method public static int CAP_TO_MASK(int);
- field public static final int AF_NETLINK;
- field public static final int AF_PACKET;
- field public static final int ARPHRD_ETHER;
- field public static final int ENONET;
- field public static final int ETH_P_ALL;
- field public static final int ETH_P_ARP;
- field public static final int ETH_P_IP;
- field public static final int ETH_P_IPV6;
- field public static final int EUSERS;
- field public static final int ICMP6_ECHO_REPLY;
- field public static final int ICMP6_ECHO_REQUEST;
- field public static final int ICMP_ECHO;
- field public static final int ICMP_ECHOREPLY;
- field public static final int MAP_POPULATE;
- field public static final int NETLINK_INET_DIAG;
- field public static final int NETLINK_NETFILTER;
- field public static final int NETLINK_ROUTE;
- field public static final int O_DIRECT;
- field public static final int PR_CAP_AMBIENT;
- field public static final int PR_CAP_AMBIENT_RAISE;
- field public static final int RLIMIT_NOFILE;
- field public static final int RTMGRP_IPV4_IFADDR;
- field public static final int RTMGRP_NEIGH;
- field public static final int SPLICE_F_MORE;
- field public static final int SPLICE_F_MOVE;
- field public static final int TIOCOUTQ;
- field public static final int UDP_ENCAP;
- field public static final int UDP_ENCAP_ESPINUDP;
- field public static final int XATTR_CREATE;
- field public static final int _LINUX_CAPABILITY_VERSION_3;
- }
-
- public final class PacketSocketAddress extends java.net.SocketAddress {
- ctor public PacketSocketAddress(short, int);
- ctor public PacketSocketAddress(int, byte[]);
- }
-
- public final class StructCapUserData {
- ctor public StructCapUserData(int, int, int);
- field public final int effective;
- field public final int inheritable;
- field public final int permitted;
- }
-
- public final class StructCapUserHeader {
- ctor public StructCapUserHeader(int, int);
- }
-
- public final class StructLinger {
- ctor public StructLinger(int, int);
- method public boolean isOn();
- field public final int l_linger;
- }
-
- public final class StructRlimit {
- field public final long rlim_cur;
- }
-
- public final class StructTimeval {
- method public static android.system.StructTimeval fromMillis(long);
- method public long toMillis();
- field public final long tv_sec;
- field public final long tv_usec;
- }
-
- public final class UnixSocketAddress extends java.net.SocketAddress {
- method public static android.system.UnixSocketAddress createFileSystem(java.lang.String);
- }
-
-}
-
-package com.android.okhttp.internalandroidapi {
-
- public final class AndroidResponseCacheAdapter {
- ctor public AndroidResponseCacheAdapter(com.android.okhttp.internalandroidapi.HasCacheHolder.CacheHolder);
- method public void close() throws java.io.IOException;
- method public void delete() throws java.io.IOException;
- method public void flush() throws java.io.IOException;
- method public java.net.CacheResponse get(java.net.URI, java.lang.String, java.util.Map<java.lang.String, java.util.List<java.lang.String>>) throws java.io.IOException;
- method public com.android.okhttp.internalandroidapi.HasCacheHolder.CacheHolder getCacheHolder();
- method public int getHitCount();
- method public long getMaxSize();
- method public int getNetworkCount();
- method public int getRequestCount();
- method public long getSize() throws java.io.IOException;
- method public java.net.CacheRequest put(java.net.URI, java.net.URLConnection) throws java.io.IOException;
- }
-
- public abstract interface Dns {
- method public abstract java.util.List<java.net.InetAddress> lookup(java.lang.String) throws java.net.UnknownHostException;
- }
-
- public abstract interface HasCacheHolder {
- method public abstract com.android.okhttp.internalandroidapi.HasCacheHolder.CacheHolder getCacheHolder();
- }
-
- public static final class HasCacheHolder.CacheHolder {
- method public static com.android.okhttp.internalandroidapi.HasCacheHolder.CacheHolder create(java.io.File, long);
- method public boolean isEquivalent(java.io.File, long);
- }
-
- public final class HttpURLConnectionFactory {
- ctor public HttpURLConnectionFactory();
- method public java.net.URLConnection openConnection(java.net.URL, javax.net.SocketFactory, java.net.Proxy) throws java.io.IOException;
- method public void setDns(com.android.okhttp.internalandroidapi.Dns);
- method public void setNewConnectionPool(int, long, java.util.concurrent.TimeUnit);
- }
-
-}
-
-package com.android.org.bouncycastle.asn1 {
-
- public abstract class ASN1BitString extends com.android.org.bouncycastle.asn1.ASN1Primitive {
- }
-
- public abstract interface ASN1Encodable {
- }
-
- public class ASN1EncodableVector {
- ctor public ASN1EncodableVector();
- method public void add(com.android.org.bouncycastle.asn1.ASN1Encodable);
- }
-
- public class ASN1InputStream extends java.io.FilterInputStream {
- ctor public ASN1InputStream(java.io.InputStream);
- ctor public ASN1InputStream(byte[]);
- method public com.android.org.bouncycastle.asn1.ASN1Primitive readObject() throws java.io.IOException;
- }
-
- public class ASN1Integer extends com.android.org.bouncycastle.asn1.ASN1Primitive {
- ctor public ASN1Integer(java.math.BigInteger);
- }
-
- public abstract class ASN1Null extends com.android.org.bouncycastle.asn1.ASN1Primitive {
- }
-
- public abstract class ASN1Object implements com.android.org.bouncycastle.asn1.ASN1Encodable {
- ctor public ASN1Object();
- method public byte[] getEncoded() throws java.io.IOException;
- method public byte[] getEncoded(java.lang.String) throws java.io.IOException;
- }
-
- public class ASN1ObjectIdentifier extends com.android.org.bouncycastle.asn1.ASN1Primitive {
- ctor public ASN1ObjectIdentifier(java.lang.String);
- method public java.lang.String getId();
- method public static com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier getInstance(java.lang.Object);
- }
-
- public abstract class ASN1OctetString extends com.android.org.bouncycastle.asn1.ASN1Primitive implements com.android.org.bouncycastle.asn1.ASN1Encodable {
- method public byte[] getOctets();
- }
-
- public abstract class ASN1Primitive extends com.android.org.bouncycastle.asn1.ASN1Object {
- }
-
- public abstract class ASN1Sequence extends com.android.org.bouncycastle.asn1.ASN1Primitive implements com.android.org.bouncycastle.util.Iterable {
- method public com.android.org.bouncycastle.asn1.ASN1Encodable getObjectAt(int);
- method public int size();
- }
-
- public abstract class ASN1TaggedObject extends com.android.org.bouncycastle.asn1.ASN1Primitive implements com.android.org.bouncycastle.asn1.ASN1Encodable {
- method public com.android.org.bouncycastle.asn1.ASN1Primitive getObject();
- }
-
- public class DERBitString extends com.android.org.bouncycastle.asn1.ASN1BitString {
- ctor public DERBitString(byte[]);
- }
-
- public deprecated class DERInteger extends com.android.org.bouncycastle.asn1.ASN1Integer {
- ctor public DERInteger(long);
- }
-
- public class DERNull extends com.android.org.bouncycastle.asn1.ASN1Null {
- field public static final com.android.org.bouncycastle.asn1.DERNull INSTANCE;
- }
-
- public class DEROctetString extends com.android.org.bouncycastle.asn1.ASN1OctetString {
- ctor public DEROctetString(byte[]);
- }
-
- public class DERSequence extends com.android.org.bouncycastle.asn1.ASN1Sequence {
- ctor public DERSequence();
- ctor public DERSequence(com.android.org.bouncycastle.asn1.ASN1EncodableVector);
- }
-
- public class DERTaggedObject extends com.android.org.bouncycastle.asn1.ASN1TaggedObject {
- ctor public DERTaggedObject(int, com.android.org.bouncycastle.asn1.ASN1Encodable);
- }
-
- public class DERUTF8String extends com.android.org.bouncycastle.asn1.ASN1Primitive {
- ctor public DERUTF8String(java.lang.String);
- method public java.lang.String getString();
- }
-
-}
-
-package com.android.org.bouncycastle.asn1.pkcs {
-
- public abstract interface PKCSObjectIdentifiers {
- field public static final com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier sha256WithRSAEncryption;
- }
-
- public class PrivateKeyInfo extends com.android.org.bouncycastle.asn1.ASN1Object {
- method public static com.android.org.bouncycastle.asn1.pkcs.PrivateKeyInfo getInstance(java.lang.Object);
- method public com.android.org.bouncycastle.asn1.x509.AlgorithmIdentifier getPrivateKeyAlgorithm();
- }
-
-}
-
-package com.android.org.bouncycastle.asn1.x509 {
-
- public class AlgorithmIdentifier extends com.android.org.bouncycastle.asn1.ASN1Object {
- ctor public AlgorithmIdentifier(com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier);
- ctor public AlgorithmIdentifier(com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier, com.android.org.bouncycastle.asn1.ASN1Encodable);
- method public com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier getAlgorithm();
- }
-
- public class BasicConstraints extends com.android.org.bouncycastle.asn1.ASN1Object {
- method public static com.android.org.bouncycastle.asn1.x509.BasicConstraints getInstance(java.lang.Object);
- method public boolean isCA();
- }
-
- public class Certificate extends com.android.org.bouncycastle.asn1.ASN1Object {
- method public static com.android.org.bouncycastle.asn1.x509.Certificate getInstance(java.lang.Object);
- }
-
- public class GeneralName extends com.android.org.bouncycastle.asn1.ASN1Object {
- ctor public GeneralName(int, com.android.org.bouncycastle.asn1.ASN1Encodable);
- ctor public GeneralName(int, java.lang.String);
- method public int getTagNo();
- field public static final int dNSName = 2; // 0x2
- field public static final int iPAddress = 7; // 0x7
- field public static final int otherName = 0; // 0x0
- }
-
- public class SubjectPublicKeyInfo extends com.android.org.bouncycastle.asn1.ASN1Object {
- method public static com.android.org.bouncycastle.asn1.x509.SubjectPublicKeyInfo getInstance(java.lang.Object);
- }
-
- public class TBSCertificate extends com.android.org.bouncycastle.asn1.ASN1Object {
- }
-
- public class Time extends com.android.org.bouncycastle.asn1.ASN1Object {
- ctor public Time(java.util.Date);
- }
-
- public class V3TBSCertificateGenerator {
- ctor public V3TBSCertificateGenerator();
- method public com.android.org.bouncycastle.asn1.x509.TBSCertificate generateTBSCertificate();
- method public void setEndDate(com.android.org.bouncycastle.asn1.x509.Time);
- method public deprecated void setIssuer(com.android.org.bouncycastle.asn1.x509.X509Name);
- method public void setSerialNumber(com.android.org.bouncycastle.asn1.ASN1Integer);
- method public void setSignature(com.android.org.bouncycastle.asn1.x509.AlgorithmIdentifier);
- method public void setStartDate(com.android.org.bouncycastle.asn1.x509.Time);
- method public deprecated void setSubject(com.android.org.bouncycastle.asn1.x509.X509Name);
- method public void setSubjectPublicKeyInfo(com.android.org.bouncycastle.asn1.x509.SubjectPublicKeyInfo);
- }
-
- public deprecated class X509Name extends com.android.org.bouncycastle.asn1.ASN1Object {
- ctor public deprecated X509Name(java.lang.String);
- method public static com.android.org.bouncycastle.asn1.x509.X509Name getInstance(java.lang.Object);
- method public java.util.Vector getOIDs();
- method public java.util.Vector getValues();
- method public java.lang.String toString(boolean, java.util.Hashtable);
- field public static final deprecated com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier CN;
- field public static final java.util.Hashtable DefaultSymbols;
- field public static final deprecated com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier O;
- field public static final deprecated com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier OU;
- }
-
-}
-
-package com.android.org.bouncycastle.asn1.x9 {
-
- public abstract interface X9ObjectIdentifiers {
- field public static final com.android.org.bouncycastle.asn1.ASN1ObjectIdentifier ecdsa_with_SHA256;
- }
-
-}
-
-package com.android.org.bouncycastle.jce {
-
- public deprecated class X509Principal extends com.android.org.bouncycastle.asn1.x509.X509Name implements java.security.Principal {
- ctor public X509Principal(byte[]) throws java.io.IOException;
- method public byte[] getEncoded();
- }
-
-}
-
-package com.android.org.bouncycastle.jce.provider {
-
- public final class BouncyCastleProvider extends java.security.Provider {
- ctor public BouncyCastleProvider();
- }
-
- public deprecated class X509CertificateObject extends java.security.cert.X509Certificate {
- ctor public X509CertificateObject(com.android.org.bouncycastle.asn1.x509.Certificate) throws java.security.cert.CertificateParsingException;
- }
-
-}
-
-package com.android.org.bouncycastle.util {
-
- public abstract interface Iterable<T> implements java.lang.Iterable {
- }
-
-}
-
-package com.android.org.bouncycastle.util.io.pem {
-
- public class PemObject implements com.android.org.bouncycastle.util.io.pem.PemObjectGenerator {
- ctor public PemObject(java.lang.String, byte[]);
- method public byte[] getContent();
- method public java.lang.String getType();
- }
-
- public abstract interface PemObjectGenerator {
- }
-
- public class PemReader extends java.io.BufferedReader {
- ctor public PemReader(java.io.Reader);
- method public com.android.org.bouncycastle.util.io.pem.PemObject readPemObject() throws java.io.IOException;
- }
-
- public class PemWriter extends java.io.BufferedWriter {
- ctor public PemWriter(java.io.Writer);
- method public void writeObject(com.android.org.bouncycastle.util.io.pem.PemObjectGenerator) throws java.io.IOException;
- }
-
-}
-
-package com.android.org.bouncycastle.x509 {
-
- public deprecated class X509V3CertificateGenerator {
- ctor public X509V3CertificateGenerator();
- method public java.security.cert.X509Certificate generate(java.security.PrivateKey) throws java.security.cert.CertificateEncodingException, java.lang.IllegalStateException, java.security.InvalidKeyException, java.security.NoSuchAlgorithmException, java.security.SignatureException;
- method public void setIssuerDN(javax.security.auth.x500.X500Principal);
- method public void setNotAfter(java.util.Date);
- method public void setNotBefore(java.util.Date);
- method public void setPublicKey(java.security.PublicKey) throws java.lang.IllegalArgumentException;
- method public void setSerialNumber(java.math.BigInteger);
- method public void setSignatureAlgorithm(java.lang.String);
- method public void setSubjectDN(javax.security.auth.x500.X500Principal);
- }
-
-}
-
-package com.android.org.conscrypt {
-
- public abstract interface CertPinManager {
- }
-
- public final class ClientSessionContext implements javax.net.ssl.SSLSessionContext {
- method public void setPersistentCache(com.android.org.conscrypt.SSLClientSessionCache);
- }
-
- public final class Conscrypt {
- method public static javax.net.ssl.X509TrustManager getDefaultX509TrustManager() throws java.security.KeyManagementException;
- method public static javax.net.ssl.SSLContextSpi newPreferredSSLContextSpi();
- }
-
- public abstract interface ConscryptCertStore {
- }
-
- public final class FileClientSessionCache {
- method public static synchronized com.android.org.conscrypt.SSLClientSessionCache usingDirectory(java.io.File) throws java.io.IOException;
- }
-
- public abstract class OpenSSLContextImpl extends javax.net.ssl.SSLContextSpi {
- method public com.android.org.conscrypt.ClientSessionContext engineGetClientSessionContext();
- method public javax.net.ssl.SSLSocketFactory engineGetSocketFactory();
- method public void engineInit(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], java.security.SecureRandom) throws java.security.KeyManagementException;
- }
-
- public final class OpenSSLProvider extends java.security.Provider {
- ctor public OpenSSLProvider();
- }
-
- public abstract class OpenSSLSocketImpl extends javax.net.ssl.SSLSocket {
- method public final deprecated byte[] getAlpnSelectedProtocol();
- method public final deprecated byte[] getNpnSelectedProtocol();
- method public final deprecated void setAlpnProtocols(byte[]);
- method public abstract void setChannelIdPrivateKey(java.security.PrivateKey);
- method public void setHandshakeTimeout(int) throws java.net.SocketException;
- method public void setHostname(java.lang.String);
- method public final deprecated void setNpnProtocols(byte[]);
- method public void setSoWriteTimeout(int) throws java.net.SocketException;
- method public abstract void setUseSessionTickets(boolean);
- }
-
- public abstract interface SSLClientSessionCache {
- }
-
- public final class ServerSessionContext implements javax.net.ssl.SSLSessionContext {
- }
-
- public final class TrustManagerImpl extends javax.net.ssl.X509ExtendedTrustManager {
- ctor public TrustManagerImpl(java.security.KeyStore);
- ctor public TrustManagerImpl(java.security.KeyStore, com.android.org.conscrypt.CertPinManager, com.android.org.conscrypt.ConscryptCertStore);
- method public void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String) throws java.security.cert.CertificateException;
- method public void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String, java.net.Socket) throws java.security.cert.CertificateException;
- method public void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String, javax.net.ssl.SSLEngine) throws java.security.cert.CertificateException;
- method public java.util.List<java.security.cert.X509Certificate> checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String, java.lang.String) throws java.security.cert.CertificateException;
- method public java.util.List<java.security.cert.X509Certificate> getTrustedChainForServer(java.security.cert.X509Certificate[], java.lang.String, java.net.Socket) throws java.security.cert.CertificateException;
- method public java.util.List<java.security.cert.X509Certificate> getTrustedChainForServer(java.security.cert.X509Certificate[], java.lang.String, javax.net.ssl.SSLEngine) throws java.security.cert.CertificateException;
- method public void handleTrustStorageUpdate();
- }
-
- public final class TrustedCertificateIndex {
- ctor public TrustedCertificateIndex();
- method public java.util.Set<java.security.cert.TrustAnchor> findAllByIssuerAndSignature(java.security.cert.X509Certificate);
- method public java.security.cert.TrustAnchor findByIssuerAndSignature(java.security.cert.X509Certificate);
- method public java.security.cert.TrustAnchor findBySubjectAndPublicKey(java.security.cert.X509Certificate);
- method public java.security.cert.TrustAnchor index(java.security.cert.X509Certificate);
- }
-
- public class TrustedCertificateStore implements com.android.org.conscrypt.ConscryptCertStore {
- ctor public TrustedCertificateStore();
- method public java.util.Set<java.lang.String> aliases();
- method public java.util.Set<java.lang.String> allSystemAliases();
- method public boolean containsAlias(java.lang.String);
- method public void deleteCertificateEntry(java.lang.String) throws java.security.cert.CertificateException, java.io.IOException;
- method public java.util.Set<java.security.cert.X509Certificate> findAllIssuers(java.security.cert.X509Certificate);
- method public java.security.cert.X509Certificate findIssuer(java.security.cert.X509Certificate);
- method public java.security.cert.Certificate getCertificate(java.lang.String);
- method public java.security.cert.Certificate getCertificate(java.lang.String, boolean);
- method public java.lang.String getCertificateAlias(java.security.cert.Certificate);
- method public java.lang.String getCertificateAlias(java.security.cert.Certificate, boolean);
- method public java.util.List<java.security.cert.X509Certificate> getCertificateChain(java.security.cert.X509Certificate) throws java.security.cert.CertificateException;
- method public java.io.File getCertificateFile(java.io.File, java.security.cert.X509Certificate);
- method public java.util.Date getCreationDate(java.lang.String);
- method public java.security.cert.X509Certificate getTrustAnchor(java.security.cert.X509Certificate);
- method public void installCertificate(java.security.cert.X509Certificate) throws java.security.cert.CertificateException, java.io.IOException;
- method public static final boolean isUser(java.lang.String);
- method public boolean isUserAddedCertificate(java.security.cert.X509Certificate);
- method public static void setDefaultUserDirectory(java.io.File);
- method public java.util.Set<java.lang.String> userAliases();
- }
-
-}
-
-package dalvik.annotation.optimization {
-
- public abstract class CriticalNative implements java.lang.annotation.Annotation {
- }
-
- public abstract class FastNative implements java.lang.annotation.Annotation {
- }
-
-}
-
-package dalvik.system {
-
- public class AnnotatedStackTraceElement {
- method public java.lang.Object getBlockedOn();
- method public java.lang.Object[] getHeldLocks();
- method public java.lang.StackTraceElement getStackTraceElement();
- }
-
- public class BaseDexClassLoader extends java.lang.ClassLoader {
- method public void addDexPath(java.lang.String);
- method public void addNativePath(java.util.Collection<java.lang.String>);
- method public java.lang.String getLdLibraryPath();
- method public static void setReporter(dalvik.system.BaseDexClassLoader.Reporter);
- }
-
- public static abstract interface BaseDexClassLoader.Reporter {
- method public abstract void report(java.util.List<dalvik.system.BaseDexClassLoader>, java.util.List<java.lang.String>);
- }
-
- public final class BlockGuard {
- method public static dalvik.system.BlockGuard.Policy getThreadPolicy();
- method public static dalvik.system.BlockGuard.VmPolicy getVmPolicy();
- method public static void setThreadPolicy(dalvik.system.BlockGuard.Policy);
- method public static void setVmPolicy(dalvik.system.BlockGuard.VmPolicy);
- field public static final dalvik.system.BlockGuard.Policy LAX_POLICY;
- field public static final dalvik.system.BlockGuard.VmPolicy LAX_VM_POLICY;
- }
-
- public static abstract interface BlockGuard.Policy {
- method public abstract int getPolicyMask();
- method public abstract void onReadFromDisk();
- method public abstract void onUnbufferedIO();
- method public abstract void onWriteToDisk();
- }
-
- public static abstract interface BlockGuard.VmPolicy {
- method public abstract void onPathAccess(java.lang.String);
- }
-
- public final class CloseGuard {
- method public void close();
- method public static dalvik.system.CloseGuard get();
- method public static dalvik.system.CloseGuard.Reporter getReporter();
- method public void open(java.lang.String);
- method public static void setEnabled(boolean);
- method public static void setReporter(dalvik.system.CloseGuard.Reporter);
- method public void warnIfOpen();
- }
-
- public static abstract interface CloseGuard.Reporter {
- method public abstract void report(java.lang.String, java.lang.Throwable);
- }
-
- public abstract interface DalvikLogHandler {
- method public abstract void publish(java.util.logging.Logger, java.lang.String, java.util.logging.Level, java.lang.String);
- }
-
- public final class DalvikLogging {
- method public static java.lang.String loggerNameToTag(java.lang.String);
- }
-
- public final deprecated class DexFile {
- ctor public deprecated DexFile(java.io.File) throws java.io.IOException;
- ctor public deprecated DexFile(java.lang.String) throws java.io.IOException;
- method public void close() throws java.io.IOException;
- method public java.util.Enumeration<java.lang.String> entries();
- method public static dalvik.system.DexFile.OptimizationInfo getDexFileOptimizationInfo(java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
- method public static java.lang.String[] getDexFileOutputPaths(java.lang.String, java.lang.String) throws java.io.FileNotFoundException;
- method public static int getDexOptNeeded(java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean, boolean) throws java.io.FileNotFoundException, java.io.IOException;
- method public java.lang.String getName();
- method public static java.lang.String getSafeModeCompilerFilter(java.lang.String);
- method public static boolean isDexOptNeeded(java.lang.String) throws java.io.FileNotFoundException, java.io.IOException;
- method public static boolean isProfileGuidedCompilerFilter(java.lang.String);
- method public static boolean isValidCompilerFilter(java.lang.String);
- method public java.lang.Class loadClass(java.lang.String, java.lang.ClassLoader);
- method public static deprecated dalvik.system.DexFile loadDex(java.lang.String, java.lang.String, int) throws java.io.IOException;
- field public static final int DEX2OAT_FOR_FILTER = 3; // 0x3
- field public static final int NO_DEXOPT_NEEDED = 0; // 0x0
- }
-
- public static final class DexFile.OptimizationInfo {
- method public java.lang.String getReason();
- method public java.lang.String getStatus();
- }
-
- public final class RuntimeHooks {
- method public static void setTimeZoneIdSupplier(java.util.function.Supplier<java.lang.String>);
- method public static void setUncaughtExceptionPreHandler(java.lang.Thread.UncaughtExceptionHandler);
- }
-
- public abstract class SocketTagger {
- ctor public SocketTagger();
- method public static synchronized dalvik.system.SocketTagger get();
- method public static synchronized void set(dalvik.system.SocketTagger);
- method public abstract void tag(java.io.FileDescriptor) throws java.net.SocketException;
- method public final void tag(java.net.Socket) throws java.net.SocketException;
- method public final void tag(java.net.DatagramSocket) throws java.net.SocketException;
- method public abstract void untag(java.io.FileDescriptor) throws java.net.SocketException;
- method public final void untag(java.net.Socket) throws java.net.SocketException;
- method public final void untag(java.net.DatagramSocket) throws java.net.SocketException;
- }
-
- public final class VMDebug {
- method public static void attachAgent(java.lang.String, java.lang.ClassLoader) throws java.io.IOException;
- method public static boolean cacheRegisterMap(java.lang.String);
- method public static long countInstancesOfClass(java.lang.Class, boolean);
- method public static long[] countInstancesOfClasses(java.lang.Class[], boolean);
- method public static void dumpHprofData(java.lang.String) throws java.io.IOException;
- method public static void dumpHprofData(java.lang.String, java.io.FileDescriptor) throws java.io.IOException;
- method public static void dumpHprofDataDdms();
- method public static void dumpReferenceTables();
- method public static int getAllocCount(int);
- method public static int getLoadedClassCount();
- method public static int getMethodTracingMode();
- method public static java.lang.String getRuntimeStat(java.lang.String);
- method public static java.util.Map<java.lang.String, java.lang.String> getRuntimeStats();
- method public static java.lang.String[] getVmFeatureList();
- method public static boolean isDebuggerConnected();
- method public static boolean isDebuggingEnabled();
- method public static long lastDebuggerActivity();
- method public static void printLoadedClasses(int);
- method public static void resetAllocCount(int);
- method public static void startAllocCounting();
- method public static void startEmulatorTracing();
- method public static void startMethodTracing(java.lang.String, int, int, boolean, int);
- method public static void startMethodTracing(java.lang.String, java.io.FileDescriptor, int, int, boolean, int, boolean);
- method public static void startMethodTracingDdms(int, int, boolean, int);
- method public static void stopAllocCounting();
- method public static void stopEmulatorTracing();
- method public static void stopMethodTracing();
- method public static long threadCpuTimeNanos();
- field public static final int KIND_ALL_COUNTS = -1; // 0xffffffff
- field public static final int KIND_GLOBAL_ALLOCATED_BYTES = 2; // 0x2
- field public static final int KIND_GLOBAL_ALLOCATED_OBJECTS = 1; // 0x1
- field public static final int KIND_GLOBAL_CLASS_INIT_COUNT = 32; // 0x20
- field public static final int KIND_GLOBAL_CLASS_INIT_TIME = 64; // 0x40
- field public static final int KIND_GLOBAL_FREED_BYTES = 8; // 0x8
- field public static final int KIND_GLOBAL_FREED_OBJECTS = 4; // 0x4
- field public static final int KIND_GLOBAL_GC_INVOCATIONS = 16; // 0x10
- field public static final int KIND_THREAD_ALLOCATED_BYTES = 131072; // 0x20000
- field public static final int KIND_THREAD_ALLOCATED_OBJECTS = 65536; // 0x10000
- field public static final int KIND_THREAD_GC_INVOCATIONS = 1048576; // 0x100000
- field public static final int TRACE_COUNT_ALLOCS = 1; // 0x1
- }
-
- public final class VMRuntime {
- method public long addressOf(java.lang.Object);
- method public void clampGrowthLimit();
- method public void clearGrowthLimit();
- method public static boolean didPruneDalvikCache();
- method public void disableJitCompilation();
- method public static java.lang.String getCurrentInstructionSet();
- method public static java.lang.String getInstructionSet(java.lang.String);
- method public static dalvik.system.VMRuntime getRuntime();
- method public float getTargetHeapUtilization();
- method public synchronized int getTargetSdkVersion();
- method public static boolean hasBootImageSpaces();
- method public boolean hasUsedHiddenApi();
- method public boolean is64Bit();
- method public static boolean is64BitAbi(java.lang.String);
- method public static boolean is64BitInstructionSet(java.lang.String);
- method public static boolean isBootClassPathOnDisk(java.lang.String);
- method public boolean isCheckJniEnabled();
- method public boolean isNativeDebuggable();
- method public java.lang.Object newNonMovableArray(java.lang.Class<?>, int);
- method public java.lang.Object newUnpaddedArray(java.lang.Class<?>, int);
- method public void preloadDexCaches();
- method public static void registerAppInfo(java.lang.String, java.lang.String[]);
- method public void registerNativeAllocation(int);
- method public void registerNativeFree(int);
- method public static void registerSensitiveThread();
- method public void requestConcurrentGC();
- method public static void setDedupeHiddenApiWarnings(boolean);
- method public void setHiddenApiAccessLogSamplingRate(int);
- method public void setHiddenApiExemptions(java.lang.String[]);
- method public static void setNonSdkApiUsageConsumer(java.util.function.Consumer<java.lang.String>);
- method public static void setProcessPackageName(java.lang.String);
- method public float setTargetHeapUtilization(float);
- method public synchronized void setTargetSdkVersion(int);
- method public void startJitCompilation();
- method public void updateProcessState(int);
- method public java.lang.String vmInstructionSet();
- method public java.lang.String vmLibrary();
- field public static final int SDK_VERSION_CUR_DEVELOPMENT = 10000; // 0x2710
- }
-
- public final class VMStack {
- ctor public VMStack();
- method public static dalvik.system.AnnotatedStackTraceElement[] getAnnotatedThreadStackTrace(java.lang.Thread);
- }
-
- public final class ZygoteHooks {
- ctor public ZygoteHooks();
- method public static void gcAndFinalize();
- method public static void onBeginPreload();
- method public static void onEndPreload();
- method public void postForkChild(int, boolean, boolean, java.lang.String);
- method public void postForkCommon();
- method public void preFork();
- method public static void startZygoteNoThreadCreation();
- method public static void stopZygoteNoThreadCreation();
- }
-
-}
-
-package java.io {
-
- public final class FileDescriptor {
- method public int getInt$();
- method public void setInt$(int);
- }
-
- public class FileInputStream extends java.io.InputStream {
- ctor public FileInputStream(java.io.FileDescriptor, boolean);
- }
-
-}
-
-package java.lang {
-
- public final class Byte extends java.lang.Number implements java.lang.Comparable {
- method public static java.lang.String toHexString(byte, boolean);
- }
-
- public final class Class<T> implements java.lang.reflect.AnnotatedElement java.lang.reflect.GenericDeclaration java.io.Serializable java.lang.reflect.Type {
- method public java.lang.reflect.Field[] getDeclaredFieldsUnchecked(boolean);
- method public java.lang.reflect.Method[] getDeclaredMethodsUnchecked(boolean);
- method public java.lang.String getPackageName$();
- }
-
- public final class Math {
- method public static long randomLongInternal();
- }
-
- public final class System {
- method public static void logE(java.lang.String, java.lang.Throwable);
- }
-
- public class Thread implements java.lang.Runnable {
- method public static java.lang.Thread.UncaughtExceptionHandler getUncaughtExceptionPreHandler();
- method public static void setUncaughtExceptionPreHandler(java.lang.Thread.UncaughtExceptionHandler);
- }
-
-}
-
-package java.net {
-
- public class DatagramSocket implements java.io.Closeable {
- method public java.io.FileDescriptor getFileDescriptor$();
- }
-
- public final class Inet4Address extends java.net.InetAddress {
- field public static final java.net.InetAddress ALL;
- field public static final java.net.InetAddress ANY;
- field public static final java.net.InetAddress LOOPBACK;
- }
-
- public final class Inet6Address extends java.net.InetAddress {
- method public static java.net.Inet6Address getByAddress(java.lang.String, byte[], java.net.NetworkInterface) throws java.net.UnknownHostException;
- method public static java.net.Inet6Address getByAddress(java.lang.String, byte[], int) throws java.net.UnknownHostException;
- method public int getScopeId();
- method public java.net.NetworkInterface getScopedInterface();
- method public boolean isIPv4CompatibleAddress();
- field public static final java.net.InetAddress ANY;
- field public static final java.net.InetAddress LOOPBACK;
- }
-
- public class InetAddress implements java.io.Serializable {
- method public static void clearDnsCache();
- method public static java.net.InetAddress[] getAllByNameOnNet(java.lang.String, int) throws java.net.UnknownHostException;
- method public static java.net.InetAddress getByNameOnNet(java.lang.String, int) throws java.net.UnknownHostException;
- method public static boolean isNumeric(java.lang.String);
- method public static java.net.InetAddress parseNumericAddress(java.lang.String);
- }
-
- public class InetSocketAddress extends java.net.SocketAddress {
- ctor public InetSocketAddress();
- }
-
- public class ServerSocket implements java.io.Closeable {
- method public java.net.SocketImpl getImpl() throws java.net.SocketException;
- }
-
- public class Socket implements java.io.Closeable {
- method public java.io.FileDescriptor getFileDescriptor$();
- }
-
- public abstract class SocketImpl implements java.net.SocketOptions {
- method public java.io.FileDescriptor getFD$();
- }
-
-}
-
-package java.nio {
-
- public abstract class ByteBuffer extends java.nio.Buffer implements java.lang.Comparable {
- method public void setAccessible(boolean);
- }
-
- public class DirectByteBuffer extends java.nio.MappedByteBuffer {
- ctor public DirectByteBuffer(int, long, java.io.FileDescriptor, java.lang.Runnable, boolean);
- method public final long address();
- method public final void setAccessible(boolean);
- }
-
- public final class NioUtils {
- method public static void freeDirectBuffer(java.nio.ByteBuffer);
- method public static byte[] unsafeArray(java.nio.ByteBuffer);
- method public static int unsafeArrayOffset(java.nio.ByteBuffer);
- }
-
-}
-
-package java.security {
-
- public abstract class Provider extends java.util.Properties {
- method public synchronized void warmUpServiceProvision();
- }
-
- public abstract class Signature extends java.security.SignatureSpi {
- method public java.security.SignatureSpi getCurrentSpi();
- }
-
-}
-
-package java.text {
-
- public abstract class DateFormat extends java.text.Format {
- method public static final void set24HourTimePref(java.lang.Boolean);
- }
-
-}
-
-package java.util {
-
- public class LinkedHashMap<K, V> extends java.util.HashMap implements java.util.Map {
- method public java.util.Map.Entry<K, V> eldest();
- }
-
- public final class Locale implements java.lang.Cloneable java.io.Serializable {
- method public static java.lang.String adjustLanguageCode(java.lang.String);
- }
-
-}
-
-package java.util.concurrent {
-
- public class CompletableFuture<T> implements java.util.concurrent.CompletionStage java.util.concurrent.Future {
- method public java.util.concurrent.CompletableFuture<T> completeOnTimeout(T, long, java.util.concurrent.TimeUnit);
- method public static <U> java.util.concurrent.CompletableFuture<U> failedFuture(java.lang.Throwable);
- }
-
-}
-
-package java.util.zip {
-
- public class ZipEntry implements java.lang.Cloneable {
- method public long getDataOffset();
- }
-
-}
-
-package javax.crypto {
-
- public class Cipher {
- method public javax.crypto.CipherSpi getCurrentSpi();
- }
-
- public class Mac implements java.lang.Cloneable {
- method public javax.crypto.MacSpi getCurrentSpi();
- }
-
-}
-
-package libcore.icu {
-
- public final class DateIntervalFormat {
- method public static java.lang.String formatDateRange(long, long, int, java.lang.String);
- }
-
- public final class ICU {
- ctor public ICU();
- method public static java.util.Locale addLikelySubtags(java.util.Locale);
- method public static java.lang.String getBestDateTimePattern(java.lang.String, java.util.Locale);
- method public static char[] getDateFormatOrder(java.lang.String);
- method public static java.lang.String getTZDataVersion();
- }
-
- public final class LocaleData {
- method public static libcore.icu.LocaleData get(java.util.Locale);
- method public java.lang.String getDateFormat(int);
- field public java.lang.String[] amPm;
- field public java.lang.Integer firstDayOfWeek;
- field public java.lang.String[] longMonthNames;
- field public java.lang.String[] longStandAloneMonthNames;
- field public java.lang.String[] longStandAloneWeekdayNames;
- field public java.lang.String[] longWeekdayNames;
- field public java.lang.String narrowAm;
- field public java.lang.String narrowPm;
- field public java.lang.String[] shortMonthNames;
- field public java.lang.String[] shortStandAloneMonthNames;
- field public java.lang.String[] shortStandAloneWeekdayNames;
- field public java.lang.String[] shortWeekdayNames;
- field public java.lang.String timeFormat_Hm;
- field public java.lang.String timeFormat_Hms;
- field public java.lang.String timeFormat_hm;
- field public java.lang.String timeFormat_hms;
- field public java.lang.String[] tinyMonthNames;
- field public java.lang.String[] tinyStandAloneMonthNames;
- field public java.lang.String[] tinyStandAloneWeekdayNames;
- field public java.lang.String[] tinyWeekdayNames;
- field public java.lang.String today;
- field public java.lang.String yesterday;
- field public char zeroDigit;
- }
-
- public final class RelativeDateTimeFormatter {
- method public static java.lang.String getRelativeDateTimeString(java.util.Locale, java.util.TimeZone, long, long, long, long, int);
- method public static java.lang.String getRelativeTimeSpanString(java.util.Locale, java.util.TimeZone, long, long, long, int);
- }
-
- public final class TimeZoneNames {
- }
-
- public static class TimeZoneNames.ZoneStringsCache extends libcore.util.BasicLruCache {
- }
-
-}
-
-package libcore.internal {
-
- public final class StringPool {
- ctor public StringPool();
- method public java.lang.String get(char[], int, int);
- }
-
-}
-
-package libcore.io {
-
- public final class DropBox {
- ctor public DropBox();
- method public static void setReporter(libcore.io.DropBox.Reporter);
- }
-
- public static abstract interface DropBox.Reporter {
- method public abstract void addData(java.lang.String, byte[], int);
- method public abstract void addText(java.lang.String, java.lang.String);
- }
-
- public final class EventLogger {
- ctor public EventLogger();
- method public static void setReporter(libcore.io.EventLogger.Reporter);
- }
-
- public static abstract interface EventLogger.Reporter {
- method public abstract void report(int, java.lang.Object...);
- }
-
- public class ForwardingOs implements libcore.io.Os {
- ctor protected ForwardingOs(libcore.io.Os);
- method public boolean access(java.lang.String, int) throws android.system.ErrnoException;
- method public java.io.FileDescriptor open(java.lang.String, int, int) throws android.system.ErrnoException;
- method public android.system.StructStat stat(java.lang.String) throws android.system.ErrnoException;
- }
-
- public final class IoBridge {
- method public static void closeAndSignalBlockedThreads(java.io.FileDescriptor) throws java.io.IOException;
- method public static java.net.InetSocketAddress getLocalInetSocketAddress(java.io.FileDescriptor) throws java.net.SocketException;
- method public static java.io.FileDescriptor open(java.lang.String, int) throws java.io.FileNotFoundException;
- method public static int read(java.io.FileDescriptor, byte[], int, int) throws java.io.IOException;
- method public static int recvfrom(boolean, java.io.FileDescriptor, byte[], int, int, int, java.net.DatagramPacket, boolean) throws java.io.IOException;
- method public static int sendto(java.io.FileDescriptor, byte[], int, int, int, java.net.InetAddress, int) throws java.io.IOException;
- method public static java.io.FileDescriptor socket(int, int, int) throws java.net.SocketException;
- method public static void write(java.io.FileDescriptor, byte[], int, int) throws java.io.IOException;
- }
-
- public final class IoUtils {
- method public static int acquireRawFd(java.io.FileDescriptor);
- method public static void close(java.io.FileDescriptor) throws java.io.IOException;
- method public static void closeQuietly(java.lang.AutoCloseable);
- method public static void closeQuietly(java.io.FileDescriptor);
- method public static void closeQuietly(java.net.Socket);
- method public static deprecated java.io.File createTemporaryDirectory(java.lang.String);
- method public static deprecated void deleteContents(java.io.File) throws java.io.IOException;
- method public static byte[] readFileAsByteArray(java.lang.String) throws java.io.IOException;
- method public static java.lang.String readFileAsString(java.lang.String) throws java.io.IOException;
- method public static void setBlocking(java.io.FileDescriptor, boolean) throws java.io.IOException;
- method public static void setFdOwner(java.io.FileDescriptor, java.lang.Object);
- }
-
- public final class Libcore {
- }
-
- public final class Memory {
- method public static void memmove(java.lang.Object, int, java.lang.Object, int, long);
- method public static int peekInt(byte[], int, java.nio.ByteOrder);
- method public static short peekShort(byte[], int, java.nio.ByteOrder);
- method public static void pokeInt(byte[], int, int, java.nio.ByteOrder);
- method public static void pokeLong(byte[], int, long, java.nio.ByteOrder);
- method public static void pokeShort(byte[], int, short, java.nio.ByteOrder);
- }
-
- public abstract interface Os {
- method public static boolean compareAndSetDefault(libcore.io.Os, libcore.io.Os);
- method public static libcore.io.Os getDefault();
- }
-
- public final class SizeOf {
- field public static final int INT = 4; // 0x4
- field public static final int SHORT = 2; // 0x2
- }
-
- public final class Streams {
- method public static int copy(java.io.InputStream, java.io.OutputStream) throws java.io.IOException;
- method public static void readFully(java.io.InputStream, byte[]) throws java.io.IOException;
- method public static byte[] readFully(java.io.InputStream) throws java.io.IOException;
- method public static java.lang.String readFully(java.io.Reader) throws java.io.IOException;
- method public static byte[] readFullyNoClose(java.io.InputStream) throws java.io.IOException;
- method public static int readSingleByte(java.io.InputStream) throws java.io.IOException;
- method public static long skipByReading(java.io.InputStream, long) throws java.io.IOException;
- method public static void writeSingleByte(java.io.OutputStream, int) throws java.io.IOException;
- }
-
-}
-
-package libcore.mmodule.libart {
-
- public class DemoLibartClass {
- method public static java.lang.String corePlatformApiMethod();
- }
-
-}
-
-package libcore.net {
-
- public final class MimeUtils {
- ctor public MimeUtils();
- method public static java.lang.String guessExtensionFromMimeType(java.lang.String);
- method public static java.lang.String guessMimeTypeFromExtension(java.lang.String);
- method public static boolean hasExtension(java.lang.String);
- method public static boolean hasMimeType(java.lang.String);
- }
-
- public abstract class NetworkSecurityPolicy {
- ctor public NetworkSecurityPolicy();
- method public static libcore.net.NetworkSecurityPolicy getInstance();
- method public abstract boolean isCertificateTransparencyVerificationRequired(java.lang.String);
- method public abstract boolean isCleartextTrafficPermitted();
- method public abstract boolean isCleartextTrafficPermitted(java.lang.String);
- method public static void setInstance(libcore.net.NetworkSecurityPolicy);
- }
-
-}
-
-package libcore.net.event {
-
- public class NetworkEventDispatcher {
- method public static libcore.net.event.NetworkEventDispatcher getInstance();
- method public void onNetworkConfigurationChanged();
- }
-
-}
-
-package libcore.util {
-
- public final class ArrayUtils {
- method public static void throwsIfOutOfBounds(int, int, int);
- }
-
- public class BasicLruCache<K, V> {
- ctor public BasicLruCache(int);
- }
-
- public final class CountryTimeZones {
- method public java.lang.String getCountryIso();
- method public java.lang.String getDefaultTimeZoneId();
- method public java.util.List<libcore.util.CountryTimeZones.TimeZoneMapping> getTimeZoneMappings();
- method public boolean hasUtcZone(long);
- method public boolean isDefaultOkForCountryTimeZoneDetection(long);
- method public boolean isForCountryCode(java.lang.String);
- method public deprecated libcore.util.CountryTimeZones.OffsetResult lookupByOffsetWithBias(int, boolean, long, android.icu.util.TimeZone);
- }
-
- public static final class CountryTimeZones.OffsetResult {
- field public final boolean mOneMatch;
- field public final android.icu.util.TimeZone mTimeZone;
- }
-
- public static final class CountryTimeZones.TimeZoneMapping {
- method public static libcore.util.CountryTimeZones.TimeZoneMapping createForTests(java.lang.String, boolean, java.lang.Long);
- field public final java.lang.Long notUsedAfter;
- field public final boolean showInPicker;
- field public final java.lang.String timeZoneId;
- }
-
- public final class CountryZonesFinder {
- method public java.util.List<java.lang.String> lookupAllCountryIsoCodes();
- method public libcore.util.CountryTimeZones lookupCountryTimeZones(java.lang.String);
- method public java.util.List<libcore.util.CountryTimeZones> lookupCountryTimeZonesForZoneId(java.lang.String);
- }
-
- public final class EmptyArray {
- field public static final boolean[] BOOLEAN;
- field public static final byte[] BYTE;
- field public static final float[] FLOAT;
- field public static final int[] INT;
- field public static final long[] LONG;
- field public static final java.lang.Object[] OBJECT;
- field public static final java.lang.String[] STRING;
- }
-
- public class HexEncoding {
- method public static byte[] decode(java.lang.String) throws java.lang.IllegalArgumentException;
- method public static byte[] decode(char[]) throws java.lang.IllegalArgumentException;
- method public static byte[] decode(char[], boolean) throws java.lang.IllegalArgumentException;
- method public static char[] encode(byte[]);
- method public static char[] encode(byte[], int, int);
- method public static java.lang.String encodeToString(byte[]);
- }
-
- public class NativeAllocationRegistry {
- ctor public NativeAllocationRegistry(java.lang.ClassLoader, long, long);
- method public static void applyFreeFunction(long, long);
- method public java.lang.Runnable registerNativeAllocation(java.lang.Object, long);
- }
-
- public class SneakyThrow {
- ctor public SneakyThrow();
- method public static void sneakyThrow(java.lang.Throwable);
- }
-
- public final class TimeZoneFinder {
- method public static libcore.util.TimeZoneFinder createInstance(java.lang.String) throws java.io.IOException;
- method public libcore.util.CountryZonesFinder getCountryZonesFinder();
- method public java.lang.String getIanaVersion();
- method public static libcore.util.TimeZoneFinder getInstance();
- method public libcore.util.CountryTimeZones lookupCountryTimeZones(java.lang.String);
- method public java.lang.String lookupDefaultTimeZoneIdByCountry(java.lang.String);
- method public android.icu.util.TimeZone lookupTimeZoneByCountryAndOffset(java.lang.String, int, boolean, long, android.icu.util.TimeZone);
- method public java.util.List<java.lang.String> lookupTimeZoneIdsByCountry(java.lang.String);
- method public java.util.List<android.icu.util.TimeZone> lookupTimeZonesByCountry(java.lang.String);
- method public void validate() throws java.io.IOException;
- }
-
- public class XmlObjectFactory {
- method public static org.xml.sax.XMLReader newXMLReader();
- method public static org.xmlpull.v1.XmlPullParser newXmlPullParser();
- method public static org.xmlpull.v1.XmlSerializer newXmlSerializer();
- }
-
- public final class ZoneInfo extends java.util.TimeZone {
- }
-
- public static class ZoneInfo.WallTime {
- ctor public ZoneInfo.WallTime();
- method public int getGmtOffset();
- method public int getHour();
- method public int getIsDst();
- method public int getMinute();
- method public int getMonth();
- method public int getMonthDay();
- method public int getSecond();
- method public int getWeekDay();
- method public int getYear();
- method public int getYearDay();
- method public void localtime(int, libcore.util.ZoneInfo);
- method public int mktime(libcore.util.ZoneInfo);
- method public void setGmtOffset(int);
- method public void setHour(int);
- method public void setIsDst(int);
- method public void setMinute(int);
- method public void setMonth(int);
- method public void setMonthDay(int);
- method public void setSecond(int);
- method public void setWeekDay(int);
- method public void setYear(int);
- method public void setYearDay(int);
- }
-
- public final class ZoneInfoDB {
- method public static libcore.util.ZoneInfoDB.TzData getInstance();
- }
-
- public static class ZoneInfoDB.TzData implements java.lang.AutoCloseable {
- method public static java.lang.String getRulesVersion(java.io.File) throws java.io.IOException;
- method public java.lang.String getVersion();
- method public boolean hasTimeZone(java.lang.String) throws java.io.IOException;
- method public static libcore.util.ZoneInfoDB.TzData loadTzData(java.lang.String);
- method public libcore.util.ZoneInfo makeTimeZone(java.lang.String) throws java.io.IOException;
- method public void validate() throws java.io.IOException;
- }
-
-}
-
-package org.apache.harmony.dalvik {
-
- public final class NativeTestTarget {
- ctor public NativeTestTarget();
- method public static void emptyInlineMethod();
- method public static void emptyInternalStaticMethod();
- method public void emptyJniMethod0();
- method public void emptyJniMethod0_Fast();
- method public void emptyJniMethod6(int, int, int, int, int, int);
- method public void emptyJniMethod6L(java.lang.String, java.lang.String[], int[][], java.lang.Object, java.lang.Object[], java.lang.Object[][][][]);
- method public void emptyJniMethod6L_Fast(java.lang.String, java.lang.String[], int[][], java.lang.Object, java.lang.Object[], java.lang.Object[][][][]);
- method public void emptyJniMethod6_Fast(int, int, int, int, int, int);
- method public static void emptyJniStaticMethod0();
- method public static void emptyJniStaticMethod0_Critical();
- method public static void emptyJniStaticMethod0_Fast();
- method public static void emptyJniStaticMethod6(int, int, int, int, int, int);
- method public static void emptyJniStaticMethod6L(java.lang.String, java.lang.String[], int[][], java.lang.Object, java.lang.Object[], java.lang.Object[][][][]);
- method public static void emptyJniStaticMethod6L_Fast(java.lang.String, java.lang.String[], int[][], java.lang.Object, java.lang.Object[], java.lang.Object[][][][]);
- method public static void emptyJniStaticMethod6_Critical(int, int, int, int, int, int);
- method public static void emptyJniStaticMethod6_Fast(int, int, int, int, int, int);
- method public static synchronized void emptyJniStaticSynchronizedMethod0();
- method public synchronized void emptyJniSynchronizedMethod0();
- }
-
-}
-
-package org.apache.harmony.dalvik.ddmc {
-
- public class Chunk {
- ctor public Chunk(int, byte[], int, int);
- ctor public Chunk(int, java.nio.ByteBuffer);
- field public int type;
- }
-
- public abstract class ChunkHandler {
- ctor public ChunkHandler();
- method public abstract void connected();
- method public static org.apache.harmony.dalvik.ddmc.Chunk createFailChunk(int, java.lang.String);
- method public abstract void disconnected();
- method public static java.lang.String getString(java.nio.ByteBuffer, int);
- method public abstract org.apache.harmony.dalvik.ddmc.Chunk handleChunk(org.apache.harmony.dalvik.ddmc.Chunk);
- method public static java.lang.String name(int);
- method public static void putString(java.nio.ByteBuffer, java.lang.String);
- method public static int type(java.lang.String);
- method public static java.nio.ByteBuffer wrapChunk(org.apache.harmony.dalvik.ddmc.Chunk);
- field public static final java.nio.ByteOrder CHUNK_ORDER;
- }
-
- public class DdmServer {
- method public static void registerHandler(int, org.apache.harmony.dalvik.ddmc.ChunkHandler);
- method public static void registrationComplete();
- method public static void sendChunk(org.apache.harmony.dalvik.ddmc.Chunk);
- field public static final int CLIENT_PROTOCOL_VERSION = 1; // 0x1
- }
-
- public class DdmVmInternal {
- method public static void enableRecentAllocations(boolean);
- method public static boolean getRecentAllocationStatus();
- method public static byte[] getRecentAllocations();
- method public static java.lang.StackTraceElement[] getStackTraceById(int);
- method public static byte[] getThreadStats();
- method public static boolean heapInfoNotify(int);
- method public static boolean heapSegmentNotify(int, int, boolean);
- method public static void threadNotify(boolean);
- }
-
-}
-
-package org.json {
-
- public class JSONObject {
- method public java.util.Set<java.lang.String> keySet();
- }
-
-}
-
-package sun.misc {
-
- public class Cleaner extends java.lang.ref.PhantomReference {
- method public void clean();
- method public static sun.misc.Cleaner create(java.lang.Object, java.lang.Runnable);
- }
-
-}
-
-package sun.security.jca {
-
- public class Providers {
- method public static java.lang.Object startJarVerification();
- method public static void stopJarVerification(java.lang.Object);
- }
-
-}
-
-package sun.security.pkcs {
-
- public class ContentInfo {
- method public byte[] getContentBytes() throws java.io.IOException;
- }
-
- public class PKCS7 {
- ctor public PKCS7(java.io.InputStream) throws java.io.IOException, sun.security.pkcs.ParsingException;
- ctor public PKCS7(byte[]) throws sun.security.pkcs.ParsingException;
- method public java.security.cert.X509Certificate[] getCertificates();
- method public sun.security.pkcs.ContentInfo getContentInfo();
- method public sun.security.pkcs.SignerInfo[] getSignerInfos();
- method public sun.security.pkcs.SignerInfo verify(sun.security.pkcs.SignerInfo, java.io.InputStream) throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.SignatureException;
- method public sun.security.pkcs.SignerInfo[] verify(byte[]) throws java.security.NoSuchAlgorithmException, java.security.SignatureException;
- }
-
- public class ParsingException extends java.io.IOException {
- }
-
- public class SignerInfo {
- ctor public SignerInfo();
- method public java.util.ArrayList<java.security.cert.X509Certificate> getCertificateChain(sun.security.pkcs.PKCS7) throws java.io.IOException;
- }
-
-}
-
-package sun.security.util {
-
- public final class ObjectIdentifier implements java.io.Serializable {
- ctor public ObjectIdentifier(java.lang.String) throws java.io.IOException;
- }
-
-}
-
-package sun.security.x509 {
-
- public class AlgorithmId implements java.io.Serializable {
- ctor public AlgorithmId(sun.security.util.ObjectIdentifier);
- method public java.lang.String getName();
- }
-
-}
-
-package sun.util.locale {
-
- public class LanguageTag {
- method public static boolean isLanguage(java.lang.String);
- }
-
-}
-
diff --git a/ojluni/annotations/hiddenapi/java/util/HashMap.java b/ojluni/annotations/hiddenapi/java/util/HashMap.java
index 1010dad..af1c342 100644
--- a/ojluni/annotations/hiddenapi/java/util/HashMap.java
+++ b/ojluni/annotations/hiddenapi/java/util/HashMap.java
@@ -368,7 +368,6 @@
throw new RuntimeException("Stub!");
}
- @UnsupportedAppUsage
public final boolean hasNext() {
throw new RuntimeException("Stub!");
}
@@ -377,7 +376,6 @@
throw new RuntimeException("Stub!");
}
- @UnsupportedAppUsage
public final void remove() {
throw new RuntimeException("Stub!");
}
diff --git a/ojluni/annotations/hiddenapi/java/util/LinkedHashMap.java b/ojluni/annotations/hiddenapi/java/util/LinkedHashMap.java
index 9dd8e37..8294334 100644
--- a/ojluni/annotations/hiddenapi/java/util/LinkedHashMap.java
+++ b/ojluni/annotations/hiddenapi/java/util/LinkedHashMap.java
@@ -210,7 +210,6 @@
throw new RuntimeException("Stub!");
}
- @UnsupportedAppUsage
public final boolean hasNext() {
throw new RuntimeException("Stub!");
}
diff --git a/ojluni/annotations/hiddenapi/java/util/concurrent/ConcurrentHashMap.java b/ojluni/annotations/hiddenapi/java/util/concurrent/ConcurrentHashMap.java
deleted file mode 100644
index 86d503f..0000000
--- a/ojluni/annotations/hiddenapi/java/util/concurrent/ConcurrentHashMap.java
+++ /dev/null
@@ -1,2788 +0,0 @@
-/*
- * 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. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * This file is available under and governed by the GNU General Public
- * License version 2 only, as published by the Free Software Foundation.
- * However, the following notice accompanied the original version of this
- * file:
- *
- * Written by Doug Lea with assistance from members of JCP JSR-166
- * Expert Group and released to the public domain, as explained at
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-package java.util.concurrent;
-
-import dalvik.annotation.compat.UnsupportedAppUsage;
-
-@SuppressWarnings({"unchecked", "deprecation", "all"})
-public class ConcurrentHashMap<K, V> extends java.util.AbstractMap<K, V>
- implements java.util.concurrent.ConcurrentMap<K, V>, java.io.Serializable {
-
- public ConcurrentHashMap() {
- throw new RuntimeException("Stub!");
- }
-
- public ConcurrentHashMap(int initialCapacity) {
- throw new RuntimeException("Stub!");
- }
-
- public ConcurrentHashMap(java.util.Map<? extends K, ? extends V> m) {
- throw new RuntimeException("Stub!");
- }
-
- public ConcurrentHashMap(int initialCapacity, float loadFactor) {
- throw new RuntimeException("Stub!");
- }
-
- public ConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel) {
- throw new RuntimeException("Stub!");
- }
-
- static final int spread(int h) {
- throw new RuntimeException("Stub!");
- }
-
- private static final int tableSizeFor(int c) {
- throw new RuntimeException("Stub!");
- }
-
- static java.lang.Class<?> comparableClassFor(java.lang.Object x) {
- throw new RuntimeException("Stub!");
- }
-
- static int compareComparables(java.lang.Class<?> kc, java.lang.Object k, java.lang.Object x) {
- throw new RuntimeException("Stub!");
- }
-
- static final <K, V> java.util.concurrent.ConcurrentHashMap.Node<K, V> tabAt(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab, int i) {
- throw new RuntimeException("Stub!");
- }
-
- static final <K, V> boolean casTabAt(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab,
- int i,
- java.util.concurrent.ConcurrentHashMap.Node<K, V> c,
- java.util.concurrent.ConcurrentHashMap.Node<K, V> v) {
- throw new RuntimeException("Stub!");
- }
-
- static final <K, V> void setTabAt(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab,
- int i,
- java.util.concurrent.ConcurrentHashMap.Node<K, V> v) {
- throw new RuntimeException("Stub!");
- }
-
- public int size() {
- throw new RuntimeException("Stub!");
- }
-
- public boolean isEmpty() {
- throw new RuntimeException("Stub!");
- }
-
- public V get(java.lang.Object key) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean containsKey(java.lang.Object key) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean containsValue(java.lang.Object value) {
- throw new RuntimeException("Stub!");
- }
-
- public V put(K key, V value) {
- throw new RuntimeException("Stub!");
- }
-
- final V putVal(K key, V value, boolean onlyIfAbsent) {
- throw new RuntimeException("Stub!");
- }
-
- public void putAll(java.util.Map<? extends K, ? extends V> m) {
- throw new RuntimeException("Stub!");
- }
-
- public V remove(java.lang.Object key) {
- throw new RuntimeException("Stub!");
- }
-
- final V replaceNode(java.lang.Object key, V value, java.lang.Object cv) {
- throw new RuntimeException("Stub!");
- }
-
- public void clear() {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Set<K> keySet() {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Collection<V> values() {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Set<java.util.Map.Entry<K, V>> entrySet() {
- throw new RuntimeException("Stub!");
- }
-
- public int hashCode() {
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.String toString() {
- throw new RuntimeException("Stub!");
- }
-
- public boolean equals(java.lang.Object o) {
- throw new RuntimeException("Stub!");
- }
-
- private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException {
- throw new RuntimeException("Stub!");
- }
-
- private void readObject(java.io.ObjectInputStream s)
- throws java.lang.ClassNotFoundException, java.io.IOException {
- throw new RuntimeException("Stub!");
- }
-
- public V putIfAbsent(K key, V value) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean remove(java.lang.Object key, java.lang.Object value) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean replace(K key, V oldValue, V newValue) {
- throw new RuntimeException("Stub!");
- }
-
- public V replace(K key, V value) {
- throw new RuntimeException("Stub!");
- }
-
- public V getOrDefault(java.lang.Object key, V defaultValue) {
- throw new RuntimeException("Stub!");
- }
-
- public void forEach(java.util.function.BiConsumer<? super K, ? super V> action) {
- throw new RuntimeException("Stub!");
- }
-
- public void replaceAll(
- java.util.function.BiFunction<? super K, ? super V, ? extends V> function) {
- throw new RuntimeException("Stub!");
- }
-
- boolean removeEntryIf(
- java.util.function.Predicate<? super java.util.Map.Entry<K, V>> function) {
- throw new RuntimeException("Stub!");
- }
-
- boolean removeValueIf(java.util.function.Predicate<? super V> function) {
- throw new RuntimeException("Stub!");
- }
-
- public V computeIfAbsent(
- K key, java.util.function.Function<? super K, ? extends V> mappingFunction) {
- throw new RuntimeException("Stub!");
- }
-
- public V computeIfPresent(
- K key,
- java.util.function.BiFunction<? super K, ? super V, ? extends V> remappingFunction) {
- throw new RuntimeException("Stub!");
- }
-
- public V compute(
- K key,
- java.util.function.BiFunction<? super K, ? super V, ? extends V> remappingFunction) {
- throw new RuntimeException("Stub!");
- }
-
- public V merge(
- K key,
- V value,
- java.util.function.BiFunction<? super V, ? super V, ? extends V> remappingFunction) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean contains(java.lang.Object value) {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Enumeration<K> keys() {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Enumeration<V> elements() {
- throw new RuntimeException("Stub!");
- }
-
- public long mappingCount() {
- throw new RuntimeException("Stub!");
- }
-
- public static <K>
- java.util.concurrent.ConcurrentHashMap.KeySetView<K, java.lang.Boolean> newKeySet() {
- throw new RuntimeException("Stub!");
- }
-
- public static <K>
- java.util.concurrent.ConcurrentHashMap.KeySetView<K, java.lang.Boolean> newKeySet(
- int initialCapacity) {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.concurrent.ConcurrentHashMap.KeySetView<K, V> keySet(V mappedValue) {
- throw new RuntimeException("Stub!");
- }
-
- static final int resizeStamp(int n) {
- throw new RuntimeException("Stub!");
- }
-
- private final java.util.concurrent.ConcurrentHashMap.Node<K, V>[] initTable() {
- throw new RuntimeException("Stub!");
- }
-
- private final void addCount(long x, int check) {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.concurrent.ConcurrentHashMap.Node<K, V>[] helpTransfer(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab,
- java.util.concurrent.ConcurrentHashMap.Node<K, V> f) {
- throw new RuntimeException("Stub!");
- }
-
- private final void tryPresize(int size) {
- throw new RuntimeException("Stub!");
- }
-
- private final void transfer(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] nextTab) {
- throw new RuntimeException("Stub!");
- }
-
- final long sumCount() {
- throw new RuntimeException("Stub!");
- }
-
- private final void fullAddCount(long x, boolean wasUncontended) {
- throw new RuntimeException("Stub!");
- }
-
- private final void treeifyBin(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab, int index) {
- throw new RuntimeException("Stub!");
- }
-
- static <K, V> java.util.concurrent.ConcurrentHashMap.Node<K, V> untreeify(
- java.util.concurrent.ConcurrentHashMap.Node<K, V> b) {
- throw new RuntimeException("Stub!");
- }
-
- final int batchFor(long b) {
- throw new RuntimeException("Stub!");
- }
-
- public void forEach(
- long parallelismThreshold, java.util.function.BiConsumer<? super K, ? super V> action) {
- throw new RuntimeException("Stub!");
- }
-
- public <U> void forEach(
- long parallelismThreshold,
- java.util.function.BiFunction<? super K, ? super V, ? extends U> transformer,
- java.util.function.Consumer<? super U> action) {
- throw new RuntimeException("Stub!");
- }
-
- public <U> U search(
- long parallelismThreshold,
- java.util.function.BiFunction<? super K, ? super V, ? extends U> searchFunction) {
- throw new RuntimeException("Stub!");
- }
-
- public <U> U reduce(
- long parallelismThreshold,
- java.util.function.BiFunction<? super K, ? super V, ? extends U> transformer,
- java.util.function.BiFunction<? super U, ? super U, ? extends U> reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public double reduceToDouble(
- long parallelismThreshold,
- java.util.function.ToDoubleBiFunction<? super K, ? super V> transformer,
- double basis,
- java.util.function.DoubleBinaryOperator reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public long reduceToLong(
- long parallelismThreshold,
- java.util.function.ToLongBiFunction<? super K, ? super V> transformer,
- long basis,
- java.util.function.LongBinaryOperator reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public int reduceToInt(
- long parallelismThreshold,
- java.util.function.ToIntBiFunction<? super K, ? super V> transformer,
- int basis,
- java.util.function.IntBinaryOperator reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public void forEachKey(
- long parallelismThreshold, java.util.function.Consumer<? super K> action) {
- throw new RuntimeException("Stub!");
- }
-
- public <U> void forEachKey(
- long parallelismThreshold,
- java.util.function.Function<? super K, ? extends U> transformer,
- java.util.function.Consumer<? super U> action) {
- throw new RuntimeException("Stub!");
- }
-
- public <U> U searchKeys(
- long parallelismThreshold,
- java.util.function.Function<? super K, ? extends U> searchFunction) {
- throw new RuntimeException("Stub!");
- }
-
- public K reduceKeys(
- long parallelismThreshold,
- java.util.function.BiFunction<? super K, ? super K, ? extends K> reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public <U> U reduceKeys(
- long parallelismThreshold,
- java.util.function.Function<? super K, ? extends U> transformer,
- java.util.function.BiFunction<? super U, ? super U, ? extends U> reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public double reduceKeysToDouble(
- long parallelismThreshold,
- java.util.function.ToDoubleFunction<? super K> transformer,
- double basis,
- java.util.function.DoubleBinaryOperator reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public long reduceKeysToLong(
- long parallelismThreshold,
- java.util.function.ToLongFunction<? super K> transformer,
- long basis,
- java.util.function.LongBinaryOperator reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public int reduceKeysToInt(
- long parallelismThreshold,
- java.util.function.ToIntFunction<? super K> transformer,
- int basis,
- java.util.function.IntBinaryOperator reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public void forEachValue(
- long parallelismThreshold, java.util.function.Consumer<? super V> action) {
- throw new RuntimeException("Stub!");
- }
-
- public <U> void forEachValue(
- long parallelismThreshold,
- java.util.function.Function<? super V, ? extends U> transformer,
- java.util.function.Consumer<? super U> action) {
- throw new RuntimeException("Stub!");
- }
-
- public <U> U searchValues(
- long parallelismThreshold,
- java.util.function.Function<? super V, ? extends U> searchFunction) {
- throw new RuntimeException("Stub!");
- }
-
- public V reduceValues(
- long parallelismThreshold,
- java.util.function.BiFunction<? super V, ? super V, ? extends V> reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public <U> U reduceValues(
- long parallelismThreshold,
- java.util.function.Function<? super V, ? extends U> transformer,
- java.util.function.BiFunction<? super U, ? super U, ? extends U> reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public double reduceValuesToDouble(
- long parallelismThreshold,
- java.util.function.ToDoubleFunction<? super V> transformer,
- double basis,
- java.util.function.DoubleBinaryOperator reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public long reduceValuesToLong(
- long parallelismThreshold,
- java.util.function.ToLongFunction<? super V> transformer,
- long basis,
- java.util.function.LongBinaryOperator reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public int reduceValuesToInt(
- long parallelismThreshold,
- java.util.function.ToIntFunction<? super V> transformer,
- int basis,
- java.util.function.IntBinaryOperator reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public void forEachEntry(
- long parallelismThreshold,
- java.util.function.Consumer<? super java.util.Map.Entry<K, V>> action) {
- throw new RuntimeException("Stub!");
- }
-
- public <U> void forEachEntry(
- long parallelismThreshold,
- java.util.function.Function<java.util.Map.Entry<K, V>, ? extends U> transformer,
- java.util.function.Consumer<? super U> action) {
- throw new RuntimeException("Stub!");
- }
-
- public <U> U searchEntries(
- long parallelismThreshold,
- java.util.function.Function<java.util.Map.Entry<K, V>, ? extends U> searchFunction) {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Map.Entry<K, V> reduceEntries(
- long parallelismThreshold,
- java.util.function.BiFunction<
- java.util.Map.Entry<K, V>,
- java.util.Map.Entry<K, V>,
- ? extends java.util.Map.Entry<K, V>>
- reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public <U> U reduceEntries(
- long parallelismThreshold,
- java.util.function.Function<java.util.Map.Entry<K, V>, ? extends U> transformer,
- java.util.function.BiFunction<? super U, ? super U, ? extends U> reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public double reduceEntriesToDouble(
- long parallelismThreshold,
- java.util.function.ToDoubleFunction<java.util.Map.Entry<K, V>> transformer,
- double basis,
- java.util.function.DoubleBinaryOperator reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public long reduceEntriesToLong(
- long parallelismThreshold,
- java.util.function.ToLongFunction<java.util.Map.Entry<K, V>> transformer,
- long basis,
- java.util.function.LongBinaryOperator reducer) {
- throw new RuntimeException("Stub!");
- }
-
- public int reduceEntriesToInt(
- long parallelismThreshold,
- java.util.function.ToIntFunction<java.util.Map.Entry<K, V>> transformer,
- int basis,
- java.util.function.IntBinaryOperator reducer) {
- throw new RuntimeException("Stub!");
- }
-
- private static final int ABASE;
-
- static {
- ABASE = 0;
- }
-
- private static final int ASHIFT;
-
- static {
- ASHIFT = 0;
- }
-
- private static final long BASECOUNT;
-
- static {
- BASECOUNT = 0;
- }
-
- private static final long CELLSBUSY;
-
- static {
- CELLSBUSY = 0;
- }
-
- private static final long CELLVALUE;
-
- static {
- CELLVALUE = 0;
- }
-
- private static final int DEFAULT_CAPACITY = 16; // 0x10
-
- private static final int DEFAULT_CONCURRENCY_LEVEL = 16; // 0x10
-
- static final int HASH_BITS = 2147483647; // 0x7fffffff
-
- private static final float LOAD_FACTOR = 0.75f;
-
- private static final int MAXIMUM_CAPACITY = 1073741824; // 0x40000000
-
- static final int MAX_ARRAY_SIZE = 2147483639; // 0x7ffffff7
-
- private static final int MAX_RESIZERS = 65535; // 0xffff
-
- private static final int MIN_TRANSFER_STRIDE = 16; // 0x10
-
- static final int MIN_TREEIFY_CAPACITY = 64; // 0x40
-
- static final int MOVED = -1; // 0xffffffff
-
- static final int NCPU;
-
- static {
- NCPU = 0;
- }
-
- static final int RESERVED = -3; // 0xfffffffd
-
- private static final int RESIZE_STAMP_BITS = 16; // 0x10
-
- private static final int RESIZE_STAMP_SHIFT = 16; // 0x10
-
- private static final long SIZECTL;
-
- static {
- SIZECTL = 0;
- }
-
- private static final long TRANSFERINDEX;
-
- static {
- TRANSFERINDEX = 0;
- }
-
- static final int TREEBIN = -2; // 0xfffffffe
-
- static final int TREEIFY_THRESHOLD = 8; // 0x8
-
- private static final sun.misc.Unsafe U;
-
- static {
- U = null;
- }
-
- static final int UNTREEIFY_THRESHOLD = 6; // 0x6
-
- private transient volatile long baseCount;
-
- private transient volatile int cellsBusy;
-
- private transient volatile java.util.concurrent.ConcurrentHashMap.CounterCell[] counterCells;
-
- private transient java.util.concurrent.ConcurrentHashMap.EntrySetView<K, V> entrySet;
-
- private transient java.util.concurrent.ConcurrentHashMap.KeySetView<K, V> keySet;
-
- private transient volatile java.util.concurrent.ConcurrentHashMap.Node<K, V>[] nextTable;
-
- private static final java.io.ObjectStreamField[] serialPersistentFields;
-
- static {
- serialPersistentFields = new java.io.ObjectStreamField[0];
- }
-
- private static final long serialVersionUID = 7249069246763182397L; // 0x6499de129d87293dL
-
- private transient volatile int sizeCtl;
-
- transient volatile java.util.concurrent.ConcurrentHashMap.Node<K, V>[] table;
-
- private transient volatile int transferIndex;
-
- private transient java.util.concurrent.ConcurrentHashMap.ValuesView<K, V> values;
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static class BaseIterator<K, V> extends java.util.concurrent.ConcurrentHashMap.Traverser<K, V> {
-
- BaseIterator(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab,
- int size,
- int index,
- int limit,
- java.util.concurrent.ConcurrentHashMap<K, V> map) {
- super(null, 0, 0, 0);
- throw new RuntimeException("Stub!");
- }
-
- public final boolean hasNext() {
- throw new RuntimeException("Stub!");
- }
-
- @UnsupportedAppUsage
- public final boolean hasMoreElements() {
- throw new RuntimeException("Stub!");
- }
-
- public final void remove() {
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.Node<K, V> lastReturned;
-
- final java.util.concurrent.ConcurrentHashMap<K, V> map;
-
- {
- map = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- abstract static class BulkTask<K, V, R> extends java.util.concurrent.CountedCompleter<R> {
-
- BulkTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> par,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t) {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.concurrent.ConcurrentHashMap.Node<K, V> advance() {
- throw new RuntimeException("Stub!");
- }
-
- private void pushState(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t, int i, int n) {
- throw new RuntimeException("Stub!");
- }
-
- private void recoverState(int n) {
- throw new RuntimeException("Stub!");
- }
-
- int baseIndex;
-
- int baseLimit;
-
- final int baseSize;
-
- {
- baseSize = 0;
- }
-
- int batch;
-
- int index;
-
- java.util.concurrent.ConcurrentHashMap.Node<K, V> next;
-
- java.util.concurrent.ConcurrentHashMap.TableStack<K, V> spare;
-
- java.util.concurrent.ConcurrentHashMap.TableStack<K, V> stack;
-
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab;
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- abstract static class CollectionView<K, V, E>
- implements java.util.Collection<E>, java.io.Serializable {
-
- CollectionView(java.util.concurrent.ConcurrentHashMap<K, V> map) {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.concurrent.ConcurrentHashMap<K, V> getMap() {
- throw new RuntimeException("Stub!");
- }
-
- public final void clear() {
- throw new RuntimeException("Stub!");
- }
-
- public final int size() {
- throw new RuntimeException("Stub!");
- }
-
- public final boolean isEmpty() {
- throw new RuntimeException("Stub!");
- }
-
- public abstract java.util.Iterator<E> iterator();
-
- public abstract boolean contains(java.lang.Object o);
-
- public abstract boolean remove(java.lang.Object o);
-
- public final java.lang.Object[] toArray() {
- throw new RuntimeException("Stub!");
- }
-
- public final <T> T[] toArray(T[] a) {
- throw new RuntimeException("Stub!");
- }
-
- public final java.lang.String toString() {
- throw new RuntimeException("Stub!");
- }
-
- public final boolean containsAll(java.util.Collection<?> c) {
- throw new RuntimeException("Stub!");
- }
-
- public final boolean removeAll(java.util.Collection<?> c) {
- throw new RuntimeException("Stub!");
- }
-
- public final boolean retainAll(java.util.Collection<?> c) {
- throw new RuntimeException("Stub!");
- }
-
- private static final java.lang.String OOME_MSG = "Required array size too large";
-
- final java.util.concurrent.ConcurrentHashMap<K, V> map;
-
- {
- map = null;
- }
-
- private static final long serialVersionUID = 7249069246763182397L; // 0x6499de129d87293dL
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class CounterCell {
-
- CounterCell(long x) {
- throw new RuntimeException("Stub!");
- }
-
- volatile long value;
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class EntryIterator<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BaseIterator<K, V>
- implements java.util.Iterator<java.util.Map.Entry<K, V>> {
-
- EntryIterator(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab,
- int index,
- int size,
- int limit,
- java.util.concurrent.ConcurrentHashMap<K, V> map) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Map.Entry<K, V> next() {
- throw new RuntimeException("Stub!");
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class EntrySetView<K, V>
- extends java.util.concurrent.ConcurrentHashMap.CollectionView<
- K, V, java.util.Map.Entry<K, V>>
- implements java.util.Set<java.util.Map.Entry<K, V>>, java.io.Serializable {
-
- EntrySetView(java.util.concurrent.ConcurrentHashMap<K, V> map) {
- super(null);
- throw new RuntimeException("Stub!");
- }
-
- public boolean contains(java.lang.Object o) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean remove(java.lang.Object o) {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Iterator<java.util.Map.Entry<K, V>> iterator() {
- throw new RuntimeException("Stub!");
- }
-
- public boolean add(java.util.Map.Entry<K, V> e) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean addAll(java.util.Collection<? extends java.util.Map.Entry<K, V>> c) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean removeIf(
- java.util.function.Predicate<? super java.util.Map.Entry<K, V>> filter) {
- throw new RuntimeException("Stub!");
- }
-
- public int hashCode() {
- throw new RuntimeException("Stub!");
- }
-
- public boolean equals(java.lang.Object o) {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Spliterator<java.util.Map.Entry<K, V>> spliterator() {
- throw new RuntimeException("Stub!");
- }
-
- public void forEach(java.util.function.Consumer<? super java.util.Map.Entry<K, V>> action) {
- throw new RuntimeException("Stub!");
- }
-
- private static final long serialVersionUID = 2249069246763182397L; // 0x1f364c905893293dL
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class EntrySpliterator<K, V>
- extends java.util.concurrent.ConcurrentHashMap.Traverser<K, V>
- implements java.util.Spliterator<java.util.Map.Entry<K, V>> {
-
- EntrySpliterator(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab,
- int size,
- int index,
- int limit,
- long est,
- java.util.concurrent.ConcurrentHashMap<K, V> map) {
- super(null, 0, 0, 0);
- throw new RuntimeException("Stub!");
- }
-
- public java.util.concurrent.ConcurrentHashMap.EntrySpliterator<K, V> trySplit() {
- throw new RuntimeException("Stub!");
- }
-
- public void forEachRemaining(
- java.util.function.Consumer<? super java.util.Map.Entry<K, V>> action) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean tryAdvance(
- java.util.function.Consumer<? super java.util.Map.Entry<K, V>> action) {
- throw new RuntimeException("Stub!");
- }
-
- public long estimateSize() {
- throw new RuntimeException("Stub!");
- }
-
- public int characteristics() {
- throw new RuntimeException("Stub!");
- }
-
- long est;
-
- final java.util.concurrent.ConcurrentHashMap<K, V> map;
-
- {
- map = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ForEachEntryTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Void> {
-
- ForEachEntryTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.function.Consumer<? super java.util.Map.Entry<K, V>> action) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.function.Consumer<? super java.util.Map.Entry<K, V>> action;
-
- {
- action = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ForEachKeyTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Void> {
-
- ForEachKeyTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.function.Consumer<? super K> action) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.function.Consumer<? super K> action;
-
- {
- action = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ForEachMappingTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Void> {
-
- ForEachMappingTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.function.BiConsumer<? super K, ? super V> action) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.function.BiConsumer<? super K, ? super V> action;
-
- {
- action = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ForEachTransformedEntryTask<K, V, U>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Void> {
-
- ForEachTransformedEntryTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.function.Function<java.util.Map.Entry<K, V>, ? extends U> transformer,
- java.util.function.Consumer<? super U> action) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.function.Consumer<? super U> action;
-
- {
- action = null;
- }
-
- final java.util.function.Function<java.util.Map.Entry<K, V>, ? extends U> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ForEachTransformedKeyTask<K, V, U>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Void> {
-
- ForEachTransformedKeyTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.function.Function<? super K, ? extends U> transformer,
- java.util.function.Consumer<? super U> action) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.function.Consumer<? super U> action;
-
- {
- action = null;
- }
-
- final java.util.function.Function<? super K, ? extends U> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ForEachTransformedMappingTask<K, V, U>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Void> {
-
- ForEachTransformedMappingTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.function.BiFunction<? super K, ? super V, ? extends U> transformer,
- java.util.function.Consumer<? super U> action) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.function.Consumer<? super U> action;
-
- {
- action = null;
- }
-
- final java.util.function.BiFunction<? super K, ? super V, ? extends U> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ForEachTransformedValueTask<K, V, U>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Void> {
-
- ForEachTransformedValueTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.function.Function<? super V, ? extends U> transformer,
- java.util.function.Consumer<? super U> action) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.function.Consumer<? super U> action;
-
- {
- action = null;
- }
-
- final java.util.function.Function<? super V, ? extends U> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ForEachValueTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Void> {
-
- ForEachValueTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.function.Consumer<? super V> action) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.function.Consumer<? super V> action;
-
- {
- action = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ForwardingNode<K, V>
- extends java.util.concurrent.ConcurrentHashMap.Node<K, V> {
-
- ForwardingNode(java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab) {
- super(0, null, null, null);
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.Node<K, V> find(int h, java.lang.Object k) {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.concurrent.ConcurrentHashMap.Node<K, V>[] nextTable;
-
- {
- nextTable = new java.util.concurrent.ConcurrentHashMap.Node[0];
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class KeyIterator<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BaseIterator<K, V>
- implements java.util.Iterator<K>, java.util.Enumeration<K> {
-
- KeyIterator(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab,
- int index,
- int size,
- int limit,
- java.util.concurrent.ConcurrentHashMap<K, V> map) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public K next() {
- throw new RuntimeException("Stub!");
- }
-
- public K nextElement() {
- throw new RuntimeException("Stub!");
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- public static class KeySetView<K, V>
- extends java.util.concurrent.ConcurrentHashMap.CollectionView<K, V, K>
- implements java.util.Set<K>, java.io.Serializable {
-
- KeySetView(java.util.concurrent.ConcurrentHashMap<K, V> map, V value) {
- super(null);
- throw new RuntimeException("Stub!");
- }
-
- public V getMappedValue() {
- throw new RuntimeException("Stub!");
- }
-
- public boolean contains(java.lang.Object o) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean remove(java.lang.Object o) {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Iterator<K> iterator() {
- throw new RuntimeException("Stub!");
- }
-
- public boolean add(K e) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean addAll(java.util.Collection<? extends K> c) {
- throw new RuntimeException("Stub!");
- }
-
- public int hashCode() {
- throw new RuntimeException("Stub!");
- }
-
- public boolean equals(java.lang.Object o) {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Spliterator<K> spliterator() {
- throw new RuntimeException("Stub!");
- }
-
- public void forEach(java.util.function.Consumer<? super K> action) {
- throw new RuntimeException("Stub!");
- }
-
- private static final long serialVersionUID = 7249069246763182397L; // 0x6499de129d87293dL
-
- private final V value;
-
- {
- value = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class KeySpliterator<K, V>
- extends java.util.concurrent.ConcurrentHashMap.Traverser<K, V>
- implements java.util.Spliterator<K> {
-
- KeySpliterator(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab,
- int size,
- int index,
- int limit,
- long est) {
- super(null, 0, 0, 0);
- throw new RuntimeException("Stub!");
- }
-
- public java.util.concurrent.ConcurrentHashMap.KeySpliterator<K, V> trySplit() {
- throw new RuntimeException("Stub!");
- }
-
- public void forEachRemaining(java.util.function.Consumer<? super K> action) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean tryAdvance(java.util.function.Consumer<? super K> action) {
- throw new RuntimeException("Stub!");
- }
-
- public long estimateSize() {
- throw new RuntimeException("Stub!");
- }
-
- public int characteristics() {
- throw new RuntimeException("Stub!");
- }
-
- long est;
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapEntry<K, V> implements java.util.Map.Entry<K, V> {
-
- MapEntry(K key, V val, java.util.concurrent.ConcurrentHashMap<K, V> map) {
- throw new RuntimeException("Stub!");
- }
-
- public K getKey() {
- throw new RuntimeException("Stub!");
- }
-
- public V getValue() {
- throw new RuntimeException("Stub!");
- }
-
- public int hashCode() {
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.String toString() {
- throw new RuntimeException("Stub!");
- }
-
- public boolean equals(java.lang.Object o) {
- throw new RuntimeException("Stub!");
- }
-
- public V setValue(V value) {
- throw new RuntimeException("Stub!");
- }
-
- final K key;
-
- {
- key = null;
- }
-
- final java.util.concurrent.ConcurrentHashMap<K, V> map;
-
- {
- map = null;
- }
-
- V val;
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceEntriesTask<K, V, U>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, U> {
-
- MapReduceEntriesTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceEntriesTask<K, V, U> nextRight,
- java.util.function.Function<java.util.Map.Entry<K, V>, ? extends U> transformer,
- java.util.function.BiFunction<? super U, ? super U, ? extends U> reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public U getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceEntriesTask<K, V, U> nextRight;
-
- final java.util.function.BiFunction<? super U, ? super U, ? extends U> reducer;
-
- {
- reducer = null;
- }
-
- U result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceEntriesTask<K, V, U> rights;
-
- final java.util.function.Function<java.util.Map.Entry<K, V>, ? extends U> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceEntriesToDoubleTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Double> {
-
- MapReduceEntriesToDoubleTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceEntriesToDoubleTask<K, V> nextRight,
- java.util.function.ToDoubleFunction<java.util.Map.Entry<K, V>> transformer,
- double basis,
- java.util.function.DoubleBinaryOperator reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.Double getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final double basis;
-
- {
- basis = 0;
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceEntriesToDoubleTask<K, V> nextRight;
-
- final java.util.function.DoubleBinaryOperator reducer;
-
- {
- reducer = null;
- }
-
- double result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceEntriesToDoubleTask<K, V> rights;
-
- final java.util.function.ToDoubleFunction<java.util.Map.Entry<K, V>> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceEntriesToIntTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Integer> {
-
- MapReduceEntriesToIntTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceEntriesToIntTask<K, V> nextRight,
- java.util.function.ToIntFunction<java.util.Map.Entry<K, V>> transformer,
- int basis,
- java.util.function.IntBinaryOperator reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.Integer getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final int basis;
-
- {
- basis = 0;
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceEntriesToIntTask<K, V> nextRight;
-
- final java.util.function.IntBinaryOperator reducer;
-
- {
- reducer = null;
- }
-
- int result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceEntriesToIntTask<K, V> rights;
-
- final java.util.function.ToIntFunction<java.util.Map.Entry<K, V>> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceEntriesToLongTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Long> {
-
- MapReduceEntriesToLongTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceEntriesToLongTask<K, V> nextRight,
- java.util.function.ToLongFunction<java.util.Map.Entry<K, V>> transformer,
- long basis,
- java.util.function.LongBinaryOperator reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.Long getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final long basis;
-
- {
- basis = 0;
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceEntriesToLongTask<K, V> nextRight;
-
- final java.util.function.LongBinaryOperator reducer;
-
- {
- reducer = null;
- }
-
- long result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceEntriesToLongTask<K, V> rights;
-
- final java.util.function.ToLongFunction<java.util.Map.Entry<K, V>> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceKeysTask<K, V, U>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, U> {
-
- MapReduceKeysTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceKeysTask<K, V, U> nextRight,
- java.util.function.Function<? super K, ? extends U> transformer,
- java.util.function.BiFunction<? super U, ? super U, ? extends U> reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public U getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceKeysTask<K, V, U> nextRight;
-
- final java.util.function.BiFunction<? super U, ? super U, ? extends U> reducer;
-
- {
- reducer = null;
- }
-
- U result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceKeysTask<K, V, U> rights;
-
- final java.util.function.Function<? super K, ? extends U> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceKeysToDoubleTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Double> {
-
- MapReduceKeysToDoubleTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceKeysToDoubleTask<K, V> nextRight,
- java.util.function.ToDoubleFunction<? super K> transformer,
- double basis,
- java.util.function.DoubleBinaryOperator reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.Double getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final double basis;
-
- {
- basis = 0;
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceKeysToDoubleTask<K, V> nextRight;
-
- final java.util.function.DoubleBinaryOperator reducer;
-
- {
- reducer = null;
- }
-
- double result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceKeysToDoubleTask<K, V> rights;
-
- final java.util.function.ToDoubleFunction<? super K> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceKeysToIntTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Integer> {
-
- MapReduceKeysToIntTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceKeysToIntTask<K, V> nextRight,
- java.util.function.ToIntFunction<? super K> transformer,
- int basis,
- java.util.function.IntBinaryOperator reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.Integer getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final int basis;
-
- {
- basis = 0;
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceKeysToIntTask<K, V> nextRight;
-
- final java.util.function.IntBinaryOperator reducer;
-
- {
- reducer = null;
- }
-
- int result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceKeysToIntTask<K, V> rights;
-
- final java.util.function.ToIntFunction<? super K> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceKeysToLongTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Long> {
-
- MapReduceKeysToLongTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceKeysToLongTask<K, V> nextRight,
- java.util.function.ToLongFunction<? super K> transformer,
- long basis,
- java.util.function.LongBinaryOperator reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.Long getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final long basis;
-
- {
- basis = 0;
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceKeysToLongTask<K, V> nextRight;
-
- final java.util.function.LongBinaryOperator reducer;
-
- {
- reducer = null;
- }
-
- long result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceKeysToLongTask<K, V> rights;
-
- final java.util.function.ToLongFunction<? super K> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceMappingsTask<K, V, U>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, U> {
-
- MapReduceMappingsTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceMappingsTask<K, V, U> nextRight,
- java.util.function.BiFunction<? super K, ? super V, ? extends U> transformer,
- java.util.function.BiFunction<? super U, ? super U, ? extends U> reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public U getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceMappingsTask<K, V, U> nextRight;
-
- final java.util.function.BiFunction<? super U, ? super U, ? extends U> reducer;
-
- {
- reducer = null;
- }
-
- U result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceMappingsTask<K, V, U> rights;
-
- final java.util.function.BiFunction<? super K, ? super V, ? extends U> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceMappingsToDoubleTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Double> {
-
- MapReduceMappingsToDoubleTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceMappingsToDoubleTask<K, V>
- nextRight,
- java.util.function.ToDoubleBiFunction<? super K, ? super V> transformer,
- double basis,
- java.util.function.DoubleBinaryOperator reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.Double getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final double basis;
-
- {
- basis = 0;
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceMappingsToDoubleTask<K, V> nextRight;
-
- final java.util.function.DoubleBinaryOperator reducer;
-
- {
- reducer = null;
- }
-
- double result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceMappingsToDoubleTask<K, V> rights;
-
- final java.util.function.ToDoubleBiFunction<? super K, ? super V> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceMappingsToIntTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Integer> {
-
- MapReduceMappingsToIntTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceMappingsToIntTask<K, V> nextRight,
- java.util.function.ToIntBiFunction<? super K, ? super V> transformer,
- int basis,
- java.util.function.IntBinaryOperator reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.Integer getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final int basis;
-
- {
- basis = 0;
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceMappingsToIntTask<K, V> nextRight;
-
- final java.util.function.IntBinaryOperator reducer;
-
- {
- reducer = null;
- }
-
- int result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceMappingsToIntTask<K, V> rights;
-
- final java.util.function.ToIntBiFunction<? super K, ? super V> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceMappingsToLongTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Long> {
-
- MapReduceMappingsToLongTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceMappingsToLongTask<K, V> nextRight,
- java.util.function.ToLongBiFunction<? super K, ? super V> transformer,
- long basis,
- java.util.function.LongBinaryOperator reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.Long getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final long basis;
-
- {
- basis = 0;
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceMappingsToLongTask<K, V> nextRight;
-
- final java.util.function.LongBinaryOperator reducer;
-
- {
- reducer = null;
- }
-
- long result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceMappingsToLongTask<K, V> rights;
-
- final java.util.function.ToLongBiFunction<? super K, ? super V> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceValuesTask<K, V, U>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, U> {
-
- MapReduceValuesTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceValuesTask<K, V, U> nextRight,
- java.util.function.Function<? super V, ? extends U> transformer,
- java.util.function.BiFunction<? super U, ? super U, ? extends U> reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public U getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceValuesTask<K, V, U> nextRight;
-
- final java.util.function.BiFunction<? super U, ? super U, ? extends U> reducer;
-
- {
- reducer = null;
- }
-
- U result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceValuesTask<K, V, U> rights;
-
- final java.util.function.Function<? super V, ? extends U> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceValuesToDoubleTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Double> {
-
- MapReduceValuesToDoubleTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceValuesToDoubleTask<K, V> nextRight,
- java.util.function.ToDoubleFunction<? super V> transformer,
- double basis,
- java.util.function.DoubleBinaryOperator reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.Double getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final double basis;
-
- {
- basis = 0;
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceValuesToDoubleTask<K, V> nextRight;
-
- final java.util.function.DoubleBinaryOperator reducer;
-
- {
- reducer = null;
- }
-
- double result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceValuesToDoubleTask<K, V> rights;
-
- final java.util.function.ToDoubleFunction<? super V> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceValuesToIntTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Integer> {
-
- MapReduceValuesToIntTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceValuesToIntTask<K, V> nextRight,
- java.util.function.ToIntFunction<? super V> transformer,
- int basis,
- java.util.function.IntBinaryOperator reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.Integer getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final int basis;
-
- {
- basis = 0;
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceValuesToIntTask<K, V> nextRight;
-
- final java.util.function.IntBinaryOperator reducer;
-
- {
- reducer = null;
- }
-
- int result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceValuesToIntTask<K, V> rights;
-
- final java.util.function.ToIntFunction<? super V> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class MapReduceValuesToLongTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, java.lang.Long> {
-
- MapReduceValuesToLongTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.MapReduceValuesToLongTask<K, V> nextRight,
- java.util.function.ToLongFunction<? super V> transformer,
- long basis,
- java.util.function.LongBinaryOperator reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.lang.Long getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final long basis;
-
- {
- basis = 0;
- }
-
- java.util.concurrent.ConcurrentHashMap.MapReduceValuesToLongTask<K, V> nextRight;
-
- final java.util.function.LongBinaryOperator reducer;
-
- {
- reducer = null;
- }
-
- long result;
-
- java.util.concurrent.ConcurrentHashMap.MapReduceValuesToLongTask<K, V> rights;
-
- final java.util.function.ToLongFunction<? super V> transformer;
-
- {
- transformer = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static class Node<K, V> implements java.util.Map.Entry<K, V> {
-
- Node(int hash, K key, V val, java.util.concurrent.ConcurrentHashMap.Node<K, V> next) {
- throw new RuntimeException("Stub!");
- }
-
- public final K getKey() {
- throw new RuntimeException("Stub!");
- }
-
- public final V getValue() {
- throw new RuntimeException("Stub!");
- }
-
- public final int hashCode() {
- throw new RuntimeException("Stub!");
- }
-
- public final java.lang.String toString() {
- throw new RuntimeException("Stub!");
- }
-
- public final V setValue(V value) {
- throw new RuntimeException("Stub!");
- }
-
- public final boolean equals(java.lang.Object o) {
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.Node<K, V> find(int h, java.lang.Object k) {
- throw new RuntimeException("Stub!");
- }
-
- final int hash;
-
- {
- hash = 0;
- }
-
- final K key;
-
- {
- key = null;
- }
-
- volatile java.util.concurrent.ConcurrentHashMap.Node<K, V> next;
-
- volatile V val;
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ReduceEntriesTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<
- K, V, java.util.Map.Entry<K, V>> {
-
- ReduceEntriesTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.ReduceEntriesTask<K, V> nextRight,
- java.util.function.BiFunction<
- java.util.Map.Entry<K, V>,
- java.util.Map.Entry<K, V>,
- ? extends java.util.Map.Entry<K, V>>
- reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Map.Entry<K, V> getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.ReduceEntriesTask<K, V> nextRight;
-
- final java.util.function.BiFunction<
- java.util.Map.Entry<K, V>,
- java.util.Map.Entry<K, V>,
- ? extends java.util.Map.Entry<K, V>>
- reducer;
-
- {
- reducer = null;
- }
-
- java.util.Map.Entry<K, V> result;
-
- java.util.concurrent.ConcurrentHashMap.ReduceEntriesTask<K, V> rights;
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ReduceKeysTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, K> {
-
- ReduceKeysTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.ReduceKeysTask<K, V> nextRight,
- java.util.function.BiFunction<? super K, ? super K, ? extends K> reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public K getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.ReduceKeysTask<K, V> nextRight;
-
- final java.util.function.BiFunction<? super K, ? super K, ? extends K> reducer;
-
- {
- reducer = null;
- }
-
- K result;
-
- java.util.concurrent.ConcurrentHashMap.ReduceKeysTask<K, V> rights;
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ReduceValuesTask<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, V> {
-
- ReduceValuesTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.concurrent.ConcurrentHashMap.ReduceValuesTask<K, V> nextRight,
- java.util.function.BiFunction<? super V, ? super V, ? extends V> reducer) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public V getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.ReduceValuesTask<K, V> nextRight;
-
- final java.util.function.BiFunction<? super V, ? super V, ? extends V> reducer;
-
- {
- reducer = null;
- }
-
- V result;
-
- java.util.concurrent.ConcurrentHashMap.ReduceValuesTask<K, V> rights;
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ReservationNode<K, V>
- extends java.util.concurrent.ConcurrentHashMap.Node<K, V> {
-
- ReservationNode() {
- super(0, null, null, null);
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.Node<K, V> find(int h, java.lang.Object k) {
- throw new RuntimeException("Stub!");
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class SearchEntriesTask<K, V, U>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, U> {
-
- SearchEntriesTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.function.Function<java.util.Map.Entry<K, V>, ? extends U> searchFunction,
- java.util.concurrent.atomic.AtomicReference<U> result) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public U getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.concurrent.atomic.AtomicReference<U> result;
-
- {
- result = null;
- }
-
- final java.util.function.Function<java.util.Map.Entry<K, V>, ? extends U> searchFunction;
-
- {
- searchFunction = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class SearchKeysTask<K, V, U>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, U> {
-
- SearchKeysTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.function.Function<? super K, ? extends U> searchFunction,
- java.util.concurrent.atomic.AtomicReference<U> result) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public U getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.concurrent.atomic.AtomicReference<U> result;
-
- {
- result = null;
- }
-
- final java.util.function.Function<? super K, ? extends U> searchFunction;
-
- {
- searchFunction = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class SearchMappingsTask<K, V, U>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, U> {
-
- SearchMappingsTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.function.BiFunction<? super K, ? super V, ? extends U> searchFunction,
- java.util.concurrent.atomic.AtomicReference<U> result) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public U getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.concurrent.atomic.AtomicReference<U> result;
-
- {
- result = null;
- }
-
- final java.util.function.BiFunction<? super K, ? super V, ? extends U> searchFunction;
-
- {
- searchFunction = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class SearchValuesTask<K, V, U>
- extends java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, U> {
-
- SearchValuesTask(
- java.util.concurrent.ConcurrentHashMap.BulkTask<K, V, ?> p,
- int b,
- int i,
- int f,
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t,
- java.util.function.Function<? super V, ? extends U> searchFunction,
- java.util.concurrent.atomic.AtomicReference<U> result) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public U getRawResult() {
- throw new RuntimeException("Stub!");
- }
-
- public void compute() {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.concurrent.atomic.AtomicReference<U> result;
-
- {
- result = null;
- }
-
- final java.util.function.Function<? super V, ? extends U> searchFunction;
-
- {
- searchFunction = null;
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static class Segment<K, V> extends java.util.concurrent.locks.ReentrantLock
- implements java.io.Serializable {
-
- Segment(float lf) {
- throw new RuntimeException("Stub!");
- }
-
- final float loadFactor;
-
- {
- loadFactor = 0;
- }
-
- private static final long serialVersionUID = 2249069246763182397L; // 0x1f364c905893293dL
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class TableStack<K, V> {
-
- TableStack() {
- throw new RuntimeException("Stub!");
- }
-
- int index;
-
- int length;
-
- java.util.concurrent.ConcurrentHashMap.TableStack<K, V> next;
-
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab;
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static class Traverser<K, V> {
-
- Traverser(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab,
- int size,
- int index,
- int limit) {
- throw new RuntimeException("Stub!");
- }
-
- final java.util.concurrent.ConcurrentHashMap.Node<K, V> advance() {
- throw new RuntimeException("Stub!");
- }
-
- private void pushState(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] t, int i, int n) {
- throw new RuntimeException("Stub!");
- }
-
- private void recoverState(int n) {
- throw new RuntimeException("Stub!");
- }
-
- int baseIndex;
-
- int baseLimit;
-
- final int baseSize;
-
- {
- baseSize = 0;
- }
-
- int index;
-
- java.util.concurrent.ConcurrentHashMap.Node<K, V> next;
-
- java.util.concurrent.ConcurrentHashMap.TableStack<K, V> spare;
-
- java.util.concurrent.ConcurrentHashMap.TableStack<K, V> stack;
-
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab;
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class TreeBin<K, V> extends java.util.concurrent.ConcurrentHashMap.Node<K, V> {
-
- TreeBin(java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> b) {
- super(0, null, null, null);
- throw new RuntimeException("Stub!");
- }
-
- static int tieBreakOrder(java.lang.Object a, java.lang.Object b) {
- throw new RuntimeException("Stub!");
- }
-
- private void lockRoot() {
- throw new RuntimeException("Stub!");
- }
-
- private void unlockRoot() {
- throw new RuntimeException("Stub!");
- }
-
- private void contendedLock() {
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.Node<K, V> find(int h, java.lang.Object k) {
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> putTreeVal(int h, K k, V v) {
- throw new RuntimeException("Stub!");
- }
-
- boolean removeTreeNode(java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> p) {
- throw new RuntimeException("Stub!");
- }
-
- static <K, V> java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> rotateLeft(
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> root,
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> p) {
- throw new RuntimeException("Stub!");
- }
-
- static <K, V> java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> rotateRight(
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> root,
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> p) {
- throw new RuntimeException("Stub!");
- }
-
- static <K, V> java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> balanceInsertion(
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> root,
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> x) {
- throw new RuntimeException("Stub!");
- }
-
- static <K, V> java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> balanceDeletion(
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> root,
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> x) {
- throw new RuntimeException("Stub!");
- }
-
- static <K, V> boolean checkInvariants(
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> t) {
- throw new RuntimeException("Stub!");
- }
-
- private static final long LOCKSTATE;
-
- static {
- LOCKSTATE = 0;
- }
-
- static final int READER = 4; // 0x4
-
- private static final sun.misc.Unsafe U;
-
- static {
- U = null;
- }
-
- static final int WAITER = 2; // 0x2
-
- static final int WRITER = 1; // 0x1
-
- volatile java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> first;
-
- volatile int lockState;
-
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> root;
-
- volatile java.lang.Thread waiter;
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class TreeNode<K, V> extends java.util.concurrent.ConcurrentHashMap.Node<K, V> {
-
- TreeNode(
- int hash,
- K key,
- V val,
- java.util.concurrent.ConcurrentHashMap.Node<K, V> next,
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> parent) {
- super(0, null, null, null);
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.Node<K, V> find(int h, java.lang.Object k) {
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> findTreeNode(
- int h, java.lang.Object k, java.lang.Class<?> kc) {
- throw new RuntimeException("Stub!");
- }
-
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> left;
-
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> parent;
-
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> prev;
-
- boolean red;
-
- java.util.concurrent.ConcurrentHashMap.TreeNode<K, V> right;
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ValueIterator<K, V>
- extends java.util.concurrent.ConcurrentHashMap.BaseIterator<K, V>
- implements java.util.Iterator<V>, java.util.Enumeration<V> {
-
- ValueIterator(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab,
- int index,
- int size,
- int limit,
- java.util.concurrent.ConcurrentHashMap<K, V> map) {
- super(null, 0, 0, 0, null);
- throw new RuntimeException("Stub!");
- }
-
- public V next() {
- throw new RuntimeException("Stub!");
- }
-
- public V nextElement() {
- throw new RuntimeException("Stub!");
- }
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ValueSpliterator<K, V>
- extends java.util.concurrent.ConcurrentHashMap.Traverser<K, V>
- implements java.util.Spliterator<V> {
-
- ValueSpliterator(
- java.util.concurrent.ConcurrentHashMap.Node<K, V>[] tab,
- int size,
- int index,
- int limit,
- long est) {
- super(null, 0, 0, 0);
- throw new RuntimeException("Stub!");
- }
-
- public java.util.concurrent.ConcurrentHashMap.ValueSpliterator<K, V> trySplit() {
- throw new RuntimeException("Stub!");
- }
-
- public void forEachRemaining(java.util.function.Consumer<? super V> action) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean tryAdvance(java.util.function.Consumer<? super V> action) {
- throw new RuntimeException("Stub!");
- }
-
- public long estimateSize() {
- throw new RuntimeException("Stub!");
- }
-
- public int characteristics() {
- throw new RuntimeException("Stub!");
- }
-
- long est;
- }
-
- @SuppressWarnings({"unchecked", "deprecation", "all"})
- static final class ValuesView<K, V>
- extends java.util.concurrent.ConcurrentHashMap.CollectionView<K, V, V>
- implements java.util.Collection<V>, java.io.Serializable {
-
- ValuesView(java.util.concurrent.ConcurrentHashMap<K, V> map) {
- super(null);
- throw new RuntimeException("Stub!");
- }
-
- public boolean contains(java.lang.Object o) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean remove(java.lang.Object o) {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Iterator<V> iterator() {
- throw new RuntimeException("Stub!");
- }
-
- public boolean add(V e) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean addAll(java.util.Collection<? extends V> c) {
- throw new RuntimeException("Stub!");
- }
-
- public boolean removeIf(java.util.function.Predicate<? super V> filter) {
- throw new RuntimeException("Stub!");
- }
-
- public java.util.Spliterator<V> spliterator() {
- throw new RuntimeException("Stub!");
- }
-
- public void forEach(java.util.function.Consumer<? super V> action) {
- throw new RuntimeException("Stub!");
- }
-
- private static final long serialVersionUID = 2249069246763182397L; // 0x1f364c905893293dL
- }
-}
diff --git a/ojluni/annotations/hiddenapi/sun/misc/Unsafe.java b/ojluni/annotations/hiddenapi/sun/misc/Unsafe.java
index 23ad7c6..54308e4 100644
--- a/ojluni/annotations/hiddenapi/sun/misc/Unsafe.java
+++ b/ojluni/annotations/hiddenapi/sun/misc/Unsafe.java
@@ -26,6 +26,7 @@
package sun.misc;
import dalvik.annotation.compat.UnsupportedAppUsage;
+import dalvik.system.VersionCodes;
@SuppressWarnings({"unchecked", "deprecation", "all"})
public final class Unsafe {
@@ -54,10 +55,10 @@
throw new RuntimeException("Stub!");
}
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = VersionCodes.O)
private static native int getArrayBaseOffsetForComponentType(java.lang.Class component_class);
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = VersionCodes.O)
private static native int getArrayIndexScaleForComponentType(java.lang.Class component_class);
@UnsupportedAppUsage
diff --git a/ojluni/src/main/java/java/lang/Thread.java b/ojluni/src/main/java/java/lang/Thread.java
index 591d14a..0ca9074 100644
--- a/ojluni/src/main/java/java/lang/Thread.java
+++ b/ojluni/src/main/java/java/lang/Thread.java
@@ -236,6 +236,11 @@
/* For generating thread ID */
private static long threadSeqNumber;
+
+ // Android-added: The concept of "system-daemon" threads. See java.lang.Daemons.
+ /** True if this thread is managed by {@link Daemons}. */
+ private boolean systemDaemon = false;
+
/* Java thread status for tools,
* initialized to indicate thread 'not yet started'
*/
@@ -2182,6 +2187,43 @@
getUncaughtExceptionHandler().uncaughtException(this, e);
}
+ // BEGIN Android-added: The concept of "system-daemon" threads. See java.lang.Daemons.
+ /**
+ * Marks this thread as either a special runtime-managed ("system daemon")
+ * thread or a normal (i.e. app code created) daemon thread.)
+ *
+ * <p>System daemon threads get special handling when starting up in some
+ * cases.
+ *
+ * <p>This method must be invoked before the thread is started.
+ *
+ * <p>This method must only be invoked on Thread instances that have already
+ * had {@code setDaemon(true)} called on them.
+ *
+ * <p>Package-private since only {@link java.lang.Daemons} needs to call
+ * this.
+ *
+ * @param on if {@code true}, marks this thread as a system daemon thread
+ *
+ * @throws IllegalThreadStateException
+ * if this thread is {@linkplain #isAlive alive} or not a
+ * {@linkplain #isDaemon daemon}
+ *
+ * @throws SecurityException
+ * if {@link #checkAccess} determines that the current
+ * thread cannot modify this thread
+ *
+ * @hide For use by Daemons.java only.
+ */
+ final void setSystemDaemon(boolean on) {
+ checkAccess();
+ if (isAlive() || !isDaemon()) {
+ throw new IllegalThreadStateException();
+ }
+ systemDaemon = on;
+ }
+ // END Android-added: The concept of "system-daemon" threads. See java.lang.Daemons.
+
/**
* Removes from the specified map any keys that have been enqueued
* on the specified reference queue.
diff --git a/ojluni/src/main/java/java/lang/invoke/MethodHandleInfo.java b/ojluni/src/main/java/java/lang/invoke/MethodHandleInfo.java
index 2746d4a..356768d 100644
--- a/ojluni/src/main/java/java/lang/invoke/MethodHandleInfo.java
+++ b/ojluni/src/main/java/java/lang/invoke/MethodHandleInfo.java
@@ -283,19 +283,37 @@
}
// BEGIN Android-added: refKind...() methods needed for API compatibility with 26.
- // These methods were accidentally added into the public API in API level 26 and so cannot be
- // removed.
+ // These methods were accidentally added into the public API in API level. They are now
+ // deprecated as a prelude to being removed from the public API.
+ /**
+ * @deprecated This internal method was accidentally added to API 26 and must not be used. No
+ * replacement is available but it is possible to replicate using information from
+ * the <a href="MethodHandleInfo.html#refkinds">table above</a>, e.g.
+ * {@code refKind >= 1 && refKind <= 9}. There are no guarantees that this logic
+ * will work if future versions extend the table.
+ */
+ @Deprecated
static boolean refKindIsValid(int refKind) {
return MethodHandleNatives.refKindIsValid(refKind);
}
- // Android-changed: Inlined from MethodHandleNatives.
+ /**
+ * @deprecated This internal method was accidentally added to API 26 and must not be used. No
+ * replacement is available but it is possible to replicate using information from
+ * the <a href="MethodHandleInfo.html#refkinds">table above</a>, e.g.
+ * {@code refKind >= 1 && refKind <= 4}. There are no guarantees that this logic
+ * will work if future versions extend the table.
+ */
+ @Deprecated
static boolean refKindIsField(int refKind) {
return MethodHandleNatives.refKindIsField((byte) refKind);
}
- // Android-changed: Inlined from MethodHandleNatives and replaced 'byte' argument with
- // 'int'.
+ /**
+ * @deprecated This internal method was accidentally added to API 26 and must not be used. Use
+ * {@link MethodHandleInfo#referenceKindToString(int)} instead.
+ */
+ @Deprecated
static String refKindName(int refKind) {
return MethodHandleNatives.refKindName((byte) refKind);
}
diff --git a/ojluni/src/main/java/java/net/InetAddress.java b/ojluni/src/main/java/java/net/InetAddress.java
index 9685ffa..e4f8660 100644
--- a/ojluni/src/main/java/java/net/InetAddress.java
+++ b/ojluni/src/main/java/java/net/InetAddress.java
@@ -1607,21 +1607,26 @@
// Particularly those required to deal with scope ids.
/**
* Returns true if the string is a valid numeric IPv4 or IPv6 address (such as "192.168.0.1").
- * This copes with all forms of address that Java supports, detailed in the {@link InetAddress}
- * class documentation.
+ *
+ * <p>This copes with all forms of address that Java supports, detailed in the
+ * {@link InetAddress} class documentation. An empty string is not treated as numeric.
*
* @hide used by frameworks/base to ensure that a getAllByName won't cause a DNS lookup.
* @deprecated Use {@link InetAddressUtils#isNumericAddress(String)} instead, if possible.
+ * @throws NullPointerException if the {@code address} is {@code null}.
*/
@Deprecated
public static boolean isNumeric(String address) {
- return _parseNumericAddress(address) != null;
+ return InetAddressUtils.parseNumericAddressNoThrowStripOptionalBrackets(address) != null;
}
/**
* Returns an InetAddress corresponding to the given numeric address (such
* as {@code "192.168.0.1"} or {@code "2001:4860:800d::68"}).
- * This method will never do a DNS lookup. Non-numeric addresses are errors.
+ *
+ * <p>This method will never do a DNS lookup. Non-numeric addresses are errors. Passing either
+ * an empty string or a {@code null} as the {@code numericAddress} will return the
+ * {@link Inet6Address#LOOPBACK} address.
*
* @hide used by frameworks/base's NetworkUtils.numericToInetAddress
* @throws IllegalArgumentException if {@code numericAddress} is not a numeric address
@@ -1629,20 +1634,17 @@
*/
@Deprecated
public static InetAddress parseNumericAddress(String numericAddress) {
- InetAddress result = _parseNumericAddress(numericAddress);
+ if (numericAddress == null || numericAddress.isEmpty()) {
+ return Inet6Address.LOOPBACK;
+ }
+ InetAddress result = InetAddressUtils
+ .parseNumericAddressNoThrowStripOptionalBrackets(numericAddress);
if (result == null) {
throw new IllegalArgumentException("Not a numeric address: " + numericAddress);
}
return result;
}
- private static InetAddress _parseNumericAddress(String numericAddress) {
- if (numericAddress == null || numericAddress.isEmpty()) {
- return Inet6Address.LOOPBACK;
- }
- return InetAddressUtils.parseNumericAddressNoThrowStripOptionalBrackets(numericAddress);
- }
-
/**
* Removes all entries from the VM's DNS cache. This does not affect the C library's DNS
* cache, nor any caching DNS servers between you and the canonical server.
diff --git a/ojluni/src/main/java/java/util/concurrent/CopyOnWriteArrayList.java b/ojluni/src/main/java/java/util/concurrent/CopyOnWriteArrayList.java
index d3d681f..ebcbbef 100644
--- a/ojluni/src/main/java/java/util/concurrent/CopyOnWriteArrayList.java
+++ b/ojluni/src/main/java/java/util/concurrent/CopyOnWriteArrayList.java
@@ -51,11 +51,7 @@
import java.util.function.Predicate;
import java.util.function.UnaryOperator;
-// BEGIN android-note
-// removed link to collections framework docs
-// fixed framework docs link to "Collection#optional"
-// END android-note
-
+// Android-changed: Removed javadoc link to collections framework docs
/**
* A thread-safe variant of {@link java.util.ArrayList} in which all mutative
* operations ({@code add}, {@code set}, and so on) are implemented by
@@ -100,22 +96,21 @@
final transient Object lock = new Object();
/** The array, accessed only via getArray/setArray. */
- // Android-changed: renamed array -> elements for backwards compatibility b/33916927
- private transient volatile Object[] elements;
+ private transient volatile Object[] array;
/**
* Gets the array. Non-private so as to also be accessible
* from CopyOnWriteArraySet class.
*/
final Object[] getArray() {
- return elements;
+ return array;
}
/**
* Sets the array.
*/
final void setArray(Object[] a) {
- elements = a;
+ array = a;
}
/**
diff --git a/ojluni/src/main/native/linux_close.cpp b/ojluni/src/main/native/linux_close.cpp
index 5b48292..baef240 100644
--- a/ojluni/src/main/native/linux_close.cpp
+++ b/ojluni/src/main/native/linux_close.cpp
@@ -47,8 +47,7 @@
#include <poll.h>
#endif
-
-#include <nativehelper/AsynchronousCloseMonitor.h>
+#include <AsynchronousCloseMonitor.h>
extern "C" {