Teammates: Exception thrown trying to retrieve CourseStudent

Created on 16 Sep 2016  路  8Comments  路  Source: TEAMMATES/teammates

0. Error Type: ERROR
Error Message: teammates.storage.api.StudentsDb getStudentForRegistrationKey: Exception thrown trying to retrieve CourseStudent

java.lang.RuntimeException: java.lang.NumberFormatException: For input string: "ag"
at teammates.common.util.StringHelper.decrypt(StringHelper.java:147)
at teammates.storage.api.StudentsDb.getStudentForRegistrationKey(StudentsDb.java:189)
at teammates.logic.core.StudentsLogic.getStudentForRegistrationKey(StudentsLogic.java:100)
at teammates.logic.api.Logic.getStudentForRegistrationKey(Logic.java:908)
at teammates.ui.controller.Action.authenticateNotLoggedInUser(Action.java:175)
at teammates.ui.controller.Action.authenticateAndGetActualUser(Action.java:119)
at teammates.ui.controller.Action.authenticateUser(Action.java:100)
at teammates.ui.controller.Action.init(Action.java:83)
at teammates.ui.controller.ActionFactory.getAction(ActionFactory.java:148)
at teammates.ui.controller.ControllerServlet.doPost(ControllerServlet.java:62)
at teammates.ui.controller.ControllerServlet.doGet(ControllerServlet.java:43)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at teammates.storage.datastore.DatastoreFilter.doFilter(DatastoreFilter.java:29)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:50)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:260)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:78)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:148)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:504)
at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:446)
at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:453)
at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:276)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:312)
at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:304)
at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:450)
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:235)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NumberFormatException: For input string: "ag"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at teammates.common.util.StringHelper.hexStringToByteArray(StringHelper.java:326)
at teammates.common.util.StringHelper.decrypt(StringHelper.java:144)
... 46 more


c.Bug p.High

Most helpful comment

So the good news is some of our very old users are still with us :-)

All 8 comments

Got a handful of these from the live server at V5.88

Getting more of these. @kanghj any idea?

Do we know what the full registration key look like? Is it something like the one mentioned in https://github.com/TEAMMATES/teammates/pull/6041#r77007568?

I don't think it's a new error though, just that this exception has always been silenced beforehand. We should get some clue about it is from what the registration key looks like (especially if "ag" is the starting 2 characters of the regkey, possibly indicating that this regkey was an old regkey sent out long ago before we started encrypting them).

I checked one case. yes, it stats with ag. It's something like ag1zfnRlYW1tYXRlc3Y0chQLEgdKdHVkZW50GICAgKbg5Z8KDA

So the good news is some of our very old users are still with us :-)

@damithc Is there any way to reproduce it in the dev server ?. I am interested in this.

@AnaghHegde @damithc This is related to https://github.com/TEAMMATES/teammates/issues/6562, which has been fixed in https://github.com/TEAMMATES/teammates/pull/6602

Thanks @Neurrone for the clarification.

@AnaghHegde @damithc This is related to #6562, which has been fixed in #6602

Was this page helpful?
0 / 5 - 0 ratings