1# TODO(user,user): Resolve cycles
2
3NAMESPACE com.google.common.collect.testing
4NAMESPACE com.google.common.collect.testing.google
5NAMESPACE com.google.common.escape
6NAMESPACE com.google.common.escape.testing
7NAMESPACE com.google.common.io
8NAMESPACE com.google.common.net
9NAMESPACE com.google.common.testing
10
11# Allow our dependencies for now.
12NAMESPACE junit.framework
13NAMESPACE org.junit
14
15# ***** REAL CYCLES *****
16# Cycle exists until future completes
17FIELD com.google.common.util.concurrent.AbstractFuture.Listener.executor com.google.common.util.concurrent.ExecutionSequencer.TaskNonReentrantExecutor
18
19# ***** FALSE POSITIVES *****
20
21# The Runnable type is so generic that it produces too many false positives.
22TYPE java.lang.Runnable
23
24FIELD com.google.common.base.Converter.reverse
25FIELD com.google.common.collect.AbstractBiMap.EntrySet.iterator.$.entry com.google.common.collect.AbstractBiMap.EntrySet.iterator.$.next.$
26FIELD com.google.common.collect.AbstractMapBasedMultimap.map
27FIELD com.google.common.collect.AbstractMultimap.asMap com.google.common.collect.AbstractMapBasedMultimap.NavigableAsMap
28FIELD com.google.common.collect.AbstractMultimap.values com.google.common.collect.LinkedListMultimap.get.$
29FIELD com.google.common.collect.AbstractMultimap.values com.google.common.collect.Multimaps.MapMultimap.get.$
30FIELD com.google.common.collect.AbstractMultiset.entrySet com.google.common.collect.FilteredEntryMultimap.Keys.entrySet.$
31FIELD com.google.common.collect.ConcurrentHashMultiset.countMap
32FIELD com.google.common.collect.ImmutableMultiset.asList
33FIELD com.google.common.collect.ImmutableRangeMap.ranges
34FIELD com.google.common.collect.ImmutableRangeSet.ranges
35FIELD com.google.common.collect.ImmutableSet.asList
36FIELD com.google.common.collect.Maps.FilteredMapValues.unfiltered
37FIELD com.google.common.collect.Sets.SubSet.inputSet
38FIELD com.google.common.collect.SingletonImmutableBiMap.inverse
39FIELD com.google.common.collect.TreeTraverser.PostOrderNode.childIterator
40FIELD com.google.common.collect.TreeTraverser.PreOrderIterator.stack
41FIELD com.google.common.util.concurrent.AbstractFuture.Listener.executor com.google.common.util.concurrent.MoreExecutors.rejectionPropagatingExecutor.$
42FIELD com.google.common.util.concurrent.AbstractService.listeners
43# NonReentrantExecutor is not exposed to this field
44FIELD com.google.common.util.concurrent.ExecutionSequencer.ThreadConfinedTaskQueue.nextExecutor com.google.common.util.concurrent.ExecutionSequencer.TaskNonReentrantExecutor
45# Real cycle, but the runningState field is null'ed on completion of the future.
46FIELD com.google.common.util.concurrent.AggregateFuture.runningState
47FIELD java.util.AbstractMap.keySet com.google.common.collect.AbstractMapBasedMultimap.NavigableKeySet
48FIELD java.util.AbstractMap.keySet com.google.common.collect.Maps.FilteredEntryNavigableMap.navigableKeySet.$
49FIELD java.util.AbstractMap.keySet com.google.common.collect.TreeRangeMap.SubRangeMap.SubRangeMapAsMap.keySet.$
50FIELD java.util.AbstractMap.values com.google.common.collect.TreeRangeMap.SubRangeMap.SubRangeMapAsMap.values.$
51OUTER com.google.common.collect.StandardTable.Row
52OUTER com.google.common.collect.TreeBasedTable.TreeRow
53