Commit Graph

345 Commits

Author SHA1 Message Date
Sebastien Deleuze
7a171c6ae9 Fix Kotlin return types to match @Nullable annotations 2017-07-04 11:27:54 +02:00
Juergen Hoeller
cc74a2891a @Nullable all the way: null-safety at field level
This commits extends nullability declarations to the field level, formalizing the interaction between methods and their underlying fields and therefore avoiding any nullability mismatch.

Issue: SPR-15720
2017-06-30 01:54:16 +02:00
Sebastien Deleuze
04d5a2951c Remove KClass based Kotlin extensions
Issue: SPR-15660
2017-06-13 18:43:59 +02:00
Stephane Nicoll
1ab678a2a3 Polish "Refactor iterator of Map with Java8's Map.forEach"
Closes gh-1459
2017-06-13 16:06:20 +02:00
diguage
1ef5f61ab2 Refactor iterator of Map with Java8's Map.forEach
See gh-1459
2017-06-13 16:06:20 +02:00
Stephane Nicoll
fc64b8040f Polish "Replace relevant code with lambda"
Closes gh-1454
2017-06-13 09:42:20 +02:00
diguage
4b1478d830 Replace relevant code with lambda
See gh-1454
2017-06-13 08:55:38 +02:00
Juergen Hoeller
3ae84d6dd8 Consistent support for Charset/StandardCharsets in UriUtils etc
Issue: SPR-15613
2017-06-12 15:51:45 +02:00
diguage
c1d44d9a34 Use the diamond syntax
Closes gh-1450
2017-06-12 09:19:06 +02:00
Sebastien Deleuze
86580b2358 Polishing 2017-06-09 01:49:56 +03:00
Sebastien Deleuze
8579ae66fc Add comprehensive tests of Kotlin extensions
This commit also removes extensions hidden by Java API (varargs).
2017-06-09 01:01:16 +03:00
Juergen Hoeller
ee5fa2633a Protect against null return value from DataSource.getConnection()
Issue: SPR-15641
2017-06-08 22:51:41 +02:00
Juergen Hoeller
f813712f5b Consistent use of @Nullable across the codebase (even for internals)
Beyond just formally declaring the current behavior, this revision actually enforces non-null behavior in selected signatures now, not tolerating null values anymore when not explicitly documented. It also changes some utility methods with historic null-in/null-out tolerance towards enforced non-null return values, making them a proper citizen in non-null assignments.

Some issues are left as to-do: in particular a thorough revision of spring-test, and a few tests with unclear failures (ignored as "TODO: NULLABLE") to be sorted out in a follow-up commit.

Issue: SPR-15540
2017-06-07 14:19:15 +02:00
Sebastien Deleuze
1f28825f9d Add more @Nullable parameters based on null usage
Issue: SPR-15540
2017-05-31 21:42:23 +02:00
Sebastien Deleuze
b47d713e14 Add missing @Nullable annotations on parameters
Issue: SPR-15540
2017-05-31 16:56:08 +02:00
Sebastien Deleuze
87598f48e4 Introduce null-safety of Spring Framework API
This commit introduces 2 new @Nullable and @NonNullApi
annotations that leverage JSR 305 (dormant but available via
Findbugs jsr305 dependency and already used by libraries
like OkHttp) meta-annotations to specify explicitly
null-safety of Spring Framework parameters and return values.

In order to avoid adding too much annotations, the
default is set at package level with @NonNullApi and
@Nullable annotations are added when needed at parameter or
return value level. These annotations are intended to be used
on Spring Framework itself but also by other Spring projects.

@Nullable annotations have been introduced based on Javadoc
and search of patterns like "return null;". It is expected that
nullability of Spring Framework API will be polished with
complementary commits.

In practice, this will make the whole Spring Framework API
null-safe for Kotlin projects (when KT-10942 will be fixed)
since Kotlin will be able to leverage these annotations to
know if a parameter or a return value is nullable or not. But
this is also useful for Java developers as well since IntelliJ
IDEA, for example, also understands these annotations to
generate warnings when unsafe nullable usages are detected.

Issue: SPR-15540
2017-05-27 08:57:01 +02:00
Juergen Hoeller
0b118322b0 Polishing 2017-04-13 16:17:05 +02:00
Juergen Hoeller
9e55e8f8a6 Polishing 2017-04-12 18:07:14 +02:00
Juergen Hoeller
67ea4b3a05 package-info for repackaged libraries (and other polishing) 2017-04-06 14:10:46 +02:00
Juergen Hoeller
af6f688196 Test for BeanPropertySqlParameterSource with collection
Issue: SPR-15390
2017-04-04 17:17:29 +02:00
Amey Jadiye
472954bbb7 Polish javadoc
Closes gh-1370
2017-04-02 08:06:57 +02:00
arturgspb
8db8c85b69 SPR-15382 Spring Jdbc add Postgresql ?| and ?& operators support 2017-03-27 11:46:55 +03:00
Juergen Hoeller
e892e02f41 Polishing 2017-03-21 17:44:47 +01:00
Juergen Hoeller
79ea77908a Process NULLABLE column as integer instead of boolean
Issue: SPR-15333
2017-03-14 15:19:13 +01:00
Sebastien Deleuze
9963c4a495 Fix Kotlin warnings 2017-03-10 10:35:30 +01:00
Ruslan Pistriak
8417a73913 Polishing
Closes gh-1340
2017-02-25 16:50:02 +01:00
Juergen Hoeller
0f51ff5ebc Reset global rollback-only status when rolling back to savepoint
Issue: SPR-6568
2017-02-17 23:40:44 +01:00
Juergen Hoeller
0da8dee289 Polishing 2017-02-16 16:24:13 +01:00
Juergen Hoeller
8d707eb530 Polishing 2017-02-16 15:37:31 +01:00
Juergen Hoeller
599c1ba73e Polishing 2017-02-15 18:05:38 +01:00
Juergen Hoeller
07dd61eabd Drop NativeJdbcExtractor mechanism in favor of JDBC 4 unwrap
Issue: SPR-14670
2017-02-15 18:04:08 +01:00
Juergen Hoeller
e9019cd7d1 Polishing 2017-02-10 10:56:40 +01:00
Juergen Hoeller
c0f4d78ef9 Use Map.getOrDefault in getSqlType implementation
Issue: SPR-15238
2017-02-10 10:54:54 +01:00
Juergen Hoeller
b630c9bea7 Clear synchronization before triggering afterCompletion callbacks
Issue: SPR-15194
Issue: SPR-11590
2017-02-10 10:39:33 +01:00
Juergen Hoeller
caf11a49ff Drop unused LobCreator synchronization utilities
Issue: SPR-13827
2017-02-10 10:36:52 +01:00
Juergen Hoeller
acf511ac0e Polishing 2017-02-02 20:11:06 +01:00
Juergen Hoeller
02195f5abf Support for read-only transactions through explicit SET TRANSACTION statement
Issue: SPR-15210
2017-02-02 20:06:28 +01:00
Mario Arias
c33ad15b28 Add Kotlin JDBC extensions
Issue: SPR-15158
2017-01-31 16:44:35 +01:00
Juergen Hoeller
1b2dc3638f Revisit Assert to avoid single-arg assert methods (with refined messages)
Issue: SPR-15196
2017-01-30 22:15:55 +01:00
Juergen Hoeller
743ce2cda6 Polishing 2017-01-12 23:30:38 +01:00
Juergen Hoeller
e19dff179e Polishing 2017-01-12 21:18:01 +01:00
Juergen Hoeller
de4349792b GenericTableMetaDataProvider falls back to single schema as default
Issue: SPR-15090
2017-01-12 21:15:08 +01:00
Thomas Risberg
5c7aee7d38 Updating MySQLMaxValueIncrementer to not rely on MYISAM
We should no longer rely on MYISAM for the sequence table since this
engine might not always be available. After this change the storage
engine used by the sequence table can be MYISAM or INNODB since the
sequences are allocated using a new connection without being
affected by any other transactions that might be in progress.

To allow users to fall back on the original functionality of using
MYISAM tables for the incrementer, we add a `useNewConnection` flag to
indicate whether or not to use a new connection for the incrementer.
This flag defaults to true.

Issue: SPR-15107
2017-01-11 17:24:41 -05:00
Sam Brannen
9ed66bf2eb Clean up warnings across code base 2017-01-07 01:54:38 +01:00
Philippe Marschall
3f97ab183e Avoid use of double constructor of BigDecimal
Codacy warns about an Error Prone [1] use of the double constructor of
BigDecimal in tests. The reason given is that it is a source of
precision loss if the number does not have an exact double
representation. The recommendation is to use the String constructor of
BigDecimal instead as it does not require using a lossy argument.

This commit contains the following changes:

 - replace usage of the double constructor of BigDecimal with the
   String constructor of BigDecimal in JdbcTemplateQueryTests
 - update the copyright year

 [1] http://errorprone.info/bugpattern/BigDecimalLiteralDouble

Issue: SPR-15077
2017-01-04 09:29:48 +01:00
Philippe Marschall
35bd00beaf Remove String#toCharArray from ScriptUtils
ScriptUtils contains two calls to String#toCharArray for the sole
purpose to iterating over all chars in a String. Not only is this
unnecessary and can be replaced with String#charAt it also causes
additional allocator and heap pressure because String#toCharArray
rather than returning the backing array (which is gone in Java 9)
creates a copy.

This commit contains the following changes:

 - remove String#toCharArray from ScriptUtils and replace with
   String#charAt

Issue: SPR-15075
2017-01-03 17:57:22 +01:00
Juergen Hoeller
82c1c859d9 Polishing
(cherry picked from commit 9cb4de8)
2016-12-20 21:17:48 +01:00
mmoores
79c202ab14 Call getColumnRowMapper() to create the row mapper; prevents requirement to override extractReturnedResults(). 2016-12-14 07:48:32 -08:00
Juergen Hoeller
e49813f2c4 Polishing 2016-12-12 22:49:40 +01:00
Juergen Hoeller
b825528d01 SQLErrorCodesFactory provides unregisterDatabase method
This commit also migrates from a WeakHashMap to a ConcurrentReferenceHashMap, allowing for concurrent access to existing cache entries.

Issue: SPR-15006
2016-12-12 15:26:46 +01:00