You are right. It was my misunderstanding. Sorry for confusing you. I also checked that conversion from Json to Expr after applying your change works well. Good to hear that your problem is resolved.
Thanks, Jihoon 2014-11-14 17:44 GMT+09:00 Jaewoong Jung <[email protected]>: > Now, it's completely solved. :) > > On Fri, Nov 14, 2014 at 12:41 AM, Jaewoong Jung <[email protected]> wrote: > > Problem solved, partially. > > > > I rebooted my laptop to see if it makes any difference, and it > > actually did. Now, stop-tajo.sh doesn't show the error messages, and > > my changes are taking effect. > > > > It seems like additional changes I made after reboot are being ignored > > again, though. (And, that's why I said it's partially solved.) > > > > It turns out I just forgot to copy compiled executables to my > $TAJO_HOME/bin this time. > > BTW, now I'm 100% sure Expr.java is still being used. Is this > something that needs to be fixed? > > > > > On Fri, Nov 14, 2014 at 12:23 AM, Jaewoong Jung <[email protected]> > wrote: > >> That's weird, because the stack trace shows the following: > >> > >> java.lang.NullPointerException > >> at org.apache.tajo.algebra.Expr$JsonSerDer.deserialize(Expr.java:127) > >> at org.apache.tajo.algebra.Expr$JsonSerDer.deserialize(Expr.java:119) > >> at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:58) > >> at com.google.gson.Gson.fromJson(Gson.java:795) > >> at com.google.gson.Gson.fromJson(Gson.java:761) > >> at com.google.gson.Gson.fromJson(Gson.java:710) > >> at com.google.gson.Gson.fromJson(Gson.java:682) > >> at org.apache.tajo.algebra.JsonHelper.fromJson(JsonHelper.java:58) > >> at > org.apache.tajo.master.GlobalEngine.buildExpressionFromJson(GlobalEngine.java:194) > >> at > org.apache.tajo.master.GlobalEngine.executeQuery(GlobalEngine.java:166) > >> > >> And, Expr.java:127 is precisely where my wrong JSON query is expected > to fail. > >> > >> ---- > >> > >> BTW, I found that stop-tajo.sh prints out these messages. > >> > >> Stopping single TajoMaster > >> no master to stop > >> : > >> : > >> localhost: no worker to stop > >> > >> Is this normal? > >> > >> > >> On Fri, Nov 14, 2014 at 12:15 AM, Jihoon Son <[email protected]> > wrote: > >>> The code lines where you made the above changes are in Expr.JsonSerder > >>> which is no longer used. > >>> Every class extended from Expr has a function of toJson() which is > >>> inherited from Expr. This function uses JsonHelper to generate json > >>> strings. > >>> In JsonHelper, you can find several adapters like OpType.JsonSerder. > >>> You may modify this class instead of Expr.JsonSerder. > >>> > >>> I hope this will be helpful for you. > >>> Jihoon > >>> > >>> 2014-11-14 16:52 GMT+09:00 Jaewoong Jung <[email protected]>: > >>> > >>>> On Thu, Nov 13, 2014 at 11:39 PM, Jihoon Son <[email protected]> > wrote: > >>>> > Hi Jaewoong, > >>>> > thanks for your interest. > >>>> > Here are my answers. > >>>> > > >>>> > 1. You are right. We should make TajoCli support only SQL, and > create a > >>>> new > >>>> > client for JSON. > >>>> > 2. Can you tell me what kinds of changes you made? In most cases, > you can > >>>> > see the effect of your changes immediately, except when you modify > the > >>>> > protocol buffers codes. > >>>> > >>>> It was a really simple change like this. > >>>> > >>>> * From > >>>> 127: String opType = > >>>> jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE).getAsString(); > >>>> > >>>> * To > >>>> 127: JsonElement opTypeElement = > >>>> jsonObject.get(SERIALIZED_NAME_OF_OP_TYPE); > >>>> 128: if (opTypeElement == null) { > >>>> 129: throw new JsonParseException("Missing required field: " + > >>>> SERIALIZED_NAME_OF_OP_TYPE); > >>>> 130: } > >>>> 131: String opType = opTypeElement.getAsString(); > >>>> > >>>> FYI, I was trying to fix a bug where tsql just shows a dumb error > >>>> message, "ERROR: java.lang.NullPointerException" when an OpType field > >>>> is missing. > >>>> > >>>> No matter how I change the code, it throws a NullPointerException from > >>>> the same line of the code. I even tried adding a few blank lines above > >>>> 127, but the error trace shows that a NullPointerException was thrown > >>>> from the same line all the time. > >>>> > >>>> Strangely enough, if I make a typo to see whether my change gets > >>>> compiled, mvn stops with a proper error message. :( > >>>> > >>>> > > >>>> > Thanks, > >>>> > Jihoon > >>>> > > >>>> > 2014-11-14 16:13 GMT+09:00 Jaewoong Jung <[email protected]>: > >>>> > > >>>> >> 1. I found this issue ( > https://issues.apache.org/jira/browse/TAJO-826) > >>>> >> which has a comment that we should remove all JSON related part > from > >>>> >> TajoCli. Does it mean that we want to make tsql support SQL queries > >>>> >> only and create a separate client dedicated for JSON queries? > >>>> >> > >>>> >> 2. While trying to fix a minor bug in JSON parsing, I found that > any > >>>> >> of changes I made to Expr.java had no effect on tsql behavior. > Does it > >>>> >> read a pre-compiled jar file from somewhere else? What should I do > to > >>>> >> test my Expr changes? > >>>> >> > >>>> >> Thanks, > >>>> >> Jaewoong > >>>> >> > >>>> > > >>>> > > >>>> > > >>>> > -- > >>>> > Jihoon Son > >>>> > > >>>> > Database & Information Systems Group, > >>>> > Prof. Yon Dohn Chung Lab. > >>>> > Dept. of Computer Science & Engineering, > >>>> > Korea University > >>>> > 1, 5-ga, Anam-dong, Seongbuk-gu, > >>>> > Seoul, 136-713, Republic of Korea > >>>> > > >>>> > Tel : +82-2-3290-3580 > >>>> > E-mail : [email protected] > >>>> > >>> > >>> > >>> > >>> -- > >>> Jihoon Son > >>> > >>> Database & Information Systems Group, > >>> Prof. Yon Dohn Chung Lab. > >>> Dept. of Computer Science & Engineering, > >>> Korea University > >>> 1, 5-ga, Anam-dong, Seongbuk-gu, > >>> Seoul, 136-713, Republic of Korea > >>> > >>> Tel : +82-2-3290-3580 > >>> E-mail : [email protected] > -- Jihoon Son Database & Information Systems Group, Prof. Yon Dohn Chung Lab. Dept. of Computer Science & Engineering, Korea University 1, 5-ga, Anam-dong, Seongbuk-gu, Seoul, 136-713, Republic of Korea Tel : +82-2-3290-3580 E-mail : [email protected]
