Guoliang Li created ZEPPELIN-6102:
-------------------------------------

             Summary: Cannot disable cron setting
                 Key: ZEPPELIN-6102
                 URL: https://issues.apache.org/jira/browse/ZEPPELIN-6102
             Project: Zeppelin
          Issue Type: Bug
          Components: zeppelin-server
    Affects Versions: 0.11.2
            Reporter: Guoliang Li
         Attachments: image-2024-09-25-11-37-42-528.png

After updating notebook with cron setting, you can't diable it back. 

!image-2024-09-25-11-37-42-528.png!

This bug was introduced by a bug fix as below:

[[ZEPPELIN-6035] fix Cron setting for Notebook by johannesschillinger-dm · Pull 
Request #4777 · apache/zeppelin 
(github.com)|https://github.com/apache/zeppelin/pull/4777]

 

The underlying error is, that the frontend sends the roles as an empty string 
when disabling the cron,  which will cause NullPointerException inside class 
AuthenticationInfo:
{code:java}
AuthenticationInfo requestingAuth = new 
AuthenticationInfo((String)config.get("cronExecutingUser"),(String) 
config.get("cronExecutingRoles"), null);

String requestCronUser = requestingAuth.getUser();
Set<String> requestCronRoles = requestingAuth.getRoles(); {code}
the roles is empty string, so rolesList is null, so `new HashSet<>(rolesList)` 
throw NullPointerException.
{code:java}
public AuthenticationInfo(String user, String roles, String ticket) {
  this.user = user;
  this.ticket = ticket;
  List<String> rolesList = GSON.fromJson(roles, ArrayList.class);
  if (roles == null) {
    this.roles = new HashSet<>();
  } else {
    this.roles = new HashSet<>(rolesList);
  }
} {code}
 

Traceback was as below:

ERROR [2024-09-24 06:23:05,826] (\{qtp992802731-1725} 
NotebookServer.java[onMessage]:494) - Can't handle message: 
{"op":"NOTE_UPDATE","data":{"id":"2GZXSDYKB","name":"liguoliang-test","config":{"isZeppelinNotebo
okCronEnable":true,"looknfeel":"default","personalizedMode":"false","cronExecutingUser":"","cronExecutingRoles":""}},"principal":"admin","ticket":"f3059116-f5b9-4959-bb01-e5442f008543","roles":"["admin"]","msgId":"eopyf-12"}
java.lang.NullPointerException
at java.util.HashSet.(HashSet.java:119)
at org.apache.zeppelin.user.AuthenticationInfo.(AuthenticationInfo.java:72)
at 
org.apache.zeppelin.service.NotebookService.lambda$updateNote$17(NotebookService.java:901)
at org.apache.zeppelin.notebook.Notebook.lambda$processNote$9(Notebook.java:495)
at 
org.apache.zeppelin.notebook.NoteManager$NoteNode.loadAndProcessNote(NoteManager.java:631)
at org.apache.zeppelin.notebook.NoteManager.processNote(NoteManager.java:330)
at org.apache.zeppelin.notebook.Notebook.processNote(Notebook.java:483)
at org.apache.zeppelin.notebook.Notebook.processNote(Notebook.java:469)
at 
org.apache.zeppelin.service.NotebookService.updateNote(NotebookService.java:875)
at org.apache.zeppelin.socket.NotebookServer.updateNote(NotebookServer.java:966)
at org.apache.zeppelin.socket.NotebookServer.onMessage(NotebookServer.java:417)
at org.apache.zeppelin.socket.NotebookServer.onMessage(NotebookServer.java:278)
at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to