--- title: "Changelog" slug: "java-changelog" description: "Release history of the Mapp Intelligence Java library for server-side tracking: upgrade notes, new features and bugfixes per version." status: "update" updated: 2026-11-02T14:34:56Z published: 2026-11-02T14:34:56Z canonical: "docs.mapp.com/java-changelog" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.mapp.com/llms.txt > Use this file to discover all available pages before exploring further. # Changelog ## 1.1.1 (2026-10-28) ### Upgrade notes Existing code keeps working. Check the following changes before you upgrade: - **Close tracking instances:** `MappIntelligenceTracking` and `MappIntelligenceHybrid` are `AutoCloseable`. Create one instance per request and close it, ideally with try-with-resources. `close()` sends the remaining requests. Instances that are not closed still send them, at the latest when the JVM ends. (see [Classes](/v1/docs/classes)) - **HTTPS only:** All requests are sent via HTTPS. `setForceSSL()` and `consumer.forceSSL` are ignored. - **Permanent errors discard requests:** The HTTP consumer retries 5xx, 408 and 429. Other 4xx responses discard the batch, so requests rejected because of a wrong track ID or track domain are no longer kept. (see [Data Transfer: Consumer](/v1/docs/data-transfer-consumer)) - `maxQueueSize` **takes effect:** A full queue is sent. If sending fails, the oldest requests are discarded. `0` means unlimited. - **Campaigns without an ID:** The campaign is now read from the media codes of the request URL, so campaigns may be tracked where nothing was sent before. (see [Campaign](/v1/docs/campaign-data-object-java-library-s2s)) - **Hybrid:** Only pixel requests (parameter `p`, max. 64 KB) are logged. IP address and user agent sent by the client are ignored and taken from the configuration. - **Cron job:** Requests that can never be sent are kept in `*.log.discarded`, and the run continues with the next file. Runs without files to send and runs that overlap another run end with exit status 0. The cron job needs write access to the file directory. (see [Cron Job](/v1/docs/cron-job)) - **File names:** The file consumer and the cron job only process files named `<prefix>-<timestamp>…`. Check this if your own scripts process these files or if several prefixes start with the same text. #### Only relevant for subclasses and own implementations - `close()` of `MappIntelligenceConsumerFile`, `MappIntelligenceConsumerHttpClient` and `MappIntelligenceHybrid` is `public`. Subclasses that override it as `protected` have to declare it `public`. - The built-in consumers no longer implement `Runnable`. Call `close()` instead of `run()`. - Own implementations of the interface `MappIntelligence` have to implement `close()`. ### Features - **Campaigns:** `setMediaCode()` and `setOncePerSession()` now work server-side. - **Engage registration:** New fields for ISO code, ISO language and time zone. (see [Mapp Engage](/v1/docs/mapp-engage-data-object-java-library-s2s)) - **Engage attributes:** All value types are accepted, not only `String` and `Integer`. - **Custom consumers:** New method `send()` with the result `SENT`, `RETRY` or `DISCARDED`, so a consumer can discard a batch that can never be sent. (see [Interfaces](/v1/docs/interfaces)) - **HTTP consumer:** Connections are reused. - **Cron job:** Only one run at a time sends the files of a path and prefix. Partially sent files keep only the requests that were not delivered. ### Bugfixes - **Security:** In hybrid tracking, a client could set `X-WT-IP` and `X-WT-UA` and so pretend to be another user. - **Lost or duplicate requests:** Fixed for several JVMs and the cron job writing to the same files, for overlapping cron job runs, for partially sent and unreadable log files, and for a `filePath` without trailing separator. - **Reused objects:** A reused parameter map or configuration no longer carries data of the previous request into the next one. - **Request URL:** Values containing `=` or an encoded `&`, a `//` in the path and invalid percent-encoding are handled correctly. - **Product collections:** Parameters and categories that only some products have are no longer dropped. - **Engage attributes:** Quotes in values no longer break the request. - **Stability:** `null` values in setters and in the configuration no longer throw exceptions, and resource leaks are fixed. --- ## 1.0.3 (2025-10-17) ### Breaking changes This version introduces a new background mechanism that collects requests and sends them in batches at regular intervals. This improves processing efficiency and ensures stable performance, even as traffic increases, by distributing requests across multiple queues. #### Key changes in detail - **Batch request processing:** Requests are no longer sent immediately when a `track()` call is triggered. Instead, they are collected in internal queues and sent at defined intervals. - **Load distribution across multiple queues:** Requests are now processed through multiple queues, helping to evenly distribute the load and maintain stability under heavy traffic. - **Manual or automatic flushing:** Requests are automatically sent at specified intervals or can be manually triggered, giving you more control over when data is transmitted. #### Developer Impact If your application previously relied on requests being sent immediately after an action, this behavior may no longer work as expected. You need to either configure an interval for automatic flushing or implement manual triggers to send requests at the right time. (see [Classes](/v1/docs/classes)). ### Features - **PII support for Engage registration:** Personally identifiable information can now be securely transmitted during the registration process. (see [Mapp Engage](/v1/docs/mapp-engage-data-object-java-library-s2s)) - **Custom Attributes for Engage:** It is now possible to send Mapp Engage Custom Attributes directly via Server-to-Server tracking. (see [Mapp Engage](/v1/docs/mapp-engage-data-object-java-library-s2s)) - **Flexible data forwarding:** You can now choose whether data should be forwarded only to Mapp Intelligence or to both Mapp Intelligence and Mapp Engage. (see [Integration and Configuration](/v1/docs/integration-and-configuration)) --- ## 0.1.5 (2023-08-07) ### Feature - Added method for configuring connection and read timeout (see [Integration and Configuration](/v1/docs/integration-and-configuration)) ### Bugfix - At connection timeout the request is written back to the queue --- ## 0.1.3 (2023-08-02) ### Feature - Support temporary session ID (see [Data](/v1/docs/data)) --- ## 0.1.0 (2023-05-08) ### Feature - Include advanced logging (see [Integration and Configuration](/v1/docs/integration-and-configuration)) - Support UserAgent Client Hints (see [Integration and Configuration](/v1/docs/integration-and-configuration)) ### Bugfix - Update outdated dependencies --- ## 0.0.22 (2023-02-28) ### Bugfix - Add artifact *com.mapp.intelligence.tracking:mapp-intelligence-java-tracking:pom* to central --- ## 0.0.17 (2023-01-24) ### Feature - Include method to suppress certain requests (see [Integration and Configuration](/v1/docs/integration-and-configuration)). --- ## 0.0.16 (2022-10-24) ### Optimization - Add tracking parameter (pf, cs801 and cs802) for tracking feature usage. --- ## 0.0.1 (2020-11-03) - Beta release