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

Monday, July 28, 2014 - 15:50 Download
  • Fixed: Instrumentation missing including browser monitoring

    There was a bug in the agent that caused several instrumentation modules to not be loaded. This bug occurred when no extensions directory existed or the extensions directory was empty. This fix will allow auto-RUM to report normally. This bug was introduced in 3.8.0.

  • Fix: Missing metrics with Java 2 Security

    When Java 2 Security was enabled, the agent failed to report some metrics. This bug was introduced in 3.8.0.

  • Fix: Agent could stop reporting transactions

    For Jetty applications, the agent could stop reporting transactions if an uncaught exception was thrown. This bug was introduced in 3.6.0.

  • Fix: Agent not reporting external services in Play 2.3

    The Java Agent was not reporting calls to external services.

Thursday, July 10, 2014 - 20:46 Download

Notes

  • Fix: EJB application transaction metrics reporting correctly for WebLogic

    In version 3.8.0 of the agent, EJB application transaction metrics for WebLogic were reporting the data as the average value per a bean instead of the total value per an application. This has been fixed and the data can now be found under the JVM tab.

  • Fix: App Map incomplete

    If a web request made an external call to another app, the app making the web request did not appear in the App Map. Moreover, subsequent external calls to other apps did not appear in the App Map either.

Monday, June 30, 2014 - 14:16 Download

Notes

  • Experimental support for Java SE 8

    This version includes experimental support for Java 8. Code that is known to work with Java SE 8 and compiled for Java 6 or 7 (such as Tomcat 8, Play Framework 2.3, etc) should work fine. We would like your feedback if you run into any trouble running code compiled for Java SE 8.

    Please only try this in non-production environments. We are eager for your feedback as we work to make Java 8 support production-ready. To enable Java SE 8 compatibility, set the following system property on your system:

    -Dnewrelic.enable.java.8

  • Support for Hibernate 4.3

    The Java agent now reports details on calls to Hibernate 4.3 as well as previous versions.

  • Fix: Cross-Application Tracing didn't trace when caller used WLS 11g and SOAP.

    In Oracle WebLogic Server 11g, cross-application tracing (CAT) failed for external calls originating in the default SOAP pipeline, producing an exception in the log. This bug has been fixed.

  • Fix: Old DocumentationBuilderFactory can cause agent to disable itself

    When using a DocumentBuilderFactory implementation compiled with Java 1.4 or below an abstract method error was being thrown, causing the agent to disable itself.

  • Fix: Agent not detecting async servlets in WebSphere 8.x

    The Java Agent was not detecting the call to AsyncContext.complete(), so it was not reporting async servlet calls.

Wednesday, June 11, 2014 - 14:27 Download

Notes

  • Support for Play 2.3

    The Java Agent now provides full support for Play 2.3. In particular, transaction naming is based on the controller action.

Tuesday, June 3, 2014 - 21:06 Download

Notes

  • Fix: NewRelic.setRequestAndResponse API call was not backward-compatible

    Implementation classes of the com.newrelic.api.agent.Request and com.newrelic.api.agent.Response interfaces compiled with a pre-3.5.0 version of newrelic-api.jar threw a java.lang.AbstractMethodError when used with a 3.5.0 or higher version of the Agent.

  • Fix: NewRelic.setRequestAndResponse can cause LinkageError

    For some app servers, calling NewRelic.setRequestAndResponse API caused a java.lang.LinkageError: loader constraint violation

  • Fix: ignoreTransaction attribute ignored

    The ignoreTransaction="true" attribute in custom xml had no effect. The transaction was not ignored even with "true" set.

  • Fix: In rare cases, Auto-RUM failed to add the New Relic header script to JSP pages.

  • Fix: Naming of CGLib classes

    Improved the fix in 3.7.0 for excluding the random part from the name of CGLib generated class.

  • Fix: Agent works properly inside a folder with + in the path

    Improved the fix in 3.7.0 for a directory path with a + character.

Tuesday, May 20, 2014 - 22:09 Download

Notes

  • Flexible capturing of attributes

    The Java agent offers the ability to fine tune the attributes being sent to New Relic. Please see our docs site for more information on configuring attributes: https://docs.newrelic.com/docs/java/java-agent-attributes

  • Agent-Side High Security Configuration

    If your account is set to high security in the New Relic UI, you must add the following to your local newrelic.yml configuration file:

    high_security: true 
    

    Without this property, the agent will stop collecting data when high security is enabled in the New Relic UI. See https://docs.newrelic.com/docs/subscriptions/high-security

  • Discovery of hostname reported to New Relic

    If New Relic reports an IP address for your hostname, you can now control whether the host name is an IP version 4 or 6 address by setting the following property in your newrelic.yml configuration file:

    process_host: 
      ipv_preference: {4 or 6}
    
  • Improved JMX metric naming

    You can now set the metric name when configuring JMX metrics through a custom yaml file using the property "root_metric_name". Note, all of the JMX metrics will still be prefixed with "JMX" and end with the name of the attribute. See https://docs.newrelic.com/docs/java/custom-jmx-yaml-examples

  • Fix: Naming of CGLib classes

    CGLib auto generated classes with Spring resulted in poor metric names. The agent now excludes the random part from the name.

  • Fix: JMS transaction naming

    JMS onMessage instrumentation now uses a lower priority for naming transactions and honors the enable_auto_transaction_naming config.

  • Improved Jetty coverage

    Jetty versions 9.04 through 9.06 were not instrumented. This has been fixed.

  • Fix: Potential memory leak from database calls

    In some cases when database work is performed outside of a New Relic transaction, a memory leak could occur. This bug has been present in the agent since 3.5.0.

  • Fix: VerifyError can occur when using Nevado JMS.

Thursday, April 24, 2014 - 12:45 Download

Notes

  • Enhanced XML for custom instrumentation

    The custom XML xsd has been enhanced to support the instrumentation of interfaces, subclasses, and method annotations. These enhancements give you much more flexibility to identify transactions and add monitoring of components without changes to your source code.

  • Fix: Agent could cause VerifyError

    In specific cases, the agent could cause verification errors.

  • Fix: Embedded Jetty instrumentation

    Starting with the 3.3.1 agent, transactions were not reported for some configurations of embedded Jetty.

  • Fix: Exceptions incorrectly reported

    In some cases exceptions were reported even if configured to be ignored.

  • Fix: Embedded Tomcat not reporting JMX Builtin metrics

    In newer versions of embedded Tomcat the agent wasn't collecting JMX metrics properly.

  • Fix: Apache HttpClient 4.3 not consistently reported

    The Java agent now instruments Apache HttpClient 4.3 calls, including the new call patterns introduced in 4.3.

  • Fix: RESTEasy transactions

    In certain instances, transactions between applications were not getting linked correctly when RESTEasy was used.

  • Fix: JBoss 7 port not reported correctly

    The port was not reported correctly for some JBoss users.

  • Fix: Auto-RUM bug

    Starting in version 3.5.0 of the Java agent, in rare cases Auto-RUM could cause the New Relic footer script to be placed within a script tag.

  • Fix: Errors not reporting with some versions WebSphere 7.0

    In some Fix Packs of WebSphere 7.0, the agent did not report errors properly.

  • Fix: Agent works properly inside a folder with + in the path

    The Java agent did not initialize properly when in a folder with a + character in the pathname.

  • Fix: Agent HttpClient logging

    The Agent's HttpClient was writing to the app server's log when it discovered a log4j appender.

  • Fix: Inconsistent State with Play 1.2.x

    In some cases the agent was logging an "Inconsistent state!" message and not reporting a transaction.

  • Fix: Invalid errors for Stripes

    The Agent was erroneously reporting spurious 404 errors for web apps using Stripes.

  • Fix: Hanging threads in the Agent with SQL Prepared Statements

    Under rare circumstances, threads could hang in the Agent when an application with multiple threads made heavy use of SQL Prepared Statements.

  • Fix: Request queue time was incorrect for some versions of nginx

    Nginx fractional second header values for queue and server start times are now parsed correctly.

  • Fix: XML entity expansion with non-SSL connection to New Relic

    Fixed an XML entity expansion vulnerability that only occurs when the agent is configured with ssl: false; the default is true. The agent already has other protection against unauthorized entity expansion. This fix is an additional layer of protection.

  • Fix: In rare case, agent can cause application thread to hang

    Under rare circumstances, an application thread could hang when an application with multiple threads made heavy use of SQL Prepared Statements.

Thursday, April 24, 2014 - 12:42
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End of life policy.

Notes

Note: This is a bugfix release for the legacy Java SE5 version of the agent. Unless you are a Java SE5 user, use the latest version of the agent.

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

  • Fix: XML entity expansion with non-SSL connection to New Relic

    Fixed an XML entity expansion vulnerability that only occurs when the agent is configured with ssl: false; the default is true. The agent already has other protection against unauthorized entity expansion. This fix is an additional layer of protection.

Thursday, March 27, 2014 - 15:06
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End of life policy.

Notes

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

Wednesday, March 5, 2014 - 17:49
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.

Notes

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

Wednesday, March 5, 2014 - 17:43
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.

Notes

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
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End of life policy.

Notes

  • 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
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.

Notes

  • 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
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.

Notes

  • 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 http://newrelic.com/software-analytics

Friday, January 10, 2014 - 21:38
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.

Notes

  • 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
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.

Notes

  • 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 https://docs.newrelic.com/docs/java/new-relic-for-java

  • 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
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.

Notes

  • 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
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.

Notes

  • 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
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.

Notes

  • 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
End of Life

The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.

Notes

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

    transaction_tracer:
      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,

    browser_monitoring:
      disabled_auto_pages: page1.jsp, page2.jsp
    
  • akka.actor.ActorKilledException 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.

    error_collector:
      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: https://docs.newrelic.com/docs/java/play-installation-for-java

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

Pages