Commit Graph

689 Commits

Author SHA1 Message Date
Konrad Kamiński 9302cb2f85 Support Kotlin suspending functions in MethodParameter
Before this commit, the return type for Kotlin suspending functions
(as returned by MethodParameter#getParameterType and
MethodParameter#getGenericReturnType methods) was incorrect.

This change leverages Kotlin reflection instead of Java one
to return the correct type.

Closes gh-21058
2019-03-06 10:14:34 +01:00
Rossen Stoyanchev 9e7f557b4a Updates for buffer management in RSocket
- Integration tests run with zero copy configuration.
- RSocketBufferLeakTests has been added.
- Updates in MessagingRSocket to ensure proper release

See gh-21987
2019-03-04 23:35:43 -05:00
Brian Clozel 3ac1dddb9d Merge branch '5.1.x' 2019-03-04 13:58:41 +01:00
Andrew Tulloch 090aceb3ad Fix repeated calls to DataBuffer.write(CharSequence, Charset)
Prior to this commit, repeated calls to `DataBuffer.write(CharSequence,
Charset)` would not write the given chars to the expected position in
the original buffer.

This commit fixes that by writing to the `outBuffer.position()`, offset
by the current `DataBuffer.writePosition()`.

Fixes gh-22484
2019-03-04 13:37:06 +01:00
Juergen Hoeller 5e0cd9fb60 Merge branch '5.1.x' 2019-02-14 13:39:58 +01:00
Juergen Hoeller ac0e5d8ec6 DefaultConversionService properly converts Object[] to int[]
Closes gh-22410
2019-02-14 13:38:29 +01:00
Juergen Hoeller 4e47006a17 Merge branch '5.1.x' 2019-02-12 09:09:19 +01:00
Juergen Hoeller 106a757098 Polishing 2019-02-12 09:07:58 +01:00
Sebastien Deleuze 0b9522c84e Migrate Kotlin Mockito tests to Mockk
Closes gh-22345
2019-02-05 15:47:08 +01:00
Brian Clozel 2b65d0e51f Fix error when writing empty String to DataBuffer
Prior to this commit, `DataBuffer.write` would throw an
`IllegalStateException` when called with an empty `String`, since the
`CharsetEncoder` would be flushed on an incorrent state.

This commit skips entirely the encoding phase for empty `String`.

Fixes #22262
2019-01-17 11:09:48 -05:00
Juergen Hoeller 72dddfbc7b Polishing 2019-01-09 12:26:58 +01:00
Andrzej Leśkiewicz 952045c216 SPR-17606 @Profile mishandles "not" operand mixed with "&" (#2066)
Correct handling of not/and expressions in ProfilesParser

Issue: SPR-17606
2019-01-08 22:24:15 +01:00
Juergen Hoeller 31a24720a6 Consistent support for EnumSet subclasses in CollectionFactory
Issue: SPR-17619
2018-12-25 13:20:31 +01:00
Arjen Poutsma 5a8b8b11e4 Add test for calculateCapacity
Issue: SPR-17558
Closes gh-2054
2018-12-20 21:34:15 +01:00
Brian Clozel 4955d08f28 Use DataBuffer.write in CharSequenceEncoder
Since SPR-17558, `DataBuffer` now offers a new method to write Strings
to them. This commit makes `CharSequenceEncoder` use that.

Issue: SPR-17558
2018-12-20 21:33:44 +01:00
Brian Clozel 6361b0cb23 Write CharSequence instances to DataBuffers
Prior to this commit, one could write a `CharSequence` to an existing
`DataBuffer` instance by turning it into a byte array or `ByteBuffer`
first. This had the following disadvantages:

1. Memory allocation was not efficient (not leveraging pooled memory
when available)
2. Dealing with `CharsetEncoder` is not always easy
3. `DataBuffer` implementations, like `NettyDataBuffer` can use
optimized implementations in some cases

This commit adds a new `DataBuffer#write(CharSequence, Charset)` method
for those cases and also an `ensureCapacity` method useful for checking
that the current buffer has enough capacity to write to it..

Issue: SPR-17558
2018-12-20 21:33:33 +01:00
igor-suhorukov 93189a6733 String.indexOf() expressions can be replaced with a call to the String.contains() method available in Java 5 and newer. 2018-12-13 12:29:31 +01:00
Rossen Stoyanchev 38ae282c3b Update log category precision for all tests
Replace the full category capped at 36 chars with the class name only
and 1 char per package, e.g. org.apache.commons.Foo -> o.a.c.Foo
2018-12-12 11:40:33 -05:00
Juergen Hoeller 6d7827e36b Polishing 2018-12-03 23:53:00 +01:00
Sam Brannen a528407d0c Suppress warning 2018-11-23 18:05:47 +01:00
Juergen Hoeller 56234fe877 Polishing 2018-11-22 22:03:36 +01:00
Juergen Hoeller 8c7579eba8 Polishing 2018-11-20 22:06:44 +01:00
Vojtech Janota 12f168290d SPR-17492: FastByteArrayOutputStream.read byte-to-int conversion 2018-11-20 17:08:01 +01:00
Arjen Poutsma 63275ae2b7 Add Test for LeakAwareDataBufferFactory 2018-11-19 16:56:25 +01:00
Stephane Nicoll 7b6f2f8fb3 Polish contribution
Closes gh-2019
2018-11-19 08:45:33 +01:00
Hanope bfb49c7249 Fix typos
See gh-2019
2018-11-19 08:41:21 +01:00
Arjen Poutsma 539cfc24c6 Refactor AbstractEncoderTestCase
Refactor AbstractEncoderTestCase to resemble AbstractDecoderTestCase

Issue: SPR-17449
2018-11-16 14:33:26 +01:00
Arjen Poutsma 39ce989d1a Add and use AbstractDecoderTestCase
Introduce new base test case for decoder tests, and use it.

Issue: SPR-17449
2018-11-16 14:33:26 +01:00
Rossen Stoyanchev ba3fef3e8a Refactor media types parsing improvements
Issue: SPR-17459
2018-11-13 23:02:09 -05:00
Dimitrios Liapis f4b05dc2e7 MediaType parsing supports comma inside quotes
Issue: SPR-17459
2018-11-13 16:59:57 -05:00
Arjen Poutsma 4182935b7a Revert optimization in StringDecoder
This commit reverts the first optimizations listed in
fa096dc60f, as the default delimiters
do vary, namely by the charset given in the message mime type.
The mimetype charset might not be compatible with ASCII (i.e. anything
but UTF-8 or ISO-8859-1, for instance it might be UTF-16), and will not
successfully find the default delimiters as a consequence.

Added test to indicate the bug.
2018-11-13 13:38:13 +01:00
Arjen Poutsma 3bab3515b1 Add and use AbstractEncoderTestCase
Introduce new base test case for encoder tests, and use it.

Issue: SPR-17449
2018-11-13 13:35:37 +01:00
Arjen Poutsma 0c0de851f4 Add LeakAwareDataBufferFactory
Introduce a data buffer factory that can check for memory leaks in
@After methods.

Issue: SPR-17449
2018-11-13 13:35:37 +01:00
Rossen Stoyanchev c187cb2fa1 Ensure client response is drained with onStatus hook
Issue: SPR-17473
2018-11-08 22:41:22 -05:00
Arjen Poutsma 488a1d4561 Review DataBufferUtils for cancellation memory leaks
Issue: SPR-17408
2018-10-24 16:28:21 +02:00
Arjen Poutsma 51bb96db47 Fix ResourceRegionEncoder and tests
Fix ResourceRegionEncoder so that it checks for resource existance
before writing boundaries. Also defer data buffer allocation until
necessary.

Issue: SPR-17419
2018-10-23 16:41:48 +02:00
Arjen Poutsma eac9e66c46 Fix memory leak when canceling read from AsynchronousFileChannel
This commit fixes a memory leak that occurs when reading from a
AsynchronousFileChannel, and cancelling the subscription.

Issue: SPR-17419
2018-10-23 16:41:48 +02:00
Arjen Poutsma 946ec7e22e Fix memory leaks in ProtobufDecoder
Issue: SPR-17418
2018-10-22 16:00:32 +02:00
Arjen Poutsma f738273486 Fix buffering issue in StringDecoder
Issue: SPR-17418
2018-10-22 16:00:32 +02:00
Juergen Hoeller dd2ce20687 SpringFactoriesLoader tolerates whitespace around class names
Issue: SPR-17413
2018-10-22 15:13:58 +02:00
Arjen Poutsma 149d416e8e Review DataBufferUtils for error/cancellation memory leaks
Issue: SPR-17408
2018-10-19 12:16:18 +02:00
Sebastien Deleuze 2c5a1af236 Leverage Java reflection for Kotlin enums
As discussed in KT-25165, from a Kotlin POV enum constructors
have no parameter, this is an "implementation detail"
required for running on the JVM, so it seems relevant to skip
Kotlin reflection in that case and just delegate to Java
reflection.

Issue: SPR-16931
2018-10-16 16:40:02 +02:00
Juergen Hoeller b7e4a56e5c Mark PathResourceTests as deprecated (along with PathResource)
Issue: SPR-17320
2018-10-12 13:17:28 +02:00
Juergen Hoeller 83909e6e1e Consistent exposure of empty attribute arrays in AnnotationMetadata
Issue: SPR-17347
2018-10-09 23:14:13 +02:00
Juergen Hoeller cf3635b42d Resource.lastModified() propagates 0 value if target resource exists
Includes use of Files.getLastModifiedTime for NIO Paths, preservation of NIO-based resolution on createRelative, deprecation of PathResource, and consistent use of getContentLengthLong over getContentLength.

Issue: SPR-17320
2018-10-09 23:13:11 +02:00
Rossen Stoyanchev c01f350abe Move MonoToListenableFutureAdapter to spring-core
This was a package private class in spring-messaging since 5.0, and was
recently made public in 5.1. This commit promotes it to spring-core
where it belongs next to all other ListenableFuture support classes.

Follow-up refactoring for SPR-17336
2018-10-09 16:26:24 -04:00
Juergen Hoeller ad29f97a05 Polishing 2018-09-29 17:16:25 +02:00
Arjen Poutsma 09af706af6 Use concatWith instead of mergeWith 2018-09-11 13:36:44 +02:00
Arjen Poutsma 1a0522b805 DataBufferUtils does not release DataBuffer on error cases
This commit makes sure that in DataBufferUtils.write, any received data
buffers are returned as part of the returned flux, even when an error
occurs or is received.

Issue: SPR-16782
2018-09-11 13:36:44 +02:00
Juergen Hoeller 84ec382201 XMLEventReader.getElementText() properly checks for start element
Issue: SPR-17233
2018-09-07 12:56:15 +02:00