@Override public void addStatement(final Resource s,final URI p,final Value o,final Resource... contexts) throws SailException {
  if (log.isDebugEnabled())   log.debug("s=" + s + ", p="+ p+ ", o="+ o+ ", contexts="+ Arrays.toString(contexts));
  OpenRDFUtil.verifyContextNotNull(contexts);
  if (contexts.length == 0) {
    addStatement(s,p,o,(Resource)null);
  }
  if (contexts.length == 1 && contexts[0] == null) {
    addStatement(s,p,o,(Resource)null);
  }
  for (  Resource c : contexts) {
    addStatement(s,p,o,c);
  }
}

@ Override public void addStatement ( final Resource s , final URI p , final Value o , final Resource ... contexts ) throws SailException { if ( log . isDebugEnabled ( ) ) log . debug ( "s=" + s + ", p=" + p + ", o=" + o + ", contexts=" + Arrays . toString ( contexts ) ) ; OpenRDFUtil . verifyContextNotNull ( contexts ) ; if ( contexts . length == 0 ) { addStatement ( s , p , o , ( Resource ) null ) ; } if ( contexts . length == 1 && contexts [ 0 ] == null ) { addStatement ( s , p , o , ( Resource ) null ) ; } for ( Resource c : contexts ) { addStatement ( s , p , o , c ) ; } }
sesame has a concept of a " null " graph . any statement inserted whose context position is not bound will be inserted into the " null " graph . statements inserted into the " null " graph are visible from the sparql default graph , when no data set is specified ( in this case all statements in all contexts are visible ) .
