@@ -14,19 +14,27 @@ static class State {
14
14
}
15
15
16
16
static class VectorSupport {
17
- private static String VECTORIZED_ESCAPE_SCANNER_CLASS = "json.ext.vectorized.VectorizedEscapeScanner" ;
17
+ private static String VECTORIZED_ESCAPE_SCANNER_CLASS = "json.ext.VectorizedEscapeScanner" ;
18
+ private static String VECTORIZED_SCANNER_PROP = "json.enableVectorizedEscapeScanner" ;
19
+ private static String VECTORIZED_SCANNER_DEFAULT = "false" ;
18
20
static final EscapeScanner VECTORIZED_ESCAPE_SCANNER ;
19
21
20
22
static {
21
23
EscapeScanner scanner = null ;
22
- try {
23
- Class <?> vectorEscapeScannerClass = EscapeScanner .class .getClassLoader ().loadClass (VECTORIZED_ESCAPE_SCANNER_CLASS );
24
- Constructor <?> vectorizedEscapeScannerConstructor = vectorEscapeScannerClass .getDeclaredConstructor ();
25
- scanner = (EscapeScanner ) vectorizedEscapeScannerConstructor .newInstance ();
26
- } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e ) {
27
- // Fallback to the ScalarEscapeScanner if we cannot load the VectorizedEscapeScanner.
28
- System .err .println ("Failed to load VectorizedEscapeScanner, falling back to ScalarEscapeScanner: " + e .getMessage ());
29
- scanner = null ;
24
+ String enableVectorizedScanner = System .getProperty (VECTORIZED_SCANNER_PROP , VECTORIZED_SCANNER_DEFAULT );
25
+ if ("true" .equalsIgnoreCase (enableVectorizedScanner ) || "1" .equalsIgnoreCase (enableVectorizedScanner )) {
26
+ try {
27
+ Class <?> vectorEscapeScannerClass = EscapeScanner .class .getClassLoader ().loadClass (VECTORIZED_ESCAPE_SCANNER_CLASS );
28
+ Constructor <?> vectorizedEscapeScannerConstructor = vectorEscapeScannerClass .getDeclaredConstructor ();
29
+ scanner = (EscapeScanner ) vectorizedEscapeScannerConstructor .newInstance ();
30
+ } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e ) {
31
+ // Fallback to the ScalarEscapeScanner if we cannot load the VectorizedEscapeScanner.
32
+ System .err .println ("Failed to load VectorizedEscapeScanner, falling back to ScalarEscapeScanner:" );
33
+ e .printStackTrace ();
34
+ scanner = null ;
35
+ }
36
+ } else {
37
+ System .err .println ("VectorizedEscapeScanner disabled." );
30
38
}
31
39
VECTORIZED_ESCAPE_SCANNER = scanner ;
32
40
}
0 commit comments