Q:

HTTP Settings Changes Corrupt Artifactory Configuration

I had an issue with a system that was accidentally upgraded from v6 to v7 through apt that I detailed here. Somehow, my configuration was getting corrupted. I was able to overcome that issue by renaming my configuration file (which was from a known good backup of my v6 system prior to accidental upgrade) from latest to import. Things seemed well and good after that.
However, in the process of verifying my Apache proxy settings, I've run into another issue. If I try to save my HTTP Settings in the admin, I get the following error in the logs...
2020-08-08 07:41:07,879 [http-nio-8081-exec-1] [ERROR] (o.a.c.CentralConfigServiceImpl:655) - Failed to reload configuration: org.artifactory.descriptor.repo.ReverseProxyDescriptor cannot be cast to org.artifactory.descriptor.repo.RepoDescriptor
java.lang.ClassCastException: org.artifactory.descriptor.repo.ReverseProxyDescriptor cannot be cast to org.artifactory.descriptor.repo.RepoDescriptor
    at org.artifactory.descriptor.backup.BackupDescriptor.getExcludedRepositories(BackupDescriptor.java:143)
    at org.artifactory.descriptor.backup.DiffFunctionsImpl.backupDescriptor(DiffFunctionsImpl.java:32)
    at org.artifactory.descriptor.backup.DiffFunctionsImpl.lambda$new$2(DiffFunctionsImpl.java:42)
    at org.artifactory.descriptor.backup.DiffFunctionsImpl.diffFor(DiffFunctionsImpl.java:16)
    at org.jfrog.common.config.diff.DiffUtils.diffInternalClass(DiffUtils.java:92)
    at org.jfrog.common.config.diff.DiffUtils.diffByType(DiffUtils.java:56)
    at org.jfrog.common.config.diff.DiffUtils.lambda$diffMap$0(DiffUtils.java:44)
    at java.util.HashMap.forEach(HashMap.java:1289)
    at org.jfrog.common.config.diff.DiffUtils.diffMap(DiffUtils.java:44)
    at org.jfrog.common.config.diff.DiffUtils.diffCollection(DiffUtils.java:73)
    at org.artifactory.descriptor.config.DiffFunctionsImpl.centralConfigDescriptorImpl(DiffFunctionsImpl.java:34)
    at org.artifactory.descriptor.config.DiffFunctionsImpl.lambda$new$7(DiffFunctionsImpl.java:245)
    at org.artifactory.descriptor.config.DiffFunctionsImpl.diffFor(DiffFunctionsImpl.java:16)
    at org.artifactory.config.CentralConfigServiceImpl.findDiff(CentralConfigServiceImpl.java:488)
    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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:205)
    at com.sun.proxy.$Proxy147.findDiff(Unknown Source)
    at org.artifactory.spring.ArtifactoryApplicationContext.reload(ArtifactoryApplicationContext.java:399)
    at org.artifactory.config.CentralConfigServiceImpl.callReload(CentralConfigServiceImpl.java:553)
    at org.artifactory.config.CentralConfigServiceImpl.reloadConfiguration(CentralConfigServiceImpl.java:537)
    at org.artifactory.config.CentralConfigServiceImpl.saveDescriptor(CentralConfigServiceImpl.java:321)
    at org.artifactory.config.CentralConfigServiceImpl.saveAndReloadContext(CentralConfigServiceImpl.java:634)
    at org.artifactory.config.CentralConfigServiceImpl.lambda$saveAndReloadContextWithRetry$0(CentralConfigServiceImpl.java:588)
    at org.jfrog.common.ExecutionUtils.handleFunctionExecution(ExecutionUtils.java:67)
    at org.jfrog.common.ExecutionUtils.lambda$generateExecutionRunnable$0(ExecutionUtils.java:56)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125)
    at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69)
    at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:322)
    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
    at com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:56)
    at com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:36)
    at org.jfrog.common.ExecutionUtils.retry(ExecutionUtils.java:48)
    at org.artifactory.config.CentralConfigServiceImpl.saveAndReloadContextWithRetry(CentralConfigServiceImpl.java:587)
    at org.artifactory.config.CentralConfigServiceImpl.saveEditedDescriptorAndReload(CentralConfigServiceImpl.java:529)
    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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:205)
    at com.sun.proxy.$Proxy147.saveEditedDescriptorAndReload(Unknown Source)
    at org.artifactory.rest.common.service.admin.reverseProxies.CreateReverseProxyService.addNewReverseProxy(CreateReverseProxyService.java:76)
    at org.artifactory.rest.common.service.admin.reverseProxies.CreateReverseProxyService.execute(CreateReverseProxyService.java:65)
    at org.artifactory.rest.common.service.ServiceExecutor.process(ServiceExecutor.java:38)
    at org.artifactory.rest.common.resource.BaseResource.runService(BaseResource.java:92)
    at org.artifactory.ui.rest.resource.admin.configuration.reverseProxy.ReverseProxyResource.createReverseProxy(ReverseProxyResource.java:54)
    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.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:76)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:148)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:191)
    at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:200)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:103)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:493)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:415)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:104)
    at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:277)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:272)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:268)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:316)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:298)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:268)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:289)
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:256)
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703)
    at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:416)
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.artifactory.webapp.servlet.RepoFilter.execute(RepoFilter.java:195)
    at org.artifactory.webapp.servlet.RepoFilter.doFilter(RepoFilter.java:97)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.artifactory.webapp.servlet.AccessFilter.useAuthenticationAndContinue(AccessFilter.java:346)
    at org.artifactory.webapp.servlet.AccessFilter.doFilterInternal(AccessFilter.java:156)
    at org.artifactory.webapp.servlet.AccessFilter.doFilter(AccessFilter.java:105)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.artifactory.webapp.servlet.RequestFilter.doFilter(RequestFilter.java:77)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.artifactory.webapp.servlet.ArtifactoryCsrfFilter.doFilter(ArtifactoryCsrfFilter.java:86)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:164)
    at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80)
    at org.artifactory.webapp.servlet.SessionFilter.doFilter(SessionFilter.java:62)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.artifactory.webapp.servlet.ArtifactoryFilter.doFilter(ArtifactoryFilter.java:124)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
    at org.apache.catalina.valves.rewrite.RewriteValve.invoke(RewriteValve.java:305)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
2020-08-08 07:41:07,880 [http-nio-8081-exec-1] [ERROR] (o.j.c.ExecutionUtils:111) - Last retry failed: code exception. Not trying again (Failed to reload configuration: org.artifactory.descriptor.repo.ReverseProxyDescriptor cannot be cast to org.artifactory.descriptor.repo.RepoDescriptor)
2020-08-08 07:41:07,882 [http-nio-8081-exec-1] [ERROR] (o.a.r.c.e.m.GlobalExceptionMapper:48) - Could not merge and save new descriptor [org.jfrog.common.ExecutionFailed: Last retry failed: code exception. Not trying again (Failed to reload configuration: org.artifactory.descriptor.repo.ReverseProxyDescriptor cannot be cast to org.artifactory.descriptor.repo.RepoDescriptor)]
java.lang.IllegalStateException: Could not merge and save new descriptor [org.jfrog.common.ExecutionFailed: Last retry failed: code exception. Not trying again (Failed to reload configuration: org.artifactory.descriptor.repo.ReverseProxyDescriptor cannot be cast to org.artifactory.descriptor.repo.RepoDescriptor)]
    at org.artifactory.config.CentralConfigServiceImpl.saveAndReloadContextWithRetry(CentralConfigServiceImpl.java:600)
    at org.artifactory.config.CentralConfigServiceImpl.saveEditedDescriptorAndReload(CentralConfigServiceImpl.java:529)
    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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:205)
    at com.sun.proxy.$Proxy147.saveEditedDescriptorAndReload(Unknown Source)
    at org.artifactory.rest.common.service.admin.reverseProxies.CreateReverseProxyService.addNewReverseProxy(CreateReverseProxyService.java:76)
    at org.artifactory.rest.common.service.admin.reverseProxies.CreateReverseProxyService.execute(CreateReverseProxyService.java:65)
    at org.artifactory.rest.common.service.ServiceExecutor.process(ServiceExecutor.java:38)
    at org.artifactory.rest.common.resource.BaseResource.runService(BaseResource.java:92)
    at org.artifactory.ui.rest.resource.admin.configuration.reverseProxy.ReverseProxyResource.createReverseProxy(ReverseProxyResource.java:54)
    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.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:76)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:148)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:191)
    at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:200)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:103)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:493)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:415)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:104)
    at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:277)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:272)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:268)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:316)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:298)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:268)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:289)
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:256)
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703)
    at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:416)
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.artifactory.webapp.servlet.RepoFilter.execute(RepoFilter.java:195)
    at org.artifactory.webapp.servlet.RepoFilter.doFilter(RepoFilter.java:97)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.artifactory.webapp.servlet.AccessFilter.useAuthenticationAndContinue(AccessFilter.java:346)
    at org.artifactory.webapp.servlet.AccessFilter.doFilterInternal(AccessFilter.java:156)
    at org.artifactory.webapp.servlet.AccessFilter.doFilter(AccessFilter.java:105)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.artifactory.webapp.servlet.RequestFilter.doFilter(RequestFilter.java:77)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.artifactory.webapp.servlet.ArtifactoryCsrfFilter.doFilter(ArtifactoryCsrfFilter.java:86)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:164)
    at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80)
    at org.artifactory.webapp.servlet.SessionFilter.doFilter(SessionFilter.java:62)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.artifactory.webapp.servlet.ArtifactoryFilter.doFilter(ArtifactoryFilter.java:124)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
    at org.apache.catalina.valves.rewrite.RewriteValve.invoke(RewriteValve.java:305)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.ExecutionException: org.jfrog.common.ExecutionFailed: Last retry failed: code exception. Not trying again (Failed to reload configuration: org.artifactory.descriptor.repo.ReverseProxyDescriptor cannot be cast to org.artifactory.descriptor.repo.RepoDescriptor)
    at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
    at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908)
    at org.artifactory.config.CentralConfigServiceImpl.saveAndReloadContextWithRetry(CentralConfigServiceImpl.java:595)
    ... 81 common frames omitted
Caused by: org.jfrog.common.ExecutionFailed: Last retry failed: code exception. Not trying again (Failed to reload configuration: org.artifactory.descriptor.repo.ReverseProxyDescriptor cannot be cast to org.artifactory.descriptor.repo.RepoDescriptor)
    at org.jfrog.common.ExecutionUtils.handleStopError(ExecutionUtils.java:112)
    at org.jfrog.common.ExecutionUtils.lambda$generateExecutionRunnable$0(ExecutionUtils.java:58)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125)
    at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69)
    at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:322)
    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
    at com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:56)
    at com.google.common.util.concurrent.AbstractListeningExecutorService.submit(AbstractListeningExecutorService.java:36)
    at org.jfrog.common.ExecutionUtils.retry(ExecutionUtils.java:48)
    at org.artifactory.config.CentralConfigServiceImpl.saveAndReloadContextWithRetry(CentralConfigServiceImpl.java:587)
    ... 81 common frames omitted
Caused by: java.lang.RuntimeException: Failed to reload configuration: org.artifactory.descriptor.repo.ReverseProxyDescriptor cannot be cast to org.artifactory.descriptor.repo.RepoDescriptor
    at org.artifactory.config.CentralConfigServiceImpl.saveAndReloadContext(CentralConfigServiceImpl.java:657)
    at org.artifactory.config.CentralConfigServiceImpl.lambda$saveAndReloadContextWithRetry$0(CentralConfigServiceImpl.java:588)
    at org.jfrog.common.ExecutionUtils.handleFunctionExecution(ExecutionUtils.java:67)
    at org.jfrog.common.ExecutionUtils.lambda$generateExecutionRunnable$0(ExecutionUtils.java:56)
    ... 91 common frames omitted
Caused by: java.lang.ClassCastException: org.artifactory.descriptor.repo.ReverseProxyDescriptor cannot be cast to org.artifactory.descriptor.repo.RepoDescriptor
    at org.artifactory.descriptor.backup.BackupDescriptor.getExcludedRepositories(BackupDescriptor.java:143)
    at org.artifactory.descriptor.backup.DiffFunctionsImpl.backupDescriptor(DiffFunctionsImpl.java:32)
    at org.artifactory.descriptor.backup.DiffFunctionsImpl.lambda$new$2(DiffFunctionsImpl.java:42)
    at org.artifactory.descriptor.backup.DiffFunctionsImpl.diffFor(DiffFunctionsImpl.java:16)
    at org.jfrog.common.config.diff.DiffUtils.diffInternalClass(DiffUtils.java:92)
    at org.jfrog.common.config.diff.DiffUtils.diffByType(DiffUtils.java:56)
    at org.jfrog.common.config.diff.DiffUtils.lambda$diffMap$0(DiffUtils.java:44)
    at java.util.HashMap.forEach(HashMap.java:1289)
    at org.jfrog.common.config.diff.DiffUtils.diffMap(DiffUtils.java:44)
    at org.jfrog.common.config.diff.DiffUtils.diffCollection(DiffUtils.java:73)
    at org.artifactory.descriptor.config.DiffFunctionsImpl.centralConfigDescriptorImpl(DiffFunctionsImpl.java:34)
    at org.artifactory.descriptor.config.DiffFunctionsImpl.lambda$new$7(DiffFunctionsImpl.java:245)
    at org.artifactory.descriptor.config.DiffFunctionsImpl.diffFor(DiffFunctionsImpl.java:16)
    at org.artifactory.config.CentralConfigServiceImpl.findDiff(CentralConfigServiceImpl.java:488)
    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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:205)
    at com.sun.proxy.$Proxy147.findDiff(Unknown Source)
    at org.artifactory.spring.ArtifactoryApplicationContext.reload(ArtifactoryApplicationContext.java:399)
    at org.artifactory.config.CentralConfigServiceImpl.callReload(CentralConfigServiceImpl.java:553)
    at org.artifactory.config.CentralConfigServiceImpl.reloadConfiguration(CentralConfigServiceImpl.java:537)
    at org.artifactory.config.CentralConfigServiceImpl.saveDescriptor(CentralConfigServiceImpl.java:321)
    at org.artifactory.config.CentralConfigServiceImpl.saveAndReloadContext(CentralConfigServiceImpl.java:634)
    ... 94 common frames omitted

Once I encounter that error, my configuration is corrupted in the same way I described in the linked issue above. I can get back to a working state by following the same method of renaming my configuration from latest to import, but I experience the same issue anytime I make changes to the HTTP Settings.
It appears that I can change any other settings in the admin without experiencing this issue. I have not tried every setting, but I have tried many. It seems isolated to the Reverse Proxy settings. For now, I'm just avoiding these settings - they don't really do anything beside give you a sample VirtualHost - but I'd like to understand why this may be corrupting my configuration.
Any insight would be appreciated. Thanks...

A:

Looking at the error snippet you have it looks like two modules are contradicting to each other (org.artifactory.descriptor.repo.ReverseProxyDescriptor VS org.artifactory.descriptor.repo.RepoDescriptor). Hence I believe that there seems to be a repository with name apache (or nginx) not letting another configuration to be saved to the XML (artifactory.config.latest.xml). Please try deleting the repository with that name 'apache'

