You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Simon Temple (JIRA)" <ji...@apache.org> on 2007/06/01 15:07:15 UTC

[jira] Created: (DIRSERVER-952) NPE when using createSubcontext() with embedded server

NPE when using createSubcontext() with embedded server
------------------------------------------------------

                 Key: DIRSERVER-952
                 URL: https://issues.apache.org/jira/browse/DIRSERVER-952
             Project: Directory ApacheDS
          Issue Type: Bug
          Components: core
    Affects Versions: 1.0.2
         Environment: Windows 2003, JDK 1.5
            Reporter: Simon Temple
             Fix For: 1.0.2


We've found a problem with DS 1.0.2.  This problem only exists when running with DS embedded in the same VM.
Running the same code remotely (outside of DS VM) works fine.
 
Example code:
 
   ....
            Attributes attrs = new BasicAttributes();
            attrs.put("objectClass", "organizationalUnit");
            attrs.put("description", "Test OU");
            
            DirContext subContext = context.createSubcontext("ou=Test", attrs);
 
 
Exception from createSubcontext():
 
Caused by: java.lang.NullPointerException
 at org.apache.directory.shared.ldap.util.AttributeUtils.containsValueCaseIgnore(AttributeUtils.java:309)
 at org.apache.directory.server.core.schema.SchemaService.assertAllAttributesAllowed(SchemaService.java:1806)
 at org.apache.directory.server.core.schema.SchemaService.check(SchemaService.java:1624)
 at org.apache.directory.server.core.schema.SchemaService.add(SchemaService.java:1636)
 at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1181)
 ... 130 more
 
If you change the BasicAttributes() constructor call to:
 
            Attributes attrs = new BasicAttributes( true );

it works fine.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (DIRSERVER-952) NPE when using createSubcontext() with embedded server

Posted by "Emmanuel Lecharny (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/DIRSERVER-952?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12500720 ] 

Emmanuel Lecharny commented on DIRSERVER-952:
---------------------------------------------

Beside the fact we have a NPE, this behaviour is expected as the BasicAttributes() has been created as caseSensitive in the caller code.

What happens is that you created the attribute using "objectClass" when we are looking for "objectclass" in the code ( we do attr.getAttribute( "objectclass" ) ). We have two options here :
- throwing an explicit exception instead of a NPE
- writing some costly code to iterate through all the attributes, like :

...
        if ( objectClass == null )
        {
            NamingEnumeration ids = attributes.getIDs();
            
            while ( ids.hasMoreElements() )
            {
                String id = (String)ids.nextElement();
                
                if ( "objectclass".compareToIgnoreCase( id ) == 0 )
                {
                    objectClass = attributes.get( id );
                    break;
                }
            }
            
            if ( objectClass == null )
            {
                throw new NamingException( "No ObjectClass attribute in the entry" );
            }
        }
...

Even if I personnaly hate JNDI for allowing users to create case sensitive BasicAttributes(), I think we should protect the server from it because all our users will do this mistake at least once (and I did this mistake so many times ... !). So I will implement this loop, and I will also do it in 1.5 version, because we have the very same error.



> NPE when using createSubcontext() with embedded server
> ------------------------------------------------------
>
>                 Key: DIRSERVER-952
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-952
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.0.2
>         Environment: Windows 2003, JDK 1.5
>            Reporter: Simon Temple
>             Fix For: 1.0.2
>
>
> We've found a problem with DS 1.0.2.  This problem only exists when running with DS embedded in the same VM.
> Running the same code remotely (outside of DS VM) works fine.
>  
> Example code:
>  
>    ....
>             Attributes attrs = new BasicAttributes();
>             attrs.put("objectClass", "organizationalUnit");
>             attrs.put("description", "Test OU");
>             
>             DirContext subContext = context.createSubcontext("ou=Test", attrs);
>  
>  
> Exception from createSubcontext():
>  
> Caused by: java.lang.NullPointerException
>  at org.apache.directory.shared.ldap.util.AttributeUtils.containsValueCaseIgnore(AttributeUtils.java:309)
>  at org.apache.directory.server.core.schema.SchemaService.assertAllAttributesAllowed(SchemaService.java:1806)
>  at org.apache.directory.server.core.schema.SchemaService.check(SchemaService.java:1624)
>  at org.apache.directory.server.core.schema.SchemaService.add(SchemaService.java:1636)
>  at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1181)
>  ... 130 more
>  
> If you change the BasicAttributes() constructor call to:
>  
>             Attributes attrs = new BasicAttributes( true );
> it works fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (DIRSERVER-952) NPE when using createSubcontext() with embedded server

Posted by "Emmanuel Lecharny (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/DIRSERVER-952?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12500955 ] 

Emmanuel Lecharny commented on DIRSERVER-952:
---------------------------------------------

The problem was also existing in 1.5.

Fixed :
http://svn.apache.org/viewvc?view=rev&rev=543762
http://svn.apache.org/viewvc?view=rev&rev=543763
http://svn.apache.org/viewvc?view=rev&rev=543764

> NPE when using createSubcontext() with embedded server
> ------------------------------------------------------
>
>                 Key: DIRSERVER-952
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-952
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.0.2
>         Environment: Windows 2003, JDK 1.5
>            Reporter: Simon Temple
>            Assignee: Emmanuel Lecharny
>             Fix For: 1.0.3
>
>
> We've found a problem with DS 1.0.2.  This problem only exists when running with DS embedded in the same VM.
> Running the same code remotely (outside of DS VM) works fine.
>  
> Example code:
>  
>    ....
>             Attributes attrs = new BasicAttributes();
>             attrs.put("objectClass", "organizationalUnit");
>             attrs.put("description", "Test OU");
>             
>             DirContext subContext = context.createSubcontext("ou=Test", attrs);
>  
>  
> Exception from createSubcontext():
>  
> Caused by: java.lang.NullPointerException
>  at org.apache.directory.shared.ldap.util.AttributeUtils.containsValueCaseIgnore(AttributeUtils.java:309)
>  at org.apache.directory.server.core.schema.SchemaService.assertAllAttributesAllowed(SchemaService.java:1806)
>  at org.apache.directory.server.core.schema.SchemaService.check(SchemaService.java:1624)
>  at org.apache.directory.server.core.schema.SchemaService.add(SchemaService.java:1636)
>  at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1181)
>  ... 130 more
>  
> If you change the BasicAttributes() constructor call to:
>  
>             Attributes attrs = new BasicAttributes( true );
> it works fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (DIRSERVER-952) NPE when using createSubcontext() with embedded server

Posted by "Emmanuel Lecharny (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DIRSERVER-952?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Emmanuel Lecharny reassigned DIRSERVER-952:
-------------------------------------------

    Assignee: Emmanuel Lecharny

> NPE when using createSubcontext() with embedded server
> ------------------------------------------------------
>
>                 Key: DIRSERVER-952
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-952
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.0.2
>         Environment: Windows 2003, JDK 1.5
>            Reporter: Simon Temple
>            Assignee: Emmanuel Lecharny
>             Fix For: 1.0.2
>
>
> We've found a problem with DS 1.0.2.  This problem only exists when running with DS embedded in the same VM.
> Running the same code remotely (outside of DS VM) works fine.
>  
> Example code:
>  
>    ....
>             Attributes attrs = new BasicAttributes();
>             attrs.put("objectClass", "organizationalUnit");
>             attrs.put("description", "Test OU");
>             
>             DirContext subContext = context.createSubcontext("ou=Test", attrs);
>  
>  
> Exception from createSubcontext():
>  
> Caused by: java.lang.NullPointerException
>  at org.apache.directory.shared.ldap.util.AttributeUtils.containsValueCaseIgnore(AttributeUtils.java:309)
>  at org.apache.directory.server.core.schema.SchemaService.assertAllAttributesAllowed(SchemaService.java:1806)
>  at org.apache.directory.server.core.schema.SchemaService.check(SchemaService.java:1624)
>  at org.apache.directory.server.core.schema.SchemaService.add(SchemaService.java:1636)
>  at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1181)
>  ... 130 more
>  
> If you change the BasicAttributes() constructor call to:
>  
>             Attributes attrs = new BasicAttributes( true );
> it works fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (DIRSERVER-952) NPE when using createSubcontext() with embedded server

Posted by "Emmanuel Lecharny (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DIRSERVER-952?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Emmanuel Lecharny resolved DIRSERVER-952.
-----------------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 1.0.2)
                   1.0.3

A patch has been applied :
http://svn.apache.org/viewvc?view=rev&rev=543737
http://svn.apache.org/viewvc?view=rev&rev=543738

A test check that the server works well even if injecting BasicAttributes() :
http://svn.apache.org/viewvc?view=rev&rev=543738

> NPE when using createSubcontext() with embedded server
> ------------------------------------------------------
>
>                 Key: DIRSERVER-952
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-952
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.0.2
>         Environment: Windows 2003, JDK 1.5
>            Reporter: Simon Temple
>            Assignee: Emmanuel Lecharny
>             Fix For: 1.0.3
>
>
> We've found a problem with DS 1.0.2.  This problem only exists when running with DS embedded in the same VM.
> Running the same code remotely (outside of DS VM) works fine.
>  
> Example code:
>  
>    ....
>             Attributes attrs = new BasicAttributes();
>             attrs.put("objectClass", "organizationalUnit");
>             attrs.put("description", "Test OU");
>             
>             DirContext subContext = context.createSubcontext("ou=Test", attrs);
>  
>  
> Exception from createSubcontext():
>  
> Caused by: java.lang.NullPointerException
>  at org.apache.directory.shared.ldap.util.AttributeUtils.containsValueCaseIgnore(AttributeUtils.java:309)
>  at org.apache.directory.server.core.schema.SchemaService.assertAllAttributesAllowed(SchemaService.java:1806)
>  at org.apache.directory.server.core.schema.SchemaService.check(SchemaService.java:1624)
>  at org.apache.directory.server.core.schema.SchemaService.add(SchemaService.java:1636)
>  at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1181)
>  ... 130 more
>  
> If you change the BasicAttributes() constructor call to:
>  
>             Attributes attrs = new BasicAttributes( true );
> it works fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (DIRSERVER-952) NPE when using createSubcontext() with embedded server

Posted by "Emmanuel Lecharny (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DIRSERVER-952?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Emmanuel Lecharny closed DIRSERVER-952.
---------------------------------------


closed

> NPE when using createSubcontext() with embedded server
> ------------------------------------------------------
>
>                 Key: DIRSERVER-952
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-952
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.0.2
>         Environment: Windows 2003, JDK 1.5
>            Reporter: Simon Temple
>            Assignee: Emmanuel Lecharny
>             Fix For: 1.0.3
>
>
> We've found a problem with DS 1.0.2.  This problem only exists when running with DS embedded in the same VM.
> Running the same code remotely (outside of DS VM) works fine.
>  
> Example code:
>  
>    ....
>             Attributes attrs = new BasicAttributes();
>             attrs.put("objectClass", "organizationalUnit");
>             attrs.put("description", "Test OU");
>             
>             DirContext subContext = context.createSubcontext("ou=Test", attrs);
>  
>  
> Exception from createSubcontext():
>  
> Caused by: java.lang.NullPointerException
>  at org.apache.directory.shared.ldap.util.AttributeUtils.containsValueCaseIgnore(AttributeUtils.java:309)
>  at org.apache.directory.server.core.schema.SchemaService.assertAllAttributesAllowed(SchemaService.java:1806)
>  at org.apache.directory.server.core.schema.SchemaService.check(SchemaService.java:1624)
>  at org.apache.directory.server.core.schema.SchemaService.add(SchemaService.java:1636)
>  at org.apache.directory.server.core.interceptor.InterceptorChain$Entry$1.add(InterceptorChain.java:1181)
>  ... 130 more
>  
> If you change the BasicAttributes() constructor call to:
>  
>             Attributes attrs = new BasicAttributes( true );
> it works fine.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.