{"action":"closed","number":633,"pull_request":{"url":"https://api.github.com/repos/eclipse/rdf4j/pulls/633","id":91310704,"html_url":"https://github.com/eclipse/rdf4j/pull/633","diff_url":"https://github.com/eclipse/rdf4j/pull/633.diff","patch_url":"https://github.com/eclipse/rdf4j/pull/633.patch","issue_url":"https://api.github.com/repos/eclipse/rdf4j/issues/633","number":633,"state":"closed","locked":false,"title":"Issue: #630 TransactionController threading ","user":{"login":"jeenbroekstra","id":728776,"avatar_url":"https://avatars.githubusercontent.com/u/728776?v=3","gravatar_id":"","url":"https://api.github.com/users/jeenbroekstra","html_url":"https://github.com/jeenbroekstra","followers_url":"https://api.github.com/users/jeenbroekstra/followers","following_url":"https://api.github.com/users/jeenbroekstra/following{/other_user}","gists_url":"https://api.github.com/users/jeenbroekstra/gists{/gist_id}","starred_url":"https://api.github.com/users/jeenbroekstra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeenbroekstra/subscriptions","organizations_url":"https://api.github.com/users/jeenbroekstra/orgs","repos_url":"https://api.github.com/users/jeenbroekstra/repos","events_url":"https://api.github.com/users/jeenbroekstra/events{/privacy}","received_events_url":"https://api.github.com/users/jeenbroekstra/received_events","type":"User","site_admin":false},"body":"This PR addresses GitHub issue: #630 .\r\n\r\nBriefly describe the changes proposed in this PR:\r\n\r\n* new class Transaction ensures single-threaded access to RepositoryConnection: it encapsulates both a RepositoryConnection and a dedicated Thread (provided by an ExecutorService)\r\n* Drastically simplified concurrency handling: ActiveTransactionRegistry now keeps tracks of Transactions instead of RepositoryConnections - no longer any need for locking access to the RepositoryConnection\r\n\r\nAll integration/compliance tests succeed, and I have manually verified that this fix also fixes the IllegalMonitorStateException described in #630. \r\n","created_at":"2016-10-28T01:56:09Z","updated_at":"2016-10-31T01:07:39Z","closed_at":"2016-10-31T01:07:39Z","merged_at":"2016-10-31T01:07:39Z","merge_commit_sha":"20a4105b68ed8daae10659ad7093bc65abd67b07","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/eclipse/rdf4j/pulls/633/commits","review_comments_url":"https://api.github.com/repos/eclipse/rdf4j/pulls/633/comments","review_comment_url":"https://api.github.com/repos/eclipse/rdf4j/pulls/comments{/number}","comments_url":"https://api.github.com/repos/eclipse/rdf4j/issues/633/comments","statuses_url":"https://api.github.com/repos/eclipse/rdf4j/statuses/6c9b51737e18fb7d2b76e1515bb25d60a789b48c","head":{"label":"eclipse:issues/#630-txncontroller-threading","ref":"issues/#630-txncontroller-threading","sha":"6c9b51737e18fb7d2b76e1515bb25d60a789b48c","user":{"login":"eclipse","id":56974,"avatar_url":"https://avatars.githubusercontent.com/u/56974?v=3","gravatar_id":"","url":"https://api.github.com/users/eclipse","html_url":"https://github.com/eclipse","followers_url":"https://api.github.com/users/eclipse/followers","following_url":"https://api.github.com/users/eclipse/following{/other_user}","gists_url":"https://api.github.com/users/eclipse/gists{/gist_id}","starred_url":"https://api.github.com/users/eclipse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eclipse/subscriptions","organizations_url":"https://api.github.com/users/eclipse/orgs","repos_url":"https://api.github.com/users/eclipse/repos","events_url":"https://api.github.com/users/eclipse/events{/privacy}","received_events_url":"https://api.github.com/users/eclipse/received_events","type":"Organization","site_admin":false},"repo":{"id":49670957,"name":"rdf4j","full_name":"eclipse/rdf4j","owner":{"login":"eclipse","id":56974,"avatar_url":"https://avatars.githubusercontent.com/u/56974?v=3","gravatar_id":"","url":"https://api.github.com/users/eclipse","html_url":"https://github.com/eclipse","followers_url":"https://api.github.com/users/eclipse/followers","following_url":"https://api.github.com/users/eclipse/following{/other_user}","gists_url":"https://api.github.com/users/eclipse/gists{/gist_id}","starred_url":"https://api.github.com/users/eclipse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eclipse/subscriptions","organizations_url":"https://api.github.com/users/eclipse/orgs","repos_url":"https://api.github.com/users/eclipse/repos","events_url":"https://api.github.com/users/eclipse/events{/privacy}","received_events_url":"https://api.github.com/users/eclipse/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/eclipse/rdf4j","description":"RDF4J Project","fork":false,"url":"https://api.github.com/repos/eclipse/rdf4j","forks_url":"https://api.github.com/repos/eclipse/rdf4j/forks","keys_url":"https://api.github.com/repos/eclipse/rdf4j/keys{/key_id}","collaborators_url":"https://api.github.com/repos/eclipse/rdf4j/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/eclipse/rdf4j/teams","hooks_url":"https://api.github.com/repos/eclipse/rdf4j/hooks","issue_events_url":"https://api.github.com/repos/eclipse/rdf4j/issues/events{/number}","events_url":"https://api.github.com/repos/eclipse/rdf4j/events","assignees_url":"https://api.github.com/repos/eclipse/rdf4j/assignees{/user}","branches_url":"https://api.github.com/repos/eclipse/rdf4j/branches{/branch}","tags_url":"https://api.github.com/repos/eclipse/rdf4j/tags","blobs_url":"https://api.github.com/repos/eclipse/rdf4j/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/eclipse/rdf4j/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/eclipse/rdf4j/git/refs{/sha}","trees_url":"https://api.github.com/repos/eclipse/rdf4j/git/trees{/sha}","statuses_url":"https://api.github.com/repos/eclipse/rdf4j/statuses/{sha}","languages_url":"https://api.github.com/repos/eclipse/rdf4j/languages","stargazers_url":"https://api.github.com/repos/eclipse/rdf4j/stargazers","contributors_url":"https://api.github.com/repos/eclipse/rdf4j/contributors","subscribers_url":"https://api.github.com/repos/eclipse/rdf4j/subscribers","subscription_url":"https://api.github.com/repos/eclipse/rdf4j/subscription","commits_url":"https://api.github.com/repos/eclipse/rdf4j/commits{/sha}","git_commits_url":"https://api.github.com/repos/eclipse/rdf4j/git/commits{/sha}","comments_url":"https://api.github.com/repos/eclipse/rdf4j/comments{/number}","issue_comment_url":"https://api.github.com/repos/eclipse/rdf4j/issues/comments{/number}","contents_url":"https://api.github.com/repos/eclipse/rdf4j/contents/{+path}","compare_url":"https://api.github.com/repos/eclipse/rdf4j/compare/{base}...{head}","merges_url":"https://api.github.com/repos/eclipse/rdf4j/merges","archive_url":"https://api.github.com/repos/eclipse/rdf4j/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/eclipse/rdf4j/downloads","issues_url":"https://api.github.com/repos/eclipse/rdf4j/issues{/number}","pulls_url":"https://api.github.com/repos/eclipse/rdf4j/pulls{/number}","milestones_url":"https://api.github.com/repos/eclipse/rdf4j/milestones{/number}","notifications_url":"https://api.github.com/repos/eclipse/rdf4j/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/eclipse/rdf4j/labels{/name}","releases_url":"https://api.github.com/repos/eclipse/rdf4j/releases{/id}","deployments_url":"https://api.github.com/repos/eclipse/rdf4j/deployments","created_at":"2016-01-14T19:47:32Z","updated_at":"2016-10-26T15:10:40Z","pushed_at":"2016-10-31T01:07:39Z","git_url":"git://github.com/eclipse/rdf4j.git","ssh_url":"git@github.com:eclipse/rdf4j.git","clone_url":"https://github.com/eclipse/rdf4j.git","svn_url":"https://github.com/eclipse/rdf4j","homepage":null,"size":9965,"stargazers_count":44,"watchers_count":44,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":18,"mirror_url":null,"open_issues_count":263,"forks":18,"open_issues":263,"watchers":44,"default_branch":"master"}},"base":{"label":"eclipse:master","ref":"master","sha":"3fc3a21f8398b70fc47d72ae7ce90e956a4c708b","user":{"login":"eclipse","id":56974,"avatar_url":"https://avatars.githubusercontent.com/u/56974?v=3","gravatar_id":"","url":"https://api.github.com/users/eclipse","html_url":"https://github.com/eclipse","followers_url":"https://api.github.com/users/eclipse/followers","following_url":"https://api.github.com/users/eclipse/following{/other_user}","gists_url":"https://api.github.com/users/eclipse/gists{/gist_id}","starred_url":"https://api.github.com/users/eclipse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eclipse/subscriptions","organizations_url":"https://api.github.com/users/eclipse/orgs","repos_url":"https://api.github.com/users/eclipse/repos","events_url":"https://api.github.com/users/eclipse/events{/privacy}","received_events_url":"https://api.github.com/users/eclipse/received_events","type":"Organization","site_admin":false},"repo":{"id":49670957,"name":"rdf4j","full_name":"eclipse/rdf4j","owner":{"login":"eclipse","id":56974,"avatar_url":"https://avatars.githubusercontent.com/u/56974?v=3","gravatar_id":"","url":"https://api.github.com/users/eclipse","html_url":"https://github.com/eclipse","followers_url":"https://api.github.com/users/eclipse/followers","following_url":"https://api.github.com/users/eclipse/following{/other_user}","gists_url":"https://api.github.com/users/eclipse/gists{/gist_id}","starred_url":"https://api.github.com/users/eclipse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eclipse/subscriptions","organizations_url":"https://api.github.com/users/eclipse/orgs","repos_url":"https://api.github.com/users/eclipse/repos","events_url":"https://api.github.com/users/eclipse/events{/privacy}","received_events_url":"https://api.github.com/users/eclipse/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/eclipse/rdf4j","description":"RDF4J Project","fork":false,"url":"https://api.github.com/repos/eclipse/rdf4j","forks_url":"https://api.github.com/repos/eclipse/rdf4j/forks","keys_url":"https://api.github.com/repos/eclipse/rdf4j/keys{/key_id}","collaborators_url":"https://api.github.com/repos/eclipse/rdf4j/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/eclipse/rdf4j/teams","hooks_url":"https://api.github.com/repos/eclipse/rdf4j/hooks","issue_events_url":"https://api.github.com/repos/eclipse/rdf4j/issues/events{/number}","events_url":"https://api.github.com/repos/eclipse/rdf4j/events","assignees_url":"https://api.github.com/repos/eclipse/rdf4j/assignees{/user}","branches_url":"https://api.github.com/repos/eclipse/rdf4j/branches{/branch}","tags_url":"https://api.github.com/repos/eclipse/rdf4j/tags","blobs_url":"https://api.github.com/repos/eclipse/rdf4j/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/eclipse/rdf4j/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/eclipse/rdf4j/git/refs{/sha}","trees_url":"https://api.github.com/repos/eclipse/rdf4j/git/trees{/sha}","statuses_url":"https://api.github.com/repos/eclipse/rdf4j/statuses/{sha}","languages_url":"https://api.github.com/repos/eclipse/rdf4j/languages","stargazers_url":"https://api.github.com/repos/eclipse/rdf4j/stargazers","contributors_url":"https://api.github.com/repos/eclipse/rdf4j/contributors","subscribers_url":"https://api.github.com/repos/eclipse/rdf4j/subscribers","subscription_url":"https://api.github.com/repos/eclipse/rdf4j/subscription","commits_url":"https://api.github.com/repos/eclipse/rdf4j/commits{/sha}","git_commits_url":"https://api.github.com/repos/eclipse/rdf4j/git/commits{/sha}","comments_url":"https://api.github.com/repos/eclipse/rdf4j/comments{/number}","issue_comment_url":"https://api.github.com/repos/eclipse/rdf4j/issues/comments{/number}","contents_url":"https://api.github.com/repos/eclipse/rdf4j/contents/{+path}","compare_url":"https://api.github.com/repos/eclipse/rdf4j/compare/{base}...{head}","merges_url":"https://api.github.com/repos/eclipse/rdf4j/merges","archive_url":"https://api.github.com/repos/eclipse/rdf4j/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/eclipse/rdf4j/downloads","issues_url":"https://api.github.com/repos/eclipse/rdf4j/issues{/number}","pulls_url":"https://api.github.com/repos/eclipse/rdf4j/pulls{/number}","milestones_url":"https://api.github.com/repos/eclipse/rdf4j/milestones{/number}","notifications_url":"https://api.github.com/repos/eclipse/rdf4j/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/eclipse/rdf4j/labels{/name}","releases_url":"https://api.github.com/repos/eclipse/rdf4j/releases{/id}","deployments_url":"https://api.github.com/repos/eclipse/rdf4j/deployments","created_at":"2016-01-14T19:47:32Z","updated_at":"2016-10-26T15:10:40Z","pushed_at":"2016-10-31T01:07:39Z","git_url":"git://github.com/eclipse/rdf4j.git","ssh_url":"git@github.com:eclipse/rdf4j.git","clone_url":"https://github.com/eclipse/rdf4j.git","svn_url":"https://github.com/eclipse/rdf4j","homepage":null,"size":9965,"stargazers_count":44,"watchers_count":44,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":18,"mirror_url":null,"open_issues_count":263,"forks":18,"open_issues":263,"watchers":44,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/eclipse/rdf4j/pulls/633"},"html":{"href":"https://github.com/eclipse/rdf4j/pull/633"},"issue":{"href":"https://api.github.com/repos/eclipse/rdf4j/issues/633"},"comments":{"href":"https://api.github.com/repos/eclipse/rdf4j/issues/633/comments"},"review_comments":{"href":"https://api.github.com/repos/eclipse/rdf4j/pulls/633/comments"},"review_comment":{"href":"https://api.github.com/repos/eclipse/rdf4j/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/eclipse/rdf4j/pulls/633/commits"},"statuses":{"href":"https://api.github.com/repos/eclipse/rdf4j/statuses/6c9b51737e18fb7d2b76e1515bb25d60a789b48c"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"jeenbroekstra","id":728776,"avatar_url":"https://avatars.githubusercontent.com/u/728776?v=3","gravatar_id":"","url":"https://api.github.com/users/jeenbroekstra","html_url":"https://github.com/jeenbroekstra","followers_url":"https://api.github.com/users/jeenbroekstra/followers","following_url":"https://api.github.com/users/jeenbroekstra/following{/other_user}","gists_url":"https://api.github.com/users/jeenbroekstra/gists{/gist_id}","starred_url":"https://api.github.com/users/jeenbroekstra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeenbroekstra/subscriptions","organizations_url":"https://api.github.com/users/jeenbroekstra/orgs","repos_url":"https://api.github.com/users/jeenbroekstra/repos","events_url":"https://api.github.com/users/jeenbroekstra/events{/privacy}","received_events_url":"https://api.github.com/users/jeenbroekstra/received_events","type":"User","site_admin":false},"comments":2,"review_comments":5,"commits":3,"additions":835,"deletions":522,"changed_files":8}}
{"actor":{"display_login":"jeenbroekstra"}}