diff --git a/CHANGES b/CHANGES index be817f00c4..4de2ee7695 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,9 @@ +2.1-61 | 2012-10-12 09:32:48 -0700 + + * Fix bug in the input framework: the config table did not work. + (Bernhard Amann) + 2.1-58 | 2012-10-08 10:10:09 -0700 * Fix a problem with non-manager cluster nodes applying diff --git a/VERSION b/VERSION index 9dc6ee4e74..1a5d1dd129 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1-58 +2.1-61 diff --git a/src/input/Manager.cc b/src/input/Manager.cc index 83e9dc9bc5..8433996502 100644 --- a/src/input/Manager.cc +++ b/src/input/Manager.cc @@ -322,20 +322,10 @@ bool Manager::CreateStream(Stream* info, RecordVal* description) Unref(mode); Val* config = description->LookupWithDefault(rtype->FieldOffset("config")); - - ReaderFrontend* reader_obj = new ReaderFrontend(*rinfo, reader); - assert(reader_obj); - - info->reader = reader_obj; - info->type = reader->AsEnumVal(); // ref'd by lookupwithdefault - info->name = name; info->config = config->AsTableVal(); // ref'd by LookupWithDefault - info->info = rinfo; - - Ref(description); - info->description = description; { + // create config mapping in ReaderInfo. Has to be done before the construction of reader_obj. HashKey* k; IterCookie* c = info->config->AsTable()->InitForIteration(); @@ -345,13 +335,26 @@ bool Manager::CreateStream(Stream* info, RecordVal* description) ListVal* index = info->config->RecoverIndex(k); string key = index->Index(0)->AsString()->CheckString(); string value = v->Value()->AsString()->CheckString(); - info->info->config.insert(std::make_pair(copy_string(key.c_str()), copy_string(value.c_str()))); + rinfo->config.insert(std::make_pair(copy_string(key.c_str()), copy_string(value.c_str()))); Unref(index); delete k; } } + + ReaderFrontend* reader_obj = new ReaderFrontend(*rinfo, reader); + assert(reader_obj); + + info->reader = reader_obj; + info->type = reader->AsEnumVal(); // ref'd by lookupwithdefault + info->name = name; + info->info = rinfo; + + Ref(description); + info->description = description; + + DBG_LOG(DBG_INPUT, "Successfully created new input stream %s", name.c_str());