Application no longer starts after adding external jar, even after rollback

My application was running well.

Then I added an external jar to the project so that I could access
enums defined in the external project. I added the external jar via
editing the gradle file and adding

buildscript {
     ...
    repositories {
        ...
        flatDir {
            dirs 'libs'
        }
    }

configure([globalModule, coreModule, webModule]) {
    ...
    dependencies {
        ...
        compile('backofficeserver:backofficeserver')
    }

Then the app would not start and I saw these error messages in catalina.out:

...
 INFO | Using EndpointMapper class org.atmosphere.util.DefaultEndpointMapper
 INFO | Using BroadcasterCache: org.atmosphere.cache.UUIDBroadcasterCache
 INFO | Default Broadcaster Class: org.atmosphere.cpr.DefaultBroadcaster
 INFO | Broadcaster Shared List Resources: false
 INFO | Broadcaster Polling Wait Time 100
 INFO | Shared ExecutorService supported: true
 INFO | Messaging ExecutorService Pool Size unavailable - Not instance of ThreadPoolExecutor
 INFO | Async I/O Thread Pool Size: 200
 INFO | Using BroadcasterFactory: org.atmosphere.cpr.DefaultBroadcasterFactory
 INFO | Using AtmosphereResurceFactory: org.atmosphere.cpr.DefaultAtmosphereResourceFactory
 INFO | Using WebSocketProcessor: org.atmosphere.websocket.DefaultWebSocketProcessor
 INFO | Invoke AtmosphereInterceptor on WebSocket message true
 INFO | HttpSession supported: true
 INFO | Atmosphere is using org.atmosphere.inject.InjectableObjectFactory for dependency injection and object creation
 INFO | Atmosphere is using async support: org.atmosphere.container.JSR356AsyncSupport running under container: Apache Tomcat/9.0.27 using javax.servlet/3.0 and jsr356/WebSocket API
 INFO | Atmosphere Framework 2.4.30-1-cuba started.
 INFO | Installed AtmosphereInterceptor  Track Message Size Interceptor using | with priority BEFORE_DEFAULT 
 INFO | Initializing 'web' block, servlet context path: /app
 INFO | Using app components: [com.haulmont.cuba]
 INFO | Loading app properties from classpath:backofficeadmin/web-app.properties
 INFO | Loading app properties from file:C:\git\backofficeadmin\deploy\tomcat/../app_home/local.app.properties
 INFO | cuba.webContextName: app
 INFO | Environment checks on web module completed successfully
 INFO | Refreshing com.haulmont.cuba.core.sys.CubaClassPathXmlApplicationContext@2c383e33: startup date [Tue Sep 29 07:03:00 UTC 2020]; root of context hierarchy
 INFO | Overriding bean definition for bean 'cuba_PasswordEncryption': replacing [Generic bean: class [com.haulmont.cuba.core.sys.PasswordEncryptionImpl]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/C:/git/backofficeadmin/deploy/tomcat/webapps/app/WEB-INF/lib/cuba-global-7.2.8.jar!/com/haulmont/cuba/core/sys/PasswordEncryptionImpl.class]] with [Generic bean: class [com.haulmont.cuba.core.sys.PasswordEncryptionImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [com/haulmont/cuba/web-spring.xml]]
 INFO | Overriding bean definition for bean 'cuba_Events': replacing [Generic bean: class [com.haulmont.cuba.core.sys.EventsImpl]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/C:/git/backofficeadmin/deploy/tomcat/webapps/app/WEB-INF/lib/cuba-global-7.2.8.jar!/com/haulmont/cuba/core/sys/EventsImpl.class]] with [Generic bean: class [com.haulmont.cuba.web.sys.WebEvents]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [com/haulmont/cuba/web-spring.xml]]
 INFO | Server URLs: [http://localhost:8080/app-core/remoting]
 INFO | Configuring proxy beans for local service invocations: [cuba_AuthenticationService, cuba_TrustedClientService, cuba_ServerInfoService, cuba_UserSettingService, cuba_UserManagementService, cuba_DataService, cuba_ConfigStorageService, cuba_PersistenceManagerService, cuba_LockService, cuba_UserSessionService, cuba_FoldersService, cuba_EmailService, cuba_FileStorageService, cuba_EntitySnapshotService, cuba_UniqueNumbersService, cuba_LocalizedMessageService, cuba_ResourceService, cuba_ScheduledTasksService, cuba_EntityLogService, cuba_TestingService, cuba_DomainDescriptionService, cuba_RelatedEntitiesService, cuba_EntitySqlGenerationService, cuba_NumberIdService, cuba_QueryResultsService, cuba_DynamicAttributesCacheService, cuba_EntityRestoreService, cuba_LocalFileExchangeService, cuba_EntityImportExportService, cuba_ConstraintLocalizationService, cuba_AttributeAccessService, cuba_ExceptionReportService, cuba_BulkEditorDataService, cuba_PersistenceSecurityService, cuba_AccessGroupsService, cuba_AttributeOptionsLoaderService, cuba_RolesService, cuba_SecurityScopesService, cuba_ScreenProfilerService]
 INFO | Pre-instantiating singletons in com.haulmont.cuba.core.sys.CubaDefaultListableBeanFactory@cfe72b0: defining beans [com.haulmont.cuba.core.sys.CubaPropertyPlaceholderConfigurer#0,cuba_PersistenceManagerClient,cuba_ConfigEntityFactory,cuba_NumberIdSource,cuba_Messages,cuba_DataManager,cuba_UuidSource,cuba_Configuration,cuba_ConfigCacheStrategy,cuba_DynamicAttributesCacheStrategy,cuba_DynamicAttributesService,cuba_ClientCacheManager,cuba_UsersRepository,cuba_Scripting,cuba_ViewRepository,cuba_FileLoader,cuba_AttributeAccessUpdater,cuba_AppPropertiesLocator,cuba_ConfigStorageCommon,cuba_ViewSerialization,cuba_EntitySerialization,cuba_EntityImportViewBuilderAPI,cuba_DynamicAttributesTools,cuba_DynamicAttributesRecalculationTools,cuba_MetadataLoader,cuba_FormatStringsRegistry,serializationShutdownListener,cuba_EntityReferencesNormalizer,cuba_DatatypeRegistry,cuba_Dom4jTools,dom4jToolsShutdownListener,cuba_SpringBeanLoader,cuba_TimeSource,cuba_TransactionalAction,cuba_ClassLoaderManager,cuba_PasswordEncryption,cuba_TransactionalActionFactory,cuba_BeanValidation,cuba_Metadata,cuba_LogControl,cuba_ServletRegistrationManager,cuba_NodeIdentifier,cuba_Md5EncryptionModule,cuba_Sha1EncryptionModule,cuba_BCryptEncryptionModule,cuba_BeanLocator,cuba_TriggerFilesProcessor,cuba_Resources,cuba_Security,cuba_JmxLogControlMBean,cuba_JmxNodeIdentifierMBean,cuba_Events,cuba_AuditInfoProvider,cuba_MetaModelLoader,cuba_DomainModelBuilder,cuba_QueryTransformer,cuba_DomainModelWithCaptionsBuilder,cuba_NumberIdCache,cuba_MetadataBuildSupport,cuba_ViewLoader,cuba_JavaClassLoader,cuba_TimeZones,cuba_OpManager,cuba_PersistentAttributesLoadChecker,cuba_QueryStringProcessor,cuba_EmailInfoBuilder,cuba_UserFormatTools,cuba_QueryTransformerFactory,cuba_ExtendedEntities,cuba_EntityStates,cuba_ConditionJpqlGenerator,cuba_ConditionXmlLoader,cuba_ViewBuilder,cuba_QueryParser,cuba_ReferenceToEntitySupport,cuba_DatatypeFormatter,cuba_BuildInfo,cuba_MetadataTools,cuba_MessageTools,cuba_DateTimeTransformations,cuba_EntityLoadInfoBuilder,cuba_PermissionConfig,cuba_MenuItemCommands,cuba_MenuConfig,cuba_WindowConfig,cuba_ThemeConstantsRepository,cuba_DataComponents,cuba_SorterFactory,cuba_ScreenDataXmlLoader,cuba_ScreenBuilders,cuba_DsBuilder,cuba_RelatedEntities,cuba_ListEditorDelegate,cuba_DateInIntervalComponent,cuba_PredefinedDateIntervalsFactory,cuba_YesterdayPredefinedDateInterval,cuba_NextMonthPredefinedDateInterval,cuba_TodayPredefinedDateInterval,cuba_ThisMonthPredefinedDateInterval,cuba_LastMonthPredefinedDateInterval,cuba_TomorrowPredefinedDateInterval,cuba_FilterDateIntervalValue,cuba_FilterDelegate,cuba_ConditionDescriptorsTreeBuilder,cuba_FilterParam,cuba_ConditionParamBuilder,cuba_MaxResultsFieldHelper,cuba_FilterParser,cuba_ClearAction,cuba_SizeValidator,cuba_PastValidator,cuba_FutureValidator,cuba_DigitsValidator,cuba_PositiveOrZeroValidator,cuba_FutureOrPresentValidator,cuba_NegativeOrZeroValidator,cuba_DoubleMaxValidator,cuba_MaxValidator,cuba_PositiveValidator,cuba_DecimalMinValidator,cuba_PastOrPresentValidator,cuba_DoubleMinValidator,cuba_NotNullValidator,cuba_RegexpValidator,cuba_NotEmptyValidator,cuba_ValidatorFactory,cuba_NegativeValidator,cuba_DecimalMaxValidator,cuba_NotBlankValidator,cuba_MinValidator,cuba_GroovyScriptValidator,cuba_BeanPropertyValidator,cuba_DataAwareComponentsTools,cuba_ValueBinder,cuba_OptionsBinder,cuba_ExcelAction,cuba_EditAction,cuba_AddAction,cuba_RemoveAction,cuba_RelatedAction,cuba_CreateAction,cuba_ExcludeAction,cuba_BulkEditAction,cuba_GuiActionSupport,cuba_RefreshAction,cuba_OpenAction,cuba_UiComponentsGenerator,cuba_Actions,cuba_RelatedEntitiesSecurity,cuba_LookupAction,cuba_DataGridEditorFieldFactory,cuba_DataGridEditorMetaComponentStrategy,cuba_CustomDatatypesComponentGenerationStrategy,cuba_DefaultMetaComponentStrategy,cuba_FieldGroupFieldFactory,cuba_Icons,cuba_FileUploading,cuba_UniqueConstraintViolationHandler,cuba_NoSuchScreenHandler,cuba_OptimisticExceptionHandler,cuba_ServiceCallValidationExceptionHandler,cuba_MssqlDateOutOfRangeExceptionHandler,cuba_RowLevelSecurityExceptionHandler,cuba_SilentExceptionHandler,cuba_DeletePolicyHandler,cuba_NumericOverflowExceptionHandler,cuba_FileStorageExceptionHandler,cuba_EntityAccessExceptionHandler,cuba_UnfetchedAttributeAccessExceptionHandler,cuba_HotDeployClassCastExceptionHandler,cuba_UiControllerMetaProvider,cuba_FragmentHelper,cuba_UiControllerDependencyInjector,cuba_ScreenHistorySupport,cuba_UiControllerPropertyInjector,cuba_AttributeAccessSupport,cuba_WindowCreationHelper,cuba_UiControllerReflectionInspector,cuba_ScreensHelper,cuba_ScreenViewsLoader,cuba_AnnotationScanMetadataReaderFactory,cuba_LookupBuilderProcessor,cuba_ScreenBuilderProcessor,cuba_EditorBuilderProcessor,cuba_FacetLoader,cuba_DeclarativeColumnGenerator,cuba_LayoutLoader,cuba_CompositeComponentLayoutLoader,cuba_CompositeDescriptorLoader,cuba_ScreenXmlLoader,cuba_ScreenXmlDocumentCache,cuba_ScreenXmlParser,cuba_LayoutLoaderConfig,cuba_ActionCustomPropertyLoader,cuba_XmlInheritanceProcessor,cuba_BulkEditors,cuba_RemoveHelper,cuba_ScreenSettings,cuba_ScreenValidation,cuba_MessageBundle,cuba_ReadOnlyScreensSupport,cuba_UiEventsMulticaster,cuba_DynamicAttributesGuiTools,cuba_DynamicAttributeListEditorGenerator,cuba_ScreenProfiler,cuba_DeviceInfoProvider,cuba_ExportDisplay,cuba_App,cuba_AppUI,cuba_Folders,cuba_WebStatisticsAccumulator,cuba_UserSettingsTools,cuba_LayoutAnalyzerContextMenuProvider,cuba_ThemeManager,cuba_AccessDeniedHandler,cuba_SideMenuBuilder,cuba_BootstrapListener,cuba_RedirectHandler,cuba_FoldersLinkHandlerProcessor,cuba_UserSwitchLinkHandlerProcessor,cuba_ScreensLinkHandlerProcessor,cuba_UserSessionSource,cuba_CacheUserSessionProvider,cuba_AppMenuBuilder,cuba_ExternalUIComponentsSource,cuba_HtmlSanitizer,cuba_ScreenTools,rootNavigationHandler,paramsNavigationHandler,screenNavigationHandler,noopNavigationHandler,cuba_UrlTools,cubaLoginScreenFilter,cubaNotFoundScreenFilter,cuba_HistoryNavigator,cuba_ScreenNavigator,cuba_LinkHandler,cuba_WindowManagerProvider,cuba_WebJarResourceResolver,cuba_ConfigStorageMBean,cuba_StatisticsCounterMBean,cuba_JmxRemoteLogging,cuba_CachingFacadeMBean,cuba_JmxControl,cuba_Connection,cuba_LdapLoginProvider,cuba_ExternalUserLoginProvider,cuba_AnonymousLoginProvider,cuba_RememberMeLoginProvider,cuba_LoginPasswordLoginProvider,cuba_ChangePasswordAfterLoginListener,cuba_LoginScreenAuthDelegate,cuba_WebAnonymousSessionHolder,cuba_ComponentsFactory,cuba_UiComponents,cuba_FilterHelper,cuba_HtmlAttributes,classPathIconProvider,themeIconProvider,cuba_IconResolver,fontAwesomeIconProvider,fileIconProvider,fallbackIconProvider,cuba_BackgroundWorker,cuba_BackgroundWorker_WatchDog,cuba_Facets,cuba_InputDialogFacetProvider,cuba_LookupScreenFacetProvider,cuba_DataLoadCoordinatorFacetProvider,cuba_ScreenFacetProvider,cuba_OptionDialogFacetProvider,cuba_EditorScreenFacetProvider,cuba_TimerFacetProvider,cuba_NotificationFacetProvider,cuba_MessageDialogFacetProvider,cuba_ClipboardTriggerFacetProvider,cuba_SettingsClient,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,vaadinSessionScope,org.springframework.beans.factory.config.CustomScopeConfigurer#0,cuba_UserSession,com.haulmont.cuba.gui.sys.UiControllersConfiguration#0,com.haulmont.cuba.gui.sys.ActionsConfiguration#0,cuba_web_MBeanExporter,cuba_AnnotationMBeanExporter,cuba_ServerSorter,cuba_AnonymousSessionUrlsHolder,cuba_ServerSelector,cuba_proxyCreator,cuba_exceptionHandlersConf,scheduler,org.springframework.scheduling.support.ScheduledMethodRunnable#0,org.springframework.scheduling.config.IntervalTask#0,org.springframework.scheduling.support.ScheduledMethodRunnable#1,org.springframework.scheduling.config.IntervalTask#1,org.springframework.scheduling.support.ScheduledMethodRunnable#2,org.springframework.scheduling.config.CronTask#0,org.springframework.scheduling.config.ContextLifecycleScheduledTaskRegistrar#0,backgroundWorkerScheduler,org.springframework.scheduling.support.ScheduledMethodRunnable#3,org.springframework.scheduling.config.IntervalTask#2,org.springframework.scheduling.config.ContextLifecycleScheduledTaskRegistrar#1,com.haulmont.cuba.gui.sys.UiControllersConfiguration#1,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor,cuba_AuthenticationService,cuba_TrustedClientService,cuba_ServerInfoService,cuba_UserSettingService,cuba_UserManagementService,cuba_DataService,cuba_ConfigStorageService,cuba_PersistenceManagerService,cuba_LockService,cuba_UserSessionService,cuba_FoldersService,cuba_EmailService,cuba_FileStorageService,cuba_EntitySnapshotService,cuba_UniqueNumbersService,cuba_LocalizedMessageService,cuba_ResourceService,cuba_ScheduledTasksService,cuba_EntityLogService,cuba_TestingService,cuba_DomainDescriptionService,cuba_RelatedEntitiesService,cuba_EntitySqlGenerationService,cuba_NumberIdService,cuba_QueryResultsService,cuba_DynamicAttributesCacheService,cuba_EntityRestoreService,cuba_LocalFileExchangeService,cuba_EntityImportExportService,cuba_ConstraintLocalizationService,cuba_AttributeAccessService,cuba_ExceptionReportService,cuba_BulkEditorDataService,cuba_PersistenceSecurityService,cuba_AccessGroupsService,cuba_AttributeOptionsLoaderService,cuba_RolesService,cuba_SecurityScopesService,cuba_ScreenProfilerService]; root of factory hierarchy
Sep 29, 2020 7:03:04 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file
Sep 29, 2020 7:03:04 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/app] startup failed due to previous errors
Sep 29, 2020 7:03:04 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory [C:\git\backofficeadmin\deploy\tomcat\webapps\app] has finished in [5,140] ms
Sep 29, 2020 7:03:04 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory [C:\git\backofficeadmin\deploy\tomcat\webapps\app-core]
 INFO | Initializing 'core' block, servlet context path: /app-core
 INFO | Using app components: [com.haulmont.cuba]
 INFO | Loading app properties from classpath:backofficeadmin/app.properties
 INFO | Loading app properties from file:C:\git\backofficeadmin\deploy\tomcat/../app_home/local.app.properties
 INFO | cuba.webContextName: app-core
 INFO | DbmsType of the main database is set to mssql2012
 INFO | Checking connection to data store Main
 INFO | Environment checks on core module completed successfully
 INFO | Creating file C:\git\backofficeadmin\deploy\app_home\app-core\work\persistence.xml
 INFO | Refreshing com.haulmont.cuba.core.sys.CubaCoreApplicationContext@6d821475: startup date [Tue Sep 29 07:03:05 UTC 2020]; root of context hierarchy
 INFO | Overriding bean definition for bean 'cuba_Security': replacing [Generic bean: class [com.haulmont.cuba.core.sys.SecurityImpl]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/C:/git/backofficeadmin/deploy/tomcat/webapps/app-core/WEB-INF/lib/cuba-global-7.2.8.jar!/com/haulmont/cuba/core/sys/SecurityImpl.class]] with [Generic bean: class [com.haulmont.cuba.core.sys.PersistenceSecurityImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [com/haulmont/cuba/spring.xml]]
 INFO | Overriding bean definition for bean 'cuba_PasswordEncryption': replacing [Generic bean: class [com.haulmont.cuba.core.sys.PasswordEncryptionImpl]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/C:/git/backofficeadmin/deploy/tomcat/webapps/app-core/WEB-INF/lib/cuba-global-7.2.8.jar!/com/haulmont/cuba/core/sys/PasswordEncryptionImpl.class]] with [Generic bean: class [com.haulmont.cuba.core.sys.PasswordEncryptionImpl]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [com/haulmont/cuba/spring.xml]]
 INFO | Overriding bean definition for bean 'cuba_PersistentAttributesLoadChecker': replacing [Generic bean: class [com.haulmont.cuba.core.global.GlobalPersistentAttributesLoadChecker]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/C:/git/backofficeadmin/deploy/tomcat/webapps/app-core/WEB-INF/lib/cuba-global-7.2.8.jar!/com/haulmont/cuba/core/global/GlobalPersistentAttributesLoadChecker.class]] with [Generic bean: class [com.haulmont.cuba.core.sys.CorePersistentAttributesLoadChecker]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in class path resource [com/haulmont/cuba/spring.xml]]
 INFO | Initializing Servlet 'remoting'
ERROR | Parent Spring context is null, middleware failed to start? Abort initialization.
 INFO | Completed initialization in 0 ms
Sep 29, 2020 7:03:08 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory [C:\git\backofficeadmin\deploy\tomcat\webapps\app-core] has finished in [3,479] ms
Sep 29, 2020 7:03:08 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Sep 29, 2020 7:03:08 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
Sep 29, 2020 7:03:08 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in [8,674] milliseconds

and in the tomcat localhost log:

29-Sep-2020 05:20:56.409 INFO [main] org.apache.catalina.core.ApplicationContext.log Initializing AtmosphereFramework
29-Sep-2020 05:20:56.486 INFO [main] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath
29-Sep-2020 05:21:01.153 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [com.haulmont.cuba.web.sys.WebAppContextLoader]
	java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationUtils.isCandidateClass(Ljava/lang/Class;Ljava/util/Collection;)Z
		at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.buildPersistenceMetadata(PersistenceAnnotationBeanPostProcessor.java:418)
		at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findPersistenceMetadata(PersistenceAnnotationBeanPostProcessor.java:409)
		at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(PersistenceAnnotationBeanPostProcessor.java:336)
		at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:872)
		at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:495)
		at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
		at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
		at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
		at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
		at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:191)
		at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:636)
		at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:934)
		at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
		at org.springframework.context.support.AbstractRefreshableConfigApplicationContext.afterPropertiesSet(AbstractRefreshableConfigApplicationContext.java:149)
		at com.haulmont.cuba.core.sys.CubaClassPathXmlApplicationContext.<init>(CubaClassPathXmlApplicationContext.java:42)
		at com.haulmont.cuba.core.sys.AbstractAppContextLoader.createApplicationContext(AbstractAppContextLoader.java:97)
		at com.haulmont.cuba.core.sys.AbstractAppContextLoader.initAppContext(AbstractAppContextLoader.java:65)
		at com.haulmont.cuba.core.sys.AbstractWebAppContextLoader.contextInitialized(AbstractWebAppContextLoader.java:86)
		at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4685)
		at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5146)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
		at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
		at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
		at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1133)
		at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1867)
		at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
		at java.util.concurrent.FutureTask.run(FutureTask.java:266)
		at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
		at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
		at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1045)
		at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:429)
		at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576)
		at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
		at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
		at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
		at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
		at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936)
		at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
		at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
		at java.util.concurrent.FutureTask.run(FutureTask.java:266)
		at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
		at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
		at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
		at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
		at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.lang.reflect.Method.invoke(Method.java:498)
		at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:344)
		at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)
29-Sep-2020 05:21:01.157 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStop Exception sending context destroyed event to listener instance of class [com.haulmont.cuba.web.sys.WebAppContextLoader]
	java.lang.NullPointerException
		at com.haulmont.cuba.core.sys.AbstractWebAppContextLoader.contextDestroyed(AbstractWebAppContextLoader.java:137)
		at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4732)
		at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5396)
		at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:187)
		at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
		at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
		at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
		at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1133)
		at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1867)
		at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
		at java.util.concurrent.FutureTask.run(FutureTask.java:266)
		at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
		at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
		at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1045)
		at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:429)
		at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576)
		at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
		at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
		at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
		at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
		at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936)
		at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)
		at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)
		at java.util.concurrent.FutureTask.run(FutureTask.java:266)
		at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
		at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
		at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)
		at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
		at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.lang.reflect.Method.invoke(Method.java:498)
		at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:344)
		at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)

Consulted LocalHIstory to see what changed; but
Even after rolling back the addition of the jar, this error persists and I cannot run the application.
Tried cleaning tasks, but nothing helps.

Try to redeploy tomcat after the rollback, the library might have been stored in cache even after rollback.

I do think that something like that is going on, since
the deploy directories seem to be excluded from localhistory
and I’ve rolled back everything else.

However, how do I “redeploy” tomcat?
I have restarted the application of course,
and I went so far as to reboot the machine.
ANd I did the clean conf and clean tasks.

Is there more I can try?

I also should have mentioned that
the external jar I imported has cuba-global jar
embedded within it, which I am speculating
might trigger this issue. I ensured that
it had the correct version of cuba-global.jar though.

Partial Success!

I found the troublesome jar file in the directory deploy/tomcat/shared
and tried to delete it; the delete failed because it was “in use”,
so I shut down cuba studio, then was able to delete it.

Then I restarted studio, ran tasks assemble, clean , undeploy, and cleanup config dir,
and then the application was able to start!

Now if i can just figure out how to include an external jar that includes
cuba-global.

If cuba-global is a dependency for this library, just exclude it explicitly in your dependencies list in the build.gradle. If cuba-global classes are packed into the troublesome jar, then just try to repack it properly.