The following notes describe 4.5.x updates to the Java Agent. You can find resolved issues on 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 (http://download.appdynamics.com).

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

4.5.19 Updates

Version 4.5.19 – February 20, 2020

Enhancements
  • 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

Enhancements
  • 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

Enhancements
  • 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 4.5.16.28759 – November 15, 2019

Enhancements
  • 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 4.5.15.27926 – October 17, 2019

Enhancements

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 4.5.14.27768 – September 19, 2019

Enhancements
  • 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 4.5.13.27526 – August 27, 2019

Enhancements
  • 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
Key
Summary
JAVA-249

Support for latest Jboss EJB client for RMI call correlation

JAVA-5490

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

JAVA-5736

Exception logged at INFO level unbounded times and fills the logs

JAVA-5842

Mule 4.1 in process BT correlation incomplete when using APIKit Router

JAVA-5874

Unable to instrument Java Agent with Java 11

JAVA-5952

Xpath split feature does not work in version 4.5.10

JAVA-6041

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 4.5.12.27094 – July 18, 2019

Resolved Issues
KeySummary
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 -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl causes ClassCastException.

4.5.11 Updates

API Version 4.5.12.26900 – July 11, 2019

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

Version 4.5.11.26665 – June 17, 2019

Enhancements
  • 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


Key
Summary
JAVA-5406

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

JAVA-5526

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

JAVA-5007

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 4.5.10.25916 – May 20, 2019

Enhancements
  • 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
KeySummary
JAVA-5324

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

JAVA-5140

Instrumentation to support struts v2.3.17+

JAVA-5517

Debug-interceptors via custom-interceptors.xml throws NullPointerException

JAVA-5578

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

4.5.9 Updates

Version 4.5.9.25648 – April 19, 2019

Enhancements
  • 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
KeySummary
JAVA-1043

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

JAVA-4812

Overlapping entries in BCI log

JAVA-4908

Error during agent startup from Log4j2 conflict

JAVA-4970

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

JAVA-5166

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
JAVA-5205

NPE in IbmBpmUserTaskCoachEntryInterceptor while ProcessPortal login

JAVA-5210

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

JAVA-5217

Extra DB commit calls with getConnection instrumentation

JAVA-5218

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

JAVA-5223

NullPointer for MariaDB JDBC APIs - missing SQL

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


4.5.8 Updates

Version 4.5.8.25346 – March 14, 2019

Enhancements
  • 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


Key
Summary
JAVA-4511

Could not start Java Agent with Azul Zulu JDK 11

JAVA-4908Error during agent startup from Log4j2 conflict
JAVA-4960

Improve handling of dynamic service failures

JAVA-5004

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
JAVA-5060

Classloader deadlock caused by scheduler run parallel to the transformation

JAVA-5068

JMX metrics does not work as expected using wildcard configuration

JAVA-5071

Exit call in a snapshot is converted to upper case

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

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

JAVA-5131

Negative Values in ASnapshotCountTracker

JAVA-5144

Preloading agent classes does not load metrics related classes

JAVA-5126

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 4.5.7.24863 – February 6, 2019

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


Key
Summary
JAVA-4747

Upgrade to latest Apache HttpComponents

JAVA-4550

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

JAVA-4665

IndexOutofBoundException during ActivityInProcessConsumerInterceptor

JAVA-4674

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

JAVA-4716

NullPointerException in PrepareStatementBindInterceptor when TransactionContext not set

JAVA-4780

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

JAVA-4782

ClassCastException in CustomExitPointInterceptor

JAVA-4800

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

JAVA-4844

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

JAVA-4904

Disable resource monitoring by default

JAVA-4918

ClassCastException in PreparedStatementBindInterceptor for com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement

JAVA-4924

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

JAVA-4942

Remove excessive logging for MBean discovery failures

JAVA-4946

Avoid reporting error details with key "null"

JAVA-4959

Continue agent initialization when transaction.xml fails to parse

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

Agent does not mark snapshot as error

JAVA-5042

Upgrade to latest jackson-databind


4.5.6 Updates

Version 4.5.6.24621 – January 10, 2019

Enhancements
  • 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
Key
Summary
JAVA-4473

Improve coverage for tasks rejected by ThreadPoolExecutor

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

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
JAVA-4742

NullPointerException in HttpDataGatherer breaking application

JAVA-4754

NPE in Async interceptor on Tibco BW

JAVA-4758EUM Instrumentation is not happening correctly for Mulesoft
JAVA-4759

Exceptions with singularity class

JAVA-4805Fix ClassCastException in IbmBpmSystemTaskPayload
JAVA-4845

Thread dumps are getting stuck when requesting from Controller

JAVA-4859

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

JAVA-4863NPE in NettyV3EntryInterceptor
JAVA-4864

Race condition for update AsyncTimestamp

JAVA-4904Disable resource monitoring by default

4.5.5 Updates

Version 4.5.5.24422 - November 27, 2018

Enhancements
  • 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
KeySummary
JAVA-4702

Async 2.0 Dispatch into sync servlet not reporting metrics

JAVA-4676

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

JAVA-4629

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

JAVA-4625

ConcurrentModificationException thrown while resolving Transaction

JAVA-4618

Cleanup EUM related code from java agent

JAVA-4612

Not able to set socket-enabled flag from UI

JAVA-4607

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

JAVA-4565

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

JAVA-4544

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

JAVA-4463

Exceptions in Agent logs with JDK11, Upgrade to ASM 7

JAVA-4398

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

JAVA-4321

Configurations for Custom Backend not handled by Java Agent

JAVA-4306

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

JAVA-4267

NPE should be handled gracefully in JDBCCurrentExitCall

JAVA-4224

Error in metrics on Kafka Consumer

JAVA-4019

TomcatResponseResetInterceptor is calling deprecated API reflectively

JAVA-4016

Exclude rule is not working

JAVA-3305

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

4.5.4 Updates

Version 4.5.4.24355 – October 25, 2018

Enhancements
  • 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
Key
Summary
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 4.5.2.23891 – September 24, 2018

Enhancements
  • 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
KeySummary
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 4.5.1.23676 – August 23, 2018

Enhancements
  • 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
KeySummary
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

Enhancements
  • 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
KeySummary
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.