Uploaded image for project: 'Forge'
  1. Forge
  2. FORGE-426

Maven ArtifactResolver/RemoteRepository not using proxy information

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Blocker Blocker
    • None
    • 1.0.0.Beta5
    • UI - Shell
    • None

      When starting the Forge shell in my environment (it turns out that using a HTTP proxy is relavant), it takes minutes for the prompt to appear. Also, when setting up the plugins component, multiple error indications appear in the console after a few minutes. All of this basically results in Forge not even being usable behind a HTTP proxy - and might be related to https://issues.jboss.org/browse/FORGE-421.

      To confirm my suspicion that this could be related to using a HTTP proxy, I ran Forge with remote debugging. What I found is this:

      The MavenDependencyFacet, using the DefaultModelBuilder, initializes RemoteRepository objects without Proxy information.These RemoteRepositories are eventually used in WagonRepositoryConnector to connect to get artifacts (again - without applying a Proxy information). MAVEN_HOME btw. points to a valid Maven installation (with appropriate repository mirrors configured), and in the user home directory a valid settings.xml has even configured HTTP proxy information - but both do not seem to matter.

      One active Thread then seems to spend a lot of time in the following stack location:

      Thread [Thread-2] (Suspended)
      Unsafe.park(boolean, long) line: not available [native method]
      LockSupport.park() line: 283
      RunnableErrorForwarder.awaitTerminationOfAllRunnables() line: 119
      RunnableErrorForwarder.await() line: 92
      WagonRepositoryConnector.get(Collection<ArtifactDownload>, Collection<MetadataDownload>) line: 441
      DefaultArtifactResolver.resolve(RepositorySystemSession, Collection<ArtifactRequest>) line: 460
      DefaultArtifactResolver.resolveArtifacts(RepositorySystemSession, Collection<ArtifactRequest>) line: 220
      DefaultArtifactResolver.resolveArtifact(RepositorySystemSession, ArtifactRequest) line: 197
      DefaultArtifactDescriptorReader.loadPom(RepositorySystemSession, ArtifactDescriptorRequest, ArtifactDescriptorResult) line: 267
      DefaultArtifactDescriptorReader.readArtifactDescriptor(RepositorySystemSession, ArtifactDescriptorRequest) line: 172
      DefaultDependencyCollector.process(RepositorySystemSession, RequestTrace, CollectResult, LinkedList<GraphEdge>, List<Dependency>, List<RemoteRepository>, DependencySelector, DependencyManager, DependencyTraverser, DataPool) line: 419
      DefaultDependencyCollector.collectDependencies(RepositorySystemSession, CollectRequest) line: 243
      DefaultRepositorySystem.collectDependencies(RepositorySystemSession, CollectRequest) line: 345
      DefaultProjectDependenciesResolver.resolve(DependencyResolutionRequest) line: 131
      DefaultProjectBuilder.build(File, ModelSource, DefaultProjectBuilder$InternalConfig) line: 166
      DefaultProjectBuilder.build(File, ProjectBuildingRequest) line: 102
      MavenCoreFacetImpl.getFullProjectBuildingResult() line: 140
      MavenDependencyFacet.getEffectiveDependencies() line: 202
      MavenDependencyFacet.getEffectiveDependency(Dependency) line: 188
      MavenDependencyFacet.hasEffectiveDependency(Dependency) line: 182
      EJBFacetImpl(BaseJavaEEFacet).isInstalled() line: 77
      ProjectImpl(BaseProject).registerFacet(Facet) line: 167
      ProjectFactory.registerSingleFacet(Project, Facet) line: 218
      ProjectFactory.registerFacets(Project) line: 188
      ProjectFactory.findProjectRecursively(DirectoryResource) line: 129
      ProjectInitializer.doInit(InitProject) line: 87
      NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
      NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
      DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
      Method.invoke(Object, Object...) line: 597
      SecureReflections$13.work() line: 305
      SecureReflections$13(SecureReflectionAccess<T>).run() line: 54
      SecureReflections$13(SecureReflectionAccess<T>).runAsInvocation() line: 163
      SecureReflections.invoke(Object, Method, Object...) line: 299
      WeldMethodImpl<T,X>.invokeOnInstance(Object, Object...) line: 188
      MethodInjectionPoint<T,X>(ForwardingWeldMethod<T,X>).invokeOnInstance(Object, Object...) line: 59
      MethodInjectionPoint<T,X>.invokeOnInstanceWithSpecialValue(Object, Class<Annotation>, Object, BeanManagerImpl, CreationalContext<?>, Class<RuntimeException>) line: 198
      ObserverMethodImpl<T,X>.sendEvent(T, Object, CreationalContext<?>) line: 282
      ObserverMethodImpl<T,X>.sendEvent(T) line: 265
      ObserverMethodImpl<T,X>.notify(T) line: 234
      BeanManagerImpl.notifyObservers(T, Set<ObserverMethod<? super T>>) line: 635
      BeanManagerImpl.fireEvent(Type, Object, Set<Annotation>) line: 628
      EventImpl<T>.fire(T) line: 75
      CurrentProject.setCurrentResource(Resource<?>) line: 91
      ShellImpl.init(Startup, PluginCommandCompleter) line: 380
      NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
      NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
      DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
      Method.invoke(Object, Object...) line: 597
      ContextBeanInstance<T>(AbstractBeanInstance).invoke(Object, Method, Object...) line: 48
      ProxyMethodHandler.invoke(Object, Method, Method, Object[]) line: 125
      ShellImpl$Proxy$_$$_WeldClientProxy.init(Startup, PluginCommandCompleter) line: not available
      NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
      NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
      DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
      Method.invoke(Object, Object...) line: 597
      SecureReflections$13.work() line: 305
      SecureReflections$13(SecureReflectionAccess<T>).run() line: 54
      SecureReflections$13(SecureReflectionAccess<T>).runAsInvocation() line: 163
      SecureReflections.invoke(Object, Method, Object...) line: 299
      WeldMethodImpl<T,X>.invokeOnInstance(Object, Object...) line: 188
      MethodInjectionPoint<T,X>(ForwardingWeldMethod<T,X>).invokeOnInstance(Object, Object...) line: 59
      MethodInjectionPoint<T,X>.invokeOnInstanceWithSpecialValue(Object, Class<Annotation>, Object, BeanManagerImpl, CreationalContext<?>, Class<RuntimeException>) line: 198
      ObserverMethodImpl<T,X>.sendEvent(T, Object, CreationalContext<?>) line: 282
      ObserverMethodImpl<T,X>.sendEvent(T) line: 265
      ObserverMethodImpl<T,X>.notify(T) line: 234
      BeanManagerImpl.notifyObservers(T, Set<ObserverMethod<? super T>>) line: 635
      BeanManagerImpl.fireEvent(Type, Object, Annotation...) line: 622
      BeanManagerImpl.fireEvent(Object, Annotation...) line: 616
      Bootstrap$1.run() line: 107
      Thread.run() line: 662

      ... eventually resulting in the following exception:

      org.sonatype.aether.transfer.ArtifactTransferException: Could not transfer artifact javax.inject:javax.inject:pom:1 from/to JBOSS_NEXUS (http://repository.jboss.org/nexus/content/groups/public): Error transferring file: Connection timed out: connect from http://repository.jboss.org/nexus/content/groups/public/javax/inject/javax.inject/1/javax.inject-1.pom
      .

              Unassigned Unassigned
              simon.g Simon Gunzenreiner (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: