Program: 5218
Project: 5218
Buggy source:
/** 
 * Converts the specified ClassDefinitionAST into an InnerClass
 * @param classDefinitionAST - the ClassDefinitionAST to convert
 * @param enclosingScope - the scope to make the parent of the new conceptual object's scope
 * @return the Scope of the InnerClass created, which has the InnerClass as its value
 * @throws ConceptualException - if there is a problem with the conversion
 */
private Scope convertInnerClass(ClassDefinitionAST classDefinitionAST,Scope enclosingScope) throws ConceptualException {
  AccessSpecifier access=convert(classDefinitionAST.getAccess(),AccessSpecifier.PUBLIC);
  ModifierAST[] modifiers=classDefinitionAST.getModifiers();
  boolean isAbstract=false;
  boolean isSealed=false;
  boolean isImmutable=false;
  boolean isStatic=false;
  SinceSpecifier sinceSpecifier=null;
  for (  ModifierAST modifier : modifiers) {
switch (modifier.getType()) {
case ABSTRACT:
      isAbstract=true;
    break;
case SEALED:
  isSealed=true;
break;
case STATIC:
isStatic=true;
break;
case IMMUTABLE:
isImmutable=true;
break;
case SINCE_SPECIFIER:
sinceSpecifier=convert((SinceSpecifierAST)modifier);
break;
default :
throw new ConceptualException("String_Node_Str",modifier.getParseInfo());
}
}
InnerClass conceptualClass=new InnerClass(access,isAbstract,isSealed,isImmutable,sinceSpecifier,classDefinitionAST.getName().getName(),isStatic);
Scope scope=ScopeFactory.createClassDefinitionScope(conceptualClass,enclosingScope);
scopes.put(conceptualClass,scope);
addClassData(scope,classDefinitionAST);
return scope;
}

Fixed version (ground truth):
/** 
 * Converts the specified ClassDefinitionAST into an InnerClass
 * @param classDefinitionAST - the ClassDefinitionAST to convert
 * @param enclosingScope - the scope to make the parent of the new conceptual object's scope
 * @return the Scope of the InnerClass created, which has the InnerClass as its value
 * @throws ConceptualException - if there is a problem with the conversion
 * @throws ScopeException - if there is a scope collision
 */
private Scope convertInnerClass(ClassDefinitionAST classDefinitionAST,Scope enclosingScope) throws ConceptualException, ScopeException {
  AccessSpecifier access=convert(classDefinitionAST.getAccess(),AccessSpecifier.PUBLIC);
  ModifierAST[] modifiers=classDefinitionAST.getModifiers();
  boolean isAbstract=false;
  boolean isSealed=false;
  boolean isImmutable=false;
  boolean isStatic=false;
  SinceSpecifier sinceSpecifier=null;
  for (  ModifierAST modifier : modifiers) {
switch (modifier.getType()) {
case ABSTRACT:
      isAbstract=true;
    break;
case SEALED:
  isSealed=true;
break;
case STATIC:
isStatic=true;
break;
case IMMUTABLE:
isImmutable=true;
break;
case SINCE_SPECIFIER:
sinceSpecifier=convert((SinceSpecifierAST)modifier);
break;
default :
throw new ConceptualException("String_Node_Str",modifier.getParseInfo());
}
}
InnerClass conceptualClass=new InnerClass(access,isAbstract,isSealed,isImmutable,sinceSpecifier,classDefinitionAST.getName().getName(),isStatic);
Scope scope=ScopeFactory.createClassDefinitionScope(conceptualClass,enclosingScope);
scopes.put(conceptualClass,scope);
addClassData(scope,classDefinitionAST);
return scope;
}