Program: 82043
Project: 82043
Buggy source:
public SpearalContextImpl(){
  this.classAliases=new HashMap<String,String>();
  this.typeInstantiators=new ArrayList<TypeInstantiator>();
  this.typeInstantiatorsCache=new CopyOnWriteValueMap<Type,TypeInstantiator>(true,new ValueProvider<Type,TypeInstantiator>(){
    @Override public TypeInstantiator createValue(    SpearalContext context,    Type key){
      securizer.checkDecodable(key);
      for (      TypeInstantiator instantiator : typeInstantiators) {
        if (instantiator.canInstantiate(key))         return instantiator;
      }
      throw new RuntimeException("String_Node_Str" + key);
    }
  }
);
  this.propertyInstantiators=new ArrayList<PropertyInstantiator>();
  this.propertyInstantiatorsCache=new CopyOnWriteValueMap<Property,PropertyInstantiator>(false,new ValueProvider<Property,PropertyInstantiator>(){
    @Override public PropertyInstantiator createValue(    SpearalContext context,    Property key){
      securizer.checkDecodable(key.getGenericType());
      for (      PropertyInstantiator instantiator : propertyInstantiators) {
        if (instantiator.canInstantiate(key))         return instantiator;
      }
      throw new RuntimeException("String_Node_Str" + key);
    }
  }
);
  this.converterProviders=new ArrayList<ConverterProvider>();
  this.convertersCache=new CopyOnWriteDualIdentityMap<Class<?>,Type,Converter<?>>(new DualIdentityMap.ValueProvider<Class<?>,Type,Converter<?>>(){
    @Override public Converter<?> createValue(    SpearalContext context,    Class<?> valueClass,    Type targetType){
      for (      ConverterProvider provider : converterProviders) {
        Converter<?> converter=provider.getConverter(valueClass,targetType);
        if (converter != null)         return converter;
      }
      throw new RuntimeException("String_Node_Str" + valueClass + "String_Node_Str"+ targetType);
    }
  }
);
  this.coderProviders=new ArrayList<CoderProvider>();
  this.codersCache=new CopyOnWriteValueMap<Class<?>,Coder>(true,new ValueProvider<Class<?>,Coder>(){
    @Override public Coder createValue(    SpearalContext context,    Class<?> key){
      for (      CoderProvider provider : coderProviders) {
        Coder coder=provider.getCoder(key);
        if (coder != null)         return coder;
      }
      throw new RuntimeException("String_Node_Str" + key);
    }
  }
);
  this.propertyFactories=new ArrayList<PropertyFactory>();
}

Fixed version (ground truth):
public SpearalContextImpl(){
  this.classAliases=new HashMap<String,String>();
  this.typeInstantiators=new ArrayList<TypeInstantiator>();
  this.typeInstantiatorsCache=new CopyOnWriteValueMap<Type,TypeInstantiator>(true,new ValueProvider<Type,TypeInstantiator>(){
    @Override public TypeInstantiator createValue(    SpearalContext context,    Type key){
      for (      TypeInstantiator instantiator : typeInstantiators) {
        if (instantiator.canInstantiate(key))         return instantiator;
      }
      throw new RuntimeException("String_Node_Str" + key);
    }
  }
);
  this.propertyInstantiators=new ArrayList<PropertyInstantiator>();
  this.propertyInstantiatorsCache=new CopyOnWriteValueMap<Property,PropertyInstantiator>(false,new ValueProvider<Property,PropertyInstantiator>(){
    @Override public PropertyInstantiator createValue(    SpearalContext context,    Property key){
      for (      PropertyInstantiator instantiator : propertyInstantiators) {
        if (instantiator.canInstantiate(key))         return instantiator;
      }
      throw new RuntimeException("String_Node_Str" + key);
    }
  }
);
  this.converterProviders=new ArrayList<ConverterProvider>();
  this.convertersCache=new CopyOnWriteDualIdentityMap<Class<?>,Type,Converter<?>>(new DualIdentityMap.ValueProvider<Class<?>,Type,Converter<?>>(){
    @Override public Converter<?> createValue(    SpearalContext context,    Class<?> valueClass,    Type targetType){
      for (      ConverterProvider provider : converterProviders) {
        Converter<?> converter=provider.getConverter(valueClass,targetType);
        if (converter != null)         return converter;
      }
      throw new RuntimeException("String_Node_Str" + valueClass + "String_Node_Str"+ targetType);
    }
  }
);
  this.coderProviders=new ArrayList<CoderProvider>();
  this.codersCache=new CopyOnWriteValueMap<Class<?>,Coder>(true,new ValueProvider<Class<?>,Coder>(){
    @Override public Coder createValue(    SpearalContext context,    Class<?> key){
      for (      CoderProvider provider : coderProviders) {
        Coder coder=provider.getCoder(key);
        if (coder != null)         return coder;
      }
      throw new RuntimeException("String_Node_Str" + key);
    }
  }
);
  this.propertyFactories=new ArrayList<PropertyFactory>();
}