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 963004a45519849689c7d0ba95de5c61de167a7c Author: Martin Desruisseaux <[email protected]> AuthorDate: Tue Dec 31 10:36:23 2019 +0100 Avoid a NullPointerException on call to `getMetadata()`. --- .../org/apache/sis/internal/storage/folder/Store.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/folder/Store.java b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/folder/Store.java index df63841..386444a 100644 --- a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/folder/Store.java +++ b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/folder/Store.java @@ -78,7 +78,7 @@ import org.apache.sis.storage.event.WarningEvent; * * @author Johann Sorel (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 1.0 + * @version 1.1 * @since 0.8 * @module */ @@ -95,8 +95,9 @@ class Store extends DataStore implements StoreResource, Aggregate, DirectoryStre protected final Path location; /** - * An identifier for this folder, or {@code null} if this folder is the root specified by the user. - * Shall never be null for sub-folders found in the root folder. + * An identifier for this folder, or {@code null} if not yet created. Only the root folder specified by + * user has an initially null identifier. All sub-folders shall have a non-null identifier determined + * at construction time. * * @see #identifier(NameFactory) */ @@ -268,7 +269,15 @@ class Store extends DataStore implements StoreResource, Aggregate, DirectoryStre mb.addResourceScope(ScopeCode.COLLECTION, Resources.formatInternational(Resources.Keys.DirectoryContent_1, getDisplayName())); mb.addLanguage(locale, MetadataBuilder.Scope.RESOURCE); mb.addEncoding(encoding, MetadataBuilder.Scope.RESOURCE); - mb.addTitleOrIdentifier(identifier.toString(), MetadataBuilder.Scope.RESOURCE); + String name = null; + if (identifier != null) { + name = identifier.toString(); + if (".".equals(name)) name = null; + } + if (name == null) { + name = super.getDisplayName(); // User-specified folder (root of this resource). + } + mb.addTitleOrIdentifier(name, MetadataBuilder.Scope.RESOURCE); metadata = mb.build(true); } return metadata;
