3535
3636import  org .jboss .logging .Logger ;
3737
38+ import  static  org .hibernate .cfg .MappingSettings .DEFAULT_CATALOG ;
39+ import  static  org .hibernate .cfg .MappingSettings .DEFAULT_SCHEMA ;
40+ import  static  org .hibernate .engine .config .spi .StandardConverters .STRING ;
3841import  static  org .hibernate .engine .jdbc .env .internal .LobCreatorBuilderImpl .makeLobCreatorBuilder ;
3942
4043/** 
@@ -70,75 +73,74 @@ public static boolean isMultiTenancyEnabled(ServiceRegistry serviceRegistry) {
7073	public  JdbcEnvironmentImpl (final  ServiceRegistryImplementor  serviceRegistry , final  Dialect  dialect ) {
7174		this .dialect  = dialect ;
7275
73- 		this . sqlAstTranslatorFactory  = resolveSqlAstTranslatorFactory ( dialect  );
76+ 		sqlAstTranslatorFactory  = resolveSqlAstTranslatorFactory ( dialect  );
7477
75- 		final  ConfigurationService  cfgService  = serviceRegistry . requireService (  ConfigurationService . class  );
78+ 		final  ConfigurationService  cfgService  = configurationService (  serviceRegistry  );
7679
77- 		NameQualifierSupport  nameQualifierSupport  = dialect .getNameQualifierSupport ();
78- 		if  ( nameQualifierSupport  == null  ) {
79- 			// assume both catalogs and schemas are supported 
80- 			nameQualifierSupport  = NameQualifierSupport .BOTH ;
81- 		}
82- 		this .nameQualifierSupport  = nameQualifierSupport ;
80+ 		final  NameQualifierSupport  dialectNameQualifierSupport  = dialect .getNameQualifierSupport ();
81+ 		nameQualifierSupport  =
82+ 				dialectNameQualifierSupport  == null 
83+ 						? NameQualifierSupport .BOTH   // assume both catalogs and schemas are supported 
84+ 						: dialectNameQualifierSupport ;
8385
84- 		this .sqlExceptionHelper  = buildSqlExceptionHelper ( dialect , logWarnings ( cfgService , dialect  ) );
86+ 		sqlExceptionHelper  =
87+ 				buildSqlExceptionHelper ( dialect ,
88+ 						logWarnings ( cfgService , dialect  ),
89+ 						logErrors ( cfgService  ) );
8590
8691		final  IdentifierHelperBuilder  identifierHelperBuilder  =
8792				identifierHelperBuilder ( cfgService , nameQualifierSupport  );
8893
8994		final  ExtractedDatabaseMetaDataImpl .Builder  metaDataBuilder  =
9095				new  ExtractedDatabaseMetaDataImpl .Builder ( this , false , null  );
9196
92- 		this . identifierHelper  = identifierHelper ( dialect , identifierHelperBuilder , metaDataBuilder  );
97+ 		identifierHelper  = identifierHelper ( dialect , identifierHelperBuilder , metaDataBuilder  );
9398
94- 		this . extractedMetaDataSupport  = metaDataBuilder .build ();
99+ 		extractedMetaDataSupport  = metaDataBuilder .build ();
95100
96- 		this .currentCatalog  = identifierHelper .toIdentifier (
97- 				cfgService .getSetting ( AvailableSettings .DEFAULT_CATALOG , StandardConverters .STRING  )
98- 		);
99- 		this .currentSchema  = Identifier .toIdentifier (
100- 				cfgService .getSetting ( AvailableSettings .DEFAULT_SCHEMA , StandardConverters .STRING  )
101- 		);
101+ 		currentCatalog  = identifierHelper .toIdentifier ( cfgService .getSetting ( DEFAULT_CATALOG , STRING  ) );
102+ 		currentSchema  = Identifier .toIdentifier ( cfgService .getSetting ( DEFAULT_SCHEMA , STRING  ) );
102103
103- 		this .qualifiedObjectNameFormatter  = new  QualifiedObjectNameFormatterStandardImpl ( nameQualifierSupport  );
104+ 		qualifiedObjectNameFormatter  = new  QualifiedObjectNameFormatterStandardImpl ( nameQualifierSupport  );
105+ 
106+ 		lobCreatorBuilder  = makeLobCreatorBuilder ( dialect  );
107+ 	}
104108
105- 		this .lobCreatorBuilder  = makeLobCreatorBuilder ( dialect  );
109+ 	private  static  ConfigurationService  configurationService (ServiceRegistryImplementor  serviceRegistry ) {
110+ 		return  serviceRegistry .requireService ( ConfigurationService .class  );
106111	}
107112
108113	private  IdentifierHelperBuilder  identifierHelperBuilder (
109114			ConfigurationService  cfgService , NameQualifierSupport  nameQualifierSupport ) {
110- 		final  IdentifierHelperBuilder  identifierHelperBuilder  = IdentifierHelperBuilder .from ( this  );
111- 		identifierHelperBuilder .setGloballyQuoteIdentifiers ( globalQuoting ( cfgService  ) );
112- 		identifierHelperBuilder .setSkipGlobalQuotingForColumnDefinitions ( globalQuotingSkippedForColumnDefinitions (
113- 				cfgService  ) );
114- 		identifierHelperBuilder .setAutoQuoteKeywords ( autoKeywordQuoting ( cfgService  ) );
115- 		identifierHelperBuilder .setNameQualifierSupport ( nameQualifierSupport  );
116- 		return  identifierHelperBuilder ;
115+ 		final  IdentifierHelperBuilder  builder  = IdentifierHelperBuilder .from ( this  );
116+ 		builder .setGloballyQuoteIdentifiers ( globalQuoting ( cfgService  ) );
117+ 		builder .setSkipGlobalQuotingForColumnDefinitions ( globalQuotingSkippedForColumnDefinitions ( cfgService  ) );
118+ 		builder .setAutoQuoteKeywords ( autoKeywordQuoting ( cfgService  ) );
119+ 		builder .setNameQualifierSupport ( nameQualifierSupport  );
120+ 		return  builder ;
117121	}
118122
119123	private  static  IdentifierHelper  identifierHelper (
120124			Dialect  dialect ,
121- 			IdentifierHelperBuilder  identifierHelperBuilder ,
125+ 			IdentifierHelperBuilder  builder ,
122126			ExtractedDatabaseMetaDataImpl .Builder  dbMetaDataBuilder ) {
123127		try  {
124- 			final  IdentifierHelper  identifierHelper  = dialect .buildIdentifierHelper ( identifierHelperBuilder , null  );
128+ 			final  IdentifierHelper  helper  = dialect .buildIdentifierHelper ( builder , null  );
125129			dbMetaDataBuilder .setSupportsNamedParameters ( dialect .supportsNamedParameters ( null  ) );
126- 			if  ( identifierHelper  != null  ) {
127- 				return  identifierHelper ;
130+ 			if  ( helper  != null  ) {
131+ 				return  helper ;
128132			}
129133		}
130134		catch  (SQLException  sqle ) {
131135			// should never ever happen 
132136			log .debug ( "There was a problem accessing DatabaseMetaData in building the JdbcEnvironment" , sqle  );
133137		}
134- 		return  identifierHelperBuilder .build ();
138+ 		return  builder .build ();
135139	}
136140
137141	private  static  SqlAstTranslatorFactory  resolveSqlAstTranslatorFactory (Dialect  dialect ) {
138142		final  SqlAstTranslatorFactory  sqlAstTranslatorFactory  = dialect .getSqlAstTranslatorFactory ();
139- 		return  sqlAstTranslatorFactory  != null 
140- 				? sqlAstTranslatorFactory 
141- 				: new  StandardSqlAstTranslatorFactory ();
143+ 		return  sqlAstTranslatorFactory  == null  ? new  StandardSqlAstTranslatorFactory () : sqlAstTranslatorFactory ;
142144	}
143145
144146	private  static  boolean  logWarnings (ConfigurationService  cfgService , Dialect  dialect ) {
@@ -149,6 +151,14 @@ private static boolean logWarnings(ConfigurationService cfgService, Dialect dial
149151		);
150152	}
151153
154+ 	private  static  boolean  logErrors (ConfigurationService  cfgService ) {
155+ 		return  cfgService .getSetting (
156+ 				AvailableSettings .LOG_JDBC_ERRORS ,
157+ 				StandardConverters .BOOLEAN ,
158+ 				true 
159+ 		);
160+ 	}
161+ 
152162	private  static  boolean  globalQuoting (ConfigurationService  cfgService ) {
153163		return  cfgService .getSetting (
154164				AvailableSettings .GLOBALLY_QUOTED_IDENTIFIERS ,
@@ -182,29 +192,27 @@ public JdbcEnvironmentImpl(
182192			JdbcConnectionAccess  jdbcConnectionAccess ) throws  SQLException  {
183193		this .dialect  = dialect ;
184194
185- 		this . sqlAstTranslatorFactory  = resolveSqlAstTranslatorFactory ( dialect  );
195+ 		sqlAstTranslatorFactory  = resolveSqlAstTranslatorFactory ( dialect  );
186196
187- 		this . sqlExceptionHelper  = buildSqlExceptionHelper ( dialect , false  );
197+ 		sqlExceptionHelper  = buildSqlExceptionHelper ( dialect , false ,  true  );
188198
189- 		this . nameQualifierSupport  = nameQualifierSupport ( databaseMetaData , dialect  );
199+ 		nameQualifierSupport  = nameQualifierSupport ( databaseMetaData , dialect  );
190200
191- 		this . identifierHelper  = identifierHelper ( databaseMetaData , dialect  );
201+ 		identifierHelper  = identifierHelper ( databaseMetaData , dialect  );
192202
193- 		this . extractedMetaDataSupport  =
203+ 		extractedMetaDataSupport  =
194204				new  ExtractedDatabaseMetaDataImpl .Builder ( this , true , jdbcConnectionAccess  )
195205						.apply ( databaseMetaData  )
196206						.setSupportsNamedParameters ( databaseMetaData .supportsNamedParameters () )
197207						.build ();
198208
199- 		this . currentCatalog  = null ;
200- 		this . currentSchema  = null ;
209+ 		currentCatalog  = null ;
210+ 		currentSchema  = null ;
201211
202- 		this .qualifiedObjectNameFormatter  = new  QualifiedObjectNameFormatterStandardImpl (
203- 				nameQualifierSupport ,
204- 				databaseMetaData 
205- 		);
212+ 		qualifiedObjectNameFormatter  =
213+ 				new  QualifiedObjectNameFormatterStandardImpl ( nameQualifierSupport , databaseMetaData  );
206214
207- 		this . lobCreatorBuilder  = makeLobCreatorBuilder ( dialect  );
215+ 		lobCreatorBuilder  = makeLobCreatorBuilder ( dialect  );
208216	}
209217
210218	private  IdentifierHelper  identifierHelper (DatabaseMetaData  databaseMetaData , Dialect  dialect ) {
@@ -278,41 +286,36 @@ public JdbcEnvironmentImpl(
278286			JdbcConnectionAccess  jdbcConnectionAccess ) throws  SQLException  {
279287		this .dialect  = dialect ;
280288
281- 		this . sqlAstTranslatorFactory  = resolveSqlAstTranslatorFactory ( dialect  );
289+ 		sqlAstTranslatorFactory  = resolveSqlAstTranslatorFactory ( dialect  );
282290
283- 		final  ConfigurationService  cfgService  = serviceRegistry . requireService (  ConfigurationService . class  );
291+ 		final  ConfigurationService  cfgService  = configurationService (  serviceRegistry  );
284292
285- 		this .sqlExceptionHelper  = buildSqlExceptionHelper ( dialect , logWarnings ( cfgService , dialect  ) );
293+ 		sqlExceptionHelper  =
294+ 				buildSqlExceptionHelper ( dialect ,
295+ 						logWarnings ( cfgService , dialect  ),
296+ 						logErrors ( cfgService  ) );
286297
287- 		NameQualifierSupport  nameQualifierSupport  = nameQualifierSupport ( databaseMetaData ,
288- 				dialect  );
289- 		this .nameQualifierSupport  = nameQualifierSupport ;
298+ 		nameQualifierSupport  = nameQualifierSupport ( databaseMetaData , dialect  );
290299
291300		final  IdentifierHelperBuilder  identifierHelperBuilder  =
292301				identifierHelperBuilder ( cfgService , nameQualifierSupport  );
293- 		this . identifierHelper  = identifierHelper ( dialect , databaseMetaData , identifierHelperBuilder  );
302+ 		identifierHelper  = identifierHelper ( dialect , databaseMetaData , identifierHelperBuilder  );
294303
295- 		this . extractedMetaDataSupport  =
304+ 		extractedMetaDataSupport  =
296305				new  ExtractedDatabaseMetaDataImpl .Builder ( this , true , jdbcConnectionAccess  )
297306						.apply ( databaseMetaData  )
298307						.setConnectionSchemaName ( determineCurrentSchemaName ( databaseMetaData , serviceRegistry , dialect  ) )
299308						.setSupportsNamedParameters ( dialect .supportsNamedParameters ( databaseMetaData  ) )
300309						.build ();
301310
302311		// and that current-catalog and current-schema happen after it 
303- 		this . currentCatalog  = identifierHelper .toIdentifier ( extractedMetaDataSupport .getConnectionCatalogName () );
304- 		this . currentSchema  = identifierHelper .toIdentifier ( extractedMetaDataSupport .getConnectionSchemaName () );
312+ 		currentCatalog  = identifierHelper .toIdentifier ( extractedMetaDataSupport .getConnectionCatalogName () );
313+ 		currentSchema  = identifierHelper .toIdentifier ( extractedMetaDataSupport .getConnectionSchemaName () );
305314
306- 		this .qualifiedObjectNameFormatter  = new  QualifiedObjectNameFormatterStandardImpl (
307- 				nameQualifierSupport ,
308- 				databaseMetaData 
309- 		);
315+ 		qualifiedObjectNameFormatter  =
316+ 				new  QualifiedObjectNameFormatterStandardImpl ( nameQualifierSupport , databaseMetaData  );
310317
311- 		this .lobCreatorBuilder  = LobCreatorBuilderImpl .makeLobCreatorBuilder (
312- 				dialect ,
313- 				cfgService .getSettings (),
314- 				databaseMetaData .getConnection ()
315- 		);
318+ 		lobCreatorBuilder  = makeLobCreatorBuilder ( dialect , cfgService .getSettings (), databaseMetaData .getConnection () );
316319	}
317320
318321	private  static  IdentifierHelper  identifierHelper (
@@ -358,12 +361,12 @@ private static SchemaNameResolver getSchemaNameResolver(ServiceRegistry serviceR
358361								dialect .getSchemaNameResolver () );
359362	}
360363
361- 	private  static  SqlExceptionHelper  buildSqlExceptionHelper (Dialect  dialect , boolean  logWarnings ) {
364+ 	private  static  SqlExceptionHelper  buildSqlExceptionHelper (Dialect  dialect , boolean  logWarnings ,  boolean   logErrors ) {
362365		final  SQLExceptionConversionDelegate  dialectDelegate  = dialect .buildSQLExceptionConversionDelegate ();
363366		final  SQLExceptionConversionDelegate [] delegates  = dialectDelegate  == null 
364367				? new  SQLExceptionConversionDelegate [] { new  SQLExceptionTypeDelegate ( dialect  ), new  SQLStateConversionDelegate ( dialect  ) }
365368				: new  SQLExceptionConversionDelegate [] { dialectDelegate , new  SQLExceptionTypeDelegate ( dialect  ), new  SQLStateConversionDelegate ( dialect  ) };
366- 		return  new  SqlExceptionHelper ( new  StandardSQLExceptionConverter ( delegates  ), logWarnings  );
369+ 		return  new  SqlExceptionHelper ( new  StandardSQLExceptionConverter ( delegates  ), logWarnings ,  logErrors  );
367370	}
368371
369372	@ Override 
0 commit comments