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.
In certain cases such as the Wildfly app server, the application may encounter a VerifyError. That bug has been fixed in this version.
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.
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.
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.
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
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.
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.
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 javax.ws.rs annotations.
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.
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.
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.
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 on the release notes page, you have the option to download a version of the agent that works with Java SE 5.