The cause may be:
SqlGrant.java: /** * Grammar production: * f0 -> <PUBLIC_> * | Identifier(prn) */ @Override public Object visit(Grantee n, Object argu) { if (n.f0.which == 0) { granteeList.add(null); } ... }
For "public", n.f0.which==0, so null is added to granteeList. Then,
public void prepare() throws Exception { ... for (String granteeName : granteeList) { iGranteeList.add(granteeName == null ? null : database.getSysUser(granteeName)); } ... }
null is added to iGranteeList.
When Stado starts up, SysTable.java: void readPermissionsInfo() throws XDBServerException { ... sysPermissions.put(user, aSysPermission); user.addGranted(this); <-- this will cause exception because user is null ...
The cause may be:
SqlGrant.java:
granteeLis t.add(null) ;
/**
* Grammar production:
* f0 -> <PUBLIC_>
* | Identifier(prn)
*/
@Override
public Object visit(Grantee n, Object argu) {
if (n.f0.which == 0) {
}
...
}
For "public", n.f0.which==0, so null is added to granteeList.
Then,
public void prepare() throws Exception {
iGranteeList. add(granteeName == null ? null : database. getSysUser( granteeName) );
...
for (String granteeName : granteeList) {
}
...
}
null is added to iGranteeList.
When Stado starts up, Info() throws XDBServerException {
sysPermission s.put(user, aSysPermission);
user. addGranted( this); <-- this will cause exception because user is null
SysTable.java:
void readPermissions
...
...