{"action":"created","comment":{"url":"https://api.github.com/repos/elastic/elasticsearch/pulls/comments/33028553","id":33028553,"diff_hunk":"@@ -0,0 +1,50 @@\n+/*\n+ * Licensed to Elasticsearch under one or more contributor\n+ * license agreements. See the NOTICE file distributed with\n+ * this work for additional information regarding copyright\n+ * ownership. Elasticsearch licenses this file to you under\n+ * the Apache License, Version 2.0 (the \"License\"); you may\n+ * not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+ *\n+ *    http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing,\n+ * software distributed under the License is distributed on an\n+ * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n+ * KIND, either express or implied.  See the License for the\n+ * specific language governing permissions and limitations\n+ * under the License.\n+ */\n+package org.elasticsearch.index.mapper;\n+\n+/**\n+ * A container for a {@link MappedFieldType} which can be updated and is reference counted.\n+ */\n+public class MappedFieldTypeReference {\n+    private MappedFieldType fieldType; // the current field type this reference points to\n+    private int refCount;","path":"core/src/main/java/org/elasticsearch/index/mapper/MappedFieldTypeReference.java","position":26,"original_position":26,"commit_id":"18ec76aae882194fc7cbb3d927f69da5767e0f42","original_commit_id":"18ec76aae882194fc7cbb3d927f69da5767e0f42","user":{"login":"s1monw","id":973334,"avatar_url":"https://avatars.githubusercontent.com/u/973334?v=3","gravatar_id":"","url":"https://api.github.com/users/s1monw","html_url":"https://github.com/s1monw","followers_url":"https://api.github.com/users/s1monw/followers","following_url":"https://api.github.com/users/s1monw/following{/other_user}","gists_url":"https://api.github.com/users/s1monw/gists{/gist_id}","starred_url":"https://api.github.com/users/s1monw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/s1monw/subscriptions","organizations_url":"https://api.github.com/users/s1monw/orgs","repos_url":"https://api.github.com/users/s1monw/repos","events_url":"https://api.github.com/users/s1monw/events{/privacy}","received_events_url":"https://api.github.com/users/s1monw/received_events","type":"User","site_admin":false},"body":"I don't know if it's used by multiple threads but I'd feel better if we either documetn it or make `refCount` and `AtomicInteger`? But then I guess we can't guarantee consistency with the set fieldType... I need to look closer","created_at":"2015-06-23T10:39:22Z","updated_at":"2015-06-23T10:39:22Z","html_url":"https://github.com/elastic/elasticsearch/pull/11812#discussion_r33028553","pull_request_url":"https://api.github.com/repos/elastic/elasticsearch/pulls/11812","_links":{"self":{"href":"https://api.github.com/repos/elastic/elasticsearch/pulls/comments/33028553"},"html":{"href":"https://github.com/elastic/elasticsearch/pull/11812#discussion_r33028553"},"pull_request":{"href":"https://api.github.com/repos/elastic/elasticsearch/pulls/11812"}}},"pull_request":{"url":"https://api.github.com/repos/elastic/elasticsearch/pulls/11812","id":38276645,"html_url":"https://github.com/elastic/elasticsearch/pull/11812","diff_url":"https://github.com/elastic/elasticsearch/pull/11812.diff","patch_url":"https://github.com/elastic/elasticsearch/pull/11812.patch","issue_url":"https://api.github.com/repos/elastic/elasticsearch/issues/11812","number":11812,"state":"open","locked":false,"title":"Restrict fields with the same name in different types to have the same core settings","user":{"login":"rjernst","id":289412,"avatar_url":"https://avatars.githubusercontent.com/u/289412?v=3","gravatar_id":"","url":"https://api.github.com/users/rjernst","html_url":"https://github.com/rjernst","followers_url":"https://api.github.com/users/rjernst/followers","following_url":"https://api.github.com/users/rjernst/following{/other_user}","gists_url":"https://api.github.com/users/rjernst/gists{/gist_id}","starred_url":"https://api.github.com/users/rjernst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rjernst/subscriptions","organizations_url":"https://api.github.com/users/rjernst/orgs","repos_url":"https://api.github.com/users/rjernst/repos","events_url":"https://api.github.com/users/rjernst/events{/privacy}","received_events_url":"https://api.github.com/users/rjernst/received_events","type":"User","site_admin":false},"body":"We currently are very lax about allowing data types to conflict for the\r\nsame field name, across document types. This change makes the underlying\r\nmap in MapperService a 1-1 map of field name to field type, and throws\r\nexception when new types are not compatible.\r\n\r\nTo still allow changing a type, with parameters that are allowed to be\r\nchanged, but for a field that exists in multiple types, a new parameter\r\nto index creation and put mapping API is added: update_all_types.\r\nThis defaults to false, and the exception messages suggest using\r\nthis parameter when trying to modify a setting that is allowed to be\r\nmodified but is being limited by this restriction.\r\n\r\nThere are also a couple changes which try to base fields from new types\r\nfor dynamic mappings, and root mappers, on existing settings. For\r\ndynamic mappings this is important if the dynamic defaults have been\r\nchanged. For root mappings, this is mostly just for backcompat when\r\npre 2.0 root mappers could have their field type changed.\r\n\r\nfixes #8871","created_at":"2015-06-22T21:07:36Z","updated_at":"2015-06-23T10:39:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d8e5bb5822b94fc679e0ad98ad01283f830c624e","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/elastic/elasticsearch/pulls/11812/commits","review_comments_url":"https://api.github.com/repos/elastic/elasticsearch/pulls/11812/comments","review_comment_url":"https://api.github.com/repos/elastic/elasticsearch/pulls/comments{/number}","comments_url":"https://api.github.com/repos/elastic/elasticsearch/issues/11812/comments","statuses_url":"https://api.github.com/repos/elastic/elasticsearch/statuses/18ec76aae882194fc7cbb3d927f69da5767e0f42","head":{"label":"rjernst:pr/8871","ref":"pr/8871","sha":"18ec76aae882194fc7cbb3d927f69da5767e0f42","user":{"login":"rjernst","id":289412,"avatar_url":"https://avatars.githubusercontent.com/u/289412?v=3","gravatar_id":"","url":"https://api.github.com/users/rjernst","html_url":"https://github.com/rjernst","followers_url":"https://api.github.com/users/rjernst/followers","following_url":"https://api.github.com/users/rjernst/following{/other_user}","gists_url":"https://api.github.com/users/rjernst/gists{/gist_id}","starred_url":"https://api.github.com/users/rjernst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rjernst/subscriptions","organizations_url":"https://api.github.com/users/rjernst/orgs","repos_url":"https://api.github.com/users/rjernst/repos","events_url":"https://api.github.com/users/rjernst/events{/privacy}","received_events_url":"https://api.github.com/users/rjernst/received_events","type":"User","site_admin":false},"repo":{"id":21088403,"name":"elasticsearch","full_name":"rjernst/elasticsearch","owner":{"login":"rjernst","id":289412,"avatar_url":"https://avatars.githubusercontent.com/u/289412?v=3","gravatar_id":"","url":"https://api.github.com/users/rjernst","html_url":"https://github.com/rjernst","followers_url":"https://api.github.com/users/rjernst/followers","following_url":"https://api.github.com/users/rjernst/following{/other_user}","gists_url":"https://api.github.com/users/rjernst/gists{/gist_id}","starred_url":"https://api.github.com/users/rjernst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rjernst/subscriptions","organizations_url":"https://api.github.com/users/rjernst/orgs","repos_url":"https://api.github.com/users/rjernst/repos","events_url":"https://api.github.com/users/rjernst/events{/privacy}","received_events_url":"https://api.github.com/users/rjernst/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rjernst/elasticsearch","description":"Open Source, Distributed, RESTful Search Engine","fork":true,"url":"https://api.github.com/repos/rjernst/elasticsearch","forks_url":"https://api.github.com/repos/rjernst/elasticsearch/forks","keys_url":"https://api.github.com/repos/rjernst/elasticsearch/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rjernst/elasticsearch/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rjernst/elasticsearch/teams","hooks_url":"https://api.github.com/repos/rjernst/elasticsearch/hooks","issue_events_url":"https://api.github.com/repos/rjernst/elasticsearch/issues/events{/number}","events_url":"https://api.github.com/repos/rjernst/elasticsearch/events","assignees_url":"https://api.github.com/repos/rjernst/elasticsearch/assignees{/user}","branches_url":"https://api.github.com/repos/rjernst/elasticsearch/branches{/branch}","tags_url":"https://api.github.com/repos/rjernst/elasticsearch/tags","blobs_url":"https://api.github.com/repos/rjernst/elasticsearch/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rjernst/elasticsearch/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rjernst/elasticsearch/git/refs{/sha}","trees_url":"https://api.github.com/repos/rjernst/elasticsearch/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rjernst/elasticsearch/statuses/{sha}","languages_url":"https://api.github.com/repos/rjernst/elasticsearch/languages","stargazers_url":"https://api.github.com/repos/rjernst/elasticsearch/stargazers","contributors_url":"https://api.github.com/repos/rjernst/elasticsearch/contributors","subscribers_url":"https://api.github.com/repos/rjernst/elasticsearch/subscribers","subscription_url":"https://api.github.com/repos/rjernst/elasticsearch/subscription","commits_url":"https://api.github.com/repos/rjernst/elasticsearch/commits{/sha}","git_commits_url":"https://api.github.com/repos/rjernst/elasticsearch/git/commits{/sha}","comments_url":"https://api.github.com/repos/rjernst/elasticsearch/comments{/number}","issue_comment_url":"https://api.github.com/repos/rjernst/elasticsearch/issues/comments{/number}","contents_url":"https://api.github.com/repos/rjernst/elasticsearch/contents/{+path}","compare_url":"https://api.github.com/repos/rjernst/elasticsearch/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rjernst/elasticsearch/merges","archive_url":"https://api.github.com/repos/rjernst/elasticsearch/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rjernst/elasticsearch/downloads","issues_url":"https://api.github.com/repos/rjernst/elasticsearch/issues{/number}","pulls_url":"https://api.github.com/repos/rjernst/elasticsearch/pulls{/number}","milestones_url":"https://api.github.com/repos/rjernst/elasticsearch/milestones{/number}","notifications_url":"https://api.github.com/repos/rjernst/elasticsearch/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rjernst/elasticsearch/labels{/name}","releases_url":"https://api.github.com/repos/rjernst/elasticsearch/releases{/id}","created_at":"2014-06-22T07:43:32Z","updated_at":"2014-10-12T08:10:41Z","pushed_at":"2015-06-23T09:45:18Z","git_url":"git://github.com/rjernst/elasticsearch.git","ssh_url":"git@github.com:rjernst/elasticsearch.git","clone_url":"https://github.com/rjernst/elasticsearch.git","svn_url":"https://github.com/rjernst/elasticsearch","homepage":"http://elasticsearch.org","size":139636,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"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":"elastic:master","ref":"master","sha":"1df2d3015efee3e3d0df0696729c4e509363a5af","user":{"login":"elastic","id":6764390,"avatar_url":"https://avatars.githubusercontent.com/u/6764390?v=3","gravatar_id":"","url":"https://api.github.com/users/elastic","html_url":"https://github.com/elastic","followers_url":"https://api.github.com/users/elastic/followers","following_url":"https://api.github.com/users/elastic/following{/other_user}","gists_url":"https://api.github.com/users/elastic/gists{/gist_id}","starred_url":"https://api.github.com/users/elastic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elastic/subscriptions","organizations_url":"https://api.github.com/users/elastic/orgs","repos_url":"https://api.github.com/users/elastic/repos","events_url":"https://api.github.com/users/elastic/events{/privacy}","received_events_url":"https://api.github.com/users/elastic/received_events","type":"Organization","site_admin":false},"repo":{"id":507775,"name":"elasticsearch","full_name":"elastic/elasticsearch","owner":{"login":"elastic","id":6764390,"avatar_url":"https://avatars.githubusercontent.com/u/6764390?v=3","gravatar_id":"","url":"https://api.github.com/users/elastic","html_url":"https://github.com/elastic","followers_url":"https://api.github.com/users/elastic/followers","following_url":"https://api.github.com/users/elastic/following{/other_user}","gists_url":"https://api.github.com/users/elastic/gists{/gist_id}","starred_url":"https://api.github.com/users/elastic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elastic/subscriptions","organizations_url":"https://api.github.com/users/elastic/orgs","repos_url":"https://api.github.com/users/elastic/repos","events_url":"https://api.github.com/users/elastic/events{/privacy}","received_events_url":"https://api.github.com/users/elastic/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/elastic/elasticsearch","description":"Open Source, Distributed, RESTful Search Engine","fork":false,"url":"https://api.github.com/repos/elastic/elasticsearch","forks_url":"https://api.github.com/repos/elastic/elasticsearch/forks","keys_url":"https://api.github.com/repos/elastic/elasticsearch/keys{/key_id}","collaborators_url":"https://api.github.com/repos/elastic/elasticsearch/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/elastic/elasticsearch/teams","hooks_url":"https://api.github.com/repos/elastic/elasticsearch/hooks","issue_events_url":"https://api.github.com/repos/elastic/elasticsearch/issues/events{/number}","events_url":"https://api.github.com/repos/elastic/elasticsearch/events","assignees_url":"https://api.github.com/repos/elastic/elasticsearch/assignees{/user}","branches_url":"https://api.github.com/repos/elastic/elasticsearch/branches{/branch}","tags_url":"https://api.github.com/repos/elastic/elasticsearch/tags","blobs_url":"https://api.github.com/repos/elastic/elasticsearch/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/elastic/elasticsearch/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/elastic/elasticsearch/git/refs{/sha}","trees_url":"https://api.github.com/repos/elastic/elasticsearch/git/trees{/sha}","statuses_url":"https://api.github.com/repos/elastic/elasticsearch/statuses/{sha}","languages_url":"https://api.github.com/repos/elastic/elasticsearch/languages","stargazers_url":"https://api.github.com/repos/elastic/elasticsearch/stargazers","contributors_url":"https://api.github.com/repos/elastic/elasticsearch/contributors","subscribers_url":"https://api.github.com/repos/elastic/elasticsearch/subscribers","subscription_url":"https://api.github.com/repos/elastic/elasticsearch/subscription","commits_url":"https://api.github.com/repos/elastic/elasticsearch/commits{/sha}","git_commits_url":"https://api.github.com/repos/elastic/elasticsearch/git/commits{/sha}","comments_url":"https://api.github.com/repos/elastic/elasticsearch/comments{/number}","issue_comment_url":"https://api.github.com/repos/elastic/elasticsearch/issues/comments{/number}","contents_url":"https://api.github.com/repos/elastic/elasticsearch/contents/{+path}","compare_url":"https://api.github.com/repos/elastic/elasticsearch/compare/{base}...{head}","merges_url":"https://api.github.com/repos/elastic/elasticsearch/merges","archive_url":"https://api.github.com/repos/elastic/elasticsearch/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/elastic/elasticsearch/downloads","issues_url":"https://api.github.com/repos/elastic/elasticsearch/issues{/number}","pulls_url":"https://api.github.com/repos/elastic/elasticsearch/pulls{/number}","milestones_url":"https://api.github.com/repos/elastic/elasticsearch/milestones{/number}","notifications_url":"https://api.github.com/repos/elastic/elasticsearch/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/elastic/elasticsearch/labels{/name}","releases_url":"https://api.github.com/repos/elastic/elasticsearch/releases{/id}","created_at":"2010-02-08T13:20:56Z","updated_at":"2015-06-23T07:10:03Z","pushed_at":"2015-06-23T10:03:59Z","git_url":"git://github.com/elastic/elasticsearch.git","ssh_url":"git@github.com:elastic/elasticsearch.git","clone_url":"https://github.com/elastic/elasticsearch.git","svn_url":"https://github.com/elastic/elasticsearch","homepage":"https://www.elastic.co/products/elasticsearch","size":1895520,"stargazers_count":11725,"watchers_count":11725,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":3708,"mirror_url":null,"open_issues_count":1141,"forks":3708,"open_issues":1141,"watchers":11725,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/elastic/elasticsearch/pulls/11812"},"html":{"href":"https://github.com/elastic/elasticsearch/pull/11812"},"issue":{"href":"https://api.github.com/repos/elastic/elasticsearch/issues/11812"},"comments":{"href":"https://api.github.com/repos/elastic/elasticsearch/issues/11812/comments"},"review_comments":{"href":"https://api.github.com/repos/elastic/elasticsearch/pulls/11812/comments"},"review_comment":{"href":"https://api.github.com/repos/elastic/elasticsearch/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/elastic/elasticsearch/pulls/11812/commits"},"statuses":{"href":"https://api.github.com/repos/elastic/elasticsearch/statuses/18ec76aae882194fc7cbb3d927f69da5767e0f42"}}}}