couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Johannes Schneider <maili...@cedarsoft.com>
Subject JCouchDB, attachments and {"error":"missing_stub"...
Date Mon, 06 Sep 2010 15:14:19 GMT
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi guys,

I try to lern jcouchdb at the momemt. But I have some problems updating
documents with attachments.
That code does not work as I expected:


    FooDocument document = new FooDocument( "foo with attachment" );
    document.setId( "daId" );
    document.addAttachment( "greeting", new Attachment(
MediaType.TEXT_PLAIN, "Hello World!".getBytes() ) );

    db.createDocument( document );
    assertEquals( "daId", document.getId() );
    assertEquals( "Hello World!", new String( db.getAttachment( "daId",
"greeting" ) ) );

    db.updateDocument( document );

    {
      FooDocument read = db.getDocument( FooDocument.class, "daId" );
      Attachment attachment = read.getAttachments().get( "greeting" );
      assertEquals( "2", attachment.getRevPos() );
      assertTrue( attachment.isStub() );

      db.updateDocument( read ); //This one fails with 412
    }


Basically it seems to be related to the fact, that I *read* a document
with attachments and the put it again.



Thanks,

Johannes



[debug] [<0.2714.0>] 'GET' /serialization_test/daId {1,1}
Headers: [{'Connection',"Keep-Alive"},{'Host',"localhost:5984"}]
[debug] [<0.2714.0>] OAuth Params: []
[info] [<0.2714.0>] 127.0.0.1 - - 'GET' /serialization_test/daId 200
[debug] [<0.2714.0>] 'PUT' /serialization_test/daId {1,1}
Headers: [{'Connection',"Keep-Alive"},
          {'Content-Encoding',"UTF-8"},
          {'Content-Length',"217"},
          {'Content-Type',"application/json"},
          {'Host',"localhost:5984"}]
[debug] [<0.2714.0>] OAuth Params: []
[debug] [<0.2714.0>] Minor error in HTTP request:
{missing_stub,<<"id:daId, name:greeting">>}
[debug] [<0.2714.0>] Stacktrace: [{couch_doc,'-merge_stubs/2-fun-0-',3},
             {lists,map,2},
             {couch_doc,merge_stubs,2},
             {couch_db,prep_and_validate_update,5},
             {couch_db,'-prep_and_validate_updates/6-fun-2-',6},
             {lists,foldl,3},
             {couch_db,prep_and_validate_updates,6},
             {couch_db,update_docs,4}]
[info] [<0.2714.0>] 127.0.0.1 - - 'PUT' /serialization_test/daId 412
[debug] [<0.2714.0>] httpd 412 error response:
 {"error":"missing_stub","reason":"id:daId, name:greeting"}

- -- 
Johannes Schneider - blog.cedarsoft.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iQEbBAEBAgAGBQJMhQVHAAoJEAytD9R7Qv6d/q0H+M+U4qPIyjxhULNL7EHE7Nb+
uyzhLV6VYgKXvas3i6OzAPHT9uyhPtPCoTOOUaBb8u+JDcpGUzXw+PvRkYQCTdSX
5NcShFdgbRw5gY4KXvXxlkbRLNDhiI51K7cb6RDsFV8CpbMqMA3FWwdwh+zGDde9
yg6C8ZE7q+X2xJFNGlZFteDdvW/DuvE18zCPDs0HMaLtlgS9jTcbt/NjjyvcOCR9
3fJ/FUL+ituNtX/f5gQYpiuHk7h5u8+YfDnAY06bgzecOGLOh2AStMt/3XhebwL8
WulBnXW/jegLlP8NqbCAI38KrlSgZw/czfQBrH9yysPCnlDS3GvGsN2qA8PKJw==
=wiwS
-----END PGP SIGNATURE-----

Mime
View raw message