On 05.06.11 21:19, "Hervé Agnoux" <[email protected]> wrote: > TransientRepository trans = new TransientRepository( > new File("/some/sort/of/path")); > Session session = trans.login(); > TransientRepository transgetted = > (TransientRepository) session.getRepository(); >... >I get : > >Exception in thread "main" java.lang.ClassCastException: >org.apache.jackrabbit.core.RepositoryImpl cannot be cast to >org.apache.jackrabbit.core.TransientRepository > at com.hum.Repo.main(Repo.java:20) > >Is it a bug or a feature ??
session.getRepository() returns a Repository interface. You cannot make any assumption about its implementation. In Jackrabbit's TransientRepository case, it's actually a different object than the TransientRepository you start at the beginning, because of some good reason. Since creating/starting the repository (in this case calling Jackrabbit's "new TransientRepository") is not defined by the JCR spec/API, this is ok. Might even be to avoid that other (unprivileged) sessions can actually cast back to the TransientRepository to get "control" over the repository, but I don't know for sure. Regards, Alex -- Alexander Klimetschek Developer // Adobe (Day) // Berlin - Basel
