@@ -232,19 +232,24 @@ public class DefaultSentryClientFactory extends SentryClientFactory {
232232
233233 @ Override
234234 public SentryClient createSentryClient (Dsn dsn ) {
235- SentryClient sentryClient = new SentryClient (createConnection (dsn ), getContextManager (dsn ));
236235 try {
237- // `ServletRequestListener` was added in the Servlet 2.4 API, and
238- // is used as part of the `HttpEventBuilderHelper`, see:
239- // https://tomcat.apache.org/tomcat-5.5-doc/servletapi/
240- Class .forName ("javax.servlet.ServletRequestListener" , false , this .getClass ().getClassLoader ());
241- sentryClient .addBuilderHelper (new HttpEventBuilderHelper ());
242- } catch (ClassNotFoundException e ) {
243- logger .debug ("The current environment doesn't provide access to servlets,"
244- + " or provides an unsupported version." );
236+ SentryClient sentryClient = new SentryClient (createConnection (dsn ), getContextManager (dsn ));
237+ try {
238+ // `ServletRequestListener` was added in the Servlet 2.4 API, and
239+ // is used as part of the `HttpEventBuilderHelper`, see:
240+ // https://tomcat.apache.org/tomcat-5.5-doc/servletapi/
241+ Class .forName ("javax.servlet.ServletRequestListener" , false , this .getClass ().getClassLoader ());
242+ sentryClient .addBuilderHelper (new HttpEventBuilderHelper ());
243+ } catch (ClassNotFoundException e ) {
244+ logger .debug ("The current environment doesn't provide access to servlets,"
245+ + " or provides an unsupported version." );
246+ }
247+ sentryClient .addBuilderHelper (new ContextBuilderHelper (sentryClient ));
248+ return configureSentryClient (sentryClient , dsn );
249+ } catch (Exception e ) {
250+ logger .error ("Failed to initialize sentry, falling back to no-op client" , e );
251+ return new SentryClient (new NoopConnection (), new ThreadLocalContextManager ());
245252 }
246- sentryClient .addBuilderHelper (new ContextBuilderHelper (sentryClient ));
247- return configureSentryClient (sentryClient , dsn );
248253 }
249254
250255 /**
0 commit comments