{"action":"opened","issue":{"url":"https://api.github.com/repos/TEAMMATES/repo/issues/4668","labels_url":"https://api.github.com/repos/TEAMMATES/repo/issues/4668/labels{/name}","comments_url":"https://api.github.com/repos/TEAMMATES/repo/issues/4668/comments","events_url":"https://api.github.com/repos/TEAMMATES/repo/issues/4668/events","html_url":"https://github.com/TEAMMATES/repo/issues/4668","id":128999615,"number":4668,"title":"NPE in updateStudentCascade while running BackDoorTest","user":{"login":"LowWeiLin","id":3910365,"avatar_url":"https://avatars.githubusercontent.com/u/3910365?v=3","gravatar_id":"","url":"https://api.github.com/users/LowWeiLin","html_url":"https://github.com/LowWeiLin","followers_url":"https://api.github.com/users/LowWeiLin/followers","following_url":"https://api.github.com/users/LowWeiLin/following{/other_user}","gists_url":"https://api.github.com/users/LowWeiLin/gists{/gist_id}","starred_url":"https://api.github.com/users/LowWeiLin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LowWeiLin/subscriptions","organizations_url":"https://api.github.com/users/LowWeiLin/orgs","repos_url":"https://api.github.com/users/LowWeiLin/repos","events_url":"https://api.github.com/users/LowWeiLin/events{/privacy}","received_events_url":"https://api.github.com/users/LowWeiLin/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/TEAMMATES/repo/labels/a-FaultTolerance","name":"a-FaultTolerance","color":"E6CCFF"},{"url":"https://api.github.com/repos/TEAMMATES/repo/labels/a-Testing","name":"a-Testing","color":"E6CCFF"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-01-27T01:39:29Z","updated_at":"2016-01-27T01:39:29Z","closed_at":null,"body":"This is the stack trace, does not happen all the time but we should ensure it never happens.\r\n```\r\n[BACKDOOR_STATUS_FAILURE]java.lang.NullPointerException\r\n\tat teammates.logic.core.StudentsLogic.updateStudentCascade(StudentsLogic.java:241)\r\n\tat teammates.logic.core.StudentsLogic.updateStudentCascadeWithoutDocument(StudentsLogic.java:219)\r\n\tat teammates.logic.api.Logic.updateStudentWithoutDocument(Logic.java:1197)\r\n\tat teammates.logic.backdoor.BackDoorLogic.editStudentAsJson(BackDoorLogic.java:303)\r\n\tat teammates.logic.backdoor.BackDoorServlet.executeBackendAction(BackDoorServlet.java:235)\r\n\tat teammates.logic.backdoor.BackDoorServlet.doPost(BackDoorServlet.java:119)\r\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:637)\r\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:717)\r\n\tat org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)\r\n\tat org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)\r\n\tat teammates.storage.datastore.DatastoreFilter.doFilter(DatastoreFilter.java:28)\r\n\tat org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)\r\n\tat com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)\r\n\tat org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)\r\n\tat com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:128)\r\n\tat org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)\r\n\tat com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)\r\n\tat org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)\r\n\tat com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)\r\n\tat org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)\r\n\tat com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)\r\n\tat org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)\r\n\tat com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)\r\n\tat org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)\r\n\tat com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)\r\n\tat com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)\r\n\tat com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)\r\n\tat org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)\r\n\tat org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)\r\n\tat org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)\r\n\tat org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)\r\n\tat org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)\r\n\tat org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)\r\n\tat com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98)\r\n\tat org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)\r\n\tat com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:509)\r\n\tat org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)\r\n\tat org.mortbay.jetty.Server.handle(Server.java:326)\r\n\tat org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)\r\n\tat org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)\r\n\tat org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)\r\n\tat org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)\r\n\tat org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)\r\n\tat org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)\r\n\tat org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)\r\n```"}}