in jee-modules/jpa-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/jpa/impl/PersistenceHelper.java [71:122]
static EntityManagerEntry tryToFindEntityManagerEntryInTarget(Object target)
{
Map<String, PersistenceContextMetaEntry> mapping = persistenceContextMetaEntries.get(getClassLoader());
mapping = initMapping(mapping);
String key = target.getClass().getName();
PersistenceContextMetaEntry persistenceContextEntry = mapping.get(key);
if( persistenceContextEntry != null && NO_FIELD_MARKER.equals(persistenceContextEntry.getFieldName()))
{
return null;
}
if(persistenceContextEntry == null)
{
persistenceContextEntry = findPersistenceContextEntry(target.getClass());
if(persistenceContextEntry == null)
{
mapping.put(key, new PersistenceContextMetaEntry(
Object.class, NO_FIELD_MARKER, Default.class.getName(), false));
return null;
}
mapping.put(key, persistenceContextEntry);
}
Field entityManagerField;
try
{
entityManagerField = persistenceContextEntry.getSourceClass()
.getDeclaredField(persistenceContextEntry.getFieldName());
}
catch (NoSuchFieldException e)
{
//TODO add logging in case of project stage dev.
return null;
}
entityManagerField.setAccessible(true);
try
{
EntityManager entityManager = (EntityManager)entityManagerField.get(target);
return new EntityManagerEntry(entityManager, persistenceContextEntry);
}
catch (IllegalAccessException e)
{
//TODO add logging in case of project stage dev.
return null;
}
}