Java Agent Release Notes

Current Version

    Java Agent 3.5.1 [download]
    27 days ago — March 27, 2014

      • Fix: Auto-RUM bug

        Starting in version 3.5.0 of the Java agent, in rare cases Auto-RUM could cause the New Relic header to be placed within a script tag. This bug has been fixed.

      • Fix: In rare cases, agent stops reporting

        In rare cases, the Java Agent hung on socketRead while performing an SSL handshake and would not report data until JVM restart. This bug has been fixed.

      • Fix: Occasionally missed web transaction when using ResultSet

        In version 3.5.0 of the agent some transactions that use a JDBC ResultSet were missing in the UI. The agent log would show an "Inconsistent State" error. This bug has been fixed.

      • Fix: X-Ray Sessions bugs.

        X-Ray Sessions sometimes returned no transaction traces. A memory leak with X-Ray Sessions when many sessions were run was also fixed.

Older Versions

Java Agent 3.5.0 [download]
about 1 month ago — March 5, 2014

    • New Relic supports WildFly 8.0

      The Java Agent now provides instrumentation for WildFly 8.0. You will see the same great visibility into your web transactions, app server stats, and frameworks that you have with previous versions of JBoss.

    • Fix: PostgreSQL explain plan bug

      Fixes PostgreSQL bug that allowed parameters to be sent in explain plans under some circumstances. Parameters are now masked prior to sending when explain plans are enabled (explain_enabled: true) and record_sql is set to 'obfuscated'.

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

    • 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: In some cases, an agent could fail to reconnect to New Relic

      Fixed several issues that in rare cases could cause the agent to cease reporting data until JVM restart.

    • Fix: Transaction name specified in XML configuration was being ignored

      In some cases transaction names set in XML files in the extensions folder were being ignored. This bug has been fixed in this release.

    • Fix: Jetty 9.1 transactions were not showing up in 3.3.x and higher agents

      Starting with the 3.3.1 agent, customers were not seeing transactions from Jetty 9.1. This bug has been fixed.

    • Fix: Websphere 7.0 was not being instrumented

      Starting in agent version 3.3.0, WebSphere 7.0 was not being instrumented. This bug has been fixed.

    • Fix: Solr tabs in UI not always appearing

      If you are running a Solr application and not seeing any tabs, please update to this version.

Java Agent 2.21.5 [download]
about 1 month ago — March 5, 2014

    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.

Java Agent 3.4.2 [download]
3 months ago — January 23, 2014

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

Java Agent 3.4.1 [download]
3 months ago — January 21, 2014

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

Java Agent 3.4.0 [download]
3 months ago — January 16, 2014

    • 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

Java Agent 3.3.2 [download]
3 months ago — January 10, 2014

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

Java Agent 3.3.1 [download]
4 months ago — January 7, 2014

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

Java Agent 3.2.3 [download]
4 months ago — December 16, 2013

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

Java Agent 3.2.2 [download]
4 months ago — December 12, 2013

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

Java Agent 3.2.1 [download]
5 months ago — December 6, 2013

    • 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

Java Agent 3.2.0 [download]
5 months ago — December 3, 2013

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

Java Agent 3.1.1 [download]
6 months ago — November 5, 2013

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

Java Agent 3.1.0 [download]
6 months ago — October 21, 2013

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

Java Agent 3.0.1 [download]
7 months ago — October 3, 2013

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

Java Agent 3.0.0 [download]
7 months ago — October 1, 2013

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

Java Agent 2.21.4 [download]
7 months ago — September 10, 2013

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

Java Agent 2.21.3 [download]
8 months ago — August 13, 2013

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

Java Agent 2.21.2
9 months ago — August 10, 2013

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

Java Agent 2.21.1 [download]
9 months ago — August 9, 2013

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

Java Agent 2.21.0 [download]
9 months ago — August 7, 2013

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

Java Agent 2.20.0 [download]
10 months ago — July 1, 2013

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

Java Agent 2.19.1 [download]
10 months ago — June 14, 2013

    • Fix for 2.19.0 known issue: Play now captures GET and POST parameters correctly if capture_params is enabled.

    • Disabled overly ambitious instrumentation used to time template rendering for Play 2. Resulted in unintended classes being instrumented.

Java Agent 2.19.0 [download]
11 months ago — May 29, 2013

    • Play 2 Instrumentation

      Provides insight into Play 2.x Java and Scala applications. Adds instrumentation to Netty server, Akka actor calls, Scala Promises and Futures, and the WS API calls.

      Known issue: Request parameters are not captured properly even if capture_params is enabled.

    • Support added for Jetty 9 (tested on 9.0.0 through Jetty 9.0.3).

    • Fix: Agent can cause java.lang.VerifyError on code compiled with Java 7

      In certain cases, if your application code or third party libraries are compiled with Java 7, you may get a java.lang.VerifyError. This fix allows the agent to work correctly in those cases.

    • Fix: The Java Agent detects status codes for Apache Felix correctly by default. The property take_last_status is now deprecated.

Java Agent 2.18.0 [download]
12 months ago — May 7, 2013


    • New metrics are displayed under the JVM tab

      While the metrics displayed differ between application servers, common metrics include loaded class count, active thread count, active thread count per thread pool, active session count per application, and active transaction count. In order to see these metrics, JMX must be enabled on your app server.

    • Fix: When naming transactions, the property enable_auto_transaction_naming should be honored

      There was an issue where transactions using the Spring Framework were ignoring the property.

    • Fix: Strip query string from HTTP Referer

      Query strings can potentially contain sensitive information. To prevent that data from being sent to New Relic, only the host and path portion of the referer are captured.

Java Agent 2.17.2 [download]
about 1 year ago — April 17, 2013

    • Fix: Fixed bug in which application code can throw NoSuchMethodError

      In some cases using Java agent 2.17.0 and 2.17.1, application code was throwing an exception

      java.lang.NoSuchMethodError: java.lang.Boolean.valueOf(B)Ljava/lang/Byte;

      This usually occurred when calling a ResultSet implementation.

Java Agent 2.17.1
about 1 year ago — April 12, 2013

    • Fix: Reverted transaction naming change on ColdFusion, introduced in 2.17.0.

      That change caused issues with certain modes of ColdFusion.

Java Agent 2.17.0
about 1 year ago — April 11, 2013

    • Agent reports JDBC ResultSet query time

      This change gives you deeper insight into your database time by displaying ResultSet processing time in aggregate metrics and transaction traces.

    • Fix: Avoid retransform exception on IBM JREs

      In some IBM JRE versions, the agent logged an INFO level exception and did not instrument select classes. This fix allows these classes to be instrumented properly.

    • Adds a stack trace in a transaction trace for all methods taking longer than stack trace threshold. This differs from 2.16 which only provided stack traces for a limited number of methods.

    • Better transaction naming on ColdFusion

Java Agent 2.16.0 [download]
about 1 year ago — March 25, 2013

    • Adds a stack trace in the transaction trace for slow methods.

      This change provides additional insight into your slowest transactions.You can adjust how slow a method is before it generates the stack trace by setting stack_trace_treshold (in seconds).

          stack_trace_threshold: 1.0
    • Cross Application Tracing support for HttpURLConnection.

      Adds request and response headers to external calls using the HttpURLConnection library to provided better performance data when calling applications monitored by other New Relic Agents (Java, .NET, and Ruby, with others coming soon).

    • Fix: Cross Application Tracing does not correlate consistently when using WebSphere, WebLogic, Resin, and Glassfish.

      Cross Appplication Tracing did not correlate calling and called applications when the HTTP response was large.

    • Queuing time more broadly supported.

      The 'X-Queue-Start' and 'X-Request-Start' request headers for Heroku and other front-end web servers are interpreted and reported. Previously, queuing time was not reported for Heroku.

    • Work-around for Oracle JVM bug that in rare cases causes a native memory leak

      In rare cases, the Oracle JVM can leak native OS memory (not heap space) when classes are intercepted by the agent. This setting turns off interception of classes that are loaded after the given number of seconds. The agent will continue to monitor classes loaded before this time.

          shutdown_delay: 3600

Java Agent 2.15.1 [download]
about 1 year ago — March 13, 2013

    • Fix: Cross Application Tracing does not correlate consistently when using Tomcat 6+

      Cross Appplication Tracing did not correlate calling and called applications when the called application ran in Tomcat 6 or later and the HTTP response was greater than about 7k.

Java Agent 2.15.0 [download]
about 1 year ago — February 28, 2013

    • Cross Application Tracing

      The Cross Application Tracing feature adds request and response headers to external calls using the Apache HttpClient libraries to provided better performance data when calling applications monitored by other New Relic Agents (Java, .NET, and Ruby, with others coming soon).

      The 2.14.0 release links aggregated data across applications. This release also links transaction traces.

      The configuration setting introduced in 2.14.0 to enable/disable Cross Application Tracing in newrelic.yml has changed. The old setting: 'cross_application_tracing: true' is deprecated. The new setting is

         enabled: true

      The default setting is true. Set to false to disable Cross Application Tracing.

    • Instrumentation added for the AmazonS3Client version 1.x

      The New Relic Agent now offers support for version 1.0 to current of the interface.

    • New Relic Java Agent support a daily roll over log

      To roll over the agent log every day, set the property log_daily to true. Set the property log_file_count to the number of day logs you would like to keep.

    • New Relic Java Agent now communicates with New Relic via HTTPS by default rather than HTTP

      If you have an existing installation and wish to use HTTPS to communicate with New Relic, edit your newrelic.yml file to include

      ssl: true

      in the common section. We recommend this for existing customers in order to improve the security of your communications with New Relic.

    • Java Agent installer improvements

      The Java Agent installer now supports JBoss 7.x AS and JBoss 6.x EAP in standalone mode. Instructions for manually installing the Java Agent on JBoss 7.x AS and JBoss 6.x EAP can be found at

    • Fix: Default hostname reported

      This release reverts the change in 2.14.0 that effected the way that the hostname is reported. With this release, the agent reports the default hostname rather than short form in order to correlate with New Relic server monitoring.

    • Fix: Web transactions naming in Spring MVC version 3.x

      This bug caused customers using Spring 3.0.1 and above to often have web transactions named by the servlet rather than controller method. This has been fixed such that a separate metric is created for each controller method.

Java Agent 2.14.1 [download]
about 1 year ago — February 15, 2013

    • Fix: Application errors using The bug, introduced in 2.14.0, could cause errors in code that uses Possible errors could occur in XML parsing, incorrect http response status, or BeanCreationException in Spring. As part of this fix the agent does not add a 'X-NewRelic-ID' header to outbound requests using

Java Agent 2.14.0 [download]
about 1 year ago — February 8, 2013

    • Fix: New Relic includes property take_last_status to only grab the final http status code.

      By default, New Relic reports any error status code. However, when this property is set to true, only the last http status code will be reported. This property should be set when using Apache Felix.

    • Fix: New Relic now correctly patches Apache Felix ClassLoaders.

    • Fix: Time will now display correctly for the first hour of the day when using log4j.

    • Fix: RUM header was missing a semicolon at the end of the last statement. Some browsers prefer semicolons everywhere.

    • Adds a 'X-NewRelic-ID' header to outbound requests using the Apache HttpClient or HttpURLConnection libraries. This change helps improve the correlation of performance between services in a service-oriented architecture for a forthcoming feature. In the meantime, if you wish to disable the header, set 'cross_application_tracing: false' in newrelic.yml.

    • Fix: Java agent now reports hostnames consistent with the output of "hostname -s" to match all other agents

    • Add report of physical server memory (in addition to JVM memory) on Unix/Linux machines

Java Agent 2.13.0 [download]
over 1 year ago — January 16, 2013

    • Agent can be configured to not send JVM arguments to the New Relic server

      The property send_jvm_props can be set to false, which will cause JVM arguments to no longer be sent to the server. Use this setting if you set sensitive system properties on the command line.

    • Agent reports full URL in external service calls for transaction traces

      The agent now will provide the full URL if available in transaction traces for external calls.

    • Fix: ResinServletTracerFactory no longer causing SkipServletTracerFactory errors

      When hitting the ResinServletTracerFactory inside a transaction, a SkipServletTracerFactory excetion will no longer be thrown.

    • Agent logging improvements

      We have improved the clarity of logging messages, adjusted logging levels to be more appropriate, and increased logging performance.

Java Agent 2.12.0 [download]
over 1 year ago — December 6, 2012

    • Agent reports jars used by applications to the Environments tab in the UI

      The Environments tab in the New Relic UI now shows the jars used by your application.

    • Fix: In certain cases, auto-RUM of JSP breaks HTML

      An angle-bracket in quotes in a META tag causes the agent to produce invalid HTML for JSP. The fix produces valid HTML for this case.

    • Fix: Key Transaction ApdexT value not used

      In v2.10 - v2.11, the application-level ApdexT value is used for Key Transactions rather than the ApdexT for the Key Transaction itself. In this release, the ApdexT for the Key Transaction is used.

    • Fix: With OC4J using PolicyClassLoader, no metrics displayed

      In the case where OC4J uses the PolicyClassLoader, the agent generates a java.lang.StackOverflowError in the log and does not provide metrics. In this release, the error does not occur.

    • Fix: External metrics for HttpClient include port if host is an IP address

      In the case where an external service call uses HttpClient with an IP address rather than a hostname, the port number is also included. In this release, the port number is not displayed.

Java Agent 2.11.0 [download]
over 1 year ago — November 28, 2012

    • Support Jetty Continuations
    • Support Servlet 3.0 async API for WebSphere
    • bug fix: java.lang.ClassCircularityError in JBoss
    • bug fix: Agent does not detect Solr 4.0
    • bug fix: NewRelicIgnoreApdex annotation ignored

Java Agent 2.10.1 [download]
over 1 year ago — November 13, 2012

    • Remove stall detection

Java Agent 2.10.0 [download]
over 1 year ago — October 31, 2012

    • Instrumentation of Servlet 3.0 async processing. Processing initiated by startAsync is included in metrics and transaction traces.
    • Custom instrumentation configured through an XML file. For details see the documentation.
    • Request attribute for setting app name now allows multiple app names
    • Bug fix: auto RUM inserts header and footer into script tags

Java Agent 2.9.0 [download]
over 1 year ago — October 9, 2012

    • Support for Key Transactions. Key Transactions let you closely monitor these important key business transactions and receive alerts when they are performing poorly. For more information see the full documentation.
    • More metrics available in Custom Dashboards

Java Agent 2.8.0 [download]
over 1 year ago — September 11, 2012

    • Supports basic proxy authentication for the case where there is a proxy server between the agent and the internet. The configuration uses proxy_user and proxy_password settings.
    • To avoid reporting the same transaction trace repeatedly, the agent reports a number of the slowest transactions.
    • bug fix: Transaction trace reported to wrong app if enable_auto_app_naming and browser requested a transaction trace

Java Agent 2.7.0 [download]
over 1 year ago — July 31, 2012

    • Add skipTransactionTrace element to @Trace annotation to tell Agent to drop method from transaction trace
    • Add -Dnewrelic.bootstrap_classpath=true system property to append newrelic.jar to bootstrap classpath
    • Support RUM reporting to multiple applications (RUM3)
    • bug fix: Asynchronous processing time not reported correctly in Play 1.2.4
    • bug fix: CXF transaction names not set to URI path if protocol is https

Java Agent 2.6.0 [download]
almost 2 years ago — June 6, 2012

    • Java 7: Native support for instrumenting classes compiled to Java 7 bytecode
    • Audit Mode: mode which logs all data sent to New Relic in the newrelic_agent.log
    • bug fix: Prevent agent instrumentation from changing the Serial Version UID (introduced in 2.2.0)
    • bug fix: Prevent memory leak when client applications start and subsequently stop a thread before completing a transaction (introduced in 2.2.0)
    • bug fix: Prevent stack overflow exception when executing queries using the Postgres 9.0.x JDBC driver
    • bug fix: Fix dispatch handler instrumentation for Jetty 7.5.* (introduced in 2.5.0)
    • bug fix: Set the application port correctly under Jetty 4.*
    • bug fix: Make the transacation_tracer configuration settings respect command line and environment overrides

Java Agent 2.5.0 [download]
almost 2 years ago — May 1, 2012

    • Browser traces
    • bug fix: OC4J does not start (introduced in 2.2.0)
    • bug fix: AbstractMethodError calling getRemoteUser in Tomcat and Glassfish
    • bug fix: Deployment does not use SSL port if SSL is configured (introduced in 2.2.0)
    • bug fix: NullPointerException getting request URI in Jetty 4.x and 5.x
    • bug fix: JSP compiler error with auto RUM in Tomcat 5
    • bug fix: Transaction parameters removed if error is reported but response status < 400
    • bug fix: No request parameters in Resin 3.x
    • bug fix: AbstractMethodError calling getContextPath() with Tomcat 5.x (introduced in 2.2.0)
    • bug fix: Ignore transaction before transaction started stops transaction reporting

Java Agent 2.4.2 [download]
about 2 years ago — April 18, 2012

    bug fix: ClassLoader.loadClass deadlock (introduced in 2.4.0)

Java Agent 2.4.1
about 2 years ago — April 2, 2012

    • bug fix: AssertionError in WebLogic (introduced in 2.2.0)

Java Agent 2.4.0
about 2 years ago — March 27, 2012

    • bug fix: ClassNotFoundException with JBoss AS 7 (introduced in 2.2.0)
    • bug fix: NoClassDefFoundError with Glassfish 3.1.2 (introduced in 2.2.0)
    • bug fix: ClassCastException with Glassfish 3.1.1 (introduced in 2.2.0)
    • bug fix: Agent stops reporting web transactions (introduced in 2.2.0)
    • bug fix: Instrumentation error in Jetty 7.5.4 (introduced in 2.2.0)
    • bug fix: possible unknown host for external call with HttpClient 3.0.1 (introduced in 2.3.0)
    • bug fix: stall error reporting broken
    • bug fix: agent_enabled setting not working
    • add stall_threshold setting for reporting stall errors

Java Agent 2.3.1
about 2 years ago — February 13, 2012

    • bug fix: Agent logging breaks webapp log4j configuration (introduced in 2.3.0)

Java Agent 2.3.0
about 2 years ago — February 1, 2012

    • Play! framework support
    • Create web transactions using custom instrumentation
    • Use log4j instead of Java API logging
    • Bug fix: RUM auto instrumentation fixes
    • Bug fix: multiple app names in app_name setting out of order (introduced in 2.2.0)
    • Bug fix: possible java.lang.IllegalArgumentException with parameterized SQL (introduced in 2.2.0)
    • Bug fix: WebSphere instrumentation broken (introduced in 2.2.0)

Java Agent 2.2.1
over 2 years ago — December 29, 2011

    • Bug fix: ClassFormatError and NoClassDefFoundError instrumenting proxy classes
    • Bug fix: transaction trace threshold not working (introduced in 2.2.0)
    • Bug fix: infinite loop instrumenting parameterized SQL statements

Java Agent 2.2.0
over 2 years ago — December 6, 2011

    • Performance improvements
    • Support server-side configuration
    • Bug fix: byte-code instrumentation causes class loading deadlock and OS memory explosion

Java Agent 2.1.2
over 2 years ago — November 7, 2011

    • Performance improvements
    • Bug fix: parse inner select SQL statements
    • Bug fix: execute SQL statement not recognized

Java Agent 2.1.0
over 2 years ago — October 7, 2011

    • Report slow SQL statements
    • Performance improvements
    • Continue to record metrics after transaction trace limit is reached
    • Bug fix: never drop data
    • Bug fix: Agent destructively reads request parameters in Resin
    • Bug fix: default transaction trace threshold should be apdex_f
    • Bug fix: Don't obfuscate digits in SQL statements that are part of table name

Java Agent 2.0.4
over 2 years ago — August 30, 2011

    • Bug fix: RUM: handle duplicate injection of our JS header and footer
    • Bug fix: fix the license key hint that is inserted into the auto-generated configuration file
    • Allow logging to standard out
    • Allow configuration of the agent via environment variables

Java Agent 2.0.3
over 2 years ago — August 4, 2011

    • Bug fix: RUM: Tag files not compiling in Jasper
    • Bug fix: RUM: header not always inserted after meta tags
    • Bug fix: NullPointerException if filter config is null
    • Bug fix: Fix IE measurement problem in RUM footer
    • Bug fix: API calls should not throw exceptions

Java Agent 2.0.2
almost 3 years ago — June 16, 2011

    • Bug fix: Auto RUM compiler error instrumenting some JSPs
    • Bug fix: Auto RUM should inject header after meta tags
    • Bug fix: Installer does not modify start script if another javaagent switch is present
    • Bug fix: Agent breaks request URI parsing in Tomcat: JSESSIONID not removed (introduced in 1.4.0)
    • Bug fix: Some compilers unable to compile JSP with auto RUM
    • Installer support for Glassfish

Java Agent 2.0.1
almost 3 years ago — May 23, 2011

    • Bug fix: JBoss fails to start with JMX errors (introduced in 1.4.0)

Java Agent 2.0.0
almost 3 years ago — May 9, 2011

    • Auto Real User Monitoring
    • Support for X-Request-Start, X-Queue-Start, and X-Queue-Time request headers
    • Bug fix: newrelic-api.jar does not work with Java 1.5
    • Bug fix: NullPointerException instrumenting HttpClient
    • Bug fix: setting request attribute "com.newrelic.agent.TRANSACTION_NAME" not working (broken in 1.4.0)
    • Bug fix: uncaught exceptions not logged during startup
    • Bug fix: thread profiling fails if CPU time not supported
    • Bug fix: error is ignored only if it is the root cause

Java Agent 1.4.0
about 3 years ago — April 11, 2011

    • Real User Monitoring
    • Bug fix: setting 'ignore_status_codes' to a single value is ignored

Java Agent 1.3.0
about 3 years ago — March 17, 2011

    • Component-based transaction naming
    • Agent API
    • Multiple applications enhancements
    • Send data to RPM in UTF-8 format
    • Bug fix: ClassCastException setting record_sql: off