Source:
<code>public ValidationResult validate(NamespaceInfo namespace, boolean isNew) { if (namespace.isIsolated() && !getCatalogCapabilities().areIsolatedWorkspacesSupported()) { throw new IllegalArgumentException(String.format( "Namespace '%s:%s' is isolated but isolated workspaces are not supported by this catalog.", namespace.getPrefix(), namespace.getURI())); } if ( isNull(namespace.getPrefix()) ) { throw new NullPointerException( "Namespace prefix must not be null"); } if(namespace.getPrefix().equals(DEFAULT)) { throw new IllegalArgumentException(DEFAULT + " is a reserved keyword, can't be used as the namespace prefix"); } NamespaceInfo existing = getNamespaceByPrefix( namespace.getPrefix() ); if ( existing != null && !existing.getId().equals( namespace.getId() ) ) { throw new IllegalArgumentException( "Namespace with prefix '" + namespace.getPrefix() + "' already exists."); } if (!namespace.isIsolated()) { <START> existing = getNamespaceByURI(namespace.getURI()); <END> if (existing != null && !existing.getId().equals(namespace.getId())) { throw new IllegalArgumentException("Namespace with URI '" + namespace.getURI() + "' already exists."); } } if ( isNull(namespace.getURI()) ) { throw new NullPointerException( "Namespace uri must not be null"); } try { new URI(namespace.getURI()); } catch(Exception e) { throw new IllegalArgumentException("Invalid URI syntax for '" + namespace.getURI() + "' in namespace '" + namespace.getPrefix() + "'"); } return postValidate(namespace, isNew); }</code><technical_language>adding a isolated workspace "conflicts" isolated one, accepted no?. prevents getNamespaceByURI returning isolated one? I checked quickly in IsolatedCatalogFacade prevent this issue</technical_language>

Target:
public ValidationResult validate(NamespaceInfo namespace, boolean isNew) { if (namespace.isIsolated() && !getCatalogCapabilities().supportsIsolatedWorkspaces()) { throw new IllegalArgumentException(String.format( "Namespace '%s:%s' is isolated but isolated workspaces are not supported by this catalog.", namespace.getPrefix(), namespace.getURI())); } if ( isNull(namespace.getPrefix()) ) { throw new NullPointerException( "Namespace prefix must not be null"); } if(namespace.getPrefix().equals(DEFAULT)) { throw new IllegalArgumentException(DEFAULT + " is a reserved keyword, can't be used as the namespace prefix"); } NamespaceInfo existing = getNamespaceByPrefix( namespace.getPrefix() ); if ( existing != null && !existing.getId().equals( namespace.getId() ) ) { throw new IllegalArgumentException( "Namespace with prefix '" + namespace.getPrefix() + "' already exists."); } if (!namespace.isIsolated()) { existing = getNamespaceByURI(namespace.getURI()); if (existing != null && !existing.getId().equals(namespace.getId())) { throw new IllegalArgumentException("Namespace with URI '" + namespace.getURI() + "' already exists."); } } if ( isNull(namespace.getURI()) ) { throw new NullPointerException( "Namespace uri must not be null"); } try { new URI(namespace.getURI()); } catch(Exception e) { throw new IllegalArgumentException("Invalid URI syntax for '" + namespace.getURI() + "' in namespace '" + namespace.getPrefix() + "'"); } return postValidate(namespace, isNew); }