public WOComponent afficherLeDossier() {

    if (unPreEtudiant() != null) {
      EOEditingContext edc = component.session().defaultEditingContext();

      EORne rne = unPreEtudiant().rne();
      if (rne == null) {
        component
            .session()
            .addSimpleErrorMessage(
                "Erreur", "Impossible de déterminer l'établissement du pré-étudiant !");
        return null;
      }

      IEtudiant etudiant = null;
      try {
        edc.revert();
        edc.invalidateAllObjects();
        EOPreEtudiant preEtudiant =
            EOPreEtudiant.fetchByKeyValue(
                edc, EOPreEtudiant.ETUD_NUMERO_KEY, unPreEtudiant().etudNumero());
        Method m =
            component
                .session()
                .finder(rne.cRne())
                .getDeclaredMethod(
                    "getEtudiantPreEtudiant",
                    new Class[] {
                      EOEditingContext.class,
                      EOPreEtudiant.class,
                      String.class,
                      component.session().interfaceEtudiant(rne.cRne())
                    });
        etudiant = (IEtudiant) m.invoke(null, new Object[] {edc, preEtudiant, rne.cRne(), null});
      } catch (SecurityException e1) {
        e1.printStackTrace();
      } catch (NoSuchMethodException e2) {
        e2.printStackTrace();
      } catch (IllegalArgumentException e3) {
        e3.printStackTrace();
      } catch (IllegalAccessException e4) {
        e4.printStackTrace();
      } catch (EtudiantException e6) {
        e6.printStackTrace();
      } catch (InvocationTargetException e5) {
        if (e5.getCause().getClass().equals(EtudiantException.class)) {
          EtudiantException exception = (EtudiantException) e5.getCause();
          component.session().addSimpleErrorMessage("Erreur", exception.getMessage());
          return null;
        }
      }

      if (etudiant != null) {
        EOHistorique historique = etudiant.historiquePlusRecent(new Integer(3000));
        etudiant.setAnneeInscriptionEnCours(historique.histAnneeScol());
        etudiant.setEtudType(EOEtudiant.ETUD_TYPE_INSCRIPTION);
        etudiant.setRne(rne);

        setLeEtudiant(etudiant);
        setLeDossier(historique);

        NSArray<EtudiantException> userInfos = etudiant.userInfos();
        if (userInfos != null && userInfos.count() > 0) {
          String messages = "";
          Enumeration<EtudiantException> enumUserInfos = userInfos.objectEnumerator();
          while (enumUserInfos.hasMoreElements()) {
            EtudiantException exception = enumUserInfos.nextElement();
            messages += exception.getMessageJS() + "\\n";
          }
          component.session().addSimpleErrorMessage("Erreur", messages);
        }
      }
    }

    return null;
  }