--- guava-19.0.orig/guava/src/com/google/common/cache/LocalCache.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/cache/LocalCache.java	2016-05-19 09:30:49.310740801 -0500
@@ -50,8 +50,6 @@
 import com.google.common.util.concurrent.SettableFuture;
 import com.google.common.util.concurrent.UncheckedExecutionException;
 import com.google.common.util.concurrent.Uninterruptibles;
-import com.google.j2objc.annotations.Weak;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -2011,7 +2009,7 @@
      * comments.
      */
 
-    @Weak final LocalCache<K, V> map;
+    final LocalCache<K, V> map;
 
     /**
      * The number of live elements in this segment's region.
@@ -4450,7 +4448,7 @@
   }
 
   abstract class AbstractCacheSet<T> extends AbstractSet<T> {
-    @Weak final ConcurrentMap<?, ?> map;
+    final ConcurrentMap<?, ?> map;
 
     AbstractCacheSet(ConcurrentMap<?, ?> map) {
       this.map = map;
@@ -4492,7 +4490,6 @@
     return result;
   }
 
-  @WeakOuter
   final class KeySet extends AbstractCacheSet<K> {
 
     KeySet(ConcurrentMap<?, ?> map) {
@@ -4515,7 +4512,6 @@
     }
   }
 
-  @WeakOuter
   final class Values extends AbstractCollection<V> {
     private final ConcurrentMap<?, ?> map;
 
@@ -4559,7 +4555,6 @@
     }
   }
 
-  @WeakOuter
   final class EntrySet extends AbstractCacheSet<Entry<K, V>> {
 
     EntrySet(ConcurrentMap<?, ?> map) {
--- guava-19.0.orig/guava/src/com/google/common/collect/AbstractBiMap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/AbstractBiMap.java	2016-05-19 09:33:34.006463421 -0500
@@ -23,7 +23,6 @@
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.annotations.GwtIncompatible;
 import com.google.common.base.Objects;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -189,7 +188,6 @@
     return (result == null) ? keySet = new KeySet() : result;
   }
 
-  @WeakOuter
   private class KeySet extends ForwardingSet<K> {
     @Override
     protected Set<K> delegate() {
@@ -238,7 +236,6 @@
     return (result == null) ? valueSet = new ValueSet() : result;
   }
 
-  @WeakOuter
   private class ValueSet extends ForwardingSet<V> {
     final Set<V> valuesDelegate = inverse.keySet();
 
@@ -276,7 +273,6 @@
     return (result == null) ? entrySet = new EntrySet() : result;
   }
 
-  @WeakOuter
   private class EntrySet extends ForwardingSet<Entry<K, V>> {
     final Set<Entry<K, V>> esDelegate = delegate.entrySet();
 
--- guava-19.0.orig/guava/src/com/google/common/collect/AbstractMapBasedMultimap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/AbstractMapBasedMultimap.java	2016-05-19 09:37:32.765430189 -0500
@@ -23,7 +23,6 @@
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.annotations.GwtIncompatible;
 import com.google.common.collect.Maps.ViewCachingAbstractMap;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.Serializable;
 import java.util.AbstractCollection;
@@ -351,7 +350,6 @@
    * removeIfEmpty}, and {@code addToMap} methods call the corresponding methods
    * of the full wrapped collection.
    */
-  @WeakOuter
   private class WrappedCollection extends AbstractCollection<V> {
     final K key;
     Collection<V> delegate;
@@ -611,7 +609,6 @@
   }
 
   /** Set decorator that stays in sync with the multimap values for a key. */
-  @WeakOuter
   private class WrappedSet extends WrappedCollection implements Set<V> {
     WrappedSet(@Nullable K key, Set<V> delegate) {
       super(key, delegate, null);
@@ -640,7 +637,6 @@
   /**
    * SortedSet decorator that stays in sync with the multimap values for a key.
    */
-  @WeakOuter
   private class WrappedSortedSet extends WrappedCollection implements SortedSet<V> {
     WrappedSortedSet(@Nullable K key, SortedSet<V> delegate, @Nullable WrappedCollection ancestor) {
       super(key, delegate, ancestor);
@@ -696,7 +692,6 @@
   }
 
   @GwtIncompatible("NavigableSet")
-  @WeakOuter
   class WrappedNavigableSet extends WrappedSortedSet implements NavigableSet<V> {
     WrappedNavigableSet(
         @Nullable K key, NavigableSet<V> delegate, @Nullable WrappedCollection ancestor) {
@@ -771,7 +766,6 @@
   }
 
   /** List decorator that stays in sync with the multimap values for a key. */
-  @WeakOuter
   private class WrappedList extends WrappedCollection implements List<V> {
     WrappedList(@Nullable K key, List<V> delegate, @Nullable WrappedCollection ancestor) {
       super(key, delegate, ancestor);
@@ -932,7 +926,6 @@
         : new KeySet(map);
   }
 
-  @WeakOuter
   private class KeySet extends Maps.KeySet<K, Collection<V>> {
     KeySet(final Map<K, Collection<V>> subMap) {
       super(subMap);
@@ -1001,7 +994,6 @@
     }
   }
 
-  @WeakOuter
   private class SortedKeySet extends KeySet implements SortedSet<K> {
 
     SortedKeySet(SortedMap<K, Collection<V>> subMap) {
@@ -1044,7 +1036,6 @@
   }
 
   @GwtIncompatible("NavigableSet")
-  @WeakOuter
   class NavigableKeySet extends SortedKeySet implements NavigableSet<K> {
     NavigableKeySet(NavigableMap<K, Collection<V>> subMap) {
       super(subMap);
@@ -1254,7 +1245,6 @@
         : new AsMap(map);
   }
 
-  @WeakOuter
   private class AsMap extends ViewCachingAbstractMap<K, Collection<V>> {
     /**
      * Usually the same as map, but smaller for the headMap(), tailMap(), or
@@ -1342,7 +1332,6 @@
       return Maps.immutableEntry(key, wrapCollection(key, entry.getValue()));
     }
 
-    @WeakOuter
     class AsMapEntries extends Maps.EntrySet<K, Collection<V>> {
       @Override
       Map<K, Collection<V>> map() {
@@ -1398,7 +1387,6 @@
     }
   }
 
-  @WeakOuter
   private class SortedAsMap extends AsMap implements SortedMap<K, Collection<V>> {
     SortedAsMap(SortedMap<K, Collection<V>> submap) {
       super(submap);
--- guava-19.0.orig/guava/src/com/google/common/collect/AbstractMultimap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/AbstractMultimap.java	2016-05-19 09:39:54.462215607 -0500
@@ -19,7 +19,6 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 
 import com.google.common.annotations.GwtCompatible;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.AbstractCollection;
 import java.util.Collection;
@@ -117,7 +116,6 @@
     }
   }
 
-  @WeakOuter
   private class Entries extends Multimaps.Entries<K, V> {
     @Override
     Multimap<K, V> multimap() {
@@ -130,7 +128,6 @@
     }
   }
 
-  @WeakOuter
   private class EntrySet extends Entries implements Set<Entry<K, V>> {
     @Override
     public int hashCode() {
@@ -181,7 +178,6 @@
     return new Values();
   }
 
-  @WeakOuter
   class Values extends AbstractCollection<V> {
     @Override
     public Iterator<V> iterator() {
--- guava-19.0.orig/guava/src/com/google/common/collect/AbstractMultiset.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/AbstractMultiset.java	2016-05-19 09:41:07.505506888 -0500
@@ -20,7 +20,6 @@
 
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.base.Objects;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.AbstractCollection;
 import java.util.Collection;
@@ -160,7 +159,6 @@
     return new ElementSet();
   }
 
-  @WeakOuter
   class ElementSet extends Multisets.ElementSet<E> {
     @Override
     Multiset<E> multiset() {
@@ -183,7 +181,6 @@
     return result;
   }
 
-  @WeakOuter
   class EntrySet extends Multisets.EntrySet<E> {
     @Override
     Multiset<E> multiset() {
--- guava-19.0.orig/guava/src/com/google/common/collect/AbstractSortedMultiset.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/AbstractSortedMultiset.java	2016-05-19 09:43:28.125675391 -0500
@@ -17,7 +17,6 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 
 import com.google.common.annotations.GwtCompatible;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.Comparator;
 import java.util.Iterator;
@@ -126,7 +125,6 @@
   }
 
   SortedMultiset<E> createDescendingMultiset() {
-    @WeakOuter
     class DescendingMultisetImpl extends DescendingMultiset<E> {
       @Override
       SortedMultiset<E> forwardMultiset() {
--- guava-19.0.orig/guava/src/com/google/common/collect/AbstractTable.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/AbstractTable.java	2016-05-19 09:44:47.208687572 -0500
@@ -15,7 +15,6 @@
 package com.google.common.collect;
 
 import com.google.common.annotations.GwtCompatible;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.AbstractCollection;
 import java.util.AbstractSet;
@@ -118,7 +117,6 @@
 
   abstract Iterator<Table.Cell<R, C, V>> cellIterator();
 
-  @WeakOuter
   class CellSet extends AbstractSet<Cell<R, C, V>> {
     @Override
     public boolean contains(Object o) {
@@ -181,7 +179,6 @@
     };
   }
 
-  @WeakOuter
   class Values extends AbstractCollection<V> {
     @Override
     public Iterator<V> iterator() {
--- guava-19.0.orig/guava/src/com/google/common/collect/ArrayTable.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/ArrayTable.java	2016-05-19 09:45:50.129113305 -0500
@@ -25,7 +25,6 @@
 import com.google.common.annotations.GwtIncompatible;
 import com.google.common.base.Objects;
 import com.google.common.collect.Maps.IteratorBasedAbstractMap;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.Serializable;
 import java.lang.reflect.Array;
@@ -627,7 +626,6 @@
     return (map == null) ? columnMap = new ColumnMap() : map;
   }
 
-  @WeakOuter
   private class ColumnMap extends ArrayMap<C, Map<R, V>> {
     private ColumnMap() {
       super(columnKeyToIndex);
@@ -717,7 +715,6 @@
     return (map == null) ? rowMap = new RowMap() : map;
   }
 
-  @WeakOuter
   private class RowMap extends ArrayMap<R, Map<C, V>> {
     private RowMap() {
       super(rowKeyToIndex);
--- guava-19.0.orig/guava/src/com/google/common/collect/ConcurrentHashMultiset.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/ConcurrentHashMultiset.java	2016-05-19 09:47:18.861679573 -0500
@@ -26,7 +26,6 @@
 import com.google.common.collect.Serialization.FieldSetter;
 import com.google.common.math.IntMath;
 import com.google.common.primitives.Ints;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -553,7 +552,6 @@
     countMap.clear();
   }
 
-  @WeakOuter
   private class EntrySet extends AbstractMultiset<E>.EntrySet {
     @Override
     ConcurrentHashMultiset<E> multiset() {
--- guava-19.0.orig/guava/src/com/google/common/collect/DenseImmutableTable.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/DenseImmutableTable.java	2016-05-19 09:48:37.121396465 -0500
@@ -18,7 +18,6 @@
 
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.collect.ImmutableMap.IteratorBasedImmutableMap;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.Map;
 import java.util.Map.Entry;
@@ -183,7 +182,6 @@
     }
   }
 
-  @WeakOuter
   private final class RowMap extends ImmutableArrayMap<R, Map<C, V>> {
     private RowMap() {
       super(rowCounts.length);
@@ -205,7 +203,6 @@
     }
   }
 
-  @WeakOuter
   private final class ColumnMap extends ImmutableArrayMap<C, Map<R, V>> {
     private ColumnMap() {
       super(columnCounts.length);
--- guava-19.0.orig/guava/src/com/google/common/collect/DescendingMultiset.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/DescendingMultiset.java	2016-05-19 09:49:37.685264430 -0500
@@ -17,7 +17,6 @@
 package com.google.common.collect;
 
 import com.google.common.annotations.GwtCompatible;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.Comparator;
 import java.util.Iterator;
@@ -115,7 +114,6 @@
   }
 
   Set<Entry<E>> createEntrySet() {
-    @WeakOuter
     class EntrySetImpl extends Multisets.EntrySet<E> {
       @Override
       Multiset<E> multiset() {
--- guava-19.0.orig/guava/src/com/google/common/collect/FilteredEntryMultimap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/FilteredEntryMultimap.java	2016-05-19 09:51:16.544029425 -0500
@@ -25,7 +25,6 @@
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Predicate;
 import com.google.common.collect.Maps.ViewCachingAbstractMap;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -165,7 +164,6 @@
     return changed;
   }
 
-  @WeakOuter
   class AsMap extends ViewCachingAbstractMap<K, Collection<V>> {
     @Override
     public boolean containsKey(@Nullable Object key) {
@@ -217,7 +215,6 @@
 
     @Override
     Set<K> createKeySet() {
-      @WeakOuter
       class KeySetImpl extends Maps.KeySet<K, Collection<V>> {
         KeySetImpl() {
           super(AsMap.this);
@@ -243,7 +240,6 @@
 
     @Override
     Set<Entry<K, Collection<V>>> createEntrySet() {
-      @WeakOuter
       class EntrySetImpl extends Maps.EntrySet<K, Collection<V>> {
         @Override
         Map<K, Collection<V>> map() {
@@ -292,7 +288,6 @@
 
     @Override
     Collection<Collection<V>> createValues() {
-      @WeakOuter
       class ValuesImpl extends Maps.Values<K, Collection<V>> {
         ValuesImpl() {
           super(AsMap.this);
@@ -341,7 +336,6 @@
     return new Keys();
   }
 
-  @WeakOuter
   class Keys extends Multimaps.Keys<K, V> {
     Keys() {
       super(FilteredEntryMultimap.this);
--- guava-19.0.orig/guava/src/com/google/common/collect/FilteredKeyMultimap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/FilteredKeyMultimap.java	2016-05-19 09:52:20.991051280 -0500
@@ -19,7 +19,6 @@
 
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.base.Predicate;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -181,7 +180,6 @@
     return new Entries();
   }
 
-  @WeakOuter
   class Entries extends ForwardingCollection<Entry<K, V>> {
     @Override
     protected Collection<Entry<K, V>> delegate() {
--- guava-19.0.orig/guava/src/com/google/common/collect/FilteredMultimapValues.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/FilteredMultimapValues.java	2016-05-19 09:53:28.564595322 -0500
@@ -20,7 +20,6 @@
 import com.google.common.base.Objects;
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
-import com.google.j2objc.annotations.Weak;
 
 import java.util.AbstractCollection;
 import java.util.Collection;
@@ -37,7 +36,7 @@
  */
 @GwtCompatible
 final class FilteredMultimapValues<K, V> extends AbstractCollection<V> {
-  @Weak private final FilteredMultimap<K, V> multimap;
+  private final FilteredMultimap<K, V> multimap;
 
   FilteredMultimapValues(FilteredMultimap<K, V> multimap) {
     this.multimap = checkNotNull(multimap);
--- guava-19.0.orig/guava/src/com/google/common/collect/HashBiMap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/HashBiMap.java	2016-05-19 09:54:43.367805276 -0500
@@ -23,7 +23,6 @@
 import com.google.common.annotations.GwtIncompatible;
 import com.google.common.base.Objects;
 import com.google.common.collect.Maps.IteratorBasedAbstractMap;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -428,7 +427,6 @@
     return new KeySet();
   }
 
-  @WeakOuter
   private final class KeySet extends Maps.KeySet<K, V> {
     KeySet() {
       super(HashBiMap.this);
@@ -578,7 +576,6 @@
       return new InverseKeySet();
     }
 
-    @WeakOuter
     private final class InverseKeySet extends Maps.KeySet<V, K> {
       InverseKeySet() {
         super(Inverse.this);
--- guava-19.0.orig/guava/src/com/google/common/collect/ImmutableMap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/ImmutableMap.java	2016-05-19 09:56:07.560581331 -0500
@@ -22,7 +22,6 @@
 
 import com.google.common.annotations.Beta;
 import com.google.common.annotations.GwtCompatible;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.Serializable;
 import java.util.Arrays;
@@ -371,7 +370,6 @@
 
     @Override
     ImmutableSet<Entry<K, V>> createEntrySet() {
-      @WeakOuter
       class EntrySetImpl extends ImmutableMapEntrySet<K, V> {
         @Override
         ImmutableMap<K, V> map() {
@@ -533,7 +531,6 @@
         : result;
   }
 
-  @WeakOuter
   private final class MapViewOfValuesAsSingletonSets
       extends IteratorBasedImmutableMap<K, ImmutableSet<V>> {
 
--- guava-19.0.orig/guava/src/com/google/common/collect/ImmutableMapEntrySet.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/ImmutableMapEntrySet.java	2016-05-19 09:57:20.973855515 -0500
@@ -18,7 +18,6 @@
 
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.annotations.GwtIncompatible;
-import com.google.j2objc.annotations.Weak;
 
 import java.io.Serializable;
 import java.util.Map.Entry;
@@ -34,7 +33,7 @@
 @GwtCompatible(emulated = true)
 abstract class ImmutableMapEntrySet<K, V> extends ImmutableSet<Entry<K, V>> {
   static final class RegularEntrySet<K, V> extends ImmutableMapEntrySet<K, V> {
-    @Weak private final transient ImmutableMap<K, V> map;
+    private final transient ImmutableMap<K, V> map;
     private final transient Entry<K, V>[] entries;
 
     RegularEntrySet(ImmutableMap<K, V> map, Entry<K, V>[] entries) {
--- guava-19.0.orig/guava/src/com/google/common/collect/ImmutableMapKeySet.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/ImmutableMapKeySet.java	2016-05-19 09:59:26.654714374 -0500
@@ -18,7 +18,6 @@
 
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.annotations.GwtIncompatible;
-import com.google.j2objc.annotations.Weak;
 
 import java.io.Serializable;
 
@@ -32,7 +31,7 @@
  */
 @GwtCompatible(emulated = true)
 final class ImmutableMapKeySet<K, V> extends ImmutableSet.Indexed<K> {
-  @Weak private final ImmutableMap<K, V> map;
+  private final ImmutableMap<K, V> map;
 
   ImmutableMapKeySet(ImmutableMap<K, V> map) {
     this.map = map;
--- guava-19.0.orig/guava/src/com/google/common/collect/ImmutableMapValues.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/ImmutableMapValues.java	2016-05-19 10:00:24.462043054 -0500
@@ -18,7 +18,6 @@
 
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.annotations.GwtIncompatible;
-import com.google.j2objc.annotations.Weak;
 
 import java.io.Serializable;
 import java.util.Map.Entry;
@@ -33,7 +32,7 @@
  */
 @GwtCompatible(emulated = true)
 final class ImmutableMapValues<K, V> extends ImmutableCollection<V> {
-  @Weak private final ImmutableMap<K, V> map;
+  private final ImmutableMap<K, V> map;
 
   ImmutableMapValues(ImmutableMap<K, V> map) {
     this.map = map;
--- guava-19.0.orig/guava/src/com/google/common/collect/ImmutableMultimap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/ImmutableMultimap.java	2016-05-19 10:02:28.049665310 -0500
@@ -22,8 +22,6 @@
 import com.google.common.annotations.Beta;
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.annotations.GwtIncompatible;
-import com.google.j2objc.annotations.Weak;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.Serializable;
 import java.util.Arrays;
@@ -514,7 +512,7 @@
   }
 
   private static class EntryCollection<K, V> extends ImmutableCollection<Entry<K, V>> {
-    @Weak final ImmutableMultimap<K, V> multimap;
+    final ImmutableMultimap<K, V> multimap;
 
     EntryCollection(ImmutableMultimap<K, V> multimap) {
       this.multimap = multimap;
@@ -596,7 +594,6 @@
   }
 
   @SuppressWarnings("serial") // Uses writeReplace, not default serialization
-  @WeakOuter
   class Keys extends ImmutableMultiset<K> {
     @Override
     public boolean contains(@Nullable Object object) {
@@ -657,7 +654,7 @@
   }
 
   private static final class Values<K, V> extends ImmutableCollection<V> {
-    @Weak private final transient ImmutableMultimap<K, V> multimap;
+    private final transient ImmutableMultimap<K, V> multimap;
 
     Values(ImmutableMultimap<K, V> multimap) {
       this.multimap = multimap;
--- guava-19.0.orig/guava/src/com/google/common/collect/ImmutableMultiset.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/ImmutableMultiset.java	2016-05-19 10:03:33.903288831 -0500
@@ -21,7 +21,6 @@
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.annotations.GwtIncompatible;
 import com.google.common.collect.Multiset.Entry;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.Serializable;
 import java.util.Arrays;
@@ -317,7 +316,6 @@
 
   abstract Entry<E> getEntry(int index);
 
-  @WeakOuter
   private final class EntrySet extends ImmutableSet.Indexed<Entry<E>> {
     @Override
     boolean isPartialView() {
--- guava-19.0.orig/guava/src/com/google/common/collect/ImmutableSetMultimap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/ImmutableSetMultimap.java	2016-05-19 10:04:36.077082400 -0500
@@ -22,7 +22,6 @@
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.annotations.GwtIncompatible;
 import com.google.common.base.MoreObjects;
-import com.google.j2objc.annotations.Weak;
 
 import java.io.IOException;
 import java.io.InvalidObjectException;
@@ -430,7 +429,7 @@
   }
 
   private static final class EntrySet<K, V> extends ImmutableSet<Entry<K, V>> {
-    @Weak private final transient ImmutableSetMultimap<K, V> multimap;
+    private final transient ImmutableSetMultimap<K, V> multimap;
 
     EntrySet(ImmutableSetMultimap<K, V> multimap) {
       this.multimap = multimap;
--- guava-19.0.orig/guava/src/com/google/common/collect/ImmutableSortedMap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/ImmutableSortedMap.java	2016-05-19 10:06:02.496422230 -0500
@@ -24,7 +24,6 @@
 import com.google.common.annotations.Beta;
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.collect.ImmutableMap.Builder;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.Arrays;
 import java.util.Comparator;
@@ -546,7 +545,6 @@
 
   @Override
   ImmutableSet<Entry<K, V>> createEntrySet() {
-    @WeakOuter
     class EntrySet extends ImmutableMapEntrySet<K, V> {
       @Override
       public UnmodifiableIterator<Entry<K, V>> iterator() {
--- guava-19.0.orig/guava/src/com/google/common/collect/LinkedHashMultimap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/LinkedHashMultimap.java	2016-05-19 10:07:37.708689066 -0500
@@ -23,7 +23,6 @@
 import com.google.common.annotations.GwtIncompatible;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Objects;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -304,7 +303,6 @@
   }
 
   @VisibleForTesting
-  @WeakOuter
   final class ValueSet extends Sets.ImprovedAbstractSet<V> implements ValueSetLink<K, V> {
     /*
      * We currently use a fixed load factor of 1.0, a bit higher than normal to reduce memory
--- guava-19.0.orig/guava/src/com/google/common/collect/LinkedListMultimap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/LinkedListMultimap.java	2016-05-19 10:09:24.760408792 -0500
@@ -23,7 +23,6 @@
 
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.annotations.GwtIncompatible;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -698,7 +697,6 @@
 
   @Override
   Set<K> createKeySet() {
-    @WeakOuter
     class KeySetImpl extends Sets.ImprovedAbstractSet<K> {
       @Override
       public int size() {
@@ -739,7 +737,6 @@
 
   @Override
   List<V> createValues() {
-    @WeakOuter
     class ValuesImpl extends AbstractSequentialList<V> {
       @Override
       public int size() {
@@ -790,7 +787,6 @@
 
   @Override
   List<Entry<K, V>> createEntries() {
-    @WeakOuter
     class EntriesImpl extends AbstractSequentialList<Entry<K, V>> {
       @Override
       public int size() {
--- guava-19.0.orig/guava/src/com/google/common/collect/MapConstraints.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/MapConstraints.java	2016-05-19 10:10:41.436865515 -0500
@@ -20,7 +20,6 @@
 
 import com.google.common.annotations.Beta;
 import com.google.common.annotations.GwtCompatible;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.Serializable;
 import java.util.Collection;
@@ -438,7 +437,6 @@
       if (result == null) {
         final Map<K, Collection<V>> asMapDelegate = delegate.asMap();
 
-        @WeakOuter
         class AsMap extends ForwardingMap<K, Collection<V>> {
           Set<Entry<K, Collection<V>>> entrySet;
           Collection<Collection<V>> values;
--- guava-19.0.orig/guava/src/com/google/common/collect/MapMakerInternalMap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/MapMakerInternalMap.java	2016-05-19 10:12:40.778017337 -0500
@@ -25,8 +25,6 @@
 import com.google.common.collect.MapMaker.RemovalListener;
 import com.google.common.collect.MapMaker.RemovalNotification;
 import com.google.common.primitives.Ints;
-import com.google.j2objc.annotations.Weak;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -2023,7 +2021,7 @@
      * comments.
      */
 
-    @Weak final MapMakerInternalMap<K, V> map;
+    final MapMakerInternalMap<K, V> map;
 
     /**
      * The number of live elements in this segment's region. This does not include unset elements
@@ -3784,7 +3782,6 @@
     }
   }
 
-  @WeakOuter
   final class KeySet extends SafeToArraySet<K> {
 
     @Override
@@ -3818,7 +3815,6 @@
     }
   }
 
-  @WeakOuter
   final class Values extends AbstractCollection<V> {
 
     @Override
@@ -3860,7 +3856,6 @@
     }
   }
 
-  @WeakOuter
   final class EntrySet extends SafeToArraySet<Entry<K, V>> {
 
     @Override
--- guava-19.0.orig/guava/src/com/google/common/collect/Maps.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/Maps.java	2016-05-19 10:15:32.973393392 -0500
@@ -37,8 +37,6 @@
 import com.google.common.base.Predicates;
 import com.google.common.collect.MapDifference.ValueDifference;
 import com.google.common.primitives.Ints;
-import com.google.j2objc.annotations.Weak;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.Serializable;
 import java.util.AbstractCollection;
@@ -826,7 +824,6 @@
 
     @Override
     protected Set<Entry<K, V>> createEntrySet() {
-      @WeakOuter
       class EntrySetImpl extends EntrySet<K, V> {
         @Override
         Map<K, V> map() {
@@ -2797,7 +2794,6 @@
       return new EntrySet();
     }
 
-    @WeakOuter
     private class EntrySet extends ForwardingSet<Entry<K, V>> {
       @Override
       protected Set<Entry<K, V>> delegate() {
@@ -2831,7 +2827,6 @@
       return new KeySet();
     }
 
-    @WeakOuter
     class KeySet extends Maps.KeySet<K, V> {
       KeySet() {
         super(FilteredEntryMap.this);
@@ -2907,7 +2902,6 @@
       return new SortedKeySet();
     }
 
-    @WeakOuter
     class SortedKeySet extends KeySet implements SortedSet<K> {
       @Override
       public Comparator<? super K> comparator() {
@@ -3611,7 +3605,7 @@
   }
 
   static class KeySet<K, V> extends Sets.ImprovedAbstractSet<K> {
-    @Weak final Map<K, V> map;
+    final Map<K, V> map;
 
     KeySet(Map<K, V> map) {
       this.map = checkNotNull(map);
@@ -3791,7 +3785,7 @@
   }
 
   static class Values<K, V> extends AbstractCollection<V> {
-    @Weak final Map<K, V> map;
+    final Map<K, V> map;
 
     Values(Map<K, V> map) {
       this.map = checkNotNull(map);
@@ -4056,7 +4050,6 @@
     abstract Iterator<Entry<K, V>> entryIterator();
 
     Set<Entry<K, V>> createEntrySet() {
-      @WeakOuter
       class EntrySetImpl extends EntrySet<K, V> {
         @Override
         Map<K, V> map() {
--- guava-19.0.orig/guava/src/com/google/common/collect/MinMaxPriorityQueue.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/MinMaxPriorityQueue.java	2016-05-19 10:16:47.013305285 -0500
@@ -25,8 +25,6 @@
 import com.google.common.annotations.Beta;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.math.IntMath;
-import com.google.j2objc.annotations.Weak;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.AbstractQueue;
 import java.util.ArrayDeque;
@@ -503,10 +501,9 @@
    * array for storage, but for efficiency's sake they are stored interleaved on
    * alternate heap levels in the same array (MMPQ.queue).
    */
-  @WeakOuter
   private class Heap {
     final Ordering<E> ordering;
-    @Weak Heap otherHeap;
+    Heap otherHeap;
 
     Heap(Ordering<E> ordering) {
       this.ordering = ordering;
--- guava-19.0.orig/guava/src/com/google/common/collect/Multimaps.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/Multimaps.java	2016-05-19 10:18:54.680396177 -0500
@@ -28,8 +28,6 @@
 import com.google.common.base.Predicates;
 import com.google.common.base.Supplier;
 import com.google.common.collect.Maps.EntryTransformer;
-import com.google.j2objc.annotations.Weak;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.IOException;
 import java.io.ObjectInputStream;
@@ -1552,7 +1550,7 @@
   }
 
   static class Keys<K, V> extends AbstractMultiset<K> {
-    @Weak final Multimap<K, V> multimap;
+    final Multimap<K, V> multimap;
 
     Keys(Multimap<K, V> multimap) {
       this.multimap = multimap;
@@ -1589,7 +1587,6 @@
       return new KeysEntrySet();
     }
 
-    @WeakOuter
     class KeysEntrySet extends Multisets.EntrySet<K> {
       @Override
       Multiset<K> multiset() {
@@ -1727,7 +1724,7 @@
    * A skeleton implementation of {@link Multimap#asMap()}.
    */
   static final class AsMap<K, V> extends Maps.ViewCachingAbstractMap<K, Collection<V>> {
-    @Weak private final Multimap<K, V> multimap;
+    private final Multimap<K, V> multimap;
 
     AsMap(Multimap<K, V> multimap) {
       this.multimap = checkNotNull(multimap);
@@ -1747,7 +1744,6 @@
       multimap.keySet().remove(key);
     }
 
-    @WeakOuter
     class EntrySet extends Maps.EntrySet<K, Collection<V>> {
       @Override
       Map<K, Collection<V>> map() {
--- guava-19.0.orig/guava/src/com/google/common/collect/RegularImmutableAsList.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/RegularImmutableAsList.java	2016-05-19 10:20:03.737205001 -0500
@@ -18,7 +18,6 @@
 
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.annotations.GwtIncompatible;
-import com.google.j2objc.annotations.Weak;
 
 /**
  * An {@link ImmutableAsList} implementation specialized for when the delegate collection is
@@ -29,7 +28,7 @@
 @GwtCompatible(emulated = true)
 @SuppressWarnings("serial") // uses writeReplace, not default serialization
 class RegularImmutableAsList<E> extends ImmutableAsList<E> {
-  @Weak private final ImmutableCollection<E> delegate;
+  private final ImmutableCollection<E> delegate;
   private final ImmutableList<? extends E> delegateList;
 
   RegularImmutableAsList(ImmutableCollection<E> delegate, ImmutableList<? extends E> delegateList) {
--- guava-19.0.orig/guava/src/com/google/common/collect/RegularImmutableBiMap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/RegularImmutableBiMap.java	2016-05-19 10:21:40.576063324 -0500
@@ -23,7 +23,6 @@
 
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.collect.ImmutableMapEntry.NonTerminalImmutableBiMapEntry;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.Serializable;
 
@@ -206,7 +205,6 @@
       return new InverseEntrySet();
     }
 
-    @WeakOuter
     final class InverseEntrySet extends ImmutableMapEntrySet<V, K> {
       @Override
       ImmutableMap<V, K> map() {
--- guava-19.0.orig/guava/src/com/google/common/collect/RegularImmutableMultiset.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/RegularImmutableMultiset.java	2016-05-19 10:22:42.846519085 -0500
@@ -20,7 +20,6 @@
 import com.google.common.base.Objects;
 import com.google.common.collect.Multisets.ImmutableEntry;
 import com.google.common.primitives.Ints;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.Collection;
 
@@ -141,7 +140,6 @@
     return (result == null) ? elementSet = new ElementSet() : result;
   }
 
-  @WeakOuter
   private final class ElementSet extends ImmutableSet.Indexed<E> {
 
     @Override
--- guava-19.0.orig/guava/src/com/google/common/collect/RegularImmutableTable.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/RegularImmutableTable.java	2016-05-19 10:23:44.100355157 -0500
@@ -18,7 +18,6 @@
 
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.collect.Table.Cell;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.Collections;
 import java.util.Comparator;
@@ -45,7 +44,6 @@
     return isEmpty() ? ImmutableSet.<Cell<R, C, V>>of() : new CellSet();
   }
 
-  @WeakOuter
   private final class CellSet extends ImmutableSet.Indexed<Cell<R, C, V>> {
     @Override
     public int size() {
@@ -80,7 +78,6 @@
     return isEmpty() ? ImmutableList.<V>of() : new Values();
   }
 
-  @WeakOuter
   private final class Values extends ImmutableList<V> {
     @Override
     public int size() {
--- guava-19.0.orig/guava/src/com/google/common/collect/SortedMultisets.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/SortedMultisets.java	2016-05-19 10:24:45.397522561 -0500
@@ -22,7 +22,6 @@
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.annotations.GwtIncompatible;
 import com.google.common.collect.Multiset.Entry;
-import com.google.j2objc.annotations.Weak;
 
 import java.util.Comparator;
 import java.util.Iterator;
@@ -46,7 +45,7 @@
    * A skeleton implementation for {@link SortedMultiset#elementSet}.
    */
   static class ElementSet<E> extends Multisets.ElementSet<E> implements SortedSet<E> {
-    @Weak private final SortedMultiset<E> multiset;
+    private final SortedMultiset<E> multiset;
 
     ElementSet(SortedMultiset<E> multiset) {
       this.multiset = multiset;
--- guava-19.0.orig/guava/src/com/google/common/collect/StandardRowSortedTable.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/StandardRowSortedTable.java	2016-05-19 10:26:10.123607293 -0500
@@ -20,7 +20,6 @@
 
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.base.Supplier;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.Comparator;
 import java.util.Map;
@@ -91,7 +90,6 @@
     return new RowSortedMap();
   }
 
-  @WeakOuter
   private class RowSortedMap extends RowMap implements SortedMap<R, Map<C, V>> {
     @Override
     public SortedSet<R> keySet() {
--- guava-19.0.orig/guava/src/com/google/common/collect/StandardTable.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/StandardTable.java	2016-05-19 10:29:18.411573006 -0500
@@ -31,7 +31,6 @@
 import com.google.common.collect.Maps.IteratorBasedAbstractMap;
 import com.google.common.collect.Maps.ViewCachingAbstractMap;
 import com.google.common.collect.Sets.ImprovedAbstractSet;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.io.Serializable;
 import java.util.Collection;
@@ -199,7 +198,6 @@
    * Abstract set whose {@code isEmpty()} returns whether the table is empty and
    * whose {@code clear()} clears all table mappings.
    */
-  @WeakOuter
   private abstract class TableSet<T> extends ImprovedAbstractSet<T> {
     @Override
     public boolean isEmpty() {
@@ -450,7 +448,6 @@
       return new EntrySet();
     }
 
-    @WeakOuter
     private class EntrySet extends ImprovedAbstractSet<Entry<R, V>> {
       @Override
       public Iterator<Entry<R, V>> iterator() {
@@ -510,7 +507,6 @@
         while (iterator.hasNext()) {
           final Entry<R, Map<C, V>> entry = iterator.next();
           if (entry.getValue().containsKey(columnKey)) {
-            @WeakOuter
             class EntryImpl extends AbstractMapEntry<R, V> {
               @Override
               public R getKey() {
@@ -539,7 +535,6 @@
       return new KeySet();
     }
 
-    @WeakOuter
     private class KeySet extends Maps.KeySet<R, V> {
       KeySet() {
         super(Column.this);
@@ -566,7 +561,6 @@
       return new Values();
     }
 
-    @WeakOuter
     private class Values extends Maps.Values<R, V> {
       Values() {
         super(Column.this);
@@ -611,7 +605,6 @@
     return (result == null) ? columnKeySet = new ColumnKeySet() : result;
   }
 
-  @WeakOuter
   private class ColumnKeySet extends TableSet<C> {
     @Override
     public Iterator<C> iterator() {
@@ -740,7 +733,6 @@
     return new RowMap();
   }
 
-  @WeakOuter
   class RowMap extends ViewCachingAbstractMap<R, Map<C, V>> {
     @Override
     public boolean containsKey(Object key) {
@@ -764,7 +756,6 @@
       return new EntrySet();
     }
 
-    @WeakOuter
     class EntrySet extends TableSet<Entry<R, Map<C, V>>> {
       @Override
       public Iterator<Entry<R, Map<C, V>>> iterator() {
@@ -815,7 +806,6 @@
     return (result == null) ? columnMap = new ColumnMap() : result;
   }
 
-  @WeakOuter
   private class ColumnMap extends ViewCachingAbstractMap<C, Map<R, V>> {
     // The cast to C occurs only when the key is in the map, implying that it
     // has the correct type.
@@ -850,7 +840,6 @@
       return new ColumnMapValues();
     }
 
-    @WeakOuter
     class ColumnMapEntrySet extends TableSet<Entry<C, Map<R, V>>> {
       @Override
       public Iterator<Entry<C, Map<R, V>>> iterator() {
@@ -920,7 +909,6 @@
       }
     }
 
-    @WeakOuter
     private class ColumnMapValues extends Maps.Values<C, Map<R, V>> {
       ColumnMapValues() {
         super(ColumnMap.this);
--- guava-19.0.orig/guava/src/com/google/common/collect/WellBehavedMap.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/collect/WellBehavedMap.java	2016-05-19 10:30:22.951923872 -0500
@@ -17,7 +17,6 @@
 package com.google.common.collect;
 
 import com.google.common.annotations.GwtCompatible;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.Iterator;
 import java.util.Map;
@@ -67,7 +66,6 @@
     return entrySet = new EntrySet();
   }
 
-  @WeakOuter
   private final class EntrySet extends Maps.EntrySet<K, V> {
     @Override
     Map<K, V> map() {
--- guava-19.0.orig/guava/src/com/google/common/eventbus/Subscriber.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/eventbus/Subscriber.java	2016-05-19 10:31:23.145808926 -0500
@@ -19,7 +19,6 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 
 import com.google.common.annotations.VisibleForTesting;
-import com.google.j2objc.annotations.Weak;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -48,7 +47,7 @@
   }
 
   /** The event bus this subscriber belongs to. */
-  @Weak private EventBus bus;
+  private EventBus bus;
 
   /** Object sporting the subscriber method. */
   @VisibleForTesting
--- guava-19.0.orig/guava/src/com/google/common/eventbus/SubscriberRegistry.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/eventbus/SubscriberRegistry.java	2016-05-19 10:32:52.954992097 -0500
@@ -35,7 +35,6 @@
 import com.google.common.collect.Multimap;
 import com.google.common.reflect.TypeToken;
 import com.google.common.util.concurrent.UncheckedExecutionException;
-import com.google.j2objc.annotations.Weak;
 
 import java.lang.reflect.Method;
 import java.util.Arrays;
@@ -68,7 +67,7 @@
   /**
    * The event bus this registry belongs to.
    */
-  @Weak private final EventBus bus;
+  private final EventBus bus;
 
   SubscriberRegistry(EventBus bus) {
     this.bus = checkNotNull(bus);
--- guava-19.0.orig/guava/src/com/google/common/util/concurrent/AbstractIdleService.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/util/concurrent/AbstractIdleService.java	2016-05-19 10:34:32.320400334 -0500
@@ -18,7 +18,6 @@
 
 import com.google.common.annotations.Beta;
 import com.google.common.base.Supplier;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.concurrent.Executor;
 import java.util.concurrent.TimeUnit;
@@ -40,7 +39,6 @@
   /* Thread names will look like {@code "MyService STARTING"}. */
   private final Supplier<String> threadNameSupplier = new ThreadNameSupplier();
 
-  @WeakOuter
   private final class ThreadNameSupplier implements Supplier<String> {
     @Override public String get() {
       return serviceName() + " " + state();
@@ -50,7 +48,6 @@
   /* use AbstractService for state management */
   private final Service delegate = new DelegateService();
 
-  @WeakOuter
   private final class DelegateService extends AbstractService {
     @Override protected final void doStart() {
       MoreExecutors.renamingDecorator(executor(), threadNameSupplier)
--- guava-19.0.orig/guava/src/com/google/common/util/concurrent/AbstractScheduledService.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/util/concurrent/AbstractScheduledService.java	2016-05-19 10:36:07.086021130 -0500
@@ -22,7 +22,6 @@
 
 import com.google.common.annotations.Beta;
 import com.google.common.base.Supplier;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.concurrent.Callable;
 import java.util.concurrent.Executor;
@@ -163,7 +162,6 @@
   /* use AbstractService for state management */
   private final AbstractService delegate = new ServiceDelegate();
 
-  @WeakOuter
   private final class ServiceDelegate extends AbstractService {
     
     // A handle to the running task so that we can stop it when a shutdown has been requested.
@@ -177,7 +175,6 @@
     // lock.
     private final ReentrantLock lock = new ReentrantLock();
 
-    @WeakOuter
     class Task implements Runnable {
       @Override public void run() {
         lock.lock();
@@ -307,7 +304,7 @@
    * {@linkplain Service.State#TERMINATED fails}.
    */
   protected ScheduledExecutorService executor() {
-    @WeakOuter class ThreadFactoryImpl implements ThreadFactory {
+    class ThreadFactoryImpl implements ThreadFactory {
       @Override public Thread newThread(Runnable runnable) {
         return MoreExecutors.newThread(serviceName(), runnable);
       }
--- guava-19.0.orig/guava/src/com/google/common/util/concurrent/AbstractService.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/util/concurrent/AbstractService.java	2016-05-19 10:37:26.482352155 -0500
@@ -30,7 +30,6 @@
 import com.google.common.util.concurrent.ListenerCallQueue.Callback;
 import com.google.common.util.concurrent.Monitor.Guard;
 import com.google.common.util.concurrent.Service.State; // javadoc needs this
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -99,7 +98,6 @@
 
   private final Guard isStartable = new IsStartableGuard();
 
-  @WeakOuter
   private final class IsStartableGuard extends Guard {
     IsStartableGuard() {
       super(AbstractService.this.monitor);
@@ -112,7 +110,6 @@
 
   private final Guard isStoppable = new IsStoppableGuard();
 
-  @WeakOuter
   private final class IsStoppableGuard extends Guard {
     IsStoppableGuard() {
       super(AbstractService.this.monitor);
@@ -125,7 +122,6 @@
 
   private final Guard hasReachedRunning = new HasReachedRunningGuard();
 
-  @WeakOuter
   private final class HasReachedRunningGuard extends Guard {
     HasReachedRunningGuard() {
       super(AbstractService.this.monitor);
@@ -138,7 +134,6 @@
 
   private final Guard isStopped = new IsStoppedGuard();
 
-  @WeakOuter
   private final class IsStoppedGuard extends Guard {
     IsStoppedGuard() {
       super(AbstractService.this.monitor);
--- guava-19.0.orig/guava/src/com/google/common/util/concurrent/AggregateFuture.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/util/concurrent/AggregateFuture.java	2016-05-19 10:38:34.039230292 -0500
@@ -24,7 +24,6 @@
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.annotations.GwtIncompatible;
 import com.google.common.collect.ImmutableCollection;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.Set;
 import java.util.concurrent.ExecutionException;
@@ -87,7 +86,6 @@
     runningState.init();
   }
 
-  @WeakOuter
   abstract class RunningState extends AggregateFutureState implements Runnable {
     private ImmutableCollection<? extends ListenableFuture<? extends InputT>> futures;
     private final boolean allMustSucceed;
--- guava-19.0.orig/guava/src/com/google/common/util/concurrent/CollectionFuture.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/util/concurrent/CollectionFuture.java	2016-05-19 10:39:25.950164775 -0500
@@ -23,7 +23,6 @@
 import com.google.common.collect.ImmutableCollection;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.List;
 
@@ -35,7 +34,6 @@
 @GwtCompatible
 abstract class CollectionFuture<V, C> extends AggregateFuture<V, C> {
 
-  @WeakOuter
   abstract class CollectionFutureRunningState extends RunningState {
     private List<Optional<V>> values;
 
--- guava-19.0.orig/guava/src/com/google/common/util/concurrent/CycleDetectingLockFactory.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/util/concurrent/CycleDetectingLockFactory.java	2016-05-19 10:40:56.809299427 -0500
@@ -27,7 +27,6 @@
 import com.google.common.collect.MapMaker;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
-import com.google.j2objc.annotations.Weak;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -910,7 +909,7 @@
   private class CycleDetectingReentrantReadLock
       extends ReentrantReadWriteLock.ReadLock {
 
-    @Weak final CycleDetectingReentrantReadWriteLock readWriteLock;
+    final CycleDetectingReentrantReadWriteLock readWriteLock;
 
     CycleDetectingReentrantReadLock(
         CycleDetectingReentrantReadWriteLock readWriteLock) {
@@ -972,7 +971,7 @@
   private class CycleDetectingReentrantWriteLock
       extends ReentrantReadWriteLock.WriteLock {
 
-    @Weak final CycleDetectingReentrantReadWriteLock readWriteLock;
+    final CycleDetectingReentrantReadWriteLock readWriteLock;
 
     CycleDetectingReentrantWriteLock(
         CycleDetectingReentrantReadWriteLock readWriteLock) {
--- guava-19.0.orig/guava/src/com/google/common/util/concurrent/FuturesGetChecked.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/util/concurrent/FuturesGetChecked.java	2016-05-19 10:42:22.155355510 -0500
@@ -21,7 +21,6 @@
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
 import com.google.common.collect.Ordering;
-import com.google.j2objc.annotations.J2ObjCIncompatible;
 
 import org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement;
 
@@ -99,7 +98,6 @@
     return GetCheckedTypeValidatorHolder.WeakSetValidator.INSTANCE;
   }
 
-  @J2ObjCIncompatible // ClassValue
   @VisibleForTesting
   static GetCheckedTypeValidator classValueValidator() {
     return GetCheckedTypeValidatorHolder.ClassValueValidator.INSTANCE;
@@ -119,7 +117,6 @@
     static final GetCheckedTypeValidator BEST_VALIDATOR = getBestValidator();
 
     @IgnoreJRERequirement // getChecked falls back to another implementation if necessary
-    @J2ObjCIncompatible // ClassValue
     enum ClassValueValidator implements GetCheckedTypeValidator {
       INSTANCE;
 
--- guava-19.0.orig/guava/src/com/google/common/util/concurrent/Monitor.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/util/concurrent/Monitor.java	2016-05-19 10:43:17.539462828 -0500
@@ -20,7 +20,6 @@
 
 import com.google.common.annotations.Beta;
 import com.google.common.base.Throwables;
-import com.google.j2objc.annotations.Weak;
 
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.Condition;
@@ -304,7 +303,7 @@
   @Beta
   public abstract static class Guard {
 
-    @Weak final Monitor monitor;
+    final Monitor monitor;
     final Condition condition;
 
     @GuardedBy("monitor.lock")
--- guava-19.0.orig/guava/src/com/google/common/util/concurrent/ServiceManager.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/util/concurrent/ServiceManager.java	2016-05-19 10:44:19.793252692 -0500
@@ -51,7 +51,6 @@
 import com.google.common.collect.SetMultimap;
 import com.google.common.util.concurrent.ListenerCallQueue.Callback;
 import com.google.common.util.concurrent.Service.State;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
@@ -433,7 +432,6 @@
      */
     final Monitor.Guard awaitHealthGuard = new AwaitHealthGuard();
 
-    @WeakOuter
     final class AwaitHealthGuard extends Monitor.Guard {
       AwaitHealthGuard() {
         super(ServiceManagerState.this.monitor);
@@ -453,7 +451,6 @@
      */
     final Monitor.Guard stoppedGuard = new StoppedGuard();
 
-    @WeakOuter
     final class StoppedGuard extends Monitor.Guard {
       StoppedGuard() {
         super(ServiceManagerState.this.monitor);
--- guava-19.0.orig/guava/src/com/google/common/util/concurrent/TrustedListenableFutureTask.java	2015-12-09 15:56:41.000000000 -0500
+++ guava-19.0/guava/src/com/google/common/util/concurrent/TrustedListenableFutureTask.java	2016-05-19 10:45:19.070513437 -0500
@@ -20,7 +20,6 @@
 
 import com.google.common.annotations.GwtCompatible;
 import com.google.common.annotations.GwtIncompatible;
-import com.google.j2objc.annotations.WeakOuter;
 
 import java.util.concurrent.Callable;
 import java.util.concurrent.Executors;
@@ -93,7 +92,6 @@
     }
   }
 
-  @WeakOuter
   private final class TrustedFutureInterruptibleTask extends InterruptibleTask {
     private final Callable<V> callable;