Program: 67848
Project: 67848
Buggy source:
public Class generateWrapperClass(String className,String attributeType){
  org.eclipse.persistence.internal.libraries.asm.ClassWriter classWriter=new org.eclipse.persistence.internal.libraries.asm.ClassWriter(false);
  classWriter.visit(Constants.V1_5,Constants.ACC_PUBLIC,className.replace("String_Node_Str","String_Node_Str"),org.eclipse.persistence.internal.libraries.asm.Type.getType(Object.class).getInternalName(),new String[]{Type.getType(WrappedValue.class).getInternalName()},null);
  CodeVisitor mv=classWriter.visitMethod(Constants.ACC_PUBLIC,"String_Node_Str",Type.getMethodDescriptor(Type.VOID_TYPE,new Type[0]),null,null);
  mv.visitVarInsn(Constants.ALOAD,0);
  mv.visitMethodInsn(Constants.INVOKESPECIAL,Type.getType(Object.class).getInternalName(),"String_Node_Str",Type.getMethodDescriptor(Type.VOID_TYPE,new Type[0]));
  mv.visitInsn(Constants.RETURN);
  mv.visitMaxs(1,1);
  String fieldType=attributeType.replace("String_Node_Str","String_Node_Str");
  if (!(fieldType.startsWith("String_Node_Str"))) {
    fieldType="String_Node_Str" + fieldType + "String_Node_Str";
  }
  classWriter.visitField(Constants.ACC_PUBLIC,"String_Node_Str",fieldType,null,null);
  Type objectType=Type.getType(Object.class);
  mv=classWriter.visitMethod(Constants.ACC_PUBLIC,"String_Node_Str",Type.getMethodDescriptor(Type.getType(Object.class),new Type[]{}),null,null);
  mv.visitVarInsn(Constants.ALOAD,0);
  mv.visitFieldInsn(Constants.GETFIELD,className.replace("String_Node_Str","String_Node_Str"),"String_Node_Str",fieldType);
  mv.visitInsn(Type.getType(Object.class).getOpcode(Constants.IRETURN));
  mv.visitMaxs(1 + objectType.getSize(),1);
  classWriter.visitEnd();
  byte[] classBytes=classWriter.toByteArray();
  JaxbClassLoader loader=(JaxbClassLoader)helper.getClassLoader();
  Class generatedClass=loader.generateClass(className,classBytes);
  return generatedClass;
}

Fixed version (ground truth):
public Class generateWrapperClass(String className,String attributeType,boolean isList){
  org.eclipse.persistence.internal.libraries.asm.ClassWriter classWriter=new org.eclipse.persistence.internal.libraries.asm.ClassWriter(false);
  classWriter.visit(Constants.V1_5,Constants.ACC_PUBLIC,className.replace("String_Node_Str","String_Node_Str"),org.eclipse.persistence.internal.libraries.asm.Type.getType(Object.class).getInternalName(),new String[]{Type.getType(WrappedValue.class).getInternalName()},null);
  CodeVisitor mv=classWriter.visitMethod(Constants.ACC_PUBLIC,"String_Node_Str",Type.getMethodDescriptor(Type.VOID_TYPE,new Type[0]),null,null);
  mv.visitVarInsn(Constants.ALOAD,0);
  mv.visitMethodInsn(Constants.INVOKESPECIAL,Type.getType(Object.class).getInternalName(),"String_Node_Str",Type.getMethodDescriptor(Type.VOID_TYPE,new Type[0]));
  mv.visitInsn(Constants.RETURN);
  mv.visitMaxs(1,1);
  String fieldType=null;
  if (isList) {
    fieldType="String_Node_Str";
  }
 else {
    fieldType=attributeType.replace("String_Node_Str","String_Node_Str");
    if (!(fieldType.startsWith("String_Node_Str"))) {
      fieldType="String_Node_Str" + fieldType + "String_Node_Str";
    }
  }
  classWriter.visitField(Constants.ACC_PUBLIC,"String_Node_Str",fieldType,null,null);
  Type objectType=Type.getType(Object.class);
  mv=classWriter.visitMethod(Constants.ACC_PUBLIC,"String_Node_Str",Type.getMethodDescriptor(Type.getType(Object.class),new Type[]{}),null,null);
  mv.visitVarInsn(Constants.ALOAD,0);
  mv.visitFieldInsn(Constants.GETFIELD,className.replace("String_Node_Str","String_Node_Str"),"String_Node_Str",fieldType);
  mv.visitInsn(Type.getType(Object.class).getOpcode(Constants.IRETURN));
  mv.visitMaxs(1 + objectType.getSize(),1);
  classWriter.visitEnd();
  byte[] classBytes=classWriter.toByteArray();
  JaxbClassLoader loader=(JaxbClassLoader)helper.getClassLoader();
  Class generatedClass=loader.generateClass(className,classBytes);
  return generatedClass;
}