# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.0.3] - 2026-03-09

### Fixed

- Fix Javadoc.

## [2.0.2] - 2026-03-05

### Fixed

- Fix architectureUsage setting.

## [2.0.1] - 2026-03-03

### Fixed

- Fix library name.

## [2.0.0] - 2026-03-02

### Changed

- Fork from Protobuf `3.7.1` instead of `3.0.0`.

### Fixed

- Fix `CVE-2024-7254` (stack overflow via nested group tags)
- Fix `CVE-2022-3510`    (Deny-of-Service via extension message parsing)

## [1.4.0] - 2026-02-25

### Changed

- Upgrade from SDK5 to SDK6.

### Added

- Add tests.

## [1.3.3] - 2025-02-14

## Fixed

- Fix `IndexOutOfBoundsException` in `UnknownFieldSetLite`.

## [1.3.2] - 2025-02-10

## Fixed

- Fix infinite recursion in `MapFieldLite.clear()`.

## [1.3.1] - 2024-11-27

## Fixed

- Add recursion check when parsing unknown fields in Java.

## [1.3.0] - 2023-05-24

## Added

- Add `CodedInputStream.newInstance()` API to create a `CodedInputStream` with an existing buffer.
- Add `CodedInputStream.setInputStream()` API to re-use an existing `CodedInputStream` with an other input stream.

## [1.2.1] - 2023-02-21

## Fixed

- Fix potential `NullPointerException` thrown in `FieldSet` clinit depending on the computed clinit order.

## [1.2.0] - 2023-01-05

## Added

- Add `ProtobufKernel.initialize()` API to initialize the library when it is embedded in a Kernel and its APIs are
  exposed to Features.

## [1.1.1] - 2022-10-21

### Fixed

- Fix potential `NullPointerException` thrown in `MapFieldLite` clinit depending on the computed clinit order.

## [1.1.0] - 2022-07-13

### Changed

- Marked APIs with annotations for Null Analysis.

### Fixed

- Fix `UninitializedMessageException` method `getMissingFields()` systematically throwing a `NullPointerException` when
  called in Lite runtime; now returns `null`.

## [1.0.1] - 2022-05-09

### Fixed

- Fix UnsupportedOperationException in MapFieldLite clinit.

## [1.0.0] - 2020-11-06

### Added

- Add the classes of the Google's protobuf3 java part to support java files compiled by protoc with lite plugin.
- Update the classes to make it run with MicroEJ:
    - Remove the use of reflection (performances decreased compared to Google's protobuf but no compatibility issue).
    - Remove the use of sun.misc.Unsafe library (native calls, performances decreased compared to Google's protobuf but
      no compatibility issue).
    - Remove `ObjectStreamException` thrown by the library as `ObjectStream` are not implemented in MicroEJ.
- Add a subset of Google's unit tests and update it for this library.

---  
_Markdown_  
_Copyright 2020-2026 MicroEJ Corp. All rights reserved._  
_This library is provided in source code for use, modification and test, subject to license terms._  
_Any modification of the source code will break MicroEJ Corp. warranties on the whole library._  