)]}'
{
  "log": [
    {
      "commit": "1c53cc161d5a8262fd959c8cd867b138b6344bba",
      "tree": "03f213d98b1a4a61b560915914c01a3a5d87a7d7",
      "parents": [
        "9f89b3393d44871d62d00a143f507305f40a1b6e"
      ],
      "author": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Fri May 18 09:58:11 2018 +0900"
      },
      "committer": {
        "name": "Sundong Ahn",
        "email": "sundongahn@google.com",
        "time": "Wed May 30 00:19:01 2018 +0000"
      },
      "message": "Build java.obex with java_sdk_library\n\njavax.obex is built with java_sdk_library and api files are added by\nrunning \"make update-api\".\nRemove java.obex is from platform.xml, since it will be generated\nautomatically by soong when the library is built with java_sdk_library.\n\nBug:77577799\nTest: make -j\n      make checkapi\n\nChange-Id: Ib94955e62582ffbdfc7eb88cd0e494c61757c7aa\n"
    },
    {
      "commit": "b366d50971594562859d64c379ada79746fc06e7",
      "tree": "2b9bb9bfc10e1744c328fbd9d86bf7a0a7a77aa7",
      "parents": [
        "dc98d6e44b3e477ca6a97859a6be5fb610093161"
      ],
      "author": {
        "name": "Hemant Gupta",
        "email": "hemantg@codeaurora.org",
        "time": "Fri Aug 28 15:13:47 2015 +0530"
      },
      "committer": {
        "name": "Myles Watson",
        "email": "mylesgw@google.com",
        "time": "Wed Nov 29 18:18:58 2017 +0000"
      },
      "message": "OBEX: Avoid pre-sending CONTINUE for SRM enabled case\n\nRemote Device: LG-G2 as OPP client\n\nUse Case:\n1) Pair DUT with Remote.\n2) Now push the file from Remote.\n3) Ignore the incoming request from Remote\n\nFailure:\nRX_Notification lasts only for 10 seconds.\n\nFix:\nOBEX lib handles a PUT Request case with NO BODY header on server\nsession with CONTINUE  response until body is found in request\npacket from remote. However, this needs to be avoided if SRM is\nenabled from remote to get proceed transfer authorization\nfrom Application layer.\n\nTest: Send connection request from remote device and verified that\nconnection is sustainable for 30 seconds until timeout.\n\nBug: 37886388\nChange-Id: I1b5bfd65f9023d77850a34bcb08cfbb435e9a474\n"
    },
    {
      "commit": "5e04c8bbc1f0db403502e9dcbd1218adb9e98825",
      "tree": "139958b6506ad1c2958636aaf59841fc5400cd09",
      "parents": [
        "bbaa19cad3227eb0262beb5555db54902ef17821"
      ],
      "author": {
        "name": "Hemant Gupta",
        "email": "hemantg@codeaurora.org",
        "time": "Wed Dec 28 12:10:47 2016 +0530"
      },
      "committer": {
        "name": "Myles Watson",
        "email": "mylesgw@google.com",
        "time": "Thu Nov 09 20:06:51 2017 +0000"
      },
      "message": "OBEX : Handle Negative index Exception\n\nUse case:\n1. Send file to remote device.\n2. Wait for accepting the file transfer on remote device.\n   Use Specific remote device(that sends some\n     optional headers).\n\nFailure:\nNo file acceptance popup seen on remote device.\n\nRoot cause:\nCrash in com.android.bluetooth.\n\n FATAL EXCEPTION: BtOpp ClientThread\n Process: com.android.bluetooth, PID: 22527\n java.lang.NegativeArraySizeException: -3\n at javax.obex.ObexHelper.updateHeaderSet(ObexHelper.java:216)\n at javax.obex.ClientSession.sendRequest(ClientSession.java:568)\n at javax.obex.ClientSession.connect(ClientSession.java:148)\n at com.android.bluetooth.opp.BluetoothOppObexClientSession$ClientThread.\n   connect(BluetoothOppObexClientSession.java:317)\n at com.android.bluetooth.opp.BluetoothOppObexClientSession$ClientThread.\n   run(BluetoothOppObexClientSession.java:231)\n am_crash( 1402): [22527,0,com.android.bluetooth,818462277,java.lang.\n   NegativeArraySizeException,-3,ObexHelper.java,216]\n\nFix:\nAdd length check before allocate memory and break loop if length is less than\nexpected header length as per OBEX Specification  to prevent crash.\n\nTest: Verified that OPP Tx and Rx works successfully multiple times.\n\nBug: 35588578\nChange-Id: I805e6b1d51f69645d5132c3c18db2e752d04b096\n"
    },
    {
      "commit": "9e91b62c1fa4f6c51f53ddb3f2155f345be30a2a",
      "tree": "593914988d526b1dd0d7c24ef86d70e13755575e",
      "parents": [
        "b5d6e45e8d8e8e074c74f77a8168eedc6917c74e"
      ],
      "author": {
        "name": "Hemant Gupta",
        "email": "hemantg@codeaurora.org",
        "time": "Sat Oct 17 19:40:53 2015 +0530"
      },
      "committer": {
        "name": "Andre Eisenbach",
        "email": "eisenbach@google.com",
        "time": "Sat May 20 00:27:31 2017 +0000"
      },
      "message": "OBEX: Add required parameters TAG ID\u0027s for PBAP 1.2\n\nAdd required OBEX application parameters TAGID\u0027s and length\ndeclarations required to support PBAP 1.2 specification.\n\nTest: Connected with Remote PBAP Client supporting PBAP 1.2 and\nverified that connection and transfer happens over L2CAP.\nConnected with Remote PBAP Client supporting PBAP 1.1 and\nand verified that connection and transfer happens over RFCOMM.\n\nBug: 33011817\nChange-Id: I8a772b0dddf6ecf74b057e12d7596421c0e0f558\n"
    },
    {
      "commit": "850758fb63ded57acf218341812ead95f7159ad6",
      "tree": "c87e41aa23f649a240c7a95b476d6bd0310d753f",
      "parents": [
        "2db2f6d2654769354a0e47f372969f3235101f36"
      ],
      "author": {
        "name": "Hemant Gupta",
        "email": "hemantg@codeaurora.org",
        "time": "Thu Nov 05 14:12:01 2015 +0530"
      },
      "committer": {
        "name": "Myles Watson",
        "email": "mylesgw@google.com",
        "time": "Wed May 03 19:37:18 2017 +0000"
      },
      "message": "Bluetooth: OBEX: Don\u0027t close transport when obex is disconnected\n\nPrecondition: PTS 7.0\n\nUsecase:\nExecute test case TC_TG_CA_BI_02_C for AVRCP 1.6\n\nExpectation:\nTest case should pass\n\nObservation:\nTest case fails\n\nRoot cause:\nDisconnection of OBEX from PTS leads to disconnection of transport\n(initiated by DUT) leading to test case failure. Obex server was\nunnecessary assuming that transport would be disconnected so was\ninforming registered users that transport has been disconnected,\nwhich was leading to issues on new obex connect on same transport\nchannel from remote obex client\n\nFix:\nRemove check to break out of loop after obex disconnection, as that is\nalready handled in case when read would return -1 in case transport\nis closed.\n\nTest: TC_TG_CA_BI_02_C can be passed after the patch.\n\nBug: 35590000\nChange-Id: Ic1682ce77c07cf2e43da09dc95fff2214338f758\n"
    },
    {
      "commit": "3fba4935a7d2353f6f3ec1091729e3509ba73d41",
      "tree": "f1c0a2ca4792d8ddfe890dcccee947f038698af2",
      "parents": [
        "6678d341332bbb8ef01159a487ac96529f4fb00e"
      ],
      "author": {
        "name": "Hemant Gupta",
        "email": "hemantg@codeaurora.org",
        "time": "Fri Jul 24 18:08:25 2015 +0530"
      },
      "committer": {
        "name": "Ajay Panicker",
        "email": "apanicke@google.com",
        "time": "Fri Feb 03 21:47:39 2017 +0000"
      },
      "message": "OBEX: Set Min maxPacketLength negotiated in CONNECT Operation.\n\nSet OBEX Server maxRxLength to the minium value acceptable from\neither server and client during CONNECT Operation.\n\nBelow basic and all PUT test cases fail without this fix, as the\nmaxPacketLength for later is less than maxRxLength of server.\nTC_MSE_MMU_BV_03_I\nTC_MSE_MMU_BV_02_I\n\nChange-Id: Iaa4f92e3146dc13d647dca12c84eb43b91657efa\n"
    },
    {
      "commit": "f8c2ad085b5380ec226ba12b808511cf519e6ce6",
      "tree": "685b8365df3e72f3116b7bd65544c99460c5890c",
      "parents": [
        "53ff75bb68ccfaeb441dc41d57509635b0ab0f14"
      ],
      "author": {
        "name": "Ajay Panicker",
        "email": "apanicke@google.com",
        "time": "Mon Aug 08 17:16:50 2016 -0700"
      },
      "committer": {
        "name": "Andre Eisenbach",
        "email": "eisenbach@google.com",
        "time": "Mon Aug 22 18:25:14 2016 +0000"
      },
      "message": "Allow getResponseCode to block if response hasn\u0027t been received from remote\n\nBug: 30645605\nChange-Id: I9854ccbe98ace6d5490cb99586ca36379f5a1db1\n"
    },
    {
      "commit": "eed32008a8d818d2781314adc7eccd7376ccf8b0",
      "tree": "2b99f06e91e07cced34e99d946a11848ed76c309",
      "parents": [
        "e8909dc0f43fc521edcb035e21f435d7984a1f40"
      ],
      "author": {
        "name": "AnubhavGupta",
        "email": "anubhavg@codeaurora.org",
        "time": "Mon Mar 21 17:44:17 2016 +0530"
      },
      "committer": {
        "name": "Andre Eisenbach",
        "email": "eisenbach@google.com",
        "time": "Wed Jun 15 23:06:31 2016 +0000"
      },
      "message": "Bluetooth: Send GET request as single packet\n\n- If obex based profile explicitly sets GET with final flag, then\n  GET should always be sent as single packet request with final flag\n  set.\n\nChange-Id: I82ff8295a239c4dbbfb4b3abfd358021820283cc\n"
    },
    {
      "commit": "50ba032f4a81155c5f10561d39a4f258a0e4f244",
      "tree": "5e3c794e9a6c17d9d32512c88b8f9344969d3b20",
      "parents": [
        "89942588b7b89bd83c39e91236cafcc5f6775b5f"
      ],
      "author": {
        "name": "Hemant Gupta",
        "email": "hemantg@codeaurora.org",
        "time": "Fri May 30 22:25:20 2014 +0530"
      },
      "committer": {
        "name": "Andre Eisenbach",
        "email": "eisenbach@google.com",
        "time": "Sat May 16 01:19:19 2015 +0000"
      },
      "message": "OBEX: Handle GET operation properly\n\nThis change handles GET operation properly whenever the\nInput stream is getting aborted in between. Without this\npatch it was observed that GET request was being sent by\nDUT even when abort has been sent/received resulting\nin IOT issues with some remote devices including PTS.\n\nChange-Id: Idcb4ea04abb57353af5ab1fef050b3a36579892e\n"
    },
    {
      "commit": "238e0f934f1f47263b384bc745ae0678c777130d",
      "tree": "aad2caae161654624cbe93003ed8027f96aaf923",
      "parents": [
        "31a94f48bf8014cf6a1127bd23cf9a8541a9abed"
      ],
      "author": {
        "name": "Casper Bonde",
        "email": "c.bonde@samsung.com",
        "time": "Thu Apr 09 09:24:48 2015 +0200"
      },
      "committer": {
        "name": "Andre Eisenbach",
        "email": "eisenbach@google.com",
        "time": "Sat Apr 11 01:49:11 2015 +0000"
      },
      "message": "OBEX Over L2CAP + SDP search API for BT profiles\n\n- Updated OBEX to support SRM\n- Added support for OBEX over l2cap and SRM.\n- Minor bugfixes, and reduce CPU load ALOT\n- Added support to send responses without body data.\n- Extend BluetoothSocket to support L2CAP\n- Added functionality to get the channel number\n  needed to be able to create an SDP record with the channel number.\n- Added interface to get socket type and max packet sizes.\n- Added interface to perform SDP search and get the resulting\n  SDP record data.\n\nChange-Id: I9d37a00ce73dfffc0e3ce03eab5511ba3a86e5b8\n"
    },
    {
      "commit": "8949bfb90c415629dbd0e30d25003fb3e0375fb5",
      "tree": "a11a128c60d3301f41419e1ef9598d3a1bc28cc5",
      "parents": [
        "e19a4fe32fd87a6c819f15155bb43d9fbe67607a"
      ],
      "author": {
        "name": "Hemant Gupta",
        "email": "hemantg@codeaurora.org",
        "time": "Fri Aug 16 14:57:55 2013 +0530"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue Jul 01 18:01:27 2014 +0000"
      },
      "message": "Bluetooth: Support MAP Client role on Bluedroid.\n\nImplementation changes to support MAP client and PBAP client\nrole on Bluedroid stack.\n\nChange-Id: I1733a67bf5256bd7b181bd5e68e40b476994ebfd\n"
    },
    {
      "commit": "0d376053747615ac7c4b45ab7810329ffbdf80d1",
      "tree": "e8cb64bc4a5e37fe689164075dd9843162cc0e3b",
      "parents": [
        "11f2b42d8c185ac91db07a539605cba7ecd28e6a"
      ],
      "author": {
        "name": "Kim Schulz",
        "email": "k.schulz@samsung.com",
        "time": "Thu Aug 22 11:18:02 2013 +0200"
      },
      "committer": {
        "name": "Zhihai Xu",
        "email": "zhihaixu@google.com",
        "time": "Thu Sep 12 19:07:28 2013 -0700"
      },
      "message": "Fixed review comments\n\n- fixed review comments (internal+google)\n- corrected tabs/spaces\n- Add connection id header for obex client operations\n- added support for implementing ProfileService class\n\nChange-Id: Idab8b4fa54a0f31bec4ffa263a69a9850a07f858\n\nBug:10692365\n"
    },
    {
      "commit": "fe3807a5b23f54f6539436d71aa0cd931a2b76f0",
      "tree": "94ba6e1375140799abb46bcd9561a23ff8d626ad",
      "parents": [
        "5af4edef084f4d3f94af71acca53c68929e82008"
      ],
      "author": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Thu Jul 18 17:31:50 2013 -0700"
      },
      "committer": {
        "name": "Zhihai Xu",
        "email": "zhihaixu@google.com",
        "time": "Fri Aug 09 15:01:07 2013 -0700"
      },
      "message": "Bluetooth MAP profile - sms and mms support initial check-in\n\nbug:10116530\n\nChange-Id: I57d022005bcff5bc3e56438a81ac92566f957744\n"
    },
    {
      "commit": "789a01aa05697bf795ad083ccf99b036f72bc208",
      "tree": "135b14c91bd801835cbeb2e76a27014a7982e181",
      "parents": [
        "5713c9cfa9a0ed7625c8a48925a5c33b2c070460"
      ],
      "author": {
        "name": "Wei Zhong",
        "email": "wzhong@google.com",
        "time": "Fri Apr 06 10:55:56 2012 -0700"
      },
      "committer": {
        "name": "Wei Zhong",
        "email": "wzhong@google.com",
        "time": "Fri Apr 06 14:04:31 2012 -0700"
      },
      "message": "Add NOTICE and MODULE_LICENSE_BSD_LIKE for obex\n\n\"Copyright (c) 2008-2009, Motorola, Inc\"\n\nBug: 6299628\n\nChange-Id: Ia64d7341a8466ee9213ecabe6315c64b8643574e\nSigned-off-by: Wei Zhong \u003cwzhong@google.com\u003e\n(cherry picked from commit 559841702b8a8760e057af29d14d1a31ce75ff18)\n"
    },
    {
      "commit": "3bec9cc27a4b87be644533d5fe44358dde399d49",
      "tree": "48bba09f3fea9673db74cd993221004f76653942",
      "parents": [
        "33bdc3c9995cbef477cec756b65d767558e6b836",
        "0c2d82c6f28ab6ec73d66fcc1f62e067829df426"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumarg@android.com",
        "time": "Fri May 20 10:51:25 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 20 10:51:25 2011 -0700"
      },
      "message": "am 0c2d82c6: am 848a1e3d: Merge \"OBEX: Fix PrivateOutputStream small write problem\"\n\n* commit \u00270c2d82c6f28ab6ec73d66fcc1f62e067829df426\u0027:\n  OBEX: Fix PrivateOutputStream small write problem\n"
    },
    {
      "commit": "a9c4c594ef29e097be8be0537657fa8d9529502e",
      "tree": "b244ee37da3c234b009401df790336f658a65e4c",
      "parents": [
        "6c427617be940be32fdebbd9c78f9223b292c814"
      ],
      "author": {
        "name": "Erik Ljungberg",
        "email": "erik.ljungberg@sonyericsson.com",
        "time": "Fri May 20 12:39:18 2011 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonyericsson.com",
        "time": "Fri May 20 12:39:18 2011 +0200"
      },
      "message": "OBEX: Fix PrivateOutputStream small write problem\n\nWhen data less than max packet size in length is sent into the write\nmethod the data will only be added to the internal buffer. If several\ncalls to write is performed by the application continueOperation will\nnot be called at all. The solution to the problem is to always check\nthe internal buffer size and to call continueOperation every time\nmaxPacketSize bytes is in the internal buffer.\n\nChange-Id: I5ebfa3c26db2c1aefe1a115d7782d8ceaa760937\n"
    },
    {
      "commit": "ee1c033f6e0c2e709bd63adb419de3c5212fdf8f",
      "tree": "8c96706f5747248077f90895df0956196e2a1f9b",
      "parents": [
        "67dc13ed6764cd96194f57ee8221c88df551d040",
        "24a16e6c53d9b45c0cfdf150425002adc919955b"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumarg@android.com",
        "time": "Tue Apr 19 16:01:36 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 19 16:01:36 2011 -0700"
      },
      "message": "am 24a16e6c: am c34c88b9: am ec1a8f7a: Merge \"Unable to push files to Windows 7\"\n\n* commit \u002724a16e6c53d9b45c0cfdf150425002adc919955b\u0027:\n  Unable to push files to Windows 7\n"
    },
    {
      "commit": "e83b744d7d0b3caaf8f5456b795331d5db2495a3",
      "tree": "459d73f087be0d9d5d780da15bdf3ebb8eb685f0",
      "parents": [
        "d973bed36cb4d4da1d97f309119f4114f60e7171"
      ],
      "author": {
        "name": "Erik Ljungberg",
        "email": "erik.ljungberg@sonyericsson.com",
        "time": "Tue Mar 22 07:58:43 2011 +0100"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonyericsson.com",
        "time": "Tue Mar 22 07:58:43 2011 +0100"
      },
      "message": "Unable to push files to Windows 7\n\nWindows 7 says it can handle the maximum OBEX packet size. However\nif the maximum packet size is used the transfer will fail. This\nshould be fixed by Microsoft but until they do the only way to solve\nthis is to reduce the maximum packet size for the OBEX client.\n\nChange-Id: I51975eec972395ae3f1f21cca236b223d0812ef3\n"
    },
    {
      "commit": "929a1c219248b62778807cac8ea256c7ac0fda6a",
      "tree": "827313f320bbbd767f720537e49e3dc87c8ef46e",
      "parents": [
        "4e96efe2edb73a8fbe4b89e85e03327da9796d80"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 01 21:54:09 2011 -0800"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Feb 01 22:25:47 2011 -0800"
      },
      "message": "Removing android.security.MessageDigest\n\nBug: 3392028\nChange-Id: I6b9732da17d086ba00c846c3ad1c7fb39baf9502\n"
    },
    {
      "commit": "4507b177c35cfd918dba1cdc325fae3688fb7bd2",
      "tree": "a8465a750da0f44f2ebc2485fe8a2de805cf1f58",
      "parents": [
        "ee1dc6221fc9193fb135386244e61e557a07260d"
      ],
      "author": {
        "name": "Anders Petersson",
        "email": "anders3.petersson@sonyericsson.com",
        "time": "Wed Oct 27 08:38:30 2010 +0200"
      },
      "committer": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Wed Oct 27 16:13:59 2010 -0700"
      },
      "message": "Bluetooth OBEX timeout problem.\n\nLong time to show notification of file transfer failed after\ncanceling transfer via remote part.\n\nDevice A is in contact with our device, B. When device A Cancel\na transfer operation, it sends OBEX_OPCODE_DISCONNECT HeaderID\nand the length of package to B. B use the length of package to\nread remainder bytes from A. If the bytes B read do not meet the\nreceived length it will block and wait for remainder bytes from A.\nBut when B compute the remainder bytes it forgets to subtract\nthe three bytes it has already read through HeaderID and the length\nof the package. So the operation was blocked until the operation\ntimeout.\n\nChange-Id: I0f8bf62d3119e081b5c01af9fc05fe586fd4fabc\n"
    },
    {
      "commit": "faf49b14a2768d3df8bfcf7f50516c5660021f51",
      "tree": "1ee6388cb6a259878f993cf3a0df10d71cf44fa1",
      "parents": [
        "b4ae2f1ba419212224d53db81c46ad242bebd17b"
      ],
      "author": {
        "name": "Anders Petersson",
        "email": "anders3.petersson@sonyericsson.com",
        "time": "Wed Oct 27 08:38:30 2010 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonyericsson.com",
        "time": "Wed Oct 27 08:38:30 2010 +0200"
      },
      "message": "Bluetooth OBEX timeout problem.\n\nLong time to show notification of file transfer failed after\ncanceling transfer via remote part.\n\nDevice A is in contact with our device, B. When device A Cancel\na transfer operation, it sends OBEX_OPCODE_DISCONNECT HeaderID\nand the length of package to B. B use the length of package to\nread remainder bytes from A. If the bytes B read do not meet the\nreceived length it will block and wait for remainder bytes from A.\nBut when B compute the remainder bytes it forgets to subtract\nthe three bytes it has already read through HeaderID and the length\nof the package. So the operation was blocked until the operation\ntimeout.\n\nChange-Id: I0f8bf62d3119e081b5c01af9fc05fe586fd4fabc\n"
    },
    {
      "commit": "8258ebdf128ef70a96fcaaa294167e39f1b5e94e",
      "tree": "1d70bdb46454d38e381397c48645a941a327c0ae",
      "parents": [
        "2c62f5f433292f40550de5f7ba24b1f03d659edc"
      ],
      "author": {
        "name": "Lixin Yue",
        "email": "L.X.YUE@motorola.com",
        "time": "Tue Mar 02 17:21:09 2010 +0800"
      },
      "committer": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Tue Mar 16 09:59:06 2010 -0700"
      },
      "message": "Add ABORT support to Obex lib\n"
    },
    {
      "commit": "69f72c00a12933f0fde049e8465257745f373d21",
      "tree": "d64de4457f1dec625a79f4f7c371e570f787e582",
      "parents": [
        "c0e32f12439e5373dca5879e4eb7e819be7fb417"
      ],
      "author": {
        "name": "Lixin Yue",
        "email": "L.X.YUE@motorola.com",
        "time": "Thu Dec 10 14:53:41 2009 +0800"
      },
      "committer": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Wed Dec 16 17:33:02 2009 -0800"
      },
      "message": "Update OBEX lib setPath Flags handling logic to be compatible with spec.\n\nFrom IrOBEX, 3.3.6.1, we can see below explanation for Flags bit 1:\n1  Don\u0027t create directory if it does not exist, return an error instead.\nThe correct understanding should be: if bit 1 is set to 1, we\u0027ll not create\ndirectory if it not exist; if bit 1 is set to 0, we\u0027ll create it if it not\nexists.\n"
    },
    {
      "commit": "65208317ba9d16486b47ebcaa868c596d424c87f",
      "tree": "51825f34b55b0427c767a942af327cae7557dd4d",
      "parents": [
        "e6ab011b8b8aa6c461e64cabb9b25d890d68edb1"
      ],
      "author": {
        "name": "Lixin Yue",
        "email": "L.X.YUE@motorola.com",
        "time": "Wed Nov 11 00:51:22 2009 +0800"
      },
      "committer": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Tue Nov 10 15:34:18 2009 -0800"
      },
      "message": "Update OBEX to fix missing several contact entries issue.\n\nThe third parameter count of PrivateOutputStream.write()\nshould be the size of vcards data plus header length, excluding the 3 bytes\nfor the response message and 3 bytes for the header ID and length.\nAdjust the return value of getMaxPacketSize() by minus headser size, so that\napplications should not get packet slipped during multiple sharing operation.\nDo not set the header to null in getHeaderLength() to get PBAP PTS passed;\nPer OBEX spec, for Get request:\nOnly the last packet need send the 0x49(End of Body);\nfor intermediate packets, we need to send 0x48 (Body).\nIf all packets use 0x49, some carkit like Nokia PD-17 will fail to download\nall contacts, except data in the last packet.\n\nBug: 2246927\nDr No: Eastham\n"
    },
    {
      "commit": "25f2c4cd953764008d04147a14d990c06a8154e5",
      "tree": "1ccb5fb9793a876449733ca3352e7e2a29f4882e",
      "parents": [
        "d163f4babe101b89aaf322c34d3bafeae237f7da"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@android.com",
        "time": "Sun Sep 20 13:23:36 2009 -0700"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@android.com",
        "time": "Sun Sep 20 13:23:36 2009 -0700"
      },
      "message": "Modified random variable to use java.security.SecureRandom for authentication challenge genration.\n"
    },
    {
      "commit": "e80534ff59b2e62a0ddf4359147b81f5ba10de86",
      "tree": "385e5e522fa81e79cd34203d15e41f8307a8ceb1",
      "parents": [
        "82dbf6785184a9a0808210294365e32ff21add9c"
      ],
      "author": {
        "name": "Tao Liejun",
        "email": "L.J.Tao@motorola.com",
        "time": "Wed Sep 09 17:18:49 2009 +0800"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Sep 15 09:54:20 2009 -0700"
      },
      "message": "Fix connection ID issue in Obex lib\n\nConnectionID should be consistent in one Obex session.\n"
    },
    {
      "commit": "0b309d6ee433d55b7499d7bbd447494366ef1316",
      "tree": "44eaf2746c07cfce3a6bbb9ddacaf7c62ecf8666",
      "parents": [
        "a4433af5ac677be7c1f63447c0cd78829bdee159"
      ],
      "author": {
        "name": "Jackson Fan",
        "email": "xyfan@motorola.com",
        "time": "Tue Jul 21 03:46:37 2009 +0800"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Aug 19 21:07:52 2009 -0700"
      },
      "message": "Improve Obex compatibility\n\nHandle headers with excessive whilespace\nSend correct reponse code when client abort onPut\n"
    },
    {
      "commit": "8d95d0a13a278c4bd4dbffb682acf1e457dfb94b",
      "tree": "9a8125cb6b4a55bcbdbd3a14ef5d944eb361ed92",
      "parents": [
        "2debd56b5b24d7f4c385f64bfcaf23d00d4d986a"
      ],
      "author": {
        "name": "Tao Liejun",
        "email": "L.J.Tao@motorola.com",
        "time": "Wed Jul 15 17:56:32 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Jul 15 18:08:10 2009 -0700"
      },
      "message": "Fix a bug introduced in obex cleanup\n\nAvoid exception when an empty array is passed to convert to Unicode\nBefore cleanup, there used to be an empty try/catch\n"
    },
    {
      "commit": "05ff98bbefda39b9ff26f8bca132cfd0248745c6",
      "tree": "dd7399785790ece3f34d1725972f1a0a128cf4df",
      "parents": [
        "c047d68372ece9fa74446b13ea66bc12b060b882"
      ],
      "author": {
        "name": "Tao Liejun",
        "email": "L.J.Tao@motorola.com",
        "time": "Mon Jul 13 15:57:11 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jul 14 21:20:39 2009 -0700"
      },
      "message": "Fix minor obex bugs and re-format the comments\n\nre-format comments\nmove connectible to connectable\nremove unnecessary throws\nremove not-used function ClientOperation.readResponse()\nfix client abort case for PUT\nset mOpen for PrivateOutputStream\nadd to platform.xml\n"
    },
    {
      "commit": "3998bf009acaf8cde4d7f837f8b8e41ae0a65141",
      "tree": "76d91113f5c059f685da151177d53cc8f6383137",
      "parents": [
        "d719890cab1eec09cbf556a3b86cc02b0f0ef8d7"
      ],
      "author": {
        "name": "Tao Liejun",
        "email": "a19884@motorola.com",
        "time": "Thu Jul 02 19:29:09 2009 +0800"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jul 07 13:53:11 2009 -0700"
      },
      "message": "Obex library cleanup, third pass\n\n- Change variable namings\n- Remove interface public modifier\n- Move 2 duplicate methods to ObexSession\n- Removed unused code and variables\n- Use static variables for some protocol defines\n"
    },
    {
      "commit": "41557e18fa3fc5791a5a1c7f0051ae3385608bc4",
      "tree": "5d2ebfb8b00c3d37f7863746a43346e2de7fe354",
      "parents": [
        "2e0da96e757a977154063f980d3f4e1abd41cf09"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jun 30 19:38:30 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jun 30 19:48:16 2009 -0700"
      },
      "message": "Obex library cleanup, second pass.\n\no Use mMemberField variable naming as per style guide\no ClientSession.trans is only used in the ctor, doesn\u0027t need to be a member\no Rename connectionOpen to mOpen and isConnected to mObexConnected to reduce\n  confusion\no Refactor duplicated code into helper functions (setRequestActive())\no Fix whitespace around comment blocks\no Change unnecessary public scope\u0027s to package private (eg setRequestInactive())\no Remove a redundant factory method ClientSession.createHeaderSet()\no Rename OPTIMIZATION to TODO to match Android style\no Rename java.io.IOException to IOException\no Be consistent with variable naming - use header not headers\n"
    },
    {
      "commit": "2e0da96e757a977154063f980d3f4e1abd41cf09",
      "tree": "5191854cd81cb23cd9eca9906771bd82775e69a3",
      "parents": [
        "9439a7fe517b858bc5e5c654b459315e4722feb2"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jun 30 16:28:54 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jun 30 19:47:54 2009 -0700"
      },
      "message": "Obex library cleanup, first pass.\n\no Add Android.mk file.\no Add @hide so it is not exposed in the public API. It is not yet in shape.\no Prefer @throws to @exception\no Do not use @version. This is meaningless in Android.\no Prefer classes \u0027final\u0027 unless explicitly allowing inheritance\n (See \"Effective Java\" item 15)\no Prefer CamelCaps java naming even for acronyms (OBEXHelper -\u003e ObexHelper)\no Use the built-in MD5 library.\no Move ObexConstants into ObexHelper.\no Remove unused variables.\no Prefer stricter access priveleges. Most importantly, avoid public fields.\no Don\u0027t use \u0027import java.io.*\u0027. Name each class explicitly.\no Delete commented out code. If its not used then remove it.\n"
    },
    {
      "commit": "9439a7fe517b858bc5e5c654b459315e4722feb2",
      "tree": "ae773c1528645e4eaba9e495c8e43c50597db2be",
      "parents": [
        "3ccd3655a09633794f4d815ff85f35fa986a10d4"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jun 30 12:04:36 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jun 30 19:45:24 2009 -0700"
      },
      "message": "Add javax.obex library, contributed by Motorola.\n\nBased of a JSR-82 reference implementation.\n\nThis check-in is \u0027as-is\u0027 from the source provided June 25.\n\nThis code does not conform to Android style and quality guidelines. I will be\nworking with Motorola to improve it. If it does not see substantial improvement\nin the Eclair timeframe it will be deleted.\n"
    }
  ]
}
