You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Michael Osipov (Jira)" <ji...@apache.org> on 2020/03/19 08:22:00 UTC

[jira] [Updated] (WAGON-584) LightweightHttpWagon and tests are built on false assumptions around internal buffering

     [ https://issues.apache.org/jira/browse/WAGON-584?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Osipov updated WAGON-584:
---------------------------------
    Description: 
The {{LightweightHttpWagon}} heavily differs from {{HttpWagon}} internally, the way {{HttpURLConnection}} is implemented it is virtually impossible to make them behave similar (or identical).

Notable differences:
* Expect Continue is virtually not supported and signals an exception as soon as non-2xx is received
* *All* content is buffered in a byte array making it extremely inefficient with large uploads
* As soon as streaming mode is enabled (see {{#setFixedLengthStreamingMode(long)}} and {{#setChunkedStreamingMode(int)}}) redirect and authentication support are disabled

Tests do assume that both behave the same although {{HttpWagon}} is fully streaming while the other one is not. So, the tests are illdesigned/based on false assumptions. Run branch {{WAGON-584_streaming}} and see the failures.

This behavior is nowhere documented and not properly covered in tests.

  was:
The {{LightweightHttpWagon}} heavily differ from {{HttpWagon}} internally, the way {{HttpURLConnection}} is implemented it is virtually impossible to make them behave similar (or identical).

Notable differences:
* Expect Continue is virtually not supported and signals an exception as soon as non-2xx is received
* *All* content is buffered in a byte array making it extremely inefficient with large uploads.
* As soon as streaming mode is enabled (see {{#setFixedLengthStreamingMode(long)}} and {{#setChunkedStreamingMode(int)}}) redirect and authentication support are disabled

Tests do assume that both behave the same although {{HttpWagon}} is fully streaming while the otherone is not. So, the tests are illdesigned/based on false assumptions. Run branch WAGON-584_streaming and see the failures.

This behavior is nowhere documented and not properly covered in tests.


> LightweightHttpWagon and tests are built on false assumptions around internal buffering
> ---------------------------------------------------------------------------------------
>
>                 Key: WAGON-584
>                 URL: https://issues.apache.org/jira/browse/WAGON-584
>             Project: Maven Wagon
>          Issue Type: Bug
>          Components: wagon-http-lightweight
>    Affects Versions: 3.3.4
>            Reporter: Michael Osipov
>            Priority: Major
>
> The {{LightweightHttpWagon}} heavily differs from {{HttpWagon}} internally, the way {{HttpURLConnection}} is implemented it is virtually impossible to make them behave similar (or identical).
> Notable differences:
> * Expect Continue is virtually not supported and signals an exception as soon as non-2xx is received
> * *All* content is buffered in a byte array making it extremely inefficient with large uploads
> * As soon as streaming mode is enabled (see {{#setFixedLengthStreamingMode(long)}} and {{#setChunkedStreamingMode(int)}}) redirect and authentication support are disabled
> Tests do assume that both behave the same although {{HttpWagon}} is fully streaming while the other one is not. So, the tests are illdesigned/based on false assumptions. Run branch {{WAGON-584_streaming}} and see the failures.
> This behavior is nowhere documented and not properly covered in tests.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)