Refine SQLErrorCodesFactory reachability on native images
SQLErrorCodeSQLExceptionTranslator#USER_PROVIDED_ERROR_CODES_FILE_PRESENT evaluation at build time combined with the lazy SQLErrorCodesFactory#instance initialization allow to avoid making SQLErrorCodesFactory constructor reachable when no custom sql-error-codes.xml is provided. Closes gh-29294
This commit is contained in:
parent
42c3ac64ff
commit
8ed1906f43
|
@ -77,6 +77,9 @@ public class SQLErrorCodeSQLExceptionTranslator extends AbstractFallbackSQLExcep
|
|||
private static final int MESSAGE_SQL_THROWABLE_CONSTRUCTOR = 4;
|
||||
private static final int MESSAGE_SQL_SQLEX_CONSTRUCTOR = 5;
|
||||
|
||||
private static final boolean USER_PROVIDED_ERROR_CODES_FILE_PRESENT =
|
||||
new ClassPathResource(SQLErrorCodesFactory.SQL_ERROR_CODE_OVERRIDE_PATH, SQLErrorCodesFactory.class.getClassLoader()).exists();
|
||||
|
||||
|
||||
/** Error codes used by this translator. */
|
||||
@Nullable
|
||||
|
@ -424,8 +427,7 @@ public class SQLErrorCodeSQLExceptionTranslator extends AbstractFallbackSQLExcep
|
|||
* in the root of the classpath.
|
||||
*/
|
||||
static boolean hasUserProvidedErrorCodesFile() {
|
||||
return new ClassPathResource(SQLErrorCodesFactory.SQL_ERROR_CODE_OVERRIDE_PATH,
|
||||
SQLErrorCodesFactory.class.getClassLoader()).exists();
|
||||
return USER_PROVIDED_ERROR_CODES_FILE_PRESENT;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -68,14 +68,20 @@ public class SQLErrorCodesFactory {
|
|||
|
||||
/**
|
||||
* Keep track of a single instance so we can return it to classes that request it.
|
||||
* Lazily initialized in order to avoid making {@code SQLErrorCodesFactory} constructor
|
||||
* reachable on native images when not needed.
|
||||
*/
|
||||
private static final SQLErrorCodesFactory instance = new SQLErrorCodesFactory();
|
||||
@Nullable
|
||||
private static SQLErrorCodesFactory instance;
|
||||
|
||||
|
||||
/**
|
||||
* Return the singleton instance.
|
||||
*/
|
||||
public static SQLErrorCodesFactory getInstance() {
|
||||
if (instance == null) {
|
||||
instance = new SQLErrorCodesFactory();
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue