class ResetTransactionAttributeCaches {
    private static final AgentLogger LOGGER = AgentLogger.getLogger(ResetTransactionAttributeCaches.class);

    private static Map<Object, TransactionAttribute> attributeCache;
    private static boolean tried = false;

    public static void reset(DefaultListableBeanFactory beanFactory) {<FILL_FUNCTION_BODY>}
}

        if (!beanFactory.containsBean("transactionAttributeSource")) {
            return;
        }
        try {
            if (attributeCache == null && !tried) {
                //only try once
                tried = true;
                final AbstractFallbackTransactionAttributeSource transactionAttributeSource = beanFactory.getBean("transactionAttributeSource", AbstractFallbackTransactionAttributeSource.class);
                Field attributeCacheField = AbstractFallbackTransactionAttributeSource.class.getDeclaredField("attributeCache");
                attributeCacheField.setAccessible(true);
                attributeCache = (Map<Object, TransactionAttribute>) attributeCacheField.get(transactionAttributeSource);
            }
            if (attributeCache != null) {
                attributeCache.clear();
            }
        } catch (Exception e) {
            LOGGER.error("Failed to reset @Transactional cache", e);
        }
    
<no_super_class>