This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 557fb8bc673cfc53a5d34541a21ca666a00cc4d0
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Fri Jun 21 15:50:36 2019 +0200

    Add an optimization enabled by the previous commit (part of SIS-463).
---
 .../java/org/apache/sis/metadata/iso/citation/Citations.java     | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
index 4bea3e6..5eaf426 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
@@ -636,6 +636,15 @@ public final class Citations extends Static {
                 return true;                            // Optimisation for a 
common case.
             }
             /*
+             * If both argument are one of the constants defined in the 
Citations class,
+             * then we do not need to compare identifier; call to `equals` is 
sufficient.
+             * This special case avoids the potentially costly call to 
`getIdentifiers()`
+             * since that call may cause a connection to the spatial metadata 
database.
+             */
+            if (c1 instanceof CitationConstant && c2 instanceof 
CitationConstant) {
+                return c1.equals(c2);
+            }
+            /*
              * If there is no identifier in both citations, fallback on title 
comparisons.
              * If there is identifiers in only one citation, make sure that 
this citation
              * is the second one (c2) in order to allow at least one call to

Reply via email to