{"action":"opened","number":103,"pull_request":{"url":"https://api.github.com/repos/spring-projects/spring-loaded/pulls/103","id":28895992,"html_url":"https://github.com/spring-projects/spring-loaded/pull/103","diff_url":"https://github.com/spring-projects/spring-loaded/pull/103.diff","patch_url":"https://github.com/spring-projects/spring-loaded/pull/103.patch","issue_url":"https://api.github.com/repos/spring-projects/spring-loaded/issues/103","number":103,"state":"open","locked":false,"title":"Check for null codeSource before attempting to access","user":{"login":"joeschweitzer","id":1537956,"avatar_url":"https://avatars.githubusercontent.com/u/1537956?v=3","gravatar_id":"","url":"https://api.github.com/users/joeschweitzer","html_url":"https://github.com/joeschweitzer","followers_url":"https://api.github.com/users/joeschweitzer/followers","following_url":"https://api.github.com/users/joeschweitzer/following{/other_user}","gists_url":"https://api.github.com/users/joeschweitzer/gists{/gist_id}","starred_url":"https://api.github.com/users/joeschweitzer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joeschweitzer/subscriptions","organizations_url":"https://api.github.com/users/joeschweitzer/orgs","repos_url":"https://api.github.com/users/joeschweitzer/repos","events_url":"https://api.github.com/users/joeschweitzer/events{/privacy}","received_events_url":"https://api.github.com/users/joeschweitzer/received_events","type":"User","site_admin":false},"body":"In Grails 2.4.3 we have seen some issues where there is a NPE in SpringLoadedPreProcessor.getWatchPathFromProtectionDomain when attempting to access codeSource.getLocation() if codeSource is null.  This seemed to happen inside one of classes that was calling equals on two objects which ended up calling com/sun/proxy/$Proxy56$equals and the protectionDomain looked like it was some default with a null codeSource.  Not sure if this makes sense at all to happen or if something else was going on, but checking for a null codeSource before a null codeSource.getLocation() seems straightforward enough. ","created_at":"2015-02-09T04:32:14Z","updated_at":"2015-02-09T04:32:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/spring-projects/spring-loaded/pulls/103/commits","review_comments_url":"https://api.github.com/repos/spring-projects/spring-loaded/pulls/103/comments","review_comment_url":"https://api.github.com/repos/spring-projects/spring-loaded/pulls/comments/{number}","comments_url":"https://api.github.com/repos/spring-projects/spring-loaded/issues/103/comments","statuses_url":"https://api.github.com/repos/spring-projects/spring-loaded/statuses/65bf33fa72fc8ece0fdc86ebd9c9eb8b27e4d9f6","head":{"label":"joeschweitzer:master","ref":"master","sha":"65bf33fa72fc8ece0fdc86ebd9c9eb8b27e4d9f6","user":{"login":"joeschweitzer","id":1537956,"avatar_url":"https://avatars.githubusercontent.com/u/1537956?v=3","gravatar_id":"","url":"https://api.github.com/users/joeschweitzer","html_url":"https://github.com/joeschweitzer","followers_url":"https://api.github.com/users/joeschweitzer/followers","following_url":"https://api.github.com/users/joeschweitzer/following{/other_user}","gists_url":"https://api.github.com/users/joeschweitzer/gists{/gist_id}","starred_url":"https://api.github.com/users/joeschweitzer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joeschweitzer/subscriptions","organizations_url":"https://api.github.com/users/joeschweitzer/orgs","repos_url":"https://api.github.com/users/joeschweitzer/repos","events_url":"https://api.github.com/users/joeschweitzer/events{/privacy}","received_events_url":"https://api.github.com/users/joeschweitzer/received_events","type":"User","site_admin":false},"repo":{"id":30518293,"name":"spring-loaded","full_name":"joeschweitzer/spring-loaded","owner":{"login":"joeschweitzer","id":1537956,"avatar_url":"https://avatars.githubusercontent.com/u/1537956?v=3","gravatar_id":"","url":"https://api.github.com/users/joeschweitzer","html_url":"https://github.com/joeschweitzer","followers_url":"https://api.github.com/users/joeschweitzer/followers","following_url":"https://api.github.com/users/joeschweitzer/following{/other_user}","gists_url":"https://api.github.com/users/joeschweitzer/gists{/gist_id}","starred_url":"https://api.github.com/users/joeschweitzer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joeschweitzer/subscriptions","organizations_url":"https://api.github.com/users/joeschweitzer/orgs","repos_url":"https://api.github.com/users/joeschweitzer/repos","events_url":"https://api.github.com/users/joeschweitzer/events{/privacy}","received_events_url":"https://api.github.com/users/joeschweitzer/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/joeschweitzer/spring-loaded","description":"Java agent that enables class reloading in a running JVM","fork":true,"url":"https://api.github.com/repos/joeschweitzer/spring-loaded","forks_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/forks","keys_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/keys{/key_id}","collaborators_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/teams","hooks_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/hooks","issue_events_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/issues/events{/number}","events_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/events","assignees_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/assignees{/user}","branches_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/branches{/branch}","tags_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/tags","blobs_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/git/refs{/sha}","trees_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/git/trees{/sha}","statuses_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/statuses/{sha}","languages_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/languages","stargazers_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/stargazers","contributors_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/contributors","subscribers_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/subscribers","subscription_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/subscription","commits_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/commits{/sha}","git_commits_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/git/commits{/sha}","comments_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/comments{/number}","issue_comment_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/issues/comments/{number}","contents_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/contents/{+path}","compare_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/compare/{base}...{head}","merges_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/merges","archive_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/downloads","issues_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/issues{/number}","pulls_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/pulls{/number}","milestones_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/milestones{/number}","notifications_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/labels{/name}","releases_url":"https://api.github.com/repos/joeschweitzer/spring-loaded/releases{/id}","created_at":"2015-02-09T04:18:05Z","updated_at":"2015-02-09T04:25:21Z","pushed_at":"2015-02-09T04:25:21Z","git_url":"git://github.com/joeschweitzer/spring-loaded.git","ssh_url":"git@github.com:joeschweitzer/spring-loaded.git","clone_url":"https://github.com/joeschweitzer/spring-loaded.git","svn_url":"https://github.com/joeschweitzer/spring-loaded","homepage":null,"size":37033,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"spring-projects:master","ref":"master","sha":"9b0f07c3bb592898cd43a87c82ff1f6c207de034","user":{"login":"spring-projects","id":317776,"avatar_url":"https://avatars.githubusercontent.com/u/317776?v=3","gravatar_id":"","url":"https://api.github.com/users/spring-projects","html_url":"https://github.com/spring-projects","followers_url":"https://api.github.com/users/spring-projects/followers","following_url":"https://api.github.com/users/spring-projects/following{/other_user}","gists_url":"https://api.github.com/users/spring-projects/gists{/gist_id}","starred_url":"https://api.github.com/users/spring-projects/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spring-projects/subscriptions","organizations_url":"https://api.github.com/users/spring-projects/orgs","repos_url":"https://api.github.com/users/spring-projects/repos","events_url":"https://api.github.com/users/spring-projects/events{/privacy}","received_events_url":"https://api.github.com/users/spring-projects/received_events","type":"Organization","site_admin":false},"repo":{"id":7044667,"name":"spring-loaded","full_name":"spring-projects/spring-loaded","owner":{"login":"spring-projects","id":317776,"avatar_url":"https://avatars.githubusercontent.com/u/317776?v=3","gravatar_id":"","url":"https://api.github.com/users/spring-projects","html_url":"https://github.com/spring-projects","followers_url":"https://api.github.com/users/spring-projects/followers","following_url":"https://api.github.com/users/spring-projects/following{/other_user}","gists_url":"https://api.github.com/users/spring-projects/gists{/gist_id}","starred_url":"https://api.github.com/users/spring-projects/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spring-projects/subscriptions","organizations_url":"https://api.github.com/users/spring-projects/orgs","repos_url":"https://api.github.com/users/spring-projects/repos","events_url":"https://api.github.com/users/spring-projects/events{/privacy}","received_events_url":"https://api.github.com/users/spring-projects/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/spring-projects/spring-loaded","description":"Java agent that enables class reloading in a running JVM","fork":false,"url":"https://api.github.com/repos/spring-projects/spring-loaded","forks_url":"https://api.github.com/repos/spring-projects/spring-loaded/forks","keys_url":"https://api.github.com/repos/spring-projects/spring-loaded/keys{/key_id}","collaborators_url":"https://api.github.com/repos/spring-projects/spring-loaded/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/spring-projects/spring-loaded/teams","hooks_url":"https://api.github.com/repos/spring-projects/spring-loaded/hooks","issue_events_url":"https://api.github.com/repos/spring-projects/spring-loaded/issues/events{/number}","events_url":"https://api.github.com/repos/spring-projects/spring-loaded/events","assignees_url":"https://api.github.com/repos/spring-projects/spring-loaded/assignees{/user}","branches_url":"https://api.github.com/repos/spring-projects/spring-loaded/branches{/branch}","tags_url":"https://api.github.com/repos/spring-projects/spring-loaded/tags","blobs_url":"https://api.github.com/repos/spring-projects/spring-loaded/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/spring-projects/spring-loaded/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/spring-projects/spring-loaded/git/refs{/sha}","trees_url":"https://api.github.com/repos/spring-projects/spring-loaded/git/trees{/sha}","statuses_url":"https://api.github.com/repos/spring-projects/spring-loaded/statuses/{sha}","languages_url":"https://api.github.com/repos/spring-projects/spring-loaded/languages","stargazers_url":"https://api.github.com/repos/spring-projects/spring-loaded/stargazers","contributors_url":"https://api.github.com/repos/spring-projects/spring-loaded/contributors","subscribers_url":"https://api.github.com/repos/spring-projects/spring-loaded/subscribers","subscription_url":"https://api.github.com/repos/spring-projects/spring-loaded/subscription","commits_url":"https://api.github.com/repos/spring-projects/spring-loaded/commits{/sha}","git_commits_url":"https://api.github.com/repos/spring-projects/spring-loaded/git/commits{/sha}","comments_url":"https://api.github.com/repos/spring-projects/spring-loaded/comments{/number}","issue_comment_url":"https://api.github.com/repos/spring-projects/spring-loaded/issues/comments/{number}","contents_url":"https://api.github.com/repos/spring-projects/spring-loaded/contents/{+path}","compare_url":"https://api.github.com/repos/spring-projects/spring-loaded/compare/{base}...{head}","merges_url":"https://api.github.com/repos/spring-projects/spring-loaded/merges","archive_url":"https://api.github.com/repos/spring-projects/spring-loaded/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/spring-projects/spring-loaded/downloads","issues_url":"https://api.github.com/repos/spring-projects/spring-loaded/issues{/number}","pulls_url":"https://api.github.com/repos/spring-projects/spring-loaded/pulls{/number}","milestones_url":"https://api.github.com/repos/spring-projects/spring-loaded/milestones{/number}","notifications_url":"https://api.github.com/repos/spring-projects/spring-loaded/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/spring-projects/spring-loaded/labels{/name}","releases_url":"https://api.github.com/repos/spring-projects/spring-loaded/releases{/id}","created_at":"2012-12-06T23:17:42Z","updated_at":"2015-02-08T04:25:38Z","pushed_at":"2015-01-19T19:23:15Z","git_url":"git://github.com/spring-projects/spring-loaded.git","ssh_url":"git@github.com:spring-projects/spring-loaded.git","clone_url":"https://github.com/spring-projects/spring-loaded.git","svn_url":"https://github.com/spring-projects/spring-loaded","homepage":null,"size":37033,"stargazers_count":629,"watchers_count":629,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":117,"mirror_url":null,"open_issues_count":57,"forks":117,"open_issues":57,"watchers":629,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/spring-projects/spring-loaded/pulls/103"},"html":{"href":"https://github.com/spring-projects/spring-loaded/pull/103"},"issue":{"href":"https://api.github.com/repos/spring-projects/spring-loaded/issues/103"},"comments":{"href":"https://api.github.com/repos/spring-projects/spring-loaded/issues/103/comments"},"review_comments":{"href":"https://api.github.com/repos/spring-projects/spring-loaded/pulls/103/comments"},"review_comment":{"href":"https://api.github.com/repos/spring-projects/spring-loaded/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/spring-projects/spring-loaded/pulls/103/commits"},"statuses":{"href":"https://api.github.com/repos/spring-projects/spring-loaded/statuses/65bf33fa72fc8ece0fdc86ebd9c9eb8b27e4d9f6"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":1,"additions":1,"deletions":1,"changed_files":1}}