Java Release Notes

Recent Java agent release notes are listed below. If you would like a release that has been used extensively with a list of known issues, see Established releases (Java) for download link and version information.

Java Agent Release Notes

Wednesday, March 5, 2014 - 17:43 Download


The 3.x agent works with Java SE 6 and 7. If you are using Java SE 5, this is the release for you.

  • PostgreSQL explain plan bug

    There was a PostgreSQL bug that allowed parameters to be sent in explain plans under some circumstances. To avoid this issue, the New Relic agent now does not report explain plans for PostgreSQL.

  • Agent no longer supports obfuscation of individual fields

    Previous versions of the agent allowed an obfuscated_sql_fields option to select specific field names to obfuscate when record_sql: raw. We have discovered rare cases in which this feature would not mask SQL parameters correctly, so we have removed the configuration option. Now, if obfuscated_sql_fields is set, the setting of record_sql: raw is ignored and all fields are masked.

  • Fix: SQL parameter obfuscation didn't work if the parameter value contained a newline

    The record_sql: obfuscated config setting did not properly mask parameters when it included a newline character. This bug has been fixed.

  • Fix: Private trust store location for use_private_ssl flag

    The 2.21.4 agent did not properly load a private trust store used with the use_private_ssl flag. This bug has been fixed.

Thursday, January 23, 2014 - 16:53 Download


  • Fix: Solr caches and Solr updates data not appearing

    Starting with version 3.4.1, Solr caches and updates were not appearing in the UI. This bug has been fixed.

  • Fix: JVM tab thread pool, session, and transaction data not appearing

    Starting with version 3.4.1, some data was not appearing under the JVM tab. This bug has been fixed.

Tuesday, January 21, 2014 - 01:39 Download


  • Fix: In some cases, Play 2.2 didn't report transactions

    When a chain of promises resolved, specifically using Future.flatMap(), lingering promises prevented the transaction from completing, in which case the transaction wouldn't be reported for the app. This is now tracked correctly.

  • Fix: Improved performance when instrumented code is not running in a transaction

    Avoids unnecessary work when code instrumented by the Java agent is not running in the scope of a transaction.

Thursday, January 16, 2014 - 18:42 Download


  • Fix: Java agent should honor enable_auto_app_naming

    Starting with Java agent 3.3.1, the enable_auto_app_naming flag was being ignored. This bug has been fixed.

  • Fix: Setting configuration properties in newrelic.yml configuration file.

    Starting with version 3.0, some properties such as max_stack_trace_lines could not be set in the newrelic.yml configuration property. This bug has been fixed.

  • Fix: Java agent should honor JAX-RS annotations with New Relic annotations

    New Relic's Java agent should handle methods that contain a New Relic annotation along with a JAX-RS annotation correctly. Previously the New Relic annotation was being ignored.

  • Fix: Play transaction does not complete until timeout expires

    New Relic's Java agent now handles firstCompletedOf to Futures correctly.

  • Additional functionality to API call addCustomParameter

    New Relic's API call addCustomParameter will now add the custom parameters to New Relic Insights. For more information, see

Friday, January 10, 2014 - 21:38 Download


  • Fix: Duplicate annotation exception

    In some rare cases involving generated a proxy class, the application may encounter an exception

    AnnotationFormatError: Duplicate annotation for class

    That bug has been fixed in this version.

  • Fix: VerifyError

    In certain cases such as the Wildfly app server, the application may encounter a VerifyError. That bug has been fixed in this version.

Tuesday, January 7, 2014 - 22:53 Download


  • JMS Messaging

    New Relic now gives you insight into the performance of your JMS message processing, both incoming and outgoing messages.

    New Relic now shows transactions initiated via JMS 1.1 message receipt. These transactions show up in the New Relic UI as background tasks of type "Message". In addition, JMS 1.1 message creation is shown in transaction traces.

  • Grails 1.3.7 to 2.3.x

    New Relic now provides first-class visibility into your Grails applications. Grails web transactions are now named based on the Grails controller. The transactions track the details of your calls to JDBC, Hibernate, and other important frameworks, and provides full access to the New Relic Java agent API from Groovy. Grails installation instructions can be found here

  • Updated instrumentation for supported app servers

    New Relic has updated the instrumentation of the application servers we support. In the process, we have updated the list of app servers that we instrument. For a current list of supported app server versions, see

  • Fix: New Relic did not instrument Apache HttpClient 4.3

    Previous versions of the agent did not instrument HttpClient 4.3.x. That version is now properly supported.

  • Fix: Java Agent failed on Weblogic with a certicate exception

    In some cases running Weblogic, the Java Agent would fail certificate validation when connecting to New Relic. That bug has been fixed.

  • Fix: Java Agent suppressed application logging

    In version 3.2.3, the Java agent sometimes suppressed application logging. That bug has been fixed in this version.

  • Fix: Java Agent was logging error messages regarding "weaved classes"

    In version 3.2, the Java agent wrote innocuous error messages to its log similar to the following:

    ERROR: javax/servlet/ServletOutputStream is marked as a weaved class, but no methods are matched to be weaved.

    That bug has been fixed in this version.

  • Fix: Text instructions in the sample newrelic.yml file were improved

    If you are upgrading from a previous version of the agent, consider applying your configuration to this new version of the yml file.

Monday, December 16, 2013 - 16:20 Download


  • Fix: JBoss 7 fails to start with Java 1.6

    Starting with version 3.2.0 of the Java agent, JBoss 7 application servers fail to start when running Java 1.6. An IllegalStateException is printed to System.out. This bug has been fixed.

Thursday, December 12, 2013 - 01:30 Download


  • Fix: Play 2.2 instrumentation in action methods

    In version 3.2.0 and 3.2.1, the Java agent failed to instrument calls present in a controller's action method. This means database calls, external calls, and custom instrumented calls within the action method were not being reported to New Relic. This bug has been fixed.

  • Fix: Invalid exclusive time errors with Play 2.2

    In version 3.2.0 and 3.2.1, the Java agent sometimes reported error messages to the newrelic log indicating an "Invalid exclusive time". This error has been fixed.

  • Fix: Inaccurate async wait time with Play 2.x

    In version 3.2.0 and 3.2.1, the Java agent reported an async wait time for Play 2.x transactions that was too large. This bug has been fixed.

Friday, December 6, 2013 - 23:06 Download


  • Fix: Exceptions thrown from conflicting JAXB versions

    The New Relic Java agent now supports customers using any JAXB or Xerces version. This bug was introduced in version 3.1.0.

  • Fix: Usage of the newrelic.bootstrap_classpath system property

    In version 3.2.0, the newrelic.bootstrap_classpath system property caused an IllegalAccessError. That bug has been fixed. Note also that this system property has been deprecated and should not be used.

  • Fix: Data collection for customers using the IBM JVM without WebSphere

    New Relic now supports customers using an IBM JVM without running WebSphere. In this scenario, you must set the sync_startup flag set to true in the common section of their newrelic.yml.

    sync_startup: true
Tuesday, December 3, 2013 - 00:05 Download


  • Glassfish 4 metrics for JVM Memory, Thread Pool, and Transactions

    New Relic now displays JVM memory, thread pool, and transaction metrics for Glassfish 4. To expose these metrics, please set http-service, transaction- service, and web-container monitoring within Glassfish to high. To see the metrics in New Relic, go to Monitoring > JVMs.

  • Decreased agent overhead for Play 2

    This version of the agent reduces the overhead that it incurs on Play 2. Play 2 users should upgrade for improved performance.

    In addition to general overhead improvements, New Relic has introduced a new setting to reduce overhead even more for particularly low-latency applications. Note that this setting will make the call info in Trace Details more generic.

      stack_based_naming: false
  • Manually disable auto RUM instrumentation for specific pages

    For supported JSP engines, New Relic automatically adds RUM (Real User Monitoring) elements to the response HTML. If you like auto-RUM, but do not want to apply it to all pages, you can now disable it for select pages. The configuration property disabled_auto_pages in the browser_monitoring section can now be used to disable auto RUM instrumentation for a comma delimited list of pages. For example,

      disabled_auto_pages: page1.jsp, page2.jsp
  • is now ignored by default

    The ActorKilledException is commonly thrown in Play applications as a control mechanism in normally functioning applications. In previous versions, this exception inflated the reported error rate. These exceptions are now ingored by default. You can override the default ignore_errors list to provide your own exceptions or to omit the ActorKilledException.

      ignore_errors: some.other.MyException
  • New Relic reports host capacity information

    New Relic now reports physical CPU cores, logical CPU cores (hyperthreads), and physical memory. On non-Linux platforms, the agent runs a subprocess to retrieve this information. To see the info in New Relic, go to Settings > Environment > Environment Snapshot.

  • Report JVM name and revision to New Relic as part of JVM description

    Recording the JVM name in addition to the vendor allows differentiation between different JVMs from the same vendor. To see these values in New Relic, go to Settings > Environment > Environment Snapshot and look for the "Java VM" and "Java VM Version" settings.

  • Fix: Support for Play 2.2

    Web transactions were not being correctly captured under some circumstances for Play 2.2 applications. Web transactions are now correctly reported. Also note the change in command line syntax as of Play 2.2:

  • Fix: Background tasks created by an @Trace annotation with a 'metricName' element did not show up in the New Relic UI.

Tuesday, November 5, 2013 - 21:04 Download


  • Fix: In some cases, metrics were not reported in Play 2 apps

    The Java Agent now reports all metric data consistently.

  • Fix: The Java Agent was unable to instrument classes in WSO2 API Manager

    The Java Agent now reports data for WSO2 applications.

Monday, October 21, 2013 - 22:49 Download
  • Percentiles and Histograms

    The Java Agent now captures data that provides percentile and histogram views in the New Relic UI.

  • JAX-RS annotation instrumentation

    The Java Agent now instruments and names web transactions based on annotations.

  • JAX-WS instrumentation

    The Java Agent now instruments methods on classes that are marked with the javax.jws.WebService annotation.

  • Fix: In some cases, agent had excessive overhead on Spring AOP apps

    The agent should now perform well for any Spring AOP application.

  • Fix: Play Framework instrumentation was ignoring the ignoreTransaction call

    The Play Framework 2.x instrumentation now honors the New Relic API ignoreTransaction call.

  • Fix: Potential memory leak when app continually creates ClassLoaders

    The Java Agent now handles applications where ClassLoaders are continuously created.

  • Fix: Agent zip distribution did not include the API source jar

    The newrelic-api-sources.jar is now included in the zip file.

Thursday, October 3, 2013 - 22:13 Download


  • Fix: Issue at startup with JBoss and Glassfish

    An issue in the 3.0.0 version caused startup of some versions of JBoss and Glassfish to fail. This version fixes that issue.

  • Fix: RUM not auto-instrumented for JSPs

    The Java Agent should auto-instrument RUM header and footer in JSPs when using the Jasper engine. This did not work in 3.0.0. This version fixes that issue.

Tuesday, October 1, 2013 - 21:09 Download


  • Spring AOP instrumentation

    This version instruments any call that passes through an AOP pointcut that you have declared in your Spring application. This gives your additional insight into the call time of key Spring beans.

  • Performance Improvements

    This version contains optimizations that reduce agent overhead.

  • Fixes: Hibernate improvements

    In this version, we provide more consistent detail into Hibernate calls across supported version of Hibernate (3.3 - 4.2).

  • Fix: Removed need for WebSphere SSL work-around

    Previous versions sometimes required a work-around when using WebSphere. This version removes the need for a work-around.

  • NOTE: Requires Java SE 6 or 7

    Java Agent 3.0 requires Java SE 6 or 7. At signup or in your Account Settings page, you have the option to download a version of the agent that works with Java SE 5.

Tuesday, September 10, 2013 - 21:21 Download


  • Fix: Metric Grouping Issue with Netty

    The request URL was referenced in some metric names, causing Metric Explosion. The URL is no longer included in the metric name.

  • Fix: Make Cookie parsing more robust when running on Netty

    Cases where the Cookie header was malformed were causing exceptions to be thrown. Agent now makes a better effort to capture the individual valid parts.

  • Fix: Agent could not connect to New Relic in non-DNS environments

    Fixed an issue which caused the agent to only be able to connect to New Relic in environments where DNS was used for hostname resolution.

  • Fix: In 2.21.2 and 2.21.3 an @Trace annotation ignored the transaction for Apdex

    An @Trace annotation on a method called in a web transaction had the side-effect of ignoring the transaction for calculating the Apdex score.

Tuesday, August 13, 2013 - 16:38 Download


  • Fix: Agent did not run with J2SE 5.0 (aka JDK 1.5)

    Release 2.21.0 - 2.21.2 did not run correctly on J2SE 5.0. On startup, the agent reports:

    Unable to start New Relic agent: java.lang.UnsupportedClassVersionError: Bad version number in .class file 

    If you are running J2SE 5.0, please update to agent version 2.21.3.

Saturday, August 10, 2013 - 00:22


  • Fix: Longer application startup time

    Release 2.21.0 introduced an issue that could cause application startup to be slower than in previously releases. This fix returns application startup time to normal.

  • Fix: File location changes

    Release 2.21.0 introduced a change to file locations within the newrelic zip file. This fix reverts the locations to what they were previously.

Friday, August 9, 2013 - 17:35 Download


  • Fix: In 2.21.0, calls to NewRelic class can cause NoClassDefFoundError

    In 2.21.0, if your application calls the NewRelic class and does not include the newrelic-api.jar, the application would throw a NoClassDefFoundError. With this fix, the separate newrelic-api.jar is not required. However, it is recommended that your application include the newrelic-api.jar so that calls to the NewRelic API resolve with or without the agent installed.

Wednesday, August 7, 2013 - 13:39 Download


  • X-Ray sessions

    Adds support for X-Ray sessions. An X-Ray session collects Transaction Traces and a thread profile for a Key Transaction.

  • Fix: In 2.20.0 an @Trace annotation ignored the transaction for Apdex

    An @Trace annotation on a method called in a web transaction had the side-effect of ignoring the transaction for calculating the Apdex score.

  • Fix: HTTP status code for Errors

    If the HTTP status code for a web transaction was less than 400, the HTTP status code reported in the error was 500. The actual status code for the web request is now reported.

  • Fix: Spring exception handling

    The Exception argument in the Spring DispatcherServlet processHandlerException method was reported as an Error with an HTTP status code of 500. The actual status code in the HTTP response is now reported.

  • Fix: Reading Post Parameters for Resin 3

    Prior to this fix, post parameters in Resin 3 were always read using the default properties even if the application tried to read the post parameters using non-default properties or by just grabbing the request input stream.

  • Fix: JVM Tab Metrics Not Showing up for Tomcat Applications

    Prior to this fix, if the service name in service.xml was not Catalina, then metrics would not appear under the JVM tab. Additionally, if you are using an embedded Tomcat 5/6, metrics should now appear under the JVM tab.

  • Fix: Improved compatibility with Java 1.5

    In the custom xml validator, there were references to String.isEmpty() which was not available until Java 1.6. Those have been removed.

  • Fix: Reducing DNS problems by not automatically adding '.' to the domain name

    By default the '.' is included. But if changed, then the '.' won't be added.

  • Fix: JVM tab metrics showing for all Applications In JVM

    Metrics under the Thread, Session, and Transaction tabs used to only appear under the main application. The data will now be shown for all applications running in the specific JVM.

  • Fix: Using a Proxy now works with SSL Enabled

    In prior releases proxy authentication would fail when SSL was enabled. We now do proxy authentication using the

  • Fix: Akka error reporting

    If an actor throws an exception or the message times out, an error is reported. Previously, no error was reported.

Monday, July 1, 2013 - 20:07 Download


  • Glassfish 2.1 JVM Tab

    The JVM tab will now show thread, session, and transaction metrics for Glassfish 2.1.

  • Fix: Solr Cache Metrics

    The solr cache metrics do not appear with versions 2.18 and 2.19 of the agent. This has been fixed and all solr metrics should now appear.

  • Fix: NullPointerException in New Relic Logs When NewRelic API called

    In certain circumstances, a call to a method on the NewRelic class can generate a NullPointerException in the agent logs. It does not cause a NullPointerException in your application.

  • Fix: Support Custom Extension XML File for WebSphere with JRE

    Prior to this fix, an attempt to use a custom extension XML file with a IBM JRE would lead to a ClassNotFoundException.