Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: 1.0.0
    • Fix Version/s: None
    • Component/s: library
    • Security Level: Public
    • Labels:
      None
    • Environment:
      Mac OSX, couchbase (1.1.2)

      Description

      Unexpected CAS error:

      Expected output from:

      cb.default_format = :document
      cb.set("trans1", "

      {'karen': '400', 'dipti': '800', 'status':'init' }

      ")=> 360287970189639680
      cb.cas("trans1") do |val|
      val["new"] = "new"
      val
      end

      Would be

      {'karen': '400', 'dipti': '800', 'status':'init', 'new': 'new' }

      but it returns:

      IndexError: string not matched
      from (irb):7:in `[]='

      This is based on the rdoc example:

      c.default_format = :document
      c.set("foo",

      {"bar" => 1}

      )
      c.cas("foo") do |val|
      val["baz"] = 2
      val
      end
      c.get("foo") #=>

      {"bar" => 1, "baz" => 2}
      No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

        kzeller kzeller created issue -
        Hide
        avsej Sergey Avseyev added a comment -

        It isn't bug here

        Note what are you setting as document:

        "

        {'karen': '400', 'dipti': '800', 'status':'init' }

        "

        This is a String, so it will be encoded as JSON string.

        If you'd like to store a JSON Object, you should use Ruby Hash:

        {'karen' => '400', 'dipti' => '800', 'status' => 'init' }

        I guess '400' and '800' shouldn't be specified as strings, therefore you might want to omit single quotes

        Show
        avsej Sergey Avseyev added a comment - It isn't bug here Note what are you setting as document: " {'karen': '400', 'dipti': '800', 'status':'init' } " This is a String, so it will be encoded as JSON string. If you'd like to store a JSON Object, you should use Ruby Hash: {'karen' => '400', 'dipti' => '800', 'status' => 'init' } I guess '400' and '800' shouldn't be specified as strings, therefore you might want to omit single quotes
        avsej Sergey Avseyev made changes -
        Field Original Value New Value
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Won't Fix [ 2 ]
        Hide
        ingenthr Matt Ingenthron added a comment -

        Also note that quoting JSON with ' is actually not legal. It's supposed to be " . Some JSON parsers (particularly some Python libraries) are really lax about this, but what you have there isn't JSON. It's a semi-JSON like string.

        See json.org

        Show
        ingenthr Matt Ingenthron added a comment - Also note that quoting JSON with ' is actually not legal. It's supposed to be " . Some JSON parsers (particularly some Python libraries) are really lax about this, but what you have there isn't JSON. It's a semi-JSON like string. See json.org
        Hide
        kzeller kzeller added a comment -

        I will add this last point to the section on Using JSON docs in the Structuring Data chapter of dev. guide....

        Show
        kzeller kzeller added a comment - I will add this last point to the section on Using JSON docs in the Structuring Data chapter of dev. guide....
        avsej Sergey Avseyev made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        brett19 Brett Lawson made changes -
        Workflow jira [ 18542 ] Couchbase SDK Workflow [ 44846 ]

          People

          • Assignee:
            avsej Sergey Avseyev
            Reporter:
            kzeller kzeller
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Gerrit Reviews

              There are no open Gerrit changes