Description of problem: When pushing long source or target documents, the maven client might hit a restriction from the webserver while waiting for a response. In this case, the client will report an error, but the push will continue in the server. A subsequent attempt to push will result in race conditions with the two requests going for the same resources. In order to solve this, a new asynchronous push service should be created where documents can be pushed and left with the server for processing. The client will then continuously poll until the server is done. Additionally, the server should prevent two users from pushing the same document simultaneously. Version-Release number of selected component (if applicable): 1.7 How reproducible: With relatively large documents.
Implemented an asynchronous REST endpoint for pushing source/target. The client uses this endpoints instead of the standard ones. The client now prevents two users from pushing the same source / target documents simultaneously. It will wait until other clients are done pushing in order to continue. See: Api: https://github.com/zanata/api/commit/de1bc0766c01f340ce359e811cc4c89cd32e6abe https://github.com/zanata/api/commit/1d501b744df297168ba7cc9471c3eddb455bf957 https://github.com/zanata/api/commit/0f2a0dd19127e85511f2edc0955f29a972e3b423 https://github.com/zanata/api/commit/d1a2b53220668c1abec063d40fb1081c2adf0397 Client: https://github.com/zanata/zanata-client/commit/cab313b6c86444086ef5f3d3ac38ce188b0f8fe8 https://github.com/zanata/zanata-client/commit/4aced85f3fffafcb093e07c7942a53d7f8a59f34 https://github.com/zanata/zanata-client/commit/17e831d67d0e448e2c77962f2af7751474a68fa8 https://github.com/zanata/zanata-client/commit/00146a9c77044355818bff2caa4e22fab5c35508 Server: https://github.com/zanata/zanata/commit/3bd02c1fab3446ef185244c87ac25da1111cccc1 https://github.com/zanata/zanata/commit/9c5611102d9cc50bdc613ddd83dcecc09bf8121f https://github.com/zanata/zanata/commit/fee0a9de532a16952da1fa758d491d8959547695
See also: Api: https://github.com/zanata/api/commit/0dd52d4529f3ee0abceb1d7fc717e765cfc0408f Client: https://github.com/zanata/zanata-client/commit/55109a7802adee58a9b862fb9f6bbd6df128ca90 Server: https://github.com/zanata/zanata/commit/037e2476a5df239a94504cc3c85218b3f71366f2
VERIFIED with Zanata version 1.8.0-SNAPSHOT (20121022-1434) [INFO] client API version: 1.8.0-SNAPSHOT, server API version: 1.8.0-SNAPSHOT
Fix released in Zanata 2.0.