@Override
 public Object doInHibernate(Session session) throws HibernateException, XWikiException {
   XWikiContext context = getXWikiContext();
   XWiki xwiki = context.getWiki();
   DocumentReference oldClassReference =
       new DocumentReference(context.getWikiId(), "ClinicalInformationCode", this.className);
   DocumentReference newClassReference =
       new DocumentReference(context.getWikiId(), Constants.CODE_SPACE, this.className);
   Query q =
       session.createQuery(
           "select distinct o.name from BaseObject o where o.className = '"
               + R45391PhenoTips434DataMigration.this.serializer.serialize(oldClassReference)
               + "'");
   @SuppressWarnings("unchecked")
   List<String> documents = q.list();
   for (String docName : documents) {
     XWikiDocument doc =
         xwiki.getDocument(
             R45391PhenoTips434DataMigration.this.resolver.resolve(docName), context);
     for (BaseObject oldObject : doc.getXObjects(oldClassReference)) {
       BaseObject newObject = oldObject.duplicate();
       newObject.setXClassReference(newClassReference);
       doc.addXObject(newObject);
     }
     doc.removeXObjects(oldClassReference);
     doc.setComment("Migrated patient data in class " + this.className);
     doc.setMinorEdit(true);
     try {
       // There's a bug in XWiki which prevents saving an object in the same session that it was
       // loaded,
       // so we must clear the session cache first.
       session.clear();
       ((XWikiHibernateStore) getStore()).saveXWikiDoc(doc, context, false);
       session.flush();
     } catch (DataMigrationException e) {
       // We're in the middle of a migration, we're not expecting another migration
     }
   }
   return null;
 }
  @Before
  public void before() throws Exception {
    Locale.setDefault(Locale.ROOT);

    // checking

    this.preferencesDocumentReference =
        new DocumentReference(
            this.oldcore.getXWikiContext().getWikiId(), "XWiki", "XWikiPreferences");

    XWikiDocument preferencesDocument = new XWikiDocument(this.preferencesDocumentReference);
    BaseObject preferencesObject = new BaseObject();
    preferencesObject.setXClassReference(
        new DocumentReference(
            this.oldcore.getXWikiContext().getWikiId(), "XWiki", "XWikiPreferences"));
    preferencesDocument.addXObject(preferencesObject);
    preferencesDocument.setSyntax(Syntax.PLAIN_1_0);
    this.oldcore
        .getMockXWiki()
        .saveDocument(preferencesDocument, "", this.oldcore.getXWikiContext());

    this.defaultWikiTranslationReference =
        new DocumentReference(this.oldcore.getXWikiContext().getWikiId(), "XWiki", "Translations");

    XWikiDocument defaultWikiTranslation = new XWikiDocument(this.defaultWikiTranslationReference);
    defaultWikiTranslation.setSyntax(Syntax.PLAIN_1_0);
    this.oldcore
        .getMockXWiki()
        .saveDocument(defaultWikiTranslation, "", this.oldcore.getXWikiContext());

    // MessageTool

    this.tool =
        new XWikiMessageTool(
            this.oldcore
                .getMocker()
                .<ContextualLocalizationManager>getInstance(ContextualLocalizationManager.class));
  }