|
1 | 1 | use crate::rollbar::Rollbar;
|
| 2 | +use aho_corasick::{AcAutomaton, Automaton}; |
2 | 3 | use lazy_static::lazy_static;
|
3 |
| -use regex::RegexSet; |
4 | 4 | use rollbar_jvm::env::JvmTiEnv;
|
5 | 5 | use rollbar_jvm::errors::*;
|
6 | 6 | use rollbar_jvm::jni::JniEnv;
|
@@ -44,58 +44,32 @@ pub fn callback(
|
44 | 44 | Ok(())
|
45 | 45 | }
|
46 | 46 |
|
47 |
| -#[allow(clippy::trivial_regex)] |
48 | 47 | fn should_ignore(class: &str) -> bool {
|
49 | 48 | lazy_static! {
|
50 |
| - static ref RE: RegexSet = RegexSet::new(&[ |
51 |
| - r"^com\.sun\.org", |
52 |
| - r"^javax\.naming\.", |
53 |
| - r"^java\.io\.EOFException", |
54 |
| - r"^java\.io\.FileNotFoundException", |
55 |
| - r"^java\.io\.IOException", |
56 |
| - r"^java\.lang\.ArrayIndexOutOfBoundsException", |
57 |
| - r"^java\.lang\.ClassNotFoundException", |
58 |
| - r"^java\.lang\.IllegalStateException", |
59 |
| - r"^java\.lang\.InterruptedException", |
60 |
| - r"^java\.lang\.NoSuchFieldError", |
61 |
| - r"^java\.lang\.NoSuchFieldException", |
62 |
| - r"^java\.lang\.NoSuchMethodException", |
63 |
| - r"^java\.net\.MalformedURLException", |
64 |
| - r"^java\.net\.SocketException", |
65 |
| - r"^java\.security\.cert\.CertificateParsingException", |
66 |
| - r"^java\.security\.PrivilegedActionException", |
67 |
| - r"^java\.security\.SignatureException", |
68 |
| - r"^java\.util\.zip\.ZipException", |
69 |
| - r"^javax\.crypto\.BadPaddingException", |
70 |
| - ]) |
71 |
| - .unwrap(); |
| 49 | + static ref AUT: AcAutomaton<&'static str> = [ |
| 50 | + "com.sun.org", |
| 51 | + "javax.naming.", |
| 52 | + "java.io.EOFException", |
| 53 | + "java.io.FileNotFoundException", |
| 54 | + "java.io.IOException", |
| 55 | + "java.lang.ArrayIndexOutOfBoundsException", |
| 56 | + "java.lang.ClassNotFoundException", |
| 57 | + "java.lang.IllegalStateException", |
| 58 | + "java.lang.InterruptedException", |
| 59 | + "java.lang.NoSuchFieldError", |
| 60 | + "java.lang.NoSuchFieldException", |
| 61 | + "java.lang.NoSuchMethodException", |
| 62 | + "java.net.MalformedURLException", |
| 63 | + "java.net.SocketException", |
| 64 | + "java.security.cert.CertificateParsingException", |
| 65 | + "java.security.PrivilegedActionException", |
| 66 | + "java.security.SignatureException", |
| 67 | + "java.util.zip.ZipException", |
| 68 | + "javax.crypto.BadPaddingException", |
| 69 | + ] |
| 70 | + .iter() |
| 71 | + .cloned() |
| 72 | + .collect(); |
72 | 73 | }
|
73 |
| - RE.is_match(class) |
| 74 | + AUT.find(class).next().is_some() |
74 | 75 | }
|
75 |
| -/* |
76 |
| - if class.starts_with("com.sun.org") || class.starts_with("javax.naming.") { |
77 |
| - return true; |
78 |
| - } |
79 |
| - match class { |
80 |
| - "java.io.EOFException" |
81 |
| - | "java.io.FileNotFoundException" |
82 |
| - | "java.io.IOException" |
83 |
| - | "java.lang.ArrayIndexOutOfBoundsException" |
84 |
| - | "java.lang.ClassNotFoundException" |
85 |
| - | "java.lang.IllegalStateException" |
86 |
| - | "java.lang.InterruptedException" |
87 |
| - | "java.lang.NoSuchFieldError" |
88 |
| - | "java.lang.NoSuchFieldException" |
89 |
| - | "java.lang.NoSuchMethodException" |
90 |
| - | "java.net.MalformedURLException" |
91 |
| - | "java.net.SocketException" |
92 |
| - | "java.security.cert.CertificateParsingException" |
93 |
| - | "java.security.PrivilegedActionException" |
94 |
| - | "java.security.SignatureException" |
95 |
| - | "java.util.zip.ZipException" |
96 |
| - | "javax.crypto.BadPaddingException" => return true, |
97 |
| - _ => {} |
98 |
| - } |
99 |
| - false |
100 |
| -} |
101 |
| -*/ |
0 commit comments