aws / aws/aws-sdk-java-v2

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

Aperta
#4,385 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
bug p2
Lingua principale
Java
Stelle
2.6k
Fork
1k
Merge medio
2g 9h
PR unite (30g)
51

Descrizione

### 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

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con ApacheHttpClient.DefaultBuilder e ProxyConfiguration, in particolare con l’inizializzazione del builder e la gestione delle proprietà di sistema mostrate nello stack trace. Esegui la riproduzione Java con un http.proxyPort vuoto e useSystemPropertyValues(false). Il lavoro è completo quando ApacheHttpClient.builder().build() non genera più un’eccezione in quella configurazione e il comportamento segnalato è coperto dai test.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
networking
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
32/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.