Beginning in February 2020, AppDynamics switched from Semantic Versioning to Calendar Versioning for some agents and the first deployments of SaaS Controllers. In March 2020, the entire product suite will use Calendar Versioning.

Skip to end of metadata
Go to start of metadata

Related pages:

Your Rating:
1 Star2 Star3 Star4 Star5 Star
2 rates
The following notes describe 4.5.x updates to the Java Agent. You can find resolved issues on 4.5.x Resolved Issues by Month.

If an artifact has been updated, the version number of the updated artifact and its availability date are listed below. The version number corresponds to that shown on the download portal (

The most recent releases appear at the top of the page.

4.5.19 Updates

Version 4.5.19 – February 20, 2020

  • The AdoptOpenJDK is added to the set of Java runtimes explicitly certified with the Java Agent. Learn more.
  • Java Agent can now run without the jdk.jcmd module for the Java version 9 and later.
  • You can enable business transaction correlation using SOAP:Header with WebLogic, WebSphere, and Tibco implementations. The SOAP header is an alternative to the default correlation via HTTP headers. Learn more.

4.5.18 Updates

Version 4.5.18 – January 20, 2020

  • The Java Agent now supports OkHttp versions 3 and 4 for the synchronous and asynchronous cases.
  • You can enable business transaction correlation using SOAP: Header with Spring WS implementations. The SOAP header is an alternative to the default correlation via HTTP headers.
  • Agent API: Two new APIs have been introduced, one for renaming a synchronous transaction and another for naming a transaction using servlet. Learn more.
  • An 'instrumentation SDK' has been provided that supports the use of the APIs. This iSDK allows users to create custom instrumentation to apply to the code in their application, therefore avoiding the need to make development changes to instrument the code. Learn more.
  • Agentless Analytics now supports license rules configured in the Java Agent version 4.5.18 and later. 

4.5.17 Updates

Version 4.5.17 – December 13, 2019

  • The Java Agent now blacklists the use of several classes and methods for getter chains. Learn more.
  • For OSB, WSDL and SOAP are now web service entry points. 
  • The Java Agent now marks business transaction errors that originate from an OSB entry point.

4.5.16 Updates

Version – November 15, 2019

  • The Java Agent now supports Micronaut version 1.1.0. 
  • You can enable business transaction correlation using SOAP:Header with Axis 2 and JAX-WS implementations. The SOAP header is an alternative to the default correlation via HTTP headers. 
  • You can collect Transaction Analytics data from the Java Agent without the need for a dedicated Analytics Agent. This feature is available with the 4.5.16 Controller and 4.5.16 Java Agent. Learn more in Application Analytics Notes
Known Issue

Transaction Analytics without an Analytics Agent is automatically enabled for SaaS Controllers with Java Agent 4.5.16 and later. If you deploy Analytics to multiple nodes, you may not receive Transaction Analytics data. AppDynamics recommends that you do not upgrade to Java Agent 4.5.15 and later if you are running multiple nodes. If you have already upgraded your deployment, contact AppDynamics Support to downgrade. 

4.5.15 Updates

Version – October 17, 2019


The Java Agent now:

  • Supports MongoDB Reactive Streams Driver, versions 1.3-1.12.
  • Detects access to MongoDB via MongoDB Async Java Driver versions 3.4-3.11, using asynchronous APIs.
  • Filters out snapshot segments whose duration is below a configurable threshold (5ms default) and does not make any exit calls to aid snapshot usability.  
  • Adds Push Promise support for Java HTTP Async Client. Threads executing push promise handlers will be correlated with the business transaction within which the associated HTTP request initiated.
  • Supports JDK13 with one 'Known Issue' (see below). 
Known Issues

 When the 4.5.15 Java Agent runs on JDK12 or JDK13, it may cause the JVM to crash. To prevent a JVM crash, set the following property:

  • appdynamics.agent.prefer.retransformClasses=true

This issue has been reported to Oracle and assigned Issue ID JDK-8232997.

4.5.14 Updates

Version – September 19, 2019

  • The Java Agent now supports Jboss EAP 7.x
  • Support has been added for Mule 4.2.0 and 4.2.1.

4.5.13 Updates

Version – August 27, 2019

  • Added support for Akka 2.5 for HTTP
  • Added OpenTracing support
  • Added support for collection of cross-app BT-BT metrics, disabled by default controlled by disable-service-monitoring-metrics node property
  • By default, AppDynamics excludes SSLv3 and TLSv1protocols due to the known vulnerabilities. You can enable it explicitly by passing the -Dappdynamics.agent.tls.allowedAlgorithms property to your startup script.

Resolved Issues

Support for latest Jboss EJB client for RMI call correlation


Java Agent throws ArrayIndexOutOfBoundsException when custom backend naming rules refer to backend URL segments that are not present in the backend call


Exception logged at INFO level unbounded times and fills the logs


Mule 4.1 in process BT correlation incomplete when using APIKit Router


Unable to instrument Java Agent with Java 11


Xpath split feature does not work in version 4.5.10


Error 'java.lang.VerifyError Stack size too large' when instrumenting java 1.7+ classes

JAVA-5918Memory leak due to error in JMSReceiveExitPointInterceptor if transaction fails to start
JAVA-5925Setting property javax.xml.parsers.DocumentBuilderFactory causes ClassCastException in agent
JAVA-5950Rest logs are coming empty, and logging goes to agent logs instead
JAVA-6075Updated vulnerable jackson-databind library
JAVA-6162Null Pointer Exception (NPE) in log GUID injection code when hit from identification interceptor

4.5.12 Updates

Version – July 18, 2019

Resolved Issues
JAVA-5401JVM and JMX metrics are not reported after the agent is turned off with 'Disable all monitoring including JVM and JMX metrics' option unchecked
JAVA-5434Application level cross-application call metric reports missed due to race condition
JAVA-5535'Error StatusLogger No log4j2 configuration file found' logger message comes up on startup with JDK9+
JAVA-5655Custom JMS BT exclude rules are not applied at JMS receive entries
JAVA-5687Upgrade log4j2 version to be compatible with Java 1.6 and eliminates CVEs
JAVA-5837Custom POJO exclude rules including overloaded method parameters are not correctly applied
Known Issues

Setting property causes ClassCastException.

4.5.11 Updates

API Version – July 11, 2019

Updated the agent API package. See, Java API User Guide for more details.

Version – June 17, 2019

  • Added support for JDK version 12

  • Added exit support for JDK11 async HTTP client
  • Added experimental support for executor-based instrumentation of thread handoffs
  • Added disable-agent-api node property to disable all calls to the agent-api library
Resolved Issues


Exception java.lang.NoSuchFieldException is seen on agent on startup when used with Java 12


Agent logs are not available on Controller when the -Dappdynamics.agent.reuse.nodeName=true system property is enabled


Grizzly async HTTP client instrumentation needs enhancement to support v1.14

JAVA-5814Sensitive data filter applies extra characters in snapshot list view

Deprecation Notice

First generation agent SDK has been deprecated.

4.5.10 Updates

Version – May 20, 2019

  • Added support for OSB split-join and JMS. Other exits will appear as custom backends.
  • Added exit support for Jetty Reactive HTTP Client and EUM support for Reactor Netty entry
  • Added JMS support for Mule 4.1.x
  • Added support for Amazon Corretto JVM v8 and v11
Resolved Issues

Calls per minute at tier level are not reported when a ribbon is used for synchronous external calls


Instrumentation to support struts v2.3.17+


Debug-interceptors via custom-interceptors.xml throws NullPointerException


JVM 1.6 hangs under certain conditions due to contention with AppDynamics Coalescable_CS_Scheduler thread

4.5.9 Updates

Version – April 19, 2019

  • Added HTTP support for Mule 4.1.x
  • Added support for socket instrumentation for Reactor Netty Entry
  • Added agent support for WebFlux and WebClient
  • Added support for Vertx version 3.6.0
Resolved Issues

"Invalid tier or backend specified in To section" error thrown by addMetric method


Overlapping entries in BCI log


Error during agent startup from Log4j2 conflict


Old library versions shipped with Java agent trigger security-scan hits


Log4j refactoring to addresses coexistence issues

JAVA-5181ClassFormatError – if any class implementing interface extending serializable, runnable gets instrumented
JAVA-5190ASM unable to visit class constructor for classes compiled pre-jdk 1.5 after upgrading to agent 4.5.5

NPE in IbmBpmUserTaskCoachEntryInterceptor while ProcessPortal login


Classes loaded by agent scheduler cause deadlock on startup under some conditions


Extra DB commit calls with getConnection instrumentation


Dynamic service fails to start with manifest errors on Java/JRE 11


NullPointer for MariaDB JDBC APIs - missing SQL

JAVA-5251SEP rule does not work when arguments are specified

4.5.8 Updates

Version – March 14, 2019

  • Added initial support for Project Reactor and Spring WebFlux
  • Added support for IBM BPM v8.6
  • Added initial support for Oracle Service Bus HTTP use cases
  • Added two environment variables to set reuse.nodeName and reuse.nodeName.prefix
Resolved Issues


Could not start Java Agent with Azul Zulu JDK 11

JAVA-4908Error during agent startup from Log4j2 conflict

Improve handling of dynamic service failures


Snapshot marked error but error details are not getting updated if more than two occurrences of same error occur in a minute

JAVA-5056Minor cleanup for documentation in app-agent-config.xml

Classloader deadlock caused by scheduler run parallel to the transformation


JMX metrics does not work as expected using wildcard configuration


Exit call in a snapshot is converted to upper case

JAVA-5077Agent returns only one thread dump on thread dump request

Sensitive data scrubbing causes an exception if scrubbed parameters are not present


Negative Values in ASnapshotCountTracker


Preloading agent classes does not load metrics related classes


Remove index values from async segment names for lambda originated segments

JAVA-5198No longer possible to disable log4j2 with appdynamics.agent.log4j2.disabled=true
JAVA-5384Null Point Exception on agent startup with log4j2 on Java 9+ versions

Known Issues
  • The new support added in 4.5.8 for the Spring WebFlux framework does not currently include support for EUM or NetViz socket correlation.

4.5.7 Updates

Version – February 6, 2019

  • Added a new node property max-metrics-allowed to update the metric registration limit
Resolved Issues


Upgrade to latest Apache HttpComponents


Property "max-async-transformed-classes" ,"jmx-operation-timeout-in-milliseconds" not getting updated


IndexOutofBoundException during ActivityInProcessConsumerInterceptor


Java Agent does not clean up stale metric aggregators for Unregistered BT


NullPointerException in PrepareStatementBindInterceptor when TransactionContext not set


IBM MQ - Exclude agent logging if singularity header is not found during entry point


ClassCastException in CustomExitPointInterceptor


Agent exception caused by regex special characters in sensitive URL filter delimiter


Java APM agent stalls startup for application with many dependencies in boot classpath


Disable resource monitoring by default


ClassCastException in PreparedStatementBindInterceptor for


JMS does not continue transaction if automatic discover transactions are disabled for JMS


Remove excessive logging for MBean discovery failures


Avoid reporting error details with key "null"


Continue agent initialization when transaction.xml fails to parse

JAVA-4961PHP Execution Time in transaction snapshots always showing zero

Agent does not mark snapshot as error


Upgrade to latest jackson-databind

4.5.6 Updates

Version – January 10, 2019

  • Added support for both Play 2.6.x and Akka HTTP with Scala 2.12
  • Updated ASM to version 7
  • Added JVM property -Dappdynamics.agent.conf.dir to define conf directory location 
  • Added a new node property normalize-prepared-statements
Resolved Issues

Improve coverage for tasks rejected by ThreadPoolExecutor

JAVA-4638Exit Call to Rest based downstream is not being detected

Malformed metric strings with BT:0 and Th:null getting rejected by Controller

JAVA-4722Hide sensitive data being propagated to analytics
JAVA-4730Fix BT Naming Issue when OSB is Originating Tier
JAVA-4736Upgrade file upload-1.3.2 in Java Agent

NullPointerException in HttpDataGatherer breaking application


NPE in Async interceptor on Tibco BW

JAVA-4758EUM Instrumentation is not happening correctly for Mulesoft

Exceptions with singularity class

JAVA-4805Fix ClassCastException in IbmBpmSystemTaskPayload

Thread dumps are getting stuck when requesting from Controller


Merge to 4.5.6: Log4J errors on startup due to lack of configuration

JAVA-4863NPE in NettyV3EntryInterceptor

Race condition for update AsyncTimestamp

JAVA-4904Disable resource monitoring by default

4.5.5 Updates

Version - November 27, 2018

  • The Java Agent adds beta support for JDK version 11
  • The Java Agent adds support for WildFly version 14
  • The Java Agent adds out of the box detection of the PostgreSQL v9.x JDBC driver
Resolved Issues

Async 2.0 Dispatch into sync servlet not reporting metrics


Java agent not locating AppD Global controller-info.xml file correctly


NPE error on logger AFastTransactionExitPointInterceptor and JDBCExitCall as part of backend instrumentation for particular oracle backend monitoring scenario


ConcurrentModificationException thrown while resolving Transaction


Cleanup EUM related code from java agent


Not able to set socket-enabled flag from UI


[sensitive-message-filter] Debug logs showing up the original log message instead of redacting it.


Implementation and add unit tests for Postgres driver version 9.4.1207 and above


Message removed from BT snapshot when Sensitive data filter on exception message rule defined instead filtering sensitive data when exception message have special quotes/characters


Exceptions in Agent logs with JDK11, Upgrade to ASM 7


HTTP Backend calls from TIBCO BusinessWorks 5.x are not getting detected.


Configurations for Custom Backend not handled by Java Agent


DB2 backends are not showing with host and port as identifying properties


NPE should be handled gracefully in JDBCCurrentExitCall


Error in metrics on Kafka Consumer


TomcatResponseResetInterceptor is calling deprecated API reflectively


Exclude rule is not working


URL filters should apply to inbound BT URLs as well as backend URLs

4.5.4 Updates

Version – October 25, 2018

  • The Java Agent adds support for Vert.x Core 3.5.0 – 3.5.3 
  • The Java Agent adds support for Play2.6 with Akka HTTP server implementation for both Java and Scala
  • The Java Agent now certified for use with WebSphere Liberty edition
  • The Java Agent adds support for Correlating EUM snapshots with Akka Business Transaction activity
  • The Java Agent adds support for automatic correlation of Kafka Producers and Consumer with Network Visibility
  • The Java Agent adds SQL data collector for batch statements
  • The Java Agent is now certified against Tomcat v9
  • Disabled default capture of per BT block and wait time, and added a new agent property enable-bt-block-wait-time-monitoring in agent properties
Resolved Issues
JAVA-2255/4385Provide authentication credentials when needed for JMX attribute invocation
JAVA-4273Change token object for apache blocking connection pool
JAVA-4018Exception while instrumenting Spray
JAVA-4166When the socket event queue is full, it should log a warning instead of error
JAVA-4291Synchronize registration/creation of new resource pools
JAVA-4307Handling exception for publishing object details in live mode for objects not implementing toString
Java-4281Support for changed CPU reporting in IBM J9 SR5
JAVA-4288Memory pool: Do not report 0 for the maximum in the absence of a fixed pool maximum limit
JAVA-4358Modify exit call detail to store prepared query statement
JAVA-4387Fix NPE in HTTPDataGathererUtil
JAVA-4283Support new GC metric reporting in IBM J9 SR5
JAVA-4321Configurations for Custom Backend not handled by Java Agent

4.5.2 Updates

Version – September 24, 2018

  • The Java Agent adds support for redacting sensitive HTTP Cookies/Headers values
  • The Java Agent adds exit ART support for Jetty 8
  • The Java Agent adds exit ART support for Jetty 9
  • The Java Agent adds support for Oracle Java SE Edition version 10
  • The Java Agent adds support for EUM Correlation for Vertx Core 3.3.x, 3.4.x
  • Added a new system property appdynamics.low.entropy=true
  • Added a new API to mark in-flight BTs as in error.
Resolved Issues
JAVA-3941OIT feature not working on JDK9 and JDK10 because of the absence of tools.jar
JAVA-40204.5 agent does not start with WebLogic 10.0 (log4j)
JAVA-4039Lower priority BT getting preference
JAVA-4052JDBC backend identification property URL should be equal to the connection string URL specified in the code
JAVA-4070Add instrumentation for Executor.execute into agent
JAVA-4071CPU time overhead on the controller
JAVA-4077Gracefully handle non-DOMSource payload to Spring WebService
JAVA‑4087Make SQL DataCollector configuration case insensitive
JAVA-4090Support for Apache blocking IO connection pool
JAVA-4091SpringWSRequestReflectorPost2dot0 should not use "name" field of a class
JAVA-4094Add zero entropy option for SecureRandom bootstrap
JAVA-4095Java agent is not working with Oracle Java SE Standard Edition 10
JAVA-4119Apply new async instrumentation style on/off switch to existing interceptors
JAVA-4170Agent sending blank JMS name
JAVA-4189Regex for QueryParams for data masking
JAVA-4225Support for Apache blocking IO connection pool not working for org.apache.http.pool.PoolEntryFuture

4.5.1 Updates

Version – August 23, 2018

  • The Java Agent adds response time measurement for Vert.x Entry.
  • The Java Agent adds support for redacting sensitive HTTP Cookie/Header values.
  • The Java Agent adds support for redacting query parameters from URLs in snapshots.
  • The Java Agent adds BT correlation across the spring cloud connector transport and event bus for the Axon framework.
  • The Java Agent adds response time measurement for Mule Entry.
  • The Java Agent adds response time measurement for Spray Exit.
  • The Java Agent adds response time measurement for Spray Entry.
Resolved Issues
JAVA-3992EUM Correlation not working for Play 2.4.7 Framework App in Java
JAVA-3988EUM Correlation not working for Play 2.5.4 Framework App in Scala
JAVA‑3962Improved handling of relative paths in jar manifest classpath entries
JAVA-3897DocumentParseInterceptor should report exceptions only when used in naming
JAVA-3846Enable EUM Correlation for Mule ESB in 4.4.x agent
JAVA-3830TomcatVersionDeterminer index out of bounds in WSO2
JAVA-3891Correct AsyncAppenderBase fork-config exclude configuration in app-agent-config.xml
JAVA-3995Do not disable BCIFixer on IBM JVM
JAVA-3984TransactionMonitor.getBTContext() returns null if the agent is disabled
JAVA-3926Improve OverFlow BT handling in BT Registry
JAVA-3887Downstream Java Agent fails to correlate BTs in cross-app case
JAVA-3867Report E2E metrics at Node, Tier, Application level in addition to BT level
JAVA-3846Enable EUM Correlation for Mule ESB in 4.4.x agent

4.5.0 Updates

July 11, 2018

  • Added a node property jmx-query-timeout-limit to override ignoring JMX rules/attributes.
  • The Java Agent supports transaction detection, naming, and data collector instrumentation for the IBM BPM product.
  • The Java Agent supports for Correlation for Kafka.
  • The Java Agent adds support for Eclipse Vert.x version 3.5.
  • The Java Agent adds platform support for Oracle JDK version 10, OpenJDK version 10, JRockit version 1.6, IBM JVM version 1.8, and Azul Zulu version 10.
  • The Java Agent adds support for Java Servlet API version 3.0.
  • The Java agent adds support for Log4j 2.
  • The Java Agent handles the Exit Point Identification of the Distributed Command Bus for Axon 3.x.
  • The Java Agent now reports Business Transaction and Backend timings reflecting the black-box HTTP response times for supported asynchronous entries and exits.
  • The Java Agent now reports errors that occur on asynchronous threads.
  • The Java Agent now correlates an increased number of out of the box backends with the Network Visibility product.

  • The Java Agent added out of the box instrumentation for the JAX-RS client reactive API.

  • The Java Agent added out of the box instrumentation for version 4 of the spring framework.

Resolved Issues
JAVA-3086Error creating custom JMX rules which are inside a composite data structure(array)
JAVA-3088Limit error references held when agent not connected to Controller
JAVA-3161StackOverflowError in CallGraphBuilder.fixChildrenWaitBlockTime(CallElement e)
JAVA-3190NPE thrown when trying to get Destination type (JMS) and disabling interceptor
JAVA-3214AppAgent 4.4.x version does not start with JDK 1.9 as JRE runtime version
JAVA-3485WebSpherePMI Domain MBeans are not supporting instance identifier customization
JAVA-3598NPE Error with VERTX API version 3.3.0 and java agent 4.4.1
JAVA-3809Correlation not working for HTTP client
JAVA-3819Memory leak when adding EUM HTTP header in NettyHttpResponse 
JAVA-3846Enable EUM Correlation for Mule ESB in 4.4.x agent
Known Issues
  • If you enable Kafka consumer entry points for the Java Agent, the flow map shows the data flow in reverse from the node to the Kafka cluster.