aws / aws/aws-sdk-java-v2

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

Abierto
#4,385 1 comentario 0 reacciones 0 asignados Ver en GitHub
bug p2
Lenguaje dominante
Java
Estrellas
2.6k
Forks
1k
Merge medio
2 d 9 h
PR fusionados (30 d)
51

Descripción

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

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza con ApacheHttpClient.DefaultBuilder y ProxyConfiguration, especialmente con la inicialización del builder y el manejo de las propiedades del sistema que se muestran en el stack trace. Ejecuta la reproducción en Java con un http.proxyPort vacío y useSystemPropertyValues(false). La tarea estará terminada cuando ApacheHttpClient.builder().build() ya no lance una excepción en esa configuración y haya cobertura para el comportamiento reportado.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
networking
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
32/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.