You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Properties class is some weird custom code/inherited HashMap amalgamation. It mostly behaves the same, but during debugging crashing dacapo benchmarks, I found the following incompatibility:
In the eclipse benchmark we have a class that inherits from Properties and overrides the put method, which is inherited from Hashmap. It then fills the Properties object with the built-in loading (i.e., calling load()) functionality.
Without tainting, this will print all key-value pairs from msgs.properties. With tainting, it does not print anything. This is because we are wrapping a Properties object and delegating the load call to said object. Consequently, the overridden put method is not called during loading, as the overridden put method is for the wrapper class.
Generally, this is quite nasty code, but the Eclipse people think it's reasonable, so we have to support it, I suppose.
The text was updated successfully, but these errors were encountered:
Our options are to override all Properties methods or derive from Properties directly. The latter option seems suboptimal, as the Properties object is somewhat insane :/
The Properties class is some weird custom code/inherited HashMap amalgamation. It mostly behaves the same, but during debugging crashing dacapo benchmarks, I found the following incompatibility:
In the eclipse benchmark we have a class that inherits from Properties and overrides the
put
method, which is inherited from Hashmap. It then fills the Properties object with the built-in loading (i.e., callingload()
) functionality.Without tainting, this will print all key-value pairs from
msgs.properties
. With tainting, it does not print anything. This is because we are wrapping a Properties object and delegating theload
call to said object. Consequently, the overriddenput
method is not called during loading, as the overriddenput
method is for the wrapper class.Generally, this is quite nasty code, but the Eclipse people think it's reasonable, so we have to support it, I suppose.
The text was updated successfully, but these errors were encountered: