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 (http://download.appdynamics.com).
The most recent releases appear at the top of the page.
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.jcmdmodule for the Java version 9 and later.
- You can enable business transaction correlation using
SOAP:Headerwith WebLogic, WebSphere, and Tibco implementations. The SOAP header is an alternative to the default correlation via HTTP headers. Learn more.
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.
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.
Version 220.127.116.11759 – November 15, 2019
- The Java Agent now supports Micronaut version 1.1.0.
- You can enable business transaction correlation using
SOAP:Headerwith 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.
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.
Version 18.104.22.168926 – 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).
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:
This issue has been reported to Oracle and assigned Issue ID JDK-8232997.
Version 22.214.171.124768 – 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.
Version 126.96.36.199526 – 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.allowedAlgorithmsproperty to your startup script.
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-5918||Memory leak due to error in JMSReceiveExitPointInterceptor if transaction fails to start|
|JAVA-5925||Setting property javax.xml.parsers.DocumentBuilderFactory causes ClassCastException in agent|
|JAVA-5950||Rest logs are coming empty, and logging goes to agent logs instead|
|JAVA-6075||Updated vulnerable jackson-databind library|
|JAVA-6162||Null Pointer Exception (NPE) in log GUID injection code when hit from identification interceptor|
Version 188.8.131.52094 – July 18, 2019
|JAVA-5401||JVM and JMX metrics are not reported after the agent is turned off with 'Disable all monitoring including JVM and JMX metrics' option unchecked|
|JAVA-5434||Application 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-5655||Custom JMS BT exclude rules are not applied at JMS receive entries|
|JAVA-5687||Upgrade log4j2 version to be compatible with Java 1.6 and eliminates CVEs|
|JAVA-5837||Custom POJO exclude rules including overloaded method parameters are not correctly applied|
-Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl causes ClassCastException.
API Version 184.108.40.206900 – July 11, 2019
Updated the agent API package. See, Java API User Guide for more details.
Version 220.127.116.11665 – 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
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-5814||Sensitive data filter applies extra characters in snapshot list view|
First generation agent SDK has been deprecated.
Version 18.104.22.168916 – 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
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
Version 22.214.171.124648 – 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
"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-5181||ClassFormatError – if any class implementing interface extending serializable, runnable gets instrumented|
|JAVA-5190||ASM 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-5251||SEP rule does not work when arguments are specified|
Version 126.96.36.19946 – 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
Could not start Java Agent with Azul Zulu JDK 11
|JAVA-4908||Error 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-5056||Minor 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-5077||Agent 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-5198||No longer possible to disable log4j2 with appdynamics.agent.log4j2.disabled=true|
|JAVA-5384||Null Point Exception on agent startup with log4j2 on Java 9+ versions|
- The new support added in 4.5.8 for the Spring WebFlux framework does not currently include support for EUM or NetViz socket correlation.
Version 188.8.131.5263 – February 6, 2019
- Added a new node property
max-metrics-allowedto update the metric registration limit
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 com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement
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-4961||PHP Execution Time in transaction snapshots always showing zero|
Agent does not mark snapshot as error
Upgrade to latest jackson-databind
Version 184.108.40.20621 – 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.dirto define conf directory location
- Added a new node property normalize-prepared-statements
Improve coverage for tasks rejected by ThreadPoolExecutor
|JAVA-4638||Exit Call to Rest based downstream is not being detected|
Malformed metric strings with BT:0 and Th:null getting rejected by Controller
|JAVA-4722||Hide sensitive data being propagated to analytics|
|JAVA-4730||Fix BT Naming Issue when OSB is Originating Tier|
|JAVA-4736||Upgrade file upload-1.3.2 in Java Agent|
NullPointerException in HttpDataGatherer breaking application
NPE in Async interceptor on Tibco BW
|JAVA-4758||EUM Instrumentation is not happening correctly for Mulesoft|
Exceptions with singularity class
|JAVA-4805||Fix 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-4863||NPE in NettyV3EntryInterceptor|
Race condition for update AsyncTimestamp
|JAVA-4904||Disable resource monitoring by default|
Version 220.127.116.1122 - 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
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
Version 18.104.22.16855 – 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
|JAVA-2255/4385||Provide authentication credentials when needed for JMX attribute invocation|
|JAVA-4273||Change token object for apache blocking connection pool|
|JAVA-4018||Exception while instrumenting Spray|
|JAVA-4166||When the socket event queue is full, it should log a warning instead of error|
|JAVA-4291||Synchronize registration/creation of new resource pools|
|JAVA-4307||Handling exception for publishing object details in live mode for objects not implementing toString|
|Java-4281||Support for changed CPU reporting in IBM J9 SR5|
|JAVA-4288||Memory pool: Do not report 0 for the maximum in the absence of a fixed pool maximum limit|
|JAVA-4358||Modify exit call detail to store prepared query statement|
|JAVA-4387||Fix NPE in HTTPDataGathererUtil|
|JAVA-4283||Support new GC metric reporting in IBM J9 SR5|
|JAVA-4321||Configurations for Custom Backend not handled by Java Agent|
Version 22.214.171.12491 – 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.
|JAVA-3941||OIT feature not working on JDK9 and JDK10 because of the absence of tools.jar|
|JAVA-4020||4.5 agent does not start with WebLogic 10.0 (log4j)|
|JAVA-4039||Lower priority BT getting preference|
|JAVA-4052||JDBC backend identification property URL should be equal to the connection string URL specified in the code|
|JAVA-4070||Add instrumentation for Executor.execute into agent|
|JAVA-4071||CPU time overhead on the controller|
|JAVA-4077||Gracefully handle non-DOMSource payload to Spring WebService|
|JAVA‑4087||Make SQL DataCollector configuration case insensitive|
|JAVA-4090||Support for Apache blocking IO connection pool|
|JAVA-4091||SpringWSRequestReflectorPost2dot0 should not use "name" field of a class|
|JAVA-4094||Add zero entropy option for SecureRandom bootstrap|
|JAVA-4095||Java agent is not working with Oracle Java SE Standard Edition 10|
|JAVA-4119||Apply new async instrumentation style on/off switch to existing interceptors|
|JAVA-4170||Agent sending blank JMS name|
|JAVA-4189||Regex for QueryParams for data masking|
|JAVA-4225||Support for Apache blocking IO connection pool not working for org.apache.http.pool.PoolEntryFuture|
Version 126.96.36.19976 – 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.
|JAVA-3992||EUM Correlation not working for Play 2.4.7 Framework App in Java|
|JAVA-3988||EUM Correlation not working for Play 2.5.4 Framework App in Scala|
|JAVA‑3962||Improved handling of relative paths in jar manifest classpath entries|
|JAVA-3897||DocumentParseInterceptor should report exceptions only when used in naming|
|JAVA-3846||Enable EUM Correlation for Mule ESB in 4.4.x agent|
|JAVA-3830||TomcatVersionDeterminer index out of bounds in WSO2|
|JAVA-3891||Correct AsyncAppenderBase fork-config exclude configuration in |
|JAVA-3995||Do not disable BCIFixer on IBM JVM|
|JAVA-3984||TransactionMonitor.getBTContext() returns null if the agent is disabled|
|JAVA-3926||Improve OverFlow BT handling in BT Registry|
|JAVA-3887||Downstream Java Agent fails to correlate BTs in cross-app case|
|JAVA-3867||Report E2E metrics at Node, Tier, Application level in addition to BT level|
|JAVA-3846||Enable EUM Correlation for Mule ESB in 4.4.x agent|
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.
|JAVA-3086||Error creating custom JMX rules which are inside a composite data structure(array)|
|JAVA-3088||Limit error references held when agent not connected to Controller|
|JAVA-3161||StackOverflowError in CallGraphBuilder.fixChildrenWaitBlockTime(CallElement e)|
|JAVA-3190||NPE thrown when trying to get Destination type (JMS) and disabling interceptor|
|JAVA-3214||AppAgent 4.4.x version does not start with JDK 1.9 as JRE runtime version|
|JAVA-3485||WebSpherePMI Domain MBeans are not supporting instance identifier customization|
|JAVA-3598||NPE Error with VERTX API version 3.3.0 and java agent 4.4.1|
|JAVA-3809||Correlation not working for HTTP client|
|JAVA-3819||Memory leak when adding EUM HTTP header in NettyHttpResponse|
|JAVA-3846||Enable EUM Correlation for Mule ESB in 4.4.x agent|
- 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.