{"action":"created","issue":{"url":"https://api.github.com/repos/serso/android-checkout/issues/40","labels_url":"https://api.github.com/repos/serso/android-checkout/issues/40/labels{/name}","comments_url":"https://api.github.com/repos/serso/android-checkout/issues/40/comments","events_url":"https://api.github.com/repos/serso/android-checkout/issues/40/events","html_url":"https://github.com/serso/android-checkout/issues/40","id":98246639,"number":40,"title":"why are these proguard rules needed? ","user":{"login":"ruoyul","id":2067750,"avatar_url":"https://avatars.githubusercontent.com/u/2067750?v=3","gravatar_id":"","url":"https://api.github.com/users/ruoyul","html_url":"https://github.com/ruoyul","followers_url":"https://api.github.com/users/ruoyul/followers","following_url":"https://api.github.com/users/ruoyul/following{/other_user}","gists_url":"https://api.github.com/users/ruoyul/gists{/gist_id}","starred_url":"https://api.github.com/users/ruoyul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ruoyul/subscriptions","organizations_url":"https://api.github.com/users/ruoyul/orgs","repos_url":"https://api.github.com/users/ruoyul/repos","events_url":"https://api.github.com/users/ruoyul/events{/privacy}","received_events_url":"https://api.github.com/users/ruoyul/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-07-30T19:42:50Z","updated_at":"2015-08-04T17:19:41Z","closed_at":null,"body":"Hi, \r\n\r\nIn the documentation you mentioned these proguard rules needs to be added: https://github.com/serso/android-checkout/blob/master/lib/proguard-rules.txt. \r\n\r\nIs there any reason to have the line: \r\n`-assumenosideeffects class org.solovyev.android.checkout.Check {\r\n        *;\r\n}`\r\n?\r\n\r\nI've found that if I include these lines it makes my (fairly large) android application run very slowly. Removing these lines makes the performance back to normal again. I'm wondering what these lines are doing and wether there would be any ill effects if I don't include them in my proguard.cfg?\r\n\r\nThanks in advance for your help!\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/serso/android-checkout/issues/comments/127681893","html_url":"https://github.com/serso/android-checkout/issues/40#issuecomment-127681893","issue_url":"https://api.github.com/repos/serso/android-checkout/issues/40","id":127681893,"user":{"login":"ruoyul","id":2067750,"avatar_url":"https://avatars.githubusercontent.com/u/2067750?v=3","gravatar_id":"","url":"https://api.github.com/users/ruoyul","html_url":"https://github.com/ruoyul","followers_url":"https://api.github.com/users/ruoyul/followers","following_url":"https://api.github.com/users/ruoyul/following{/other_user}","gists_url":"https://api.github.com/users/ruoyul/gists{/gist_id}","starred_url":"https://api.github.com/users/ruoyul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ruoyul/subscriptions","organizations_url":"https://api.github.com/users/ruoyul/orgs","repos_url":"https://api.github.com/users/ruoyul/repos","events_url":"https://api.github.com/users/ruoyul/events{/privacy}","received_events_url":"https://api.github.com/users/ruoyul/received_events","type":"User","site_admin":false},"created_at":"2015-08-04T17:19:41Z","updated_at":"2015-08-04T17:19:41Z","body":"Actually, I just found one SO article answered by the creator of proguard Eric Lafortune himeself. \r\n\r\nBasically we should never use assumenosideeffects with wildcard.\r\nIt's guaranteed to generate a disaster because it will remove wait, notify and notifyAll functions from every classes , not just the class you specified.\r\nIt will break the synchronization and make some threads busying waiting and consume lots of CPU cycles, causing performance degradation, battery drain and deadlocks.\r\n\r\nArticle:\r\nhttp://stackoverflow.com/questions/16846691/proguard-ate-my-object-wait\r\n\r\nHope this helps.\r\nThanks!"}}