Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moe Sync #3393

Merged
merged 23 commits into from
Feb 26, 2019
Merged

Moe Sync #3393

merged 23 commits into from
Feb 26, 2019

Conversation

ronshapiro
Copy link
Contributor

This code has been reviewed and submitted internally. Feel free to discuss on the PR and we can submit follow-up changes as necessary.

Commits:

Add Report-To header.

https://www.w3.org/TR/reporting/

504978f


Remove unused imports and warnings.

Fixes #3356

f0945a2


Reformat with google-java-format

RELNOTES=N/A

7809097


Add missing @OverRide annotations

8843b6c


Document the retention of listeners added to Guava implementations of ListenableFuture.

RELNOTES=Document the retention of listeners added to Guava implementations of ListenableFuture.

f6287e1


Reformat with google-java-format

RELNOTES=N/A

28cff42


Name the method parameter 'unused' for ImmutableSortedSet.readObject(ObjectInputStream) (so the static analysis doesn't complain)

0967c79


Remove @beta from APIs:

collect

  • most Collectors (aside from BloomFilter and ImmutableRange*, as those whole classes are @beta (though I did remove the redundant @beta annotation from the Collector-returning methods for clarity))
  • Maps: asConverter, immutableEnumMap
  • MultimapBuilder
  • Streams: stream(Iterable), concat

io

  • ByteStreams: copy, toByteArray
  • CharStreams: copy, toString
  • Files: as(Char|Byte)(Source|Sink)

util.concurrent

  • Futures: addCallback, getDone, getUnchecked, immediateCancelledFuture, immediateFailedFuture, immediateFuture
  • ListeningScheduledExecutorService
  • Uninterruptibles

other

  • HtmlEscapers
  • Splitter.splitToList
  • Ticker

Fixes #3287
Fixes #3251 (aside from ImmutableRange*, but those whole classes are @beta, anyway)
Addresses the main concerns of #3285 but doesn't cover the broader request
Fixes #3340
Partially addresses #3239

RELNOTES=Removed @Beta from a number of frequently used APIs.

068cb90


Add some known UTF-8 hash values to Murmur3_32 tests. UTF-8 is more comparable between platforms than relying on Java's internal encoding.

e7ec537


Remove @CanIgnoreReturnValue from Ordering.sortedCopy() and immutableSortedCopy().

RELNOTES=Remove @CanIgnoreReturnValue from Ordering.sortedCopy() and immutableSortedCopy().

da2895f


Make a constructor private.

(I'm looking into EnumMap stuff for other reasons, and I got to wondering if this was used outside the file. Nope.)

b1933ce


Delete WellBehavedMap.

The bug it worked around was fixed in Java 7:
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6312706

And I don't believe it was ever present under Android:
https://android.googlesource.com/platform/libcore/+/fdb2704414a9ed92394ada0d1395e4db86889465/luni/src/main/java/java/util/EnumMap.java#146

I haven't looked for the absolute first version ever of GWT, but the still very old GWT file doesn't have the bug, either.

Deleting this class will simplify some work I'm doing around our EnumMap usage for j2cl.

2115c74


Internal GWT change

1d49ade


Automated rollback of commit 1d49ade

*** Original change description ***

Internal GWT change


46a2123


Use J2ObjC's @RetainedWith annotation instead of @weak on ImmutableMap.keySet to prevent crashes on iOS.

TESTED=Created a map inside a autorelease pool and saved a reference to the
keyset. Checked that the keyset functions correctly outside the autorelease
pool. Checked that both the keyset and the map are deallocated by the
autorelease pool when not holding a reference to the keyset. Did this test with
both ImmutableMap.of(<2 entries>) and ImmutableBiMap.of(<2 entries>).

RELNOTES=J2ObjC: Fixes crashes from use of ImmutableMap.keySet().

76c9545


Annotate checkNotNull's input and output as @nonnull.

We don't want to go down the road of annotating most things @nonnull, as we eventually want to use tools that assume that that's the default. However, it's pretty weird for checkNotNull() to return a @nullable value in the minds of some tools, so let's annotate just that method and see how it goes.

RELNOTES=Annotated checkNotNull's input and output as @NonNull.

63d0b31


Document the JDK 9+ alternative to `Maps#immutableEntry`

Fixes #3385

998858f


Modernize book reference.

7eafede


Create constants for the SourceMap header

None of the tests like this header name, so each required some workarounds.

RELNOTES=Add the SourceMap header to HttpHeaders

81f191e


Internal GWT change

db6ada7


Use J2ObjC's @RetainedWith annotation instead of @weak on ImmutableMap.values to prevent crashes on iOS.

TESTED=Created a map inside an autorelease pool and saved a reference to the
values collection. Checked that the values collection functions correctly
outside the autorelease pool. Checked that both the values collection and the
map are deallocated by the autorelease pool when not holding a strong reference
to the values collection. Did this test with ImmutableMap.of(<2 entries>) and
ImmutableMap.copyOf(<EnumMap with 2 entries>).

RELNOTES=J2ObjC: Fixes crashes from use of ImmutableMap.values().

05ac563


Fix Javadoc breakage under JDK11 canary.

https://bugs.openjdk.java.net/browse/JDK-8212233
https://bugs.openjdk.java.net/browse/JDK-8193030

d8bdef5


Remove GWT emulations that are no longer needed as of GWT 2.8.2.

RELNOTES=Removed GWT emulations that are no longer needed as of GWT 2.8.2. This means that GWT projects that use this version of Guava must use GWT 2.8.2 or higher.

be02df5

xingx and others added 23 commits February 26, 2019 13:50
https://www.w3.org/TR/reporting/

RELNOTES=n/a

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=231590633
Fixes #3356

RELNOTES=n/a

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=231638663
RELNOTES=N/A

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=231889594
RELNOTES=n/a

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=232004516
… ListenableFuture.

RELNOTES=Document the retention of listeners added to Guava implementations of `ListenableFuture`.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=232007326
RELNOTES=N/A

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=232329476
…ObjectInputStream) (so the static analysis doesn't complain)

RELNOTES=n/a

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=232557400
collect
- most Collectors (aside from BloomFilter and ImmutableRange*, as those whole classes are @beta (though I did remove the redundant @beta annotation from the Collector-returning methods for clarity))
- Maps: asConverter, immutableEnumMap
- MultimapBuilder
- Streams: stream(Iterable), concat

io
- ByteStreams: copy, toByteArray
- CharStreams: copy, toString
- Files: as(Char|Byte)(Source|Sink)

util.concurrent
- Futures: addCallback, getDone, getUnchecked, immediateCancelledFuture, immediateFailedFuture, immediateFuture
- ListeningScheduledExecutorService
- Uninterruptibles

other
- HtmlEscapers
- Splitter.splitToList
- Ticker

Fixes #3287
Fixes #3251 (aside from ImmutableRange*, but those whole classes are @beta, anyway)
Addresses the main concerns of #3285 but doesn't cover the broader request
Fixes #3340
Partially addresses #3239

RELNOTES=Removed `@Beta` from a number of frequently used APIs.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=232681253
…omparable between platforms than relying on Java's internal encoding.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=232756904
…SortedCopy().

RELNOTES=Remove `@CanIgnoreReturnValue` from `Ordering.sortedCopy()` and `immutableSortedCopy()`.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=232883462
(I'm looking into EnumMap stuff for other reasons, and I got to wondering if this was used outside the file. Nope.)

RELNOTES=n/a

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=233408580
The bug it worked around was fixed in Java 7:
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6312706

And I don't believe it was ever present under Android:
https://android.googlesource.com/platform/libcore/+/fdb2704414a9ed92394ada0d1395e4db86889465/luni/src/main/java/java/util/EnumMap.java#146

I haven't looked for the absolute first version ever of GWT, but the still very old GWT file doesn't have the bug, either.

Deleting this class will simplify some work I'm doing around our EnumMap usage for j2cl.

RELNOTES=n/a

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=233418344
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=233617662
*** Original change description ***

Internal GWT change

***

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=233628983
…p.keySet

to prevent crashes on iOS.

TESTED=Created a map inside a autorelease pool and saved a reference to the
keyset. Checked that the keyset functions correctly outside the autorelease
pool. Checked that both the keyset and the map are deallocated by the
autorelease pool when not holding a reference to the keyset. Did this test with
both ImmutableMap.of(<2 entries>) and ImmutableBiMap.of(<2 entries>).

RELNOTES=J2ObjC: Fixes crashes from use of `ImmutableMap.keySet()`.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=233811320
We don't want to go down the road of annotating most things @nonnull, as we eventually want to use tools that assume that that's the default. However, it's pretty weird for checkNotNull() to return a @nullable value in the minds of some tools, so let's annotate just that method and see how it goes.

RELNOTES=Annotated `checkNotNull`'s input and output as `@NonNull`.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=233963788
Fixes #3385

RELNOTES=n/a

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=234208826
RELNOTES=n/a

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=234212413
None of the tests like this header name, so each required some workarounds.

RELNOTES=Add the SourceMap header to HttpHeaders

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=234254287
RELNOTES=n/a

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=234795462
…p.values

to prevent crashes on iOS.

TESTED=Created a map inside an autorelease pool and saved a reference to the
values collection. Checked that the values collection functions correctly
outside the autorelease pool. Checked that both the values collection and the
map are deallocated by the autorelease pool when not holding a strong reference
to the values collection. Did this test with ImmutableMap.of(<2 entries>) and
ImmutableMap.copyOf(<EnumMap with 2 entries>).

RELNOTES=J2ObjC: Fixes crashes from use of `ImmutableMap.values()`.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=235206171
RELNOTES=Removed GWT emulations that are no longer needed as of GWT 2.8.2. This means that GWT projects that use this version of Guava must use GWT 2.8.2 or higher.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=235524613
@ronshapiro ronshapiro added the internal-sync A PR that represents a push from Google's internal repo label Feb 26, 2019
@googlebot
Copy link
Collaborator

So there's good news and bad news.

👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there.

😕 The bad news is that it appears that one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that here in the pull request.

Note to project maintainer: This is a terminal state, meaning the cla/google commit status will not change from this state. It's up to you to confirm consent of all the commit author(s), set the cla label to yes (if enabled on your project), and then merge this pull request when appropriate.

ℹ️ Googlers: Go here for more info.

@googlebot
Copy link
Collaborator

A Googler has manually verified that the CLAs look good.

(Googler, please make sure the reason for overriding the CLA status is clearly documented in these comments.)

ℹ️ Googlers: Go here for more info.

@ronshapiro ronshapiro merged commit 5f35072 into master Feb 26, 2019
@ronshapiro ronshapiro deleted the sync-master-2019/02/26 branch February 26, 2019 19:18
@kevinmost
Copy link

kevinmost commented Feb 28, 2019

Annotate checkNotNull's input and output as @nonnull

Hi. Just curious about the motivation behind this decision (well, behind part of this decision). I totally agree that "it's pretty weird for checkNotNull() to return a @nullable value in the minds of some tools", and am in favor of checkNotNull() returning a non-null value.

I'm just unclear on why the input is considered @NonNull now instead of @Nullable. Maybe I'm misusing it, but I use checkNotNull() as a fluent assertion on expressions where the compiler can't infer the nullability, but I know it's @NonNull. For my uses, the ideal signature would be:

@CanIgnoreReturnValue
@NonNull
public static <T> T checkNotNull(@Nullable T ref) { ... }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla: yes internal-sync A PR that represents a push from Google's internal repo
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Remove Beta from ListeningScheduledExecutorService? Remove @Beta from the immutable collector methods