TYPE java.util.logging.LogManager  # Long lived.
TYPE java.security.Provider        # Long lived.

# There is only one ClassLoader instance on iOS.
TYPE java.lang.ClassLoader

# Breaks several false cycles.
FIELD java.lang.Throwable.suppressedExceptions

FIELD java.io.ObjectOutputStream.currentPutField

# The following are fixed using WeakProxy.
FIELD java.io.PrintStream.charOut
FIELD java.io.PrintStream.formatter
FIELD java.io.PrintWriter.formatter

TYPE java.net.InetAddress.isReachable.$
FIELD java.net.NetworkInterface.children

FIELD java.util.HashSet.map
FIELD java.util.TreeSet.m

FIELD java.util.concurrent.CompletableFuture.TaskSubmitter.executor
FIELD java.util.concurrent.CompletableFuture.UniCompletion.executor
FIELD java.util.concurrent.CompletableFuture.UniCompletion.dep
FIELD java.util.concurrent.CompletableFuture.UniCompletion.src
FIELD java.util.concurrent.CompletableFuture.BiCompletion.snd
FIELD java.util.concurrent.ConcurrentHashMap.CollectionView.map
FIELD java.util.concurrent.ConcurrentSkipListSet.m
FIELD java.util.concurrent.ForkJoinWorkerThread.pool
FIELD java.util.concurrent.Phaser.QNode.phaser
FIELD java.util.concurrent.ThreadPoolExecutor.workers
FIELD java.util.concurrent.ThreadPoolExecutor.workQueue

# False positive triggered by java.lang.reflect.WeakCache
FIELD java.util.concurrent.ConcurrentHashMap.KeySetView.value java.util.concurrent.ConcurrentHashMap

FIELD java.util.logging.LogManager.LogNode.children

FIELD java.util.stream.AbstractTask.leftChild
FIELD java.util.stream.AbstractTask.rightChild
# Tasks remove themself from completionMap upon completion.
FIELD java.util.stream.ForEachOps.ForEachOrderedTask.completionMap
FIELD java.util.stream.Nodes.AbstractConcNode.left
FIELD java.util.stream.Nodes.AbstractConcNode.right
FIELD java.util.stream.Nodes.InternalNodeSpliterator.lastNodeSpliterator
FIELD java.util.stream.Nodes.InternalNodeSpliterator.tryAdvanceSpliterator
# Spliterators use a chaining pattern which causes plenty of false cycles.
FIELD java.util.stream.StreamSpliterators.DelegatingSpliterator.s
FIELD java.util.stream.StreamSpliterators.SliceSpliterator.s
FIELD java.util.stream.StreamSpliterators.UnorderedSliceSpliterator.s
FIELD java.util.stream.Streams.ConcatSpliterator.aSpliterator
FIELD java.util.stream.Streams.ConcatSpliterator.bSpliterator

# streams is a WeakHashMap.
FIELD java.util.zip.ZipFile.streams

# mActive always refers to the active task and is cleared/reassigned upon completion.
FIELD android.internal.AsyncTask.SerialExecutor.mActive

# These thread fields are cleared when the thread finishes, regardless of any exceptions.
FIELD java.lang.Thread.interruptActions
FIELD java.lang.Thread.uncaughtExceptionHandler

# libcore.reflect false positives.
FIELD libcore.reflect.ParameterizedTypeImpl.args
FIELD libcore.reflect.TypeVariableImpl.bounds
FIELD libcore.reflect.TypeVariableImpl.declOfVarUser
FIELD libcore.reflect.TypeVariableImpl.genericDeclaration
FIELD libcore.reflect.WildcardTypeImpl.extendsBound
FIELD libcore.reflect.WildcardTypeImpl.superBound

# These types are adapters of each other. If the cycle was created then a stack
# overflow would be a larger problem then the memory leak.
FIELD org.xml.sax.helpers.ParserAdapter.contentHandler org.xml.sax.helpers.XMLReaderAdapter
FIELD org.xml.sax.helpers.ParserAdapter.parser org.xml.sax.helpers.XMLReaderAdapter
FIELD org.xml.sax.helpers.XMLReaderAdapter.AttributesAdapter.attributes org.xml.sax.helpers.ParserAdapter.AttributeListAdapter

FIELD org.apache.harmony.xml.dom.InnerNodeImpl.children

# Types that aren't actually in jre_emul.
TYPE sun.misc.URLClassPath

# False positive: sinceDate's value is privately created and owned.
FIELD sun.util.calendar.Era.sinceDate

# False positive: both fields are set only during construction.
FIELD sun.nio.ch.ChannelInputStream.ch
FIELD sun.nio.ch.UnixAsynchronousServerSocketChannelImpl.port
FIELD sun.nio.ch.UnixAsynchronousSocketChannelImpl.port

# TODO(kstanger,tball): Resolve these cycles.
NAMESPACE org.xml

# False positives in android.icu.
FIELD android.icu.impl.CharacterIteratorWrapper.iterator android.icu.impl.UCharacterIteratorWrapper
FIELD android.icu.impl.JavaTimeZone.javacal
FIELD android.icu.impl.JavaTimeZone.javatz android.icu.impl.TimeZoneAdapter
FIELD android.icu.text.MessageFormat.stockDateFormatter
FIELD android.icu.text.NFRule.rulePatternFormat
FIELD android.icu.text.UnicodeSet.stringSpan
TYPE android.icu.impl.UCharacterProperty.$

# False positives in java.time.
FIELD java.time.zone.IcuZoneRulesProvider.cache

# False positive, described in b/241576735.
NAMESPACE com.google.protobuf
