
Hi, I am not very clear from the spec how to handle contexts - and it would appear that C++ and Java implementations have interpreted it differently. I will try to explain what I think should happen then you can all tell me why I am wrong. If I have omitted the session parameter to get a default session then I get a session with the default context. An implementation (which may or may be adapter based) has a set of contexts that it knows about - each with an implementation-defined type. An implementation-defined context type in turn defines a set of context attribute names that are meaningful to that type The implementation defines one of the contexts types that it knows about as a default type - so the default context is actually a context with the default type. If the default context needs to be modified by the user to be useful - e.g. storing a password - then there is no benefit in using the default context. So the default context should not be modifiable by the user. It may be implemented as a singleton. The user can also create a context with a type known to him and to the implementation. He may need to set attributes of this context before it can be used. The implementation must not modify any attributes - though the constructor may set attributes to sensible defaults which can then be modified by the user. The set_defaults call should *not* be in the spec - it is purely an implementation thing. Steve