firebase / firebase/firebase-admin-java

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

Aperta
#1,196 1 commento 0 reazioni 2 assegnatari Rivendicata da @rathovarun1032 Vedi su GitHub
api: remoteconfig
Lingua principale
Java
Stelle
620
Fork
305
Merge medio
3h 23m
PR unite (30g)
1

Descrizione

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

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.