Information about managed objects that were modified and not marked for update is logged to the {@link java.util.logging.Logger Logger} named {@code com.sun.sgs.impl.service.data.DataServiceImpl.detect.modifications} at level {@link java.util.logging.Level#FINEST FINEST}. This logging is only performed if detection of modifications is enabled.
The API uses this approach to avoid an issue involving
the serialVersionUID
field. To guard
against serialVersionUID
mismatches, as well as to improve
performance, any class or interface that
extends Serializable
should declare a
serialVersionUID
field. Since public interfaces can only
declare public members, a public interface that
extends Serializable
would need to have a
public serialVersionUID
field, meaning that any classes
implementing the interface would inherit
its serialVersionUID
, and so would be prevented from
controlling their versioning separately. This issue does not crop up
for interfaces that do not extend Serializable, since they by
definition have a serialVersionUID
of 0
.
null
is not explicitly specified as an acceptable
value for a method parameter, then the method does not
permit null
to be passed as a value for that
parameter, and will throw a {@link java.lang.NullPointerException}
if null
is passed (though it is left unspecified
whether or not NullPointerException
takes precedence
over other types of exceptions that could also be thrown).
null
is not explicitly specified as an acceptable
value for a method to return, then the method is not permitted to
return null
.
null
is not explicitly specified as an acceptable
value for a given collection (e.g. {@link java.util.Collection},
{@link java.util.List}, or {@link java.util.Set}) to contain, then
the collection is not permitted to contain null
elements.
null
values generally
specify this at least in their parameter-level (i.e. @param
tag) or return value-level (i.e. @return
tag)
documentation.