You found a bug! We've classified it as SDKTOOLS-407 . We encourage you to continue the discussion and to find an acceptable workaround while we work on a permanent fix.
  1. #1
    Sencha User ludoo's Avatar
    Join Date
    Mar 2007
    Location
    France, Luxembourg
    Posts
    60
    Vote Rating
    2
    ludoo is on a distinguished road

      0  

    Default Filename is not reported in console when json malformed

    Filename is not reported in console when json malformed


    Sencha Cmd version(s) tested:
    • Sencha Cmd v3.1.0.256

    Operating System:
    • Windows7

    Framework used::
    • ExtJs4.2.0.663

    Description:
    • When a json config file is malformed (comma forgotten as well), log error don't mention the wrong filename. Even in debug mode, stack trace is not more explicit on this file.

    Steps to reproduce the problem:
    • In your theme, remove a comma from the config file package.json
    Code:
    {
        "name": "my-theme-classic",
        "type": "theme",
        "extend": "ext-theme-classic"  //HERE COMMA IS MISSING
        "creator": "LudoO",
        "version": "1.0.0",
        "compatVersion": "1.0.0",
        "local": true,
        "requires": []
    }
    The result that was expected:
    • Log shows which file is malformed

    The result that occurs instead:
    • Error and stacktrace is not useful to retrieve the wrong file.
    Code:
    C:\dev\js\extjs\projects\MyProject>sencha app build
    Sencha Cmd v3.1.0.256
    [ERR] com.google.gson.stream.MalformedJsonException: Unterminated object at line 5 column 6
    Code:
    C:\dev\js\extjs\projects\MyProject>sencha --debug app build
    Sencha Cmd v3.1.0.256
    [DBG] Loading CommandProviders
    [DBG] Scanning for extensions in C:\tools\dev\SenchaSDKTools-3.1.0\Sencha\Cmd\3.1.0.256\extensions
    [DBG] loading extension from C:\tools\dev\SenchaSDKTools-3.1.0\Sencha\Cmd\3.1.0.256\extensions\sencha-compass
    [DBG] Loaded extension sencha-compass
    [DBG] loading extension from C:\tools\dev\SenchaSDKTools-3.1.0\Sencha\Cmd\3.1.0.256\extensions\sencha-io
    ...
    [ERR] com.google.gson.stream.MalformedJsonException: Unterminated object at line 5 column 6
         at com.sencha.exceptions.BasicException.wrap(BasicException.java:44)
         at com.sencha.cli.Command.dispatch(Command.java:64)
         at com.sencha.cli.Commands.dispatch(Commands.java:62)
         at com.sencha.cli.Commands.dispatch(Commands.java:62)
         at com.sencha.command.Sencha.dispatch(Sencha.java:72)
         at com.sencha.command.Sencha.main(Sencha.java:123)
       Caused by: com.google.gson.stream.MalformedJsonException: Unterminated object at line 5 column 6
         at com.google.gson.Gson.fromJson(Gson.java:805)
         at com.google.gson.Gson.fromJson(Gson.java:757)
         at com.google.gson.Gson.fromJson(Gson.java:706)
         at com.google.gson.Gson.fromJson(Gson.java:678)
         at com.sencha.util.JsonUtil.fromJson(JsonUtil.java:99)
         at com.sencha.tools.pkg.Model$Package.load(Model.java:952)
         at com.sencha.command.environment.WorkspaceRepository.scanWorkspacePackages(WorkspaceRepository.java:155)
         at com.sencha.command.environment.WorkspaceRepository.getWorkspaceCatalog(WorkspaceRepository.java:174)
         at com.sencha.command.environment.WorkspaceRepository.getWorkspaceCatalog(WorkspaceRepository.java:169)
         at com.sencha.command.environment.WorkspaceRepository.getCatalog(WorkspaceRepository.java:87)
         at com.sencha.command.environment.WorkspaceRepository.getPackage(WorkspaceRepository.java:123)
         at com.sencha.command.environment.WorkspaceEnvironment.getPackageEnvironment(WorkspaceEnvironment.java:136)
         at com.sencha.command.environment.AppEnvironment.getThemePackageEnvironment(AppEnvironment.java:85)
         at com.sencha.command.environment.AppEnvironment.getThemePackageEnvironments(AppEnvironment.java:294)
         at com.sencha.command.environment.AppEnvironment.getThemePackageNames(AppEnvironment.java:306)
         at com.sencha.command.app.AppCommands$BuildCommand.getParameters(AppCommands.java:124)
         at com.sencha.command.BasePluginCommands$BasePluginCommand.doExecute(BasePluginCommands.java:23)
         at com.sencha.command.app.AppCommands$BuildCommand.execute(AppCommands.java:108)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at com.sencha.util.MethodInvoker$Arguments.invoke(MethodInvoker.java:174)
         at com.sencha.cli.Command.dispatch(Command.java:42)
         at com.sencha.cli.Commands.dispatch(Commands.java:62)
         at com.sencha.cli.Commands.dispatch(Commands.java:62)
         at com.sencha.command.Sencha.dispatch(Sencha.java:72)
         at com.sencha.command.Sencha.main(Sencha.java:123)
       Caused by: Unterminated object at line 5 column 6
         at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1310)
         at com.google.gson.stream.JsonReader.nextInObject(JsonReader.java:722)
         at com.google.gson.stream.JsonReader.peek(JsonReader.java:382)
         at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:349)
         at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:166)
         at com.google.gson.Gson.fromJson(Gson.java:791)
         at com.google.gson.Gson.fromJson(Gson.java:757)
         at com.google.gson.Gson.fromJson(Gson.java:706)
         at com.google.gson.Gson.fromJson(Gson.java:678)
         at com.sencha.util.JsonUtil.fromJson(JsonUtil.java:99)
         at com.sencha.tools.pkg.Model$Package.load(Model.java:952)
         at com.sencha.command.environment.WorkspaceRepository.scanWorkspacePackages(WorkspaceRepository.java:155)
         at com.sencha.command.environment.WorkspaceRepository.getWorkspaceCatalog(WorkspaceRepository.java:174)
         at com.sencha.command.environment.WorkspaceRepository.getWorkspaceCatalog(WorkspaceRepository.java:169)
         at com.sencha.command.environment.WorkspaceRepository.getCatalog(WorkspaceRepository.java:87)
         at com.sencha.command.environment.WorkspaceRepository.getPackage(WorkspaceRepository.java:123)
         at com.sencha.command.environment.WorkspaceEnvironment.getPackageEnvironment(WorkspaceEnvironment.java:136)
         at com.sencha.command.environment.AppEnvironment.getThemePackageEnvironment(AppEnvironment.java:85)
         at com.sencha.command.environment.AppEnvironment.getThemePackageEnvironments(AppEnvironment.java:294)
         at com.sencha.command.environment.AppEnvironment.getThemePackageNames(AppEnvironment.java:306)
         at com.sencha.command.app.AppCommands$BuildCommand.getParameters(AppCommands.java:124)
         at com.sencha.command.BasePluginCommands$BasePluginCommand.doExecute(BasePluginCommands.java:23)
         at com.sencha.command.app.AppCommands$BuildCommand.execute(AppCommands.java:108)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at com.sencha.util.MethodInvoker$Arguments.invoke(MethodInvoker.java:174)
         at com.sencha.cli.Command.dispatch(Command.java:42)
         at com.sencha.cli.Commands.dispatch(Commands.java:62)
         at com.sencha.cli.Commands.dispatch(Commands.java:62)
         at com.sencha.command.Sencha.dispatch(Sencha.java:72)
         at com.sencha.command.Sencha.main(Sencha.java:123)

  2. #2
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    37,649
    Vote Rating
    898
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      0  

    Default


    What happens when you send the verbose flag?
    Mitchell Simoens @SenchaMitch
    Sencha Inc, Senior Forum Manager
    ________________
    Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
    https://github.com/mitchellsimoens

    Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/

    Need more help with your app? Hire Sencha Services services@sencha.com

    Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is in print!

    When posting code, please use BBCode's CODE tags.

  3. #3
    Sencha User ludoo's Avatar
    Join Date
    Mar 2007
    Location
    France, Luxembourg
    Posts
    60
    Vote Rating
    2
    ludoo is on a distinguished road

      0  

    Default


    This was the last code section of my post (if I understand well that --debug is the verbose flag...).
    With the command sencha --debug app build, I got the full java stacktrace in Gson parsing error but no filename.
    It's annoying and difficult to retrieve which file is malformed !

  4. #4
    Sencha User
    Join Date
    Oct 2012
    Posts
    20
    Vote Rating
    2
    mike.arps is on a distinguished road

      0  

    Default


    Is it any help if you use the more verbose --trace flag?

    Either way, the file should be in the error, so I will create a bug for this issue.

    Thanks so much!

  5. #5
    Sencha User ludoo's Avatar
    Join Date
    Mar 2007
    Location
    France, Luxembourg
    Posts
    60
    Vote Rating
    2
    ludoo is on a distinguished road

      0  

    Default


    I just tried with --trace flag.
    Sure, there are more infos, but stacktrace stays unchanged, and there is no additional information about filename.

Thread Participants: 2