From eecbfd044e7004546f77711d3df6fff006e15772 Mon Sep 17 00:00:00 2001 From: Ihar Sadounikau Date: Mon, 3 Aug 2020 19:47:28 +0200 Subject: [PATCH] HHH-14137 Empty String check performance improvements --- .../src/main/java/org/hibernate/cfg/Ejb3Column.java | 2 +- .../src/main/java/org/hibernate/cfg/Ejb3JoinColumn.java | 2 +- .../java/org/hibernate/cfg/annotations/CollectionBinder.java | 4 ++-- .../java/org/hibernate/dialect/CockroachDB192Dialect.java | 2 +- .../main/java/org/hibernate/dialect/PostgreSQL81Dialect.java | 2 +- .../main/java/org/hibernate/engine/internal/JoinSequence.java | 4 ++-- .../java/org/hibernate/hql/internal/ast/tree/MethodNode.java | 2 +- .../hibernate/hql/internal/ast/util/SyntheticAndFactory.java | 2 +- .../java/org/hibernate/loader/OuterJoinableAssociation.java | 4 ++-- .../org/hibernate/tool/schema/internal/SchemaCreatorImpl.java | 2 +- .../internal/metadata/CollectionMetadataGenerator.java | 2 +- .../java/org/hibernate/envers/internal/tools/StringTools.java | 2 +- 12 files changed, 15 insertions(+), 15 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/cfg/Ejb3Column.java b/hibernate-core/src/main/java/org/hibernate/cfg/Ejb3Column.java index 691dccc09445..7b86d9308b72 100644 --- a/hibernate-core/src/main/java/org/hibernate/cfg/Ejb3Column.java +++ b/hibernate-core/src/main/java/org/hibernate/cfg/Ejb3Column.java @@ -566,7 +566,7 @@ public static Ejb3Column[] buildColumnFromAnnotation( } final String columnName; - if ( "".equals( col.name() ) ) { + if ( col.name() != null && col.name().isEmpty() ) { columnName = null; } else { diff --git a/hibernate-core/src/main/java/org/hibernate/cfg/Ejb3JoinColumn.java b/hibernate-core/src/main/java/org/hibernate/cfg/Ejb3JoinColumn.java index 5fe60fd0d8fa..5e1f19e871c2 100644 --- a/hibernate-core/src/main/java/org/hibernate/cfg/Ejb3JoinColumn.java +++ b/hibernate-core/src/main/java/org/hibernate/cfg/Ejb3JoinColumn.java @@ -367,7 +367,7 @@ public static Ejb3JoinColumn buildJoinColumn( } final String name; - if ( "".equals( colName ) ) { + if ( colName != null && colName.isEmpty() ) { name = normalizer.normalizeIdentifierQuotingAsString( defaultName ); } else { diff --git a/hibernate-core/src/main/java/org/hibernate/cfg/annotations/CollectionBinder.java b/hibernate-core/src/main/java/org/hibernate/cfg/annotations/CollectionBinder.java index ec8a65fbf903..ff48ca5a90ac 100644 --- a/hibernate-core/src/main/java/org/hibernate/cfg/annotations/CollectionBinder.java +++ b/hibernate-core/src/main/java/org/hibernate/cfg/annotations/CollectionBinder.java @@ -1240,7 +1240,7 @@ private static SimpleValue buildCollectionKey( ConstraintMode foreignKeyValue = joinTableAnn.foreignKey().value(); if ( joinTableAnn.joinColumns().length != 0 ) { final JoinColumn joinColumnAnn = joinTableAnn.joinColumns()[0]; - if ( "".equals( foreignKeyName ) ) { + if ( foreignKeyName != null && foreignKeyName.isEmpty() ) { foreignKeyName = joinColumnAnn.foreignKey().name(); foreignKeyDefinition = joinColumnAnn.foreignKey().foreignKeyDefinition(); } @@ -1458,7 +1458,7 @@ else if ( anyAnn != null ) { ConstraintMode foreignKeyValue = joinTableAnn.inverseForeignKey().value(); if ( joinTableAnn.inverseJoinColumns().length != 0 ) { final JoinColumn joinColumnAnn = joinTableAnn.inverseJoinColumns()[0]; - if ( "".equals( foreignKeyName ) ) { + if ( foreignKeyName != null && foreignKeyName.isEmpty() ) { foreignKeyName = joinColumnAnn.foreignKey().name(); foreignKeyDefinition = joinColumnAnn.foreignKey().foreignKeyDefinition(); } diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/CockroachDB192Dialect.java b/hibernate-core/src/main/java/org/hibernate/dialect/CockroachDB192Dialect.java index 713159a6959c..1b89423dedc4 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/CockroachDB192Dialect.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/CockroachDB192Dialect.java @@ -244,7 +244,7 @@ public String getForUpdateString(String aliases, LockOptions lockOptions) { /* * Parent's implementation for (aliases, lockOptions) ignores aliases. */ - if ( "".equals( aliases ) ) { + if ( aliases != null && aliases.isEmpty() ) { LockMode lockMode = lockOptions.getLockMode(); final Iterator> itr = lockOptions.getAliasLockIterator(); while ( itr.hasNext() ) { diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQL81Dialect.java b/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQL81Dialect.java index 24247132f0c6..220cfb976a1f 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQL81Dialect.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/PostgreSQL81Dialect.java @@ -276,7 +276,7 @@ public String getForUpdateString(String aliases, LockOptions lockOptions) { /* * Parent's implementation for (aliases, lockOptions) ignores aliases. */ - if ( "".equals( aliases ) ) { + if ( aliases != null && aliases.isEmpty() ) { LockMode lockMode = lockOptions.getLockMode(); final Iterator> itr = lockOptions.getAliasLockIterator(); while ( itr.hasNext() ) { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/internal/JoinSequence.java b/hibernate-core/src/main/java/org/hibernate/engine/internal/JoinSequence.java index e7d42cb68dc0..af300a5ed325 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/internal/JoinSequence.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/internal/JoinSequence.java @@ -334,9 +334,9 @@ && isManyToManyRoot( last ) join.getAlias(), enabledFilters ); - condition = "".equals( manyToManyFilter ) + condition = (manyToManyFilter != null && manyToManyFilter.isEmpty()) ? on - : "".equals( on ) ? manyToManyFilter : on + " and " + manyToManyFilter; + : (on != null && on.isEmpty()) ? manyToManyFilter : on + " and " + manyToManyFilter; } else { condition = on; diff --git a/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/MethodNode.java b/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/MethodNode.java index 31584a153d09..c0fbf9b56be1 100644 --- a/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/MethodNode.java +++ b/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/tree/MethodNode.java @@ -181,7 +181,7 @@ private void prepareAnyImplicitJoins(DotNode dotNode) throws SemanticException { if ( dotNode.getLhs() instanceof DotNode ) { DotNode lhs = (DotNode) dotNode.getLhs(); FromElement lhsOrigin = lhs.getFromElement(); - if ( lhsOrigin != null && "".equals( lhsOrigin.getText() ) ) { + if ( lhsOrigin != null && lhsOrigin.getText() != null && lhsOrigin.getText().isEmpty() ) { String lhsOriginText = lhsOrigin.getQueryable().getTableName() + " " + lhsOrigin.getTableAlias(); lhsOrigin.setText( lhsOriginText ); diff --git a/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/util/SyntheticAndFactory.java b/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/util/SyntheticAndFactory.java index 19d3d9f26f32..928df2fe50c2 100644 --- a/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/util/SyntheticAndFactory.java +++ b/hibernate-core/src/main/java/org/hibernate/hql/internal/ast/util/SyntheticAndFactory.java @@ -147,7 +147,7 @@ public void addDiscriminatorWhereFragment( Map enabledFilters, String alias) { String whereFragment = persister.filterFragment( alias, enabledFilters ).trim(); - if ( "".equals( whereFragment ) ) { + if ( whereFragment != null && whereFragment.isEmpty() ) { return; } if ( whereFragment.startsWith( "and" ) ) { diff --git a/hibernate-core/src/main/java/org/hibernate/loader/OuterJoinableAssociation.java b/hibernate-core/src/main/java/org/hibernate/loader/OuterJoinableAssociation.java index affb2c969ea3..a0b5a8fed60b 100644 --- a/hibernate-core/src/main/java/org/hibernate/loader/OuterJoinableAssociation.java +++ b/hibernate-core/src/main/java/org/hibernate/loader/OuterJoinableAssociation.java @@ -193,9 +193,9 @@ public boolean isManyToManyWith(OuterJoinableAssociation other) { public void addManyToManyJoin(JoinFragment outerjoin, QueryableCollection collection) throws MappingException { String manyToManyFilter = collection.getManyToManyFilterFragment( rhsAlias, enabledFilters ); - String condition = "".equals( manyToManyFilter ) + String condition = (manyToManyFilter != null && manyToManyFilter.isEmpty()) ? on - : "".equals( on ) + : (on != null && on.isEmpty()) ? manyToManyFilter : on + " and " + manyToManyFilter; outerjoin.addJoin( diff --git a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaCreatorImpl.java b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaCreatorImpl.java index 2180d3843709..6c8744fdea5b 100644 --- a/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaCreatorImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/tool/schema/internal/SchemaCreatorImpl.java @@ -481,7 +481,7 @@ private void applyImportSources( for ( String currentFile : importFiles.split( "," ) ) { final String resourceName = currentFile.trim(); - if ( "".equals( resourceName ) ) { + if ( resourceName != null && resourceName.isEmpty() ) { //skip empty resource names continue; } diff --git a/hibernate-envers/src/main/java/org/hibernate/envers/configuration/internal/metadata/CollectionMetadataGenerator.java b/hibernate-envers/src/main/java/org/hibernate/envers/configuration/internal/metadata/CollectionMetadataGenerator.java index 1adb53b3d40f..14924532bf1e 100644 --- a/hibernate-envers/src/main/java/org/hibernate/envers/configuration/internal/metadata/CollectionMetadataGenerator.java +++ b/hibernate-envers/src/main/java/org/hibernate/envers/configuration/internal/metadata/CollectionMetadataGenerator.java @@ -553,7 +553,7 @@ else if ( mapKeyEnumType != null ) { final IdMappingData referencedIdMapping = mainGenerator.getEntitiesConfigurations() .get( referencedEntityName ).getIdMappingData(); final int currentIndex = queryGeneratorBuilder == null ? 0 : queryGeneratorBuilder.getCurrentIndex(); - if ( "".equals( mapKey ) ) { + if ( mapKey != null && mapKey.isEmpty() ) { // The key of the map is the id of the entity. return new MiddleComponentData( new MiddleMapKeyIdComponentMapper( diff --git a/hibernate-envers/src/main/java/org/hibernate/envers/internal/tools/StringTools.java b/hibernate-envers/src/main/java/org/hibernate/envers/internal/tools/StringTools.java index 621a44ddb82e..c8e8a91b4611 100644 --- a/hibernate-envers/src/main/java/org/hibernate/envers/internal/tools/StringTools.java +++ b/hibernate-envers/src/main/java/org/hibernate/envers/internal/tools/StringTools.java @@ -15,7 +15,7 @@ */ public abstract class StringTools { public static boolean isEmpty(String s) { - return s == null || "".equals( s ); + return s == null || s.isEmpty(); } public static boolean isEmpty(Object o) {