{"action":"closed","number":294,"pull_request":{"url":"https://api.github.com/repos/datastax/java-driver/pulls/294","id":30909326,"html_url":"https://github.com/datastax/java-driver/pull/294","diff_url":"https://github.com/datastax/java-driver/pull/294.diff","patch_url":"https://github.com/datastax/java-driver/pull/294.patch","issue_url":"https://api.github.com/repos/datastax/java-driver/issues/294","number":294,"state":"closed","locked":false,"title":"Fix CCMBridge.execute potentially hanging if waiting on output streams.  Support overriding PATH and JAVA_HOME variables used by CCM.","user":{"login":"tolbertam","id":6889771,"avatar_url":"https://avatars.githubusercontent.com/u/6889771?v=3","gravatar_id":"","url":"https://api.github.com/users/tolbertam","html_url":"https://github.com/tolbertam","followers_url":"https://api.github.com/users/tolbertam/followers","following_url":"https://api.github.com/users/tolbertam/following{/other_user}","gists_url":"https://api.github.com/users/tolbertam/gists{/gist_id}","starred_url":"https://api.github.com/users/tolbertam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tolbertam/subscriptions","organizations_url":"https://api.github.com/users/tolbertam/orgs","repos_url":"https://api.github.com/users/tolbertam/repos","events_url":"https://api.github.com/users/tolbertam/events{/privacy}","received_events_url":"https://api.github.com/users/tolbertam/received_events","type":"User","site_admin":false},"body":"Found that CCMBridge was hanging in my linux environment when\r\ndownloading cassandra 2.1.3.  This was because the output stream was not\r\nbeing consumed, causing the process to block indefinitely.  See\r\ndocumentation at\r\nhttp://docs.oracle.com/javase/7/docs/api/java/lang/Process.html for an\r\nexplanation:\r\n\r\n> By default, the created subprocess does not have its own terminal or console. All its standard I/O (i.e. stdin, stdout, stderr) operations will be redirected to the parent process, where they can be accessed via the streams obtained using the methods getOutputStream(), getInputStream(), and getErrorStream(). The parent process uses these streams to feed input to and get output from the subprocess. Because some native platforms only provide limited buffer size for standard input and output streams, failure to promptly write the input stream or read the output stream of the subprocess may cause the subprocess to block, or even deadlock.\r\n\r\nUpdated to use commons-exec's DefaultExecutor with PumpStreamHandler to\r\nconsume and log stdout and stderr as it occurs.","created_at":"2015-03-11T01:42:09Z","updated_at":"2015-04-07T13:18:39Z","closed_at":"2015-04-07T13:18:39Z","merged_at":"2015-04-07T13:18:39Z","merge_commit_sha":"3b100f1b9626683e22107860ab2666ac28da309b","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/datastax/java-driver/pulls/294/commits","review_comments_url":"https://api.github.com/repos/datastax/java-driver/pulls/294/comments","review_comment_url":"https://api.github.com/repos/datastax/java-driver/pulls/comments{/number}","comments_url":"https://api.github.com/repos/datastax/java-driver/issues/294/comments","statuses_url":"https://api.github.com/repos/datastax/java-driver/statuses/f00c85fab8d92d154a0c80e3410e08c66cb8c59d","head":{"label":"tolbertam:fixCCMBridgeHang","ref":"fixCCMBridgeHang","sha":"f00c85fab8d92d154a0c80e3410e08c66cb8c59d","user":{"login":"tolbertam","id":6889771,"avatar_url":"https://avatars.githubusercontent.com/u/6889771?v=3","gravatar_id":"","url":"https://api.github.com/users/tolbertam","html_url":"https://github.com/tolbertam","followers_url":"https://api.github.com/users/tolbertam/followers","following_url":"https://api.github.com/users/tolbertam/following{/other_user}","gists_url":"https://api.github.com/users/tolbertam/gists{/gist_id}","starred_url":"https://api.github.com/users/tolbertam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tolbertam/subscriptions","organizations_url":"https://api.github.com/users/tolbertam/orgs","repos_url":"https://api.github.com/users/tolbertam/repos","events_url":"https://api.github.com/users/tolbertam/events{/privacy}","received_events_url":"https://api.github.com/users/tolbertam/received_events","type":"User","site_admin":false},"repo":{"id":27726791,"name":"java-driver","full_name":"tolbertam/java-driver","owner":{"login":"tolbertam","id":6889771,"avatar_url":"https://avatars.githubusercontent.com/u/6889771?v=3","gravatar_id":"","url":"https://api.github.com/users/tolbertam","html_url":"https://github.com/tolbertam","followers_url":"https://api.github.com/users/tolbertam/followers","following_url":"https://api.github.com/users/tolbertam/following{/other_user}","gists_url":"https://api.github.com/users/tolbertam/gists{/gist_id}","starred_url":"https://api.github.com/users/tolbertam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tolbertam/subscriptions","organizations_url":"https://api.github.com/users/tolbertam/orgs","repos_url":"https://api.github.com/users/tolbertam/repos","events_url":"https://api.github.com/users/tolbertam/events{/privacy}","received_events_url":"https://api.github.com/users/tolbertam/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/tolbertam/java-driver","description":"DataStax Java Driver for Apache Cassandra","fork":true,"url":"https://api.github.com/repos/tolbertam/java-driver","forks_url":"https://api.github.com/repos/tolbertam/java-driver/forks","keys_url":"https://api.github.com/repos/tolbertam/java-driver/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tolbertam/java-driver/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tolbertam/java-driver/teams","hooks_url":"https://api.github.com/repos/tolbertam/java-driver/hooks","issue_events_url":"https://api.github.com/repos/tolbertam/java-driver/issues/events{/number}","events_url":"https://api.github.com/repos/tolbertam/java-driver/events","assignees_url":"https://api.github.com/repos/tolbertam/java-driver/assignees{/user}","branches_url":"https://api.github.com/repos/tolbertam/java-driver/branches{/branch}","tags_url":"https://api.github.com/repos/tolbertam/java-driver/tags","blobs_url":"https://api.github.com/repos/tolbertam/java-driver/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tolbertam/java-driver/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tolbertam/java-driver/git/refs{/sha}","trees_url":"https://api.github.com/repos/tolbertam/java-driver/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tolbertam/java-driver/statuses/{sha}","languages_url":"https://api.github.com/repos/tolbertam/java-driver/languages","stargazers_url":"https://api.github.com/repos/tolbertam/java-driver/stargazers","contributors_url":"https://api.github.com/repos/tolbertam/java-driver/contributors","subscribers_url":"https://api.github.com/repos/tolbertam/java-driver/subscribers","subscription_url":"https://api.github.com/repos/tolbertam/java-driver/subscription","commits_url":"https://api.github.com/repos/tolbertam/java-driver/commits{/sha}","git_commits_url":"https://api.github.com/repos/tolbertam/java-driver/git/commits{/sha}","comments_url":"https://api.github.com/repos/tolbertam/java-driver/comments{/number}","issue_comment_url":"https://api.github.com/repos/tolbertam/java-driver/issues/comments{/number}","contents_url":"https://api.github.com/repos/tolbertam/java-driver/contents/{+path}","compare_url":"https://api.github.com/repos/tolbertam/java-driver/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tolbertam/java-driver/merges","archive_url":"https://api.github.com/repos/tolbertam/java-driver/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tolbertam/java-driver/downloads","issues_url":"https://api.github.com/repos/tolbertam/java-driver/issues{/number}","pulls_url":"https://api.github.com/repos/tolbertam/java-driver/pulls{/number}","milestones_url":"https://api.github.com/repos/tolbertam/java-driver/milestones{/number}","notifications_url":"https://api.github.com/repos/tolbertam/java-driver/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tolbertam/java-driver/labels{/name}","releases_url":"https://api.github.com/repos/tolbertam/java-driver/releases{/id}","created_at":"2014-12-08T17:39:35Z","updated_at":"2014-12-08T17:39:36Z","pushed_at":"2015-04-07T13:18:11Z","git_url":"git://github.com/tolbertam/java-driver.git","ssh_url":"git@github.com:tolbertam/java-driver.git","clone_url":"https://github.com/tolbertam/java-driver.git","svn_url":"https://github.com/tolbertam/java-driver","homepage":null,"size":7334,"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":"2.1"}},"base":{"label":"datastax:2.0","ref":"2.0","sha":"42268fbeb85f32b046abcf8a5d154eafc1246054","user":{"login":"datastax","id":573369,"avatar_url":"https://avatars.githubusercontent.com/u/573369?v=3","gravatar_id":"","url":"https://api.github.com/users/datastax","html_url":"https://github.com/datastax","followers_url":"https://api.github.com/users/datastax/followers","following_url":"https://api.github.com/users/datastax/following{/other_user}","gists_url":"https://api.github.com/users/datastax/gists{/gist_id}","starred_url":"https://api.github.com/users/datastax/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/datastax/subscriptions","organizations_url":"https://api.github.com/users/datastax/orgs","repos_url":"https://api.github.com/users/datastax/repos","events_url":"https://api.github.com/users/datastax/events{/privacy}","received_events_url":"https://api.github.com/users/datastax/received_events","type":"Organization","site_admin":false},"repo":{"id":6765281,"name":"java-driver","full_name":"datastax/java-driver","owner":{"login":"datastax","id":573369,"avatar_url":"https://avatars.githubusercontent.com/u/573369?v=3","gravatar_id":"","url":"https://api.github.com/users/datastax","html_url":"https://github.com/datastax","followers_url":"https://api.github.com/users/datastax/followers","following_url":"https://api.github.com/users/datastax/following{/other_user}","gists_url":"https://api.github.com/users/datastax/gists{/gist_id}","starred_url":"https://api.github.com/users/datastax/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/datastax/subscriptions","organizations_url":"https://api.github.com/users/datastax/orgs","repos_url":"https://api.github.com/users/datastax/repos","events_url":"https://api.github.com/users/datastax/events{/privacy}","received_events_url":"https://api.github.com/users/datastax/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/datastax/java-driver","description":"DataStax Java Driver for Apache Cassandra","fork":false,"url":"https://api.github.com/repos/datastax/java-driver","forks_url":"https://api.github.com/repos/datastax/java-driver/forks","keys_url":"https://api.github.com/repos/datastax/java-driver/keys{/key_id}","collaborators_url":"https://api.github.com/repos/datastax/java-driver/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/datastax/java-driver/teams","hooks_url":"https://api.github.com/repos/datastax/java-driver/hooks","issue_events_url":"https://api.github.com/repos/datastax/java-driver/issues/events{/number}","events_url":"https://api.github.com/repos/datastax/java-driver/events","assignees_url":"https://api.github.com/repos/datastax/java-driver/assignees{/user}","branches_url":"https://api.github.com/repos/datastax/java-driver/branches{/branch}","tags_url":"https://api.github.com/repos/datastax/java-driver/tags","blobs_url":"https://api.github.com/repos/datastax/java-driver/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/datastax/java-driver/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/datastax/java-driver/git/refs{/sha}","trees_url":"https://api.github.com/repos/datastax/java-driver/git/trees{/sha}","statuses_url":"https://api.github.com/repos/datastax/java-driver/statuses/{sha}","languages_url":"https://api.github.com/repos/datastax/java-driver/languages","stargazers_url":"https://api.github.com/repos/datastax/java-driver/stargazers","contributors_url":"https://api.github.com/repos/datastax/java-driver/contributors","subscribers_url":"https://api.github.com/repos/datastax/java-driver/subscribers","subscription_url":"https://api.github.com/repos/datastax/java-driver/subscription","commits_url":"https://api.github.com/repos/datastax/java-driver/commits{/sha}","git_commits_url":"https://api.github.com/repos/datastax/java-driver/git/commits{/sha}","comments_url":"https://api.github.com/repos/datastax/java-driver/comments{/number}","issue_comment_url":"https://api.github.com/repos/datastax/java-driver/issues/comments{/number}","contents_url":"https://api.github.com/repos/datastax/java-driver/contents/{+path}","compare_url":"https://api.github.com/repos/datastax/java-driver/compare/{base}...{head}","merges_url":"https://api.github.com/repos/datastax/java-driver/merges","archive_url":"https://api.github.com/repos/datastax/java-driver/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/datastax/java-driver/downloads","issues_url":"https://api.github.com/repos/datastax/java-driver/issues{/number}","pulls_url":"https://api.github.com/repos/datastax/java-driver/pulls{/number}","milestones_url":"https://api.github.com/repos/datastax/java-driver/milestones{/number}","notifications_url":"https://api.github.com/repos/datastax/java-driver/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/datastax/java-driver/labels{/name}","releases_url":"https://api.github.com/repos/datastax/java-driver/releases{/id}","created_at":"2012-11-19T18:44:41Z","updated_at":"2015-04-07T03:11:19Z","pushed_at":"2015-04-07T13:18:39Z","git_url":"git://github.com/datastax/java-driver.git","ssh_url":"git@github.com:datastax/java-driver.git","clone_url":"https://github.com/datastax/java-driver.git","svn_url":"https://github.com/datastax/java-driver","homepage":null,"size":16485,"stargazers_count":433,"watchers_count":433,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":283,"mirror_url":null,"open_issues_count":25,"forks":283,"open_issues":25,"watchers":433,"default_branch":"2.1"}},"_links":{"self":{"href":"https://api.github.com/repos/datastax/java-driver/pulls/294"},"html":{"href":"https://github.com/datastax/java-driver/pull/294"},"issue":{"href":"https://api.github.com/repos/datastax/java-driver/issues/294"},"comments":{"href":"https://api.github.com/repos/datastax/java-driver/issues/294/comments"},"review_comments":{"href":"https://api.github.com/repos/datastax/java-driver/pulls/294/comments"},"review_comment":{"href":"https://api.github.com/repos/datastax/java-driver/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/datastax/java-driver/pulls/294/commits"},"statuses":{"href":"https://api.github.com/repos/datastax/java-driver/statuses/f00c85fab8d92d154a0c80e3410e08c66cb8c59d"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"tolbertam","id":6889771,"avatar_url":"https://avatars.githubusercontent.com/u/6889771?v=3","gravatar_id":"","url":"https://api.github.com/users/tolbertam","html_url":"https://github.com/tolbertam","followers_url":"https://api.github.com/users/tolbertam/followers","following_url":"https://api.github.com/users/tolbertam/following{/other_user}","gists_url":"https://api.github.com/users/tolbertam/gists{/gist_id}","starred_url":"https://api.github.com/users/tolbertam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tolbertam/subscriptions","organizations_url":"https://api.github.com/users/tolbertam/orgs","repos_url":"https://api.github.com/users/tolbertam/repos","events_url":"https://api.github.com/users/tolbertam/events{/privacy}","received_events_url":"https://api.github.com/users/tolbertam/received_events","type":"User","site_admin":false},"comments":9,"review_comments":0,"commits":2,"additions":64,"deletions":44,"changed_files":3}}