Java Agent 3.21.0

Released on: 
Thursday, October 1, 2015 - 16:09

Improvements

Fixes

  • Fixed a memory leak in async continuations instrumentation for Jetty 7 and 8.
  • Improved error handling with invalid JMX .yml extension files.
  • Improved Circuit Breaker logging in the event of a Circuit Breaker trip.
  • Fixed a bug in Tomcat 7+ instrumentation where request parameters could occasionally get stripped when using an async servlet with capture_params set to true.

Notes

The Java Agent now collects the following information for web transactions:

  • Accept, Host, User-Agent, Content-Length HTTP request headers
  • HTTP request method, for example POST or GET
  • Content-Type HTTP response header

Known issues

  • Fixed in 3.25.0:
    • Setting enable_custom_tracing configuration flag to false can inadvertently disable Netty instrumentation.
    • In some cases JAX-RS annotations on interfaces are not observed, causing transactions using JAX-RS services to be named on the servlet rather than the web servicepath and method.
  • Fixed in 3.24.1:
    • The Java agent's Play 2 transaction tracing instrumentation may be incomplete and cause gaps in cross application tracing.
  • Fixed in 3.24.0:
    • The Java agent's EJB instrumentation may cause a StackOverflowException to appear in application logs.
    • Applications may continue to experience the additional Circuit Breaker overhead even when disabled.
    • The Java agent may experience increased overhead when using Cross Application Tracing and a large number of threads.
  • Fixed in 3.23.0
    • This release may experience a memory leak within the agent for Tomcat containing a large number of static JSPs (5000+).
    • When a transaction makes multiple calls to a database with the same obfuscated SQL, a NullPointerException is may get thrown in the agent.
    • This release contains a bug in New Relic's Cross Application Tracing (CAT) that can cause incorrect service and transaction maps.

The problem happens when non-identical applications, with identical transaction names, would appear to be communicating (in the Transaction / Service maps), when in fact, they were not.

Using a combination of pre-3.23.0 and 3.23.0+ can result in external calls between the old and new agents to not show up in the map. To fix this, upgrade all of your agents to 3.23.0+ at the same time.