The GitHub Actions job "Java CI" on commons-io.git/feat/file-systems has failed.
Run started by GitHub user ppkarwasz (triggered by ppkarwasz).

Head commit for run:
37a647a69b2c5ddb3446846b6ef807b7e3ebfd86 / Piotr P. Karwasz 
<[email protected]>
feat: add length unit support in FileSystem limits

Different filesystems and operating systems measure file and path lengths in 
different units:

* macOS and Windows filesystems typically count **UTF-16 code units**.
* Linux and other UNIX filesystems typically count **bytes**.

This change introduces explicit unit support so these limits can be interpreted 
consistently.

### Key changes

* **New API**

  * Added a `LengthUnit` enum and `FileSystem.getLengthUnit()` to expose the 
unit of measure used by `getMaxFileNameLength()` and `getMaxPathLength()`.
  * Added new overloads for `isLegalFileName` and `toLegalFileName` that accept 
a `Charset`, making conversions between bytes and UTF-16 explicit.

* **Adjusted defaults**

  * Reduced the `GENERIC` filesystem defaults:

    * File name length → **1020 bytes** (covers 255 UTF-16 characters encoded 
as up to 3 UTF-8 bytes).
    * Path length → **1 MiB** (covers 32,767 UTF-16 code units, again at 3 
UTF-8 bytes each).

* **Testing**

  * Added unit tests to validate the new API and updated limits.

Report URL: https://github.com/apache/commons-io/actions/runs/17506153817

With regards,
GitHub Actions via GitBox

Reply via email to