firebase / firebase/firebase-admin-java

[BUG] RemoteConfig unit tests fail in non-English (e.g., Korean) Locales due to Date Parsing

Abierto
#1,196 1 comentario 0 reacciones 2 asignados Reclamado por @rathovarun1032 Ver en GitHub
api: remoteconfig
Lenguaje dominante
Java
Estrellas
620
Forks
305
Merge medio
3 h 23 min
PR fusionados (30 d)
1

Descripción

### [REQUIRED] Step 2: Describe your environment

* **Operating System version:** macOS (Apple Silicon, ko_KR locale)
* **Firebase SDK version:** 9.7.0 (Current development branch)
* **Library version:** N/A
* **Firebase Product:** Remote Config

### [REQUIRED] Step 3: Describe the problem

#### Steps to reproduce:
The unit tests for Remote Config fail when the system's default locale is set to a non-English language (e.g., Korean). This is due to `RemoteConfigUtil` using `SimpleDateFormat` without an explicit `Locale.ENGLISH`, causing parsing errors or string comparison mismatches against English date formats.

#### Error Output:
```text
org.junit.ComparisonFailure: expected:<...NODE","updateTime":"[Tue, 08 Dec] 2020 15:49:51 UTC",...>
but was:<...NODE","updateTime":"[화, 08 12월] 2020 15:49:51 UTC",...>

Caused by: java.text.ParseException: Unparseable date: "Tue, 08 Dec 2020 15:49:51 UTC"
at java.base/java.text.DateFormat.parse(DateFormat.java:427)
at com.google.firebase.remoteconfig.RemoteConfigUtil.convertFromUtcDateFormat(RemoteConfigUtil.java:91)
```

#### Relevant Code:
The issue occurs in `RemoteConfigUtil.java`. There are 4 methods using `SimpleDateFormat` without an explicit `Locale`. To ensure consistent behavior across different system locales, all instances of `SimpleDateFormat` should be instantiated with `Locale.ENGLISH`.

**Affected Methods:**
* `convertToUtcZuluFormat(long millis)`
* `convertToUtcDateFormat(long millis)`
* `convertFromUtcZuluFormat(String dateString)`
* `convertFromUtcDateFormat(String dateString)`

**Current implementation:**
```java
SimpleDateFormat dateFormat = new SimpleDateFormat(PATTERN);
```

Recommended fix:

```Java
SimpleDateFormat dateFormat = new SimpleDateFormat(PATTERN, Locale.ENGLISH);
```

I've already identified the fix and verified it locally by setting the locale to Korean. I'd like to submit a Pull Request to resolve this issue.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.