Issue Details (XML | Word | Printable)

Key: SFOS-1060
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Steve Loughran
Reporter: Steve Loughran
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
SmartFrog

ManagedConfiguration effectively discards all values it is set() with

Created: 19/Jan/09 02:23 PM (GMT)   Updated: 20/Jan/09 02:54 PM (GMT)
Component/s: _service_hadoop
Affects Version/s: 3.17.010
Fix Version/s: 3.17.010

Time Tracking:
Not Specified

Issue Links:
Depends
 

Compatibility: may break builds or test process


 Description  « Hide
The ManagedConfiguration subclass of Hadoop's Configuration class does not override Configuration.set(), (key,value) pairs set are passed up to the superclass. But the superclass's values are not read on a get(); the results of a set() get discarded. This stops any bits of code that call Configuration.set() from working.

Most code that does this is example client code or test code. There is a risk that something inside does it, code that will now break

Options
1. Propagate the set() to the underlying component; pass SF errors back as runtime errors
    -works if the underlying component only has one ManagedComponent, causes shared-state problems if there is more than one

2. Propagate the set() to the superclass, but read those values when enumerating all property tuples, and in a get() operation. They should get priority over the smartfrog attribute

3. cache it in some other mechanism (like a local Properties instance)

 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Steve Loughran added a comment - 20/Jan/09 02:38 PM (GMT)
I'm completely reworking ManagedConfiguration to deal with this.

Instead of being bound to a Prim which was read on demand, a configuration uses the superclass to store and marshall all content; we just fill it in from a Prim, or, soon, more than one Prim.

It will also be possible to move away from a subclass altogether, instead using the base Configuration and JobConf classes, with static methods to bind them. This will make the code less brittle and less dependent on changes to Configuration.

Steve Loughran added a comment - 20/Jan/09 02:53 PM (GMT)
This has been corrected, broke CheckPortImpl, that problem has been addressed.