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

Jackson 2.8 #1647

Closed
wants to merge 4 commits into from
Closed

Jackson 2.8 #1647

wants to merge 4 commits into from

Conversation

joschi
Copy link
Member

@joschi joschi commented Jul 26, 2016

Refs #1627.

CC: @cowtowncoder

Unfortunately the handling of JsonMappingExceptions has changed (again) in Jackson 2.8.0
so that this test now fails because the response code is 500 instead of 400. :-(
@joschi joschi added this to the 1.1.0 milestone Jul 26, 2016
@@ -97,7 +97,10 @@ public void returnsA400ForNonDeserializableRequestEntities() throws Exception {

@Test
public void returnsA400ForWrongInputType() throws Exception {
Copy link
Member Author

Choose a reason for hiding this comment

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

@dropwizard/committers I'm still unhappy about having to change this. Any ideas?

Copy link
Contributor

Choose a reason for hiding this comment

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

Gah, that's because the exception message starts with "No suitable constructor", which is one of our heuristics for a programmer error 😿

We'll have to change the heuristics (and not the test case).

Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure if this helps, but there are couple of other JsonMappingException subtypes available, beside ones already checked for (InvalidFormatException, PropertyBindingException):

  • IgnoredPropertyException
  • InvalidTypeIdException (added in 2.8)
  • UnrecognizedPropertyException (subtype of PropertyBindingException)

Also if there is something small I could do wrt exception message I could consider changes for 2.8.2. I hope to keep messages (more) stable going forward. 2.8 changes were to try to unify messages, as well as allow more customized handling of problems via DeserializerProblemHandler extensions.

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks for the tip, I'll have to take another look. I know I took a few swings at it in #1544 and #1527

Copy link
Member

Choose a reason for hiding this comment

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

@joschi @nickbabcock do we want to merge in this PR and then revisit the exception handling in a follow-on PR?

Copy link
Contributor

Choose a reason for hiding this comment

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

I don't think we need to be in a rush to merge this PR, as I'd rather this PR stays open to remind us (me) to investigate this issue

Copy link
Contributor

Choose a reason for hiding this comment

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

Still scratching my head, so I've decided to do a brain dump. I think the root cause is that there is not a great way to differentiate between various errors of JsonMappingException

Examples from the JsonProcessingExceptionMapper test cases:

Client Errors :

  • Expecting an object, but JSON is false throws a JsonMappingException of "Can not construct instance of foo: no boolean/Boolean-argument constructor/factory method to deserialize from boolean value (false)". This should be a client error because the wrong json type was submitted.
  • Expecting a URI, but JSON is "no-scheme.com", throws a JsonMappingException of "Unexpected IOException (of type java.net.MalformedURLException): no protocol: no-scheme.com". Ideally there would be a way to reach the underlying cause, but JsonMappingException is the root. Other exceptions while deserializing can be uncovered (like DateTimeException). Looks to only affect test case returnsA400ForMalformedInputCausingIoException
  • Expecting a list but given a string throws a JsonMappingException of "Can not deserialize instance of java.util.ArrayList out of VALUE_STRING token"
  • Deserializing a DateTime from [1,1,1,1] throws a JsonMappingException of "Unexpected token (VALUE_NUMBER_INT), expected END_ARRAY: Expected array to end."

Server Errors:

  • BrokenRepresentation is missing a constructor and the exception is a JsonMappingException "Can not construct instance of BrokenRepresentation: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)"
  • NonBeanImplementation doesn't contain any information on serialization and exception is a JsonMappingException "No serializer found for class NonBeanImplementation and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)"
  • Trying to construct from an interface throws a JsonMappingException of "Can not construct instance of IInterface: abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information"

These seven situations all use JsonMappingException as the root cause and this is where we had to introduce heuristics. The following code gets us pretty close, but doesn't work on the client errors mentioned above.

final JsonMappingException ex = (JsonMappingException) exception;
final Throwable cause = Throwables.getRootCause(ex);

// Exceptions that denote an error on the client side
final boolean clientCause = cause instanceof InvalidFormatException ||
    cause instanceof PropertyBindingException ||
    cause.getClass() != JsonMappingException.class;

if (!clientCause) {
    LOGGER.error("Unable to serialize or deserialize the specific type", exception);
    return Response.serverError().build();
}

Copy link
Contributor

Choose a reason for hiding this comment

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

I think I could see a few things to improve on Jackson side. URI in particular should probably internally signal IllegalArgumentException (or similar), and then bound to one of JsonMappingException subtypes, most likely InvalidFormatException. This could go in a patch since I think it's sort of a flaw at this point, underspecifying failure.

Similarly, "wrong token" style exceptions (boolean for Object) should probably be indicated differently, but they are little bit more difficult to figure out.

This is actually kind of work I was hoping to get started by changes that lead to these practical problems: reworking error handling. I have added some structure, but there is no uniformity yet. I think DW use case, as an example, could be a good driver in figuring out semantic approach to signalling failures.

Not sure how easy it is to divide things neatly into client/server buckets, however; it would seem that in many cases majority could be viewed as client problem, sending JSON that does not match expected structure.

@coveralls
Copy link

coveralls commented Jul 26, 2016

Coverage Status

Coverage increased (+0.2%) to 82.395% when pulling 7dd667e on jackson-2.8 into 99e9d63 on master.

@@ -43,7 +43,7 @@ v1.0.0
* Upgraded to Hibernate Validator 5.2.4.Final
* Upgraded to HSQLDB 2.3.4
* Upgraded to Jadira Usertype Core 5.0.0.GA
* Upgraded to Jackson 2.7.6
* Upgraded to Jackson 2.8.1
Copy link
Contributor

Choose a reason for hiding this comment

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

This should probably be moved to the 1.1.0 section, as 1.0.0 has already shipped ;)

@jplock
Copy link
Member

jplock commented Aug 30, 2016

Jackson 2.8.2 is now in maven central if we want to update to that

@cowtowncoder
Copy link
Contributor

Also, for versions that want to stick with 2.7, if any, there's 2.7.7 which has many/most of the same fixes. I'll try to keep 2.7 branch alive at least until end of year as it could be long-term stable branch to try to get most frameworks upgrade to (have had major hassles with Spark myself :) ).

I'd also love to help with 2.8 issues if any remain. Did 2.8.2 release to flush all pending fixes.

@nickbabcock
Copy link
Contributor

Please correct me if I'm wrong, but I took a quick look at the release notes for core and databind and didn't see how the situation pointed out by an earlier comment changes. I realize the conversation fell somewhat to the wayside (my fault 😊)

@cowtowncoder
Copy link
Contributor

@nickbabcock you are correct, not much has happened for those; it would be best to file separate issues since there's need for testing and some coordination on most optimal way to improve. By flushing fixes I meant ones that have been reported via issue tracker.

@nickbabcock
Copy link
Contributor

Ah, I'm not sure how you want it, did you want each of the points described earlier in a separate issue in the databind repo or a single issue?

@cowtowncoder
Copy link
Contributor

@nickbabcock Hmmh. How about I'll create one for improving URI / URL handling since I should be able to do it relatively easily. And if you could add another one for other aspects, wherever there is a clear path for improvement for specific Java types, and failures?

@cowtowncoder
Copy link
Contributor

@nickbabcock Looks like InvalidFormatException was properly produced for java.net.URI, but NOT for java.net.URL: I fixed this for 2.8(.3) as the first step.
As soon as I get to know of other types for which same occurs they can be fixed quite easily.

@cowtowncoder
Copy link
Contributor

Ok, so now there is the wider-ranging issue for jackson-databind, which I think is good and should help a lot for medium-to-long term.

But since that work has to go in 2.9 (new exception types added), I would also be interested in incremental improvements in the meantime. If there are commonly encountered failures, or even just ones triggered by tests, that could/should be improved within constraints of existing types, would be great to resolve those too.

@nickbabcock
Copy link
Contributor

nickbabcock commented Sep 7, 2016

The immediate concern for jackson data-bind 2.8 is that the error message:

Can not construct instance of io.dropwizard.jersey.jackson.OkRepresentation: no boolean/Boolean-argument constructor/factory method to deserialize from boolean value (false)
at [Source: org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream@6228440c; line: 1, column: 1]

Gets mis-categorized as a server error as the message falls under the heuristic:

No suitable constructor found

Whereas under 2.7.6

Can not instantiate value of type [simple type, class io.dropwizard.jersey.jackson.OkRepresentation] from Boolean value (false); no single-boolean/Boolean-arg constructor/factory method
at [Source: org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream@eca3d94; line: 1, column: 1]

and in both instances the exception is the JsonMappingException, which as we've discussed is ambiguous.

So we can either:

  1. Stick to 2.7 and wait until 2.9 or whenever enhanced error handling lands.
  2. Update heuristics (not sure how to differentiate types of "Can not construct instance" 😕 )

@cowtowncoder
Copy link
Contributor

@nickbabcock If feasible, I would look for both 2.7 (and before) and 2.8 messages, with a note mentioning which is which. I assume DW itself has no hard requirement to use 2.8.
2.9 will take its time; current release cadence has been about 6 months between releases, which would suggest next version available at around Jan 2017.

@nickbabcock nickbabcock mentioned this pull request Sep 28, 2016
@jplock
Copy link
Member

jplock commented Sep 30, 2016

Closing in favor of #1749

@jplock jplock closed this Sep 30, 2016
@jplock jplock deleted the jackson-2.8 branch September 30, 2016 21:44
joschi pushed a commit that referenced this pull request Mar 6, 2019
Bumps `mockito.version` from 2.24.5 to 2.25.0.

Updates `mockito-core` from 2.24.5 to 2.25.0
<details>
<summary>Release notes</summary>

*Sourced from [mockito-core's releases](https://github.com/mockito/mockito/releases).*

> ## v2.25.0
> <sup><sup>*Release notes were automatically generated by [Shipkit](http://shipkit.org/)*</sup></sup>
> 
> #### 2.25.0
>  - 2019-03-05 - [11 commits](mockito/mockito@v2.24.10...v2.25.0) by [Szczepan Faber](https://github.com/mockitoguy) (10), Garfield Tan (1) - published to [![Bintray](https://img.shields.io/badge/Bintray-2.25.0-green.svg)](https://bintray.com/mockito/maven/mockito/2.25.0)
>  - New API to clean up all inline mocks after test [([#1619](https://github-redirect.dependabot.com/mockito/mockito/issues/1619))](https://github-redirect.dependabot.com/mockito/mockito/pull/1619)
>  - Memory leak in mockito-inline calling method on mock with at least a mock as parameter [([#1614](https://github-redirect.dependabot.com/mockito/mockito/issues/1614))](https://github-redirect.dependabot.com/mockito/mockito/issues/1614)
>  - Cross-references and a single spy cause memory leak [([#1533](https://github-redirect.dependabot.com/mockito/mockito/issues/1533))](https://github-redirect.dependabot.com/mockito/mockito/issues/1533)
>  - Nested spies cause memory leaks  [([#1532](https://github-redirect.dependabot.com/mockito/mockito/issues/1532))](https://github-redirect.dependabot.com/mockito/mockito/issues/1532)
> 
> ## v2.24.10
> <sup><sup>*Release notes were automatically generated by [Shipkit](http://shipkit.org/)*</sup></sup>
> 
> #### 2.24.10
>  - 2019-03-05 - [4 commits](mockito/mockito@v2.24.9...v2.24.10) by [Tim van der Lippe](https://github.com/TimvdLippe) - published to [![Bintray](https://img.shields.io/badge/Bintray-2.24.10-green.svg)](https://bintray.com/mockito/maven/mockito-development/2.24.10)
>  - Prevent NPE in findTypeFromGenericInArguments [([#1648](https://github-redirect.dependabot.com/mockito/mockito/issues/1648))](https://github-redirect.dependabot.com/mockito/mockito/pull/1648)
> 
> ## v2.24.9
> <sup><sup>*Release notes were automatically generated by [Shipkit](http://shipkit.org/)*</sup></sup>
> 
> #### 2.24.9
>  - 2019-03-04 - [12 commits](mockito/mockito@v2.24.7...v2.24.9) by 6 authors - published to [![Bintray](https://img.shields.io/badge/Bintray-2.24.9-green.svg)](https://bintray.com/mockito/maven/mockito-development/2.24.9)
>  - Commits: [Brice Dutheil](https://github.com/bric3) (5), [Tim van der Lippe](https://github.com/TimvdLippe) (3), [epeee](https://github.com/epeee) (1), [Fr Jeremy Krieg](https://github.com/kriegfrj) (1), [PaweB PamuBa](https://github.com/PawelPamula) (1), shipkit-org (1)
>  - [Java 9 support] ClassCastExceptions with JDK9 javac [([#357](https://github-redirect.dependabot.com/mockito/mockito/issues/357))](https://github-redirect.dependabot.com/mockito/mockito/issues/357)
>  - [Bugfixes] RETURNS_DEEP_STUBS causes "Raw extraction not supported for : 'null'" in some cases [([#1621](https://github-redirect.dependabot.com/mockito/mockito/issues/1621))](https://github-redirect.dependabot.com/mockito/mockito/issues/1621)
>  - Update shipkit plugin (v2.1.6) [([#1647](https://github-redirect.dependabot.com/mockito/mockito/issues/1647))](https://github-redirect.dependabot.com/mockito/mockito/pull/1647)
>  - VerificationCollector to handle non-matching args and other assertions [([#1644](https://github-redirect.dependabot.com/mockito/mockito/issues/1644))](https://github-redirect.dependabot.com/mockito/mockito/pull/1644)
>  - VerificationCollector doesn't work for invocations with non-matching args [([#1642](https://github-redirect.dependabot.com/mockito/mockito/issues/1642))](https://github-redirect.dependabot.com/mockito/mockito/issues/1642)
>  - Fix returns mocks for final classes [([#1641](https://github-redirect.dependabot.com/mockito/mockito/issues/1641))](https://github-redirect.dependabot.com/mockito/mockito/pull/1641)
>  - Removes inaccessible links from javadocs in Mockito.java [([#1639](https://github-redirect.dependabot.com/mockito/mockito/issues/1639))](https://github-redirect.dependabot.com/mockito/mockito/pull/1639)
>  - Mockito.java contains inaccessible links to articles. [([#1638](https://github-redirect.dependabot.com/mockito/mockito/issues/1638))](https://github-redirect.dependabot.com/mockito/mockito/issues/1638)
>  - Handle terminal type var with bounds [([#1624](https://github-redirect.dependabot.com/mockito/mockito/issues/1624))](https://github-redirect.dependabot.com/mockito/mockito/pull/1624)
>  - Return null instead of causing a CCE [([#1612](https://github-redirect.dependabot.com/mockito/mockito/issues/1612))](https://github-redirect.dependabot.com/mockito/mockito/pull/1612)
> 
> ## v2.24.8
> <sup><sup>*Release notes were automatically generated by [Shipkit](http://shipkit.org/)*</sup></sup>
> 
> #### 2.24.8
>  - 2019-03-01 - [2 commits](mockito/mockito@v2.24.7...v2.24.8) by [PaweB PamuBa](https://github.com/PawelPamula) (1), [shipkit-org](https://github.com/shipkit-org) (1) - published to [![Bintray](https://img.shields.io/badge/Bintray-2.24.8-green.svg)](https://bintray.com/mockito/maven/mockito-development/2.24.8)
>  - Removes inaccessible links from javadocs in Mockito.java [([#1639](https://github-redirect.dependabot.com/mockito/mockito/issues/1639))](https://github-redirect.dependabot.com/mockito/mockito/pull/1639)
>  - Mockito.java contains inaccessible links to articles. [([#1638](https://github-redirect.dependabot.com/mockito/mockito/issues/1638))](https://github-redirect.dependabot.com/mockito/mockito/issues/1638)
> 
> ## v2.24.7
> <sup><sup>*Release notes were automatically generated by [Shipkit](http://shipkit.org/)*</sup></sup>
> 
> #### 2.24.7
>  - 2019-02-28 - [2 commits](mockito/mockito@v2.24.6...v2.24.7) by [shipkit-org](https://github.com/shipkit-org) (1), [Tim van der Lippe](https://github.com/TimvdLippe) (1) - published to [![Bintray](https://img.shields.io/badge/Bintray-2.24.7-green.svg)](https://bintray.com/mockito/maven/mockito-development/2.24.7)
>  - Fix handling of generics in ReturnsMocks [([#1635](https://github-redirect.dependabot.com/mockito/mockito/issues/1635))](https://github-redirect.dependabot.com/mockito/mockito/pull/1635)
> 
> ## v2.24.6
></tr></table> ... (truncated)
</details>
<details>
<summary>Commits</summary>

- [`70c6fa4`](mockito/mockito@70c6fa4) 2.25.0 release (previous 2.24.10) + release notes updated by CI build 3956
- [`a7ee084`](mockito/mockito@a7ee084) Merge pull request [#1619](https://github-redirect.dependabot.com/mockito/mockito/issues/1619) from ttanxu/release/2.x
- [`959cba4`](mockito/mockito@959cba4) Merge branch 'release/2.x' into release/2.x
- [`1641868`](mockito/mockito@1641868) Javadoc
- [`d61a8be`](mockito/mockito@d61a8be) Added missing coverage
- [`af2d33b`](mockito/mockito@af2d33b) 2.24.10 release (previous 2.24.9) + release notes updated by CI build 3953
- [`1183d1f`](mockito/mockito@1183d1f) Merge pull request [#1648](https://github-redirect.dependabot.com/mockito/mockito/issues/1648) from mockito/TimvdLippe-patch-1
- [`2894895`](mockito/mockito@2894895) Fix checkstyle warnings
- [`2d21a5a`](mockito/mockito@2d21a5a) Add regression test
- [`b5e9400`](mockito/mockito@b5e9400) Prevent NPE in findTypeFromGenericInArguments
- Additional commits viewable in [compare view](mockito/mockito@v2.24.5...v2.25.0)
</details>
<br />

Updates `mockito-junit-jupiter` from 2.24.5 to 2.25.0
<details>
<summary>Release notes</summary>

*Sourced from [mockito-junit-jupiter's releases](https://github.com/mockito/mockito/releases).*

> ## v2.25.0
> <sup><sup>*Release notes were automatically generated by [Shipkit](http://shipkit.org/)*</sup></sup>
> 
> #### 2.25.0
>  - 2019-03-05 - [11 commits](mockito/mockito@v2.24.10...v2.25.0) by [Szczepan Faber](https://github.com/mockitoguy) (10), Garfield Tan (1) - published to [![Bintray](https://img.shields.io/badge/Bintray-2.25.0-green.svg)](https://bintray.com/mockito/maven/mockito/2.25.0)
>  - New API to clean up all inline mocks after test [([#1619](https://github-redirect.dependabot.com/mockito/mockito/issues/1619))](https://github-redirect.dependabot.com/mockito/mockito/pull/1619)
>  - Memory leak in mockito-inline calling method on mock with at least a mock as parameter [([#1614](https://github-redirect.dependabot.com/mockito/mockito/issues/1614))](https://github-redirect.dependabot.com/mockito/mockito/issues/1614)
>  - Cross-references and a single spy cause memory leak [([#1533](https://github-redirect.dependabot.com/mockito/mockito/issues/1533))](https://github-redirect.dependabot.com/mockito/mockito/issues/1533)
>  - Nested spies cause memory leaks  [([#1532](https://github-redirect.dependabot.com/mockito/mockito/issues/1532))](https://github-redirect.dependabot.com/mockito/mockito/issues/1532)
> 
> ## v2.24.10
> <sup><sup>*Release notes were automatically generated by [Shipkit](http://shipkit.org/)*</sup></sup>
> 
> #### 2.24.10
>  - 2019-03-05 - [4 commits](mockito/mockito@v2.24.9...v2.24.10) by [Tim van der Lippe](https://github.com/TimvdLippe) - published to [![Bintray](https://img.shields.io/badge/Bintray-2.24.10-green.svg)](https://bintray.com/mockito/maven/mockito-development/2.24.10)
>  - Prevent NPE in findTypeFromGenericInArguments [([#1648](https://github-redirect.dependabot.com/mockito/mockito/issues/1648))](https://github-redirect.dependabot.com/mockito/mockito/pull/1648)
> 
> ## v2.24.9
> <sup><sup>*Release notes were automatically generated by [Shipkit](http://shipkit.org/)*</sup></sup>
> 
> #### 2.24.9
>  - 2019-03-04 - [12 commits](mockito/mockito@v2.24.7...v2.24.9) by 6 authors - published to [![Bintray](https://img.shields.io/badge/Bintray-2.24.9-green.svg)](https://bintray.com/mockito/maven/mockito-development/2.24.9)
>  - Commits: [Brice Dutheil](https://github.com/bric3) (5), [Tim van der Lippe](https://github.com/TimvdLippe) (3), [epeee](https://github.com/epeee) (1), [Fr Jeremy Krieg](https://github.com/kriegfrj) (1), [PaweB PamuBa](https://github.com/PawelPamula) (1), shipkit-org (1)
>  - [Java 9 support] ClassCastExceptions with JDK9 javac [([#357](https://github-redirect.dependabot.com/mockito/mockito/issues/357))](https://github-redirect.dependabot.com/mockito/mockito/issues/357)
>  - [Bugfixes] RETURNS_DEEP_STUBS causes "Raw extraction not supported for : 'null'" in some cases [([#1621](https://github-redirect.dependabot.com/mockito/mockito/issues/1621))](https://github-redirect.dependabot.com/mockito/mockito/issues/1621)
>  - Update shipkit plugin (v2.1.6) [([#1647](https://github-redirect.dependabot.com/mockito/mockito/issues/1647))](https://github-redirect.dependabot.com/mockito/mockito/pull/1647)
>  - VerificationCollector to handle non-matching args and other assertions [([#1644](https://github-redirect.dependabot.com/mockito/mockito/issues/1644))](https://github-redirect.dependabot.com/mockito/mockito/pull/1644)
>  - VerificationCollector doesn't work for invocations with non-matching args [([#1642](https://github-redirect.dependabot.com/mockito/mockito/issues/1642))](https://github-redirect.dependabot.com/mockito/mockito/issues/1642)
>  - Fix returns mocks for final classes [([#1641](https://github-redirect.dependabot.com/mockito/mockito/issues/1641))](https://github-redirect.dependabot.com/mockito/mockito/pull/1641)
>  - Removes inaccessible links from javadocs in Mockito.java [([#1639](https://github-redirect.dependabot.com/mockito/mockito/issues/1639))](https://github-redirect.dependabot.com/mockito/mockito/pull/1639)
>  - Mockito.java contains inaccessible links to articles. [([#1638](https://github-redirect.dependabot.com/mockito/mockito/issues/1638))](https://github-redirect.dependabot.com/mockito/mockito/issues/1638)
>  - Handle terminal type var with bounds [([#1624](https://github-redirect.dependabot.com/mockito/mockito/issues/1624))](https://github-redirect.dependabot.com/mockito/mockito/pull/1624)
>  - Return null instead of causing a CCE [([#1612](https://github-redirect.dependabot.com/mockito/mockito/issues/1612))](https://github-redirect.dependabot.com/mockito/mockito/pull/1612)
> 
> ## v2.24.8
> <sup><sup>*Release notes were automatically generated by [Shipkit](http://shipkit.org/)*</sup></sup>
> 
> #### 2.24.8
>  - 2019-03-01 - [2 commits](mockito/mockito@v2.24.7...v2.24.8) by [PaweB PamuBa](https://github.com/PawelPamula) (1), [shipkit-org](https://github.com/shipkit-org) (1) - published to [![Bintray](https://img.shields.io/badge/Bintray-2.24.8-green.svg)](https://bintray.com/mockito/maven/mockito-development/2.24.8)
>  - Removes inaccessible links from javadocs in Mockito.java [([#1639](https://github-redirect.dependabot.com/mockito/mockito/issues/1639))](https://github-redirect.dependabot.com/mockito/mockito/pull/1639)
>  - Mockito.java contains inaccessible links to articles. [([#1638](https://github-redirect.dependabot.com/mockito/mockito/issues/1638))](https://github-redirect.dependabot.com/mockito/mockito/issues/1638)
> 
> ## v2.24.7
> <sup><sup>*Release notes were automatically generated by [Shipkit](http://shipkit.org/)*</sup></sup>
> 
> #### 2.24.7
>  - 2019-02-28 - [2 commits](mockito/mockito@v2.24.6...v2.24.7) by [shipkit-org](https://github.com/shipkit-org) (1), [Tim van der Lippe](https://github.com/TimvdLippe) (1) - published to [![Bintray](https://img.shields.io/badge/Bintray-2.24.7-green.svg)](https://bintray.com/mockito/maven/mockito-development/2.24.7)
>  - Fix handling of generics in ReturnsMocks [([#1635](https://github-redirect.dependabot.com/mockito/mockito/issues/1635))](https://github-redirect.dependabot.com/mockito/mockito/pull/1635)
> 
> ## v2.24.6
></tr></table> ... (truncated)
</details>
<details>
<summary>Commits</summary>

- [`70c6fa4`](mockito/mockito@70c6fa4) 2.25.0 release (previous 2.24.10) + release notes updated by CI build 3956
- [`a7ee084`](mockito/mockito@a7ee084) Merge pull request [#1619](https://github-redirect.dependabot.com/mockito/mockito/issues/1619) from ttanxu/release/2.x
- [`959cba4`](mockito/mockito@959cba4) Merge branch 'release/2.x' into release/2.x
- [`1641868`](mockito/mockito@1641868) Javadoc
- [`d61a8be`](mockito/mockito@d61a8be) Added missing coverage
- [`af2d33b`](mockito/mockito@af2d33b) 2.24.10 release (previous 2.24.9) + release notes updated by CI build 3953
- [`1183d1f`](mockito/mockito@1183d1f) Merge pull request [#1648](https://github-redirect.dependabot.com/mockito/mockito/issues/1648) from mockito/TimvdLippe-patch-1
- [`2894895`](mockito/mockito@2894895) Fix checkstyle warnings
- [`2d21a5a`](mockito/mockito@2d21a5a) Add regression test
- [`b5e9400`](mockito/mockito@b5e9400) Prevent NPE in findTypeFromGenericInArguments
- Additional commits viewable in [compare view](mockito/mockito@v2.24.5...v2.25.0)
</details>
<br />

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot ignore this [patch|minor|major] version` will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme

Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)

Finally, you can contact us by mentioning @dependabot.

</details>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants