{"push_id":924672801,"size":19,"distinct_size":18,"ref":"refs/heads/OF-1028","head":"c8269f660fe405ebd887b2f601236239244827f6","before":"2b11fb76c91d1ced0637e9875ebaf93a847f9cd1","commits":[{"sha":"66e91ee3c45112493d4175571e3bd929ab4d3702","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"Remove verbose logging\nThis class logged to debug on any property change (including properties\nthat do not relate to the class itself).","distinct":false,"url":"https://api.github.com/repos/guusdk/Openfire/commits/66e91ee3c45112493d4175571e3bd929ab4d3702"},{"sha":"632eec6f2b5866544f66c154b58af845825021f9","author":{"email":"bfcdf3e6ca6cef45543bfbb57509c92aec9a39fb@cridland.net","name":"Dave Cridland"},"message":"Merge pull request #488 from guusdk/logging\n\nRemove verbose logging","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/632eec6f2b5866544f66c154b58af845825021f9"},{"sha":"3a3faad1310056bc39fdf369e30ae38148fb004c","author":{"email":"c5351426edf832b39c7fd41e28b0e051b5763947@gmx.de","name":"Christian Schudt"},"message":"WebSocket plugin: Fix wrong namespace adding to empty elements\n\nThe old logic produced XML like:\n<presence xmlns=\"jabber:client\" from=\"...\" to=\"...\"><show xmlns=\"\">xa</show><status xmlns=\"\"/></presence>\n\nThis is basically the same fix as in 6965c13.\n\nRelates to OF-938.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/3a3faad1310056bc39fdf369e30ae38148fb004c"},{"sha":"81363d821bd2c406a4b22d8a5df78fb6c06b83c0","author":{"email":"c5351426edf832b39c7fd41e28b0e051b5763947@gmx.de","name":"Christian Schudt"},"message":"Don't add multiple delayed delivery extension to resent messages.\n\nThe issue is that messages, which get resent from offline storage already have an older timestamp.\n\nThere should not be another delayed delivery extension, which \"overwrites\" the old one.\n\nMessages looked like that:\n<message><body>...</body><delay xmlns=\"urn:xmpp:delay\" stamp=\"2016-01-06T13:48:45.312Z\"></delay><delay xmlns=\"urn:xmpp:delay\" stamp=\"2016-01-06T13:49:56.674Z\"></delay></message>\n\nInstead the original timestamp should be preserved.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/81363d821bd2c406a4b22d8a5df78fb6c06b83c0"},{"sha":"5b11857d3ce4a87e91f52c1e36c470203a72bbbd","author":{"email":"bfcdf3e6ca6cef45543bfbb57509c92aec9a39fb@cridland.net","name":"Dave Cridland"},"message":"Merge pull request #490 from sco0ter/websocket\n\nWebSocket plugin: Fix wrong namespace adding to empty elements","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/5b11857d3ce4a87e91f52c1e36c470203a72bbbd"},{"sha":"8d2f0722f2dd629226fc125423807f8fdea10943","author":{"email":"119cab3fb09cafc0719e405985305088a31b230a@gmail.com","name":"Guus der Kinderen"},"message":"Merge pull request #492 from sco0ter/smDelay\n\nDon't add multiple delayed delivery extension to resent messages.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/8d2f0722f2dd629226fc125423807f8fdea10943"},{"sha":"2889dfcd99bfe7d64fc236f23e41d31f1ea4ecb6","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"OF-1028: Logging should have context\nStream (debug) logging is very verbose, but does not provide any context.\nThis commit adds the address of the peer to each log message.\nAdditionally, some javadoc fixes were applied.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/2889dfcd99bfe7d64fc236f23e41d31f1ea4ecb6"},{"sha":"bac4c60015b9ac020cd77049a13a9aefe8cdd94f","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"OF-1028: Avoid potential concurrency issue.\nDo not expose the collection of packets that our implementation\nmodifies only under a mutex (alternatively, we could return a\ndefensive copy instead, but there does not seem to be a need\nto expose the collection in the first place).","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/bac4c60015b9ac020cd77049a13a9aefe8cdd94f"},{"sha":"3b5e22bb5e677859785f9b49d29e2ce0e69b217b","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"OF-1028: Avoid potential concurrency issue.\nPrevent exposing access to a field that we're careful to modify\nunder lock. Again, a defensive copy is a suitable alternative,\nbut seems unneeded.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/3b5e22bb5e677859785f9b49d29e2ce0e69b217b"},{"sha":"8e06f9dc161b794f8819793f58fed3960685d026","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"OF-1028: Synchronized block scope should be minimal.\nTo reduce the chance of lock contention, locks should only be put\nin effect when the code accesses data that is sensitive to concurrent\naccess.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/8e06f9dc161b794f8819793f58fed3960685d026"},{"sha":"e62c04d9cb86540f0d5342262a7d6b69767f816c","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"OF-1028: Reduce duplicate code\nBy moving the processing of Stream Management elements into the\nStreamManager implementation, duplicated code can be removed.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/e62c04d9cb86540f0d5342262a7d6b69767f816c"},{"sha":"2527acb88ffdd7eef3b566eb117f8c6f701a8d56","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"OF-1028: Remove unused field\nThe 'enabled' field is unneeded - the presence of a namespace also\nindicates if SM is enabled. Reduces code, saves a little on memory.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/2527acb88ffdd7eef3b566eb117f8c6f701a8d56"},{"sha":"231e73ac4f0896ca03d6d5fc754df0c942818c7b","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"OF-1028: Prevent access to internal state.\nPrevious commits have applied enough refactoring that it is now no\nlonger needed to expose internal state. This saves on complexity and\npotential concurrency issues.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/231e73ac4f0896ca03d6d5fc754df0c942818c7b"},{"sha":"c3ed050a7e2dd0ea6b99cd5c4410294f0e6099f8","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"OF-1028: Store X with each unack'ed stanza\nTo safely determine what stanza has and has not been ack'ed by the peer,\nstore the current value of 'x' with each stanza that's kept. This also\nallows for proper handling when the peer rolls over X (at x=2^32).","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/c3ed050a7e2dd0ea6b99cd5c4410294f0e6099f8"},{"sha":"c1b3f28f5a8998918a71218070c941ed4b887454","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"OF-1028: Rollover should occur at 2^32\nThis commit fixes an overflow issue.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/c1b3f28f5a8998918a71218070c941ed4b887454"},{"sha":"422e7ff6d8fe475ee93b726008b79653e1168237","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"OF-1028: Request ack only when unack'ed stanzas exist.\nThe peer might send unsollicited acks. Instead of requesting ack after every\nso many stanzas that we send out, only request ack if we have unack'ed stanzas.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/422e7ff6d8fe475ee93b726008b79653e1168237"},{"sha":"3bb6ab499f53369c5ca7c80e28312a6ac5673cd6","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"OF-1028: Restrict the amount of data in memory.\nWhen a peer refuses to ack data, we should not keep it in memory\nindefinately. This commit introduces a configurable upper bound,\nand when reached causes the queue to be cleared (dropped silently)\nwhile disabling the functionality for that connection.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/3bb6ab499f53369c5ca7c80e28312a6ac5673cd6"},{"sha":"1a1efa27ce5dfdd5e470e753b0a97be42b0f0674","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"OF-1028: Prevent immediate re-request for ack.\nInstead of rerequesting ack for every unack'ed stanza over the\nthreshold, do this only for every few stanzas. This prevents a storm\nof ack-requests when data is transmitted to the client faster than it\ncan respond.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/1a1efa27ce5dfdd5e470e753b0a97be42b0f0674"},{"sha":"c8269f660fe405ebd887b2f601236239244827f6","author":{"email":"7d019802c7508a1d3ac18db583ab24e71521246e@goodbytes.nl","name":"Guus der Kinderen"},"message":"OF-1028: Don't forget to register client ack.","distinct":true,"url":"https://api.github.com/repos/guusdk/Openfire/commits/c8269f660fe405ebd887b2f601236239244827f6"}]}