- Set default endpoints based on API key #227
-
Add a null check for
Severityto the notify override method. #214 -
Created Serializer interface, allowing for implementation of a custom serializer. #219
-
Updated ScheduleTaskConfiguration configureTask method to properly handle wrapped/proxied objects. #218
- Update
BugsnagImportSelectorto allow major versions that do not have a minor version. fixes issue #211. #213
-
Restore
BugsnagServletContainerInitializerandBugsnagServletRequestListenerto thecom.bugsnag.servletpackage. These classes are deprecated in favour of the newcom.bugsnag.servlet.javax.package, but are also compatible (c.b.s.BugsnagServletRequestListener extends c.b.s.javax.BugsnagServletRequestListener). This fixes issue #195. #199 -
Corrected JVM version requirements for Gradle projects (fixing issue 196) #197
-
Support Spring 6 / Spring Boot 3 #191
-
Bump Jackson from 2.13.3 for critical vulnerability fixes #184
- v3.7.0 of
bugsnag-springdeclares the wrong jdk version as a dependency, meaning it is incompatible with Java < 17. If you are using earlier versions use v3.6.4.
-
Support log messages that use
{}formatting #178 -
Fix potential hang when resolving DNS hostname #179
-
Bump Jackson from 2.12.5 and JUnit from 4.12 for critical vulnerability fixes #180
- Bump Jackson from 2.9.1 for critical vulnerability fixes #170
- Fix JVM hang when System.exit or bugsnag.close is not called #157
- Prevent potential ConcurrentModificationException when adding callback #149
- Allow a BugsnagAppender to be created from an existing client #147
- Remove use of daemon threads, fixing potential resource leak #143
- Migrate version information to device.runtimeVersions #141
- Swallow Throwables thrown when configuring bugsnag appender #140
-
Migrate non-standard device fields to metaData.device #131
-
Set thread name to aid debugging #138
-
Merge internal checkstyle rules #137
- Remove unnecessary
@Configurationannotation #130
- Support other methods of configuring a TaskScheduler when setting ErrorHandler on scheduled tasks #126
(Skipped, duplicate of 3.4.0)
- Enhanced support for Spring applications with the new
bugsnag-springnotifier - The ability to report throwables to Bugsnag with the logback appender
BugsnagAppender
Two artifacts are now available for this platform:
bugsnag-java- intended for plain Java applicationsbugsnag-spring- provides enhanced support for Spring applications
It is recommended that you migrate to bugsnag-spring if you develop a Spring application, as it enhances the quantity and quality of error reports which are sent automatically. Full upgrade instructions can be found here.
No upgrade steps are required for bugsnag-java in this release.
- Added
BugsnagAppenderthat can report throwables from existing log statements to Bugsnag, using logback - [Spring] Automatically report exceptions thrown when processing MVC/REST requests
- [Spring] Automatically report exceptions thrown in scheduled tasks
- [Spring] Added
BugsnagAsyncConfigclass to simplify capture of uncaught exceptions in async tasks - [Spring] Automatically attach request metadata to reports
- [Spring] Automatically attach Spring version information to reports
- [Spring] Automatically track sessions for each MVC request
See UPGRADING for upgrade details and the docs for further information on new functionality.
- Capture trace of error reporting thread and identify with boolean flag #87
-
Add null check when disconnecting HttpUrlConnection #92
-
Make constructors public for SyncHttpDelivery #97
This release introduces automatic tracking of sessions, which by
default are captured for each HTTP request received via the Servlet API. To disable this data collection, call bugsnag.setAutoCaptureSessions(false).
If you wish to use a custom strategy for tracking sessions, call bugsnag.startSession() in the
appropriate place within your application.
Jamie Lynch
#70
Deprecation notice: setEndpoints(String notify, String session) is now the preferred way to configure custom endpoints,
if you are using Bugsnag On-Premise.
Important: This is a beta release which introduces automatic tracking of sessions, which by
default are captured for each HTTP request received via the Servlet API. To disable this data collection, call bugsnag.setAutoCaptureSessions(false).
If you wish to use a custom strategy for tracking sessions, call bugsnag.startSession() in the
appropriate place within your application.
Jamie Lynch
#70
Deprecation notice: setEndpoints(String notify, String session) is now the preferred way to configure custom endpoints,
if you are using Bugsnag On-Premise.
- Make preemptive copy of map filtering specified keys Leandro Aparecido #77
- Add setter for overriding error class Jamie Lynch #78
- Update MetaData filtering to handle different versions of Jackson correctly #76
- Remove dependency on Guava
- Update Gradle wrapper
- Cache hostname to avoid excessive thread spawning
- Fixes JDK 7 support by using Android Guava
- Fixes bad artefact packaging caused by bug in gradle
- Allow overriding the context set by the servlet callback #63
- Track difference between handled and unhandled exceptions #59
- Use deprecated method to ensure we don't break with older versions of jackson William Starling #54
- Stop AsyncHttpDelivery from indefinitely blocking exit William Starling #50
- Improve Spring compatibility William Starling #49
Major rewrite/update of the notifier. Changes include:
- Uses Jackson for streaming JSON serialization
- Logs internally using
org.slf4j.Logger Severityis now an enum instead of aString- Request information is automatically collected in Servlet API apps
- JVM runtime, O/S, and locale diagnostics are collected
- The
Clientobject has been renamed toBugsnag - The
Eventobject has been renamed toReport Reportobject is now exposed for ease of attaching diagnostics to error reports- Targets Java 1.6
- Callbacks now support Java 8 lambda syntax
- Chaining support added to
Reportmethods - Can now add a Callback to
Bugsnag.notifycalls - Can now change the API key on a per-report basis using Callbacks
- Error report delivery is now fully swappable via the
Deliveryinterface
See UPGRADING for upgrade details.
This is a major release for the release of the potentially breaking change of sending exception reports asynchronously by default.
- Fix potential
NullPointerExceptionwhen passingnulltoBugsnag.notify()Delisa Mason #38
- Truncate large payloads to avoid Bad Request errors due to size Duncan Hewett #35
- Use TLS by default when connecting to Bugsnag Duncan Hewett #34
This release includes an update to the org.json dependency.
-
Add configurable connection and read timeouts Lauri Lehtinen #25
- Revert method chaining support in Client
- Add support for sending thread state information with
setSendThreads - Allow chaining of methods on Client
- Expose
beforeNotifycallback stack to child classes
- Add support for
beforeNotifycallback
- Remove hostname as it causes issues with android
- Prepare 'severity' feature for release
- Expose the ExceptionHandler class to allow removal of auto-notification
- Add hostname to device information
- Included device and app fields. Transmit appState and deviceState.
- Reduced memory usage, allow streaming errors from a file
- Expose the
Configurationclass
- Added support for
setIgnoreClassesto set which exception classes should not be sent to Bugsnag.
- Fixed compatibility with Java 1.5
- Add metrics tracking
- Allow changing of notifier name/version
- Reduced jar size
- Initial release