firebase / firebase/firebase-admin-java

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

Đang mở
#1,196 1 bình luận 0 reaction 2 người được giao Được @rathovarun1032 nhận Xem trên GitHub
api: remoteconfig
Ngôn ngữ chính
Java
Star
620
Fork
305
Merge trung bình
3 giờ 23 phút
Pull request đã merge (30 ngày)
1

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.