{"action":"created","issue":{"url":"https://api.github.com/repos/teamed/qulice/issues/672","labels_url":"https://api.github.com/repos/teamed/qulice/issues/672/labels{/name}","comments_url":"https://api.github.com/repos/teamed/qulice/issues/672/comments","events_url":"https://api.github.com/repos/teamed/qulice/issues/672/events","html_url":"https://github.com/teamed/qulice/pull/672","id":130127971,"number":672,"title":"Ignore lines between anon inner classes","user":{"login":"JimDeanSpivey","id":1653016,"avatar_url":"https://avatars.githubusercontent.com/u/1653016?v=3","gravatar_id":"","url":"https://api.github.com/users/JimDeanSpivey","html_url":"https://github.com/JimDeanSpivey","followers_url":"https://api.github.com/users/JimDeanSpivey/followers","following_url":"https://api.github.com/users/JimDeanSpivey/following{/other_user}","gists_url":"https://api.github.com/users/JimDeanSpivey/gists{/gist_id}","starred_url":"https://api.github.com/users/JimDeanSpivey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JimDeanSpivey/subscriptions","organizations_url":"https://api.github.com/users/JimDeanSpivey/orgs","repos_url":"https://api.github.com/users/JimDeanSpivey/repos","events_url":"https://api.github.com/users/JimDeanSpivey/events{/privacy}","received_events_url":"https://api.github.com/users/JimDeanSpivey/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/teamed/qulice/labels/15%20mins","name":"15 mins","color":"eb6421"},{"url":"https://api.github.com/repos/teamed/qulice/labels/CR","name":"CR","color":"bfd4f3"}],"state":"open","locked":false,"assignee":{"login":"pinaf","id":1054771,"avatar_url":"https://avatars.githubusercontent.com/u/1054771?v=3","gravatar_id":"","url":"https://api.github.com/users/pinaf","html_url":"https://github.com/pinaf","followers_url":"https://api.github.com/users/pinaf/followers","following_url":"https://api.github.com/users/pinaf/following{/other_user}","gists_url":"https://api.github.com/users/pinaf/gists{/gist_id}","starred_url":"https://api.github.com/users/pinaf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pinaf/subscriptions","organizations_url":"https://api.github.com/users/pinaf/orgs","repos_url":"https://api.github.com/users/pinaf/repos","events_url":"https://api.github.com/users/pinaf/events{/privacy}","received_events_url":"https://api.github.com/users/pinaf/received_events","type":"User","site_admin":false},"milestone":null,"comments":9,"created_at":"2016-01-31T13:36:03Z","updated_at":"2016-02-02T12:54:26Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/teamed/qulice/pulls/672","html_url":"https://github.com/teamed/qulice/pull/672","diff_url":"https://github.com/teamed/qulice/pull/672.diff","patch_url":"https://github.com/teamed/qulice/pull/672.patch"},"body":"Issue: #653\r\n\r\n2 caveats with this code I want to address\r\n\r\n1. This implementation will have a slight, slight bug with double nested anonymous inner types. I just don't feel that writing all the code to make this check recursively check nested anonymous inner types is worth it, and it would make the code maintenance more of a burden to support a use-case that shouldn't exist (supporting double nested anonymous inner classes, really? :trollface: ).\r\n2. ~~`EmptyLineCheck` is now no longer thread safe as it has to hold state of the lines which contain anonymous inner classes and method bodies. This is just a result of the fact that the API into checkstyle's is exposed as a streaming parsing API, as opposed to a fully loaded DOM. If it were DOM based, I could just setup the immutable objects ahead of time and let it all be sorted in a cleaner way. But it's not, so this is a caveat. The checkstyle API should certainly **not** be reusing plugin instances of the `Check` class, it should be created a `new` object per each file it validates with the `EmptyLineCheck` plugin. Provided that they are *not* reusing instances, no problems will exist concerning parallel access. As every `EmptyLinesCheck` will be unique and there is no shared access concern at all.~~ It is thread safe now due to the usage of thread locals.\r\n\r\nLastly, regarding caveat 2, I built the project in parallel if that helps, it passed:\r\n`mvn clean install -Pqulice -T 4`"},"comment":{"url":"https://api.github.com/repos/teamed/qulice/issues/comments/178558636","html_url":"https://github.com/teamed/qulice/pull/672#issuecomment-178558636","issue_url":"https://api.github.com/repos/teamed/qulice/issues/672","id":178558636,"user":{"login":"rultor","id":8086956,"avatar_url":"https://avatars.githubusercontent.com/u/8086956?v=3","gravatar_id":"","url":"https://api.github.com/users/rultor","html_url":"https://github.com/rultor","followers_url":"https://api.github.com/users/rultor/followers","following_url":"https://api.github.com/users/rultor/following{/other_user}","gists_url":"https://api.github.com/users/rultor/gists{/gist_id}","starred_url":"https://api.github.com/users/rultor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rultor/subscriptions","organizations_url":"https://api.github.com/users/rultor/orgs","repos_url":"https://api.github.com/users/rultor/repos","events_url":"https://api.github.com/users/rultor/events{/privacy}","received_events_url":"https://api.github.com/users/rultor/received_events","type":"User","site_admin":false},"created_at":"2016-02-02T12:54:26Z","updated_at":"2016-02-02T12:54:26Z","body":"> @rultor merge\n\n@pinaf Thanks for your request. @krzyk Please confirm this."}}