- public Object get(Object key) {
- if (!has(key)) return parentScope == null ? null : getParentScope().get(key);
- Object ret = super.get(key); return ret == NULL ? null : ret;
- }
- public void put(Object key, Object val) {
- if (!has(key) && parentScope != null) getParentScope().put(key, val);
- else super.put(key, val == null ? NULL : val);
+ // we use _get instead of get solely to work around a GCJ bug
+ public Object _get(Object key) {
+ Object o = super.get(key);
+ if (o != null) return o == NULL_PLACEHOLDER ? null : o;
+ else return parentScope == null ? null : parentScope.get(key);