aws / aws/aws-sdk-java-v2

ApacheHttpClient.Builder throws on invalid `http.proxyPort` system property even when "useSystemPropertyValues" is false

Offen
#4,385 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug p2
Vorherrschende Sprache
Java
Sterne
2.6k
Forks
1k
Ø Merge
2 T. 9 Std.
Gemergte PRs (30 T.)
51

Beschreibung

### Describe the bug

ApacheHttpClient.DefaultBuilder always runs `ProxyConfiguration.builder().build()`.
This would be fine, except the default configuration may throw.

Reported in https://github.com/aws/aws-toolkit-jetbrains/issues/3845

### Expected Behavior

ApacheHttpClient.Builder should ignore system properties if builder sets this to false

### Current Behavior

```
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:678)
at java.base/java.lang.Integer.parseInt(Integer.java:786)
at java.base/java.util.Optional.map(Optional.java:260)
at software.amazon.awssdk.http.apache.ProxyConfiguration.resolvePort(ProxyConfiguration.java:216)
at software.amazon.awssdk.http.apache.ProxyConfiguration.(ProxyConfiguration.java:67)
at software.amazon.awssdk.http.apache.ProxyConfiguration.(ProxyConfiguration.java:37)
at software.amazon.awssdk.http.apache.ProxyConfiguration$DefaultClientProxyConfigurationBuilder.build(ProxyConfiguration.java:409)
at software.amazon.awssdk.http.apache.ProxyConfiguration$DefaultClientProxyConfigurationBuilder.build(ProxyConfiguration.java:300)
at software.amazon.awssdk.http.apache.ApacheHttpClient$DefaultBuilder.(ApacheHttpClient.java:458)
at software.amazon.awssdk.http.apache.ApacheHttpClient$DefaultBuilder.(ApacheHttpClient.java:456)
at software.amazon.awssdk.http.apache.ApacheHttpClient.builder(ApacheHttpClient.java:131)
at org.example.Main.main(Main.java:8)
```

### Reproduction Steps

```
public class Main {
public static void main(String[] args) {
System.setProperty("http.proxyPort", "");
ApacheHttpClient.builder()
.proxyConfiguration(ProxyConfiguration.builder().useSystemPropertyValues(false).build())
.build();
}
}
```

### Possible Solution

_No response_

### Additional Information/Context

_No response_

### AWS Java SDK version used

2.20.138

### JDK version used

OpenJDK 64-Bit Server VM Corretto-17.0.8.7.1 (build 17.0.8+7-LTS, mixed mode, sharing)

### Operating System and version

macOS Ventura 13.5.x

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit ApacheHttpClient.DefaultBuilder und ProxyConfiguration, insbesondere mit der im Stacktrace gezeigten Builder-Initialisierung und Verarbeitung von Systemeigenschaften. Führe die Java-Reproduktion mit einem leeren http.proxyPort und useSystemPropertyValues(false) aus. Erledigt ist die Aufgabe, wenn ApacheHttpClient.builder().build() in dieser Konfiguration keine Ausnahme mehr auslöst und das gemeldete Verhalten durch Tests abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
networking
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
32/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.