directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DIRSTUDIO-1139) Cannot add attribute with a null value in teh Entry editor
Date Fri, 10 Mar 2017 08:04:04 GMT
Emmanuel Lecharny created DIRSTUDIO-1139:
--------------------------------------------

             Summary: Cannot add attribute with a null value in teh Entry editor
                 Key: DIRSTUDIO-1139
                 URL: https://issues.apache.org/jira/browse/DIRSTUDIO-1139
             Project: Directory Studio
          Issue Type: Bug
          Components: studio-ldapbrowser
    Affects Versions: 2.0.0-M12
            Reporter: Emmanuel Lecharny


The entry editor does not allow you to add an attribute with a null value, like a {{mail}}
for instance (where value can be null, per IA5String syntax).

When saving the modified entry, you get the following exception :

{noformat}
!ENTRY org.eclipse.ui 4 0 2017-03-10 06:40:16.420
!MESSAGE Unhandled event loop exception
!STACK 0
...
Caused by: java.lang.RuntimeException: Empty value in attribute mail
	at org.apache.directory.studio.entryeditors.EntryEditorManager.saveSharedWorkingCopy(EntryEditorManager.java:991)
	at org.apache.directory.studio.entryeditors.EntryEditorInput.saveSharedWorkingCopy(EntryEditorInput.java:283)
	at org.apache.directory.studio.ldapbrowser.ui.editors.entry.EntryEditor.doSave(EntryEditor.java:221)
	... 59 more
{noformat}

The code is :

{noformat}
...
                for ( IAttribute attribute : workingCopy.getAttributes() )
                {
                    for ( IValue value : attribute.getValues() )
                    {
                        if ( ( value.isEmpty()  )
                        {
                            // 
                            throw new RuntimeException( NLS.bind( Messages
                                .getString( "EntryEditorManager.EmptyValueInAttribute" ),
attribute.getDescription() ) ); //$NON-NLS-1$
                        }
...
{noformat}

What we would like to do is :

{noformat}
...
                for ( IAttribute attribute : workingCopy.getAttributes() )
                {
                    for ( IValue value : attribute.getValues() )
                    {
                        LdapSyntax syntax = attribute.getEntry().getBrowserConnection().getSchema().getLdapSyntaxDescription(
attribute.getDescription() );
                        
                        SyntaxChecker syntaxChecker = syntax.getSyntaxChecker();
                        
                        if (!syntax.getSyntaxChecker().isValidSyntax( value.getRawValue()
) )
                        {
                            // 
                            throw new RuntimeException( NLS.bind( Messages
                                .getString( "EntryEditorManager.EmptyValueInAttribute" ),
attribute.getDescription() ) ); //$NON-NLS-1$
                        }
...
{noformat}

but sadly, the {{SyntaxChecker}} is not accessible in the {{LdapSyntax}} we get back (it's
null).

That is annoying, but understandable, assuming that all the LDAP servers we are connected
to aren't able to feed the Schema properly...



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message