Skip to content
This repository has been archived by the owner on Jul 1, 2022. It is now read-only.

Update errorprone and lombok and fix warnings and errors #270

Merged
merged 3 commits into from
Oct 18, 2017

Conversation

vprithvi
Copy link
Contributor

- Update errorprone to 2.1.1
- Update lombok to 1.16.18
- Disable the InstanceOfAndCastMatchWrongType and NestedInstanceOfConditions checks to ensure compatibility with lombok. See https://github.com/google/error-prone/issues/750

Signed-off-by: Prithvi Raj <p.r@uber.com>
- Update errorprone to 2.1.1
- Update lombok to 1.16.18
- Disable the InstanceOfAndCastMatchWrongType and NestedInstanceOfConditions checks to ensure compatibility with lombok. See google/error-prone#750

Signed-off-by: Prithvi Raj <p.r@uber.com>
@ghost ghost assigned vprithvi Oct 12, 2017
@ghost ghost added the review label Oct 12, 2017
Signed-off-by: Prithvi Raj <p.r@uber.com>
}
tasks.withType(JavaCompile) {
// These are disabled because of a bug with errorprone. See https://github.com/google/error-prone/issues/750
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not following how that issue is related to disabling checks

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Enabling those checks causes a runtime exception in the error prone compiler

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so using @Data is a convenience, but turning off InstanceOfAndCastMatchWrongType sounds like it could mask real errors.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

InstanceOfAndCastMatchWrongType doesn't exist in the current version of errorprone that the project uses.
Could you please justify your statement of using @Data is a convenience. Have there been no bugs made in manually writing out the convenience functions that @Data/@Value provides? If there have, is the cost of fixing the bugs introduced by incorrect hashcode/tostring/getters less than the potential time saved by having these new error checks enabled?
Has the time taken to write boilerplate code been factored into your argument?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the methods that @Data/@Value generate can be just as easily created by the IDE.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really feel that you are arguing with me for the sake for arguing.
How would you maintain consistency between the IDE generated code?

Should bumping a couple of versions have so much friction?

@@ -268,7 +268,7 @@ private SpanContext createNewContext(String debugId) {

byte flags = 0;
if (debugId != null) {
flags |= SpanContext.flagSampled | SpanContext.flagDebug;
flags = (byte) (flags | SpanContext.flagSampled | SpanContext.flagDebug);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all operands are already of type byte, why do we need to re-cast?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because of assignment conversion. See http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.2 and http://errorprone.info/bugpattern/NarrowingCompoundAssignment

The result of the bitwise OR is being promoted to a int which was previously implicitly cast to a byte.

@codecov
Copy link

codecov bot commented Oct 12, 2017

Codecov Report

❗ No coverage uploaded for pull request base (master@20573d0). Click here to learn what that means.
The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff            @@
##             master     #270   +/-   ##
=========================================
  Coverage          ?   82.63%           
  Complexity        ?      535           
=========================================
  Files             ?       87           
  Lines             ?     2021           
  Branches          ?      237           
=========================================
  Hits              ?     1670           
  Misses            ?      253           
  Partials          ?       98
Impacted Files Coverage Δ Complexity Δ
...ger-core/src/main/java/com/uber/jaeger/Tracer.java 86.84% <100%> (ø) 19 <0> (?)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 20573d0...9ad9b8a. Read the comment docs.

@yurishkuro yurishkuro merged commit bcd32cb into master Oct 18, 2017
@ghost ghost removed the review label Oct 18, 2017
@vprithvi vprithvi deleted the update-errorprone branch October 18, 2017 15:15
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants