Aurelien Pupier created IVY-1572:
------------------------------------

             Summary: Look for Thread interruption on potentially long-running 
operation 
org.apache.ivy.plugins.resolver.AbstractPatternsBasedResolver.findResourceUsingPatterns(ModuleRevisionId,
 List, Artifact, ResourceMDParser, Date)
                 Key: IVY-1572
                 URL: https://issues.apache.org/jira/browse/IVY-1572
             Project: Ivy
          Issue Type: Improvement
    Affects Versions: 2.4.0
            Reporter: Aurelien Pupier


While searching for an unavailable artifact and a lot of repositories are 
defined (and especially when some of them are not very responsive), the search 
can take several minutes.
For this reason, it would be nice to be able to look for interruption during a 
search.

example of stack
{noformat}
Thread [Camel Version Checker - 
org.fusesource.ide.projecttemplates.util.CamelVersionChecker@576f3c03] 
(Suspended)      
        owns: BufferedInputStream  (id=195)     
        owns: CamelVersionChecker  (id=196)     
        SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) 
line: not available [native method]        
        SocketInputStream.socketRead(FileDescriptor, byte[], int, int, int) 
line: 116   
        SocketInputStream.read(byte[], int, int, int) line: 170 
        SocketInputStream.read(byte[], int, int) line: 141      
        BufferedInputStream.fill() line: 246    
        BufferedInputStream.read() line: 265    
        HttpParser.readRawLine(InputStream) line: 78    
        HttpParser.readLine(InputStream, String) line: 106      
        
MultiThreadedHttpConnectionManager$HttpConnectionWithReference(HttpConnection).readLine(String)
 line: 1116      
        
MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(String) line: 
1413    
        HeadMethod(HttpMethodBase).readStatusLine(HttpState, HttpConnection) 
line: 1973 
        HeadMethod(HttpMethodBase).readResponse(HttpState, HttpConnection) 
line: 1735   
        HeadMethod(HttpMethodBase).execute(HttpState, HttpConnection) line: 
1098        
        HttpMethodDirector.executeWithRetry(HttpMethod) line: 398       
        HttpMethodDirector.executeMethod(HttpMethod) line: 171  
        HttpClient.executeMethod(HostConfiguration, HttpMethod, HttpState) 
line: 397    
        HttpClient.executeMethod(HttpMethod) line: 323  
        TimeoutHttpClientHandler(HttpClientHandler).doHead(URL, int) line: 266  
        TimeoutHttpClientHandler(HttpClientHandler).getURLInfo(URL, int) line: 
152      
        TimeoutHttpClientHandler.getURLInfo(URL) line: 55       
        URLResource.init() line: 68     
        URLResource.exists() line: 84   
        
IBiblioResolver(RepositoryResolver).findResourceUsingPattern(ModuleRevisionId, 
String, Artifact, ResourceMDParser, Date) line: 97       
        
IBiblioResolver(AbstractPatternsBasedResolver).findResourceUsingPatterns(ModuleRevisionId,
 List, Artifact, ResourceMDParser, Date) line: 100    
        IBiblioResolver.findIvyFileRef(DependencyDescriptor, ResolveData) line: 
103     
        IBiblioResolver(BasicResolver).getDependency(DependencyDescriptor, 
ResolveData) line: 230       
        IBiblioResolver.getDependency(DependencyDescriptor, ResolveData) line: 
506      
        ChainResolver.getDependency(DependencyDescriptor, ResolveData) line: 
104        
        IvyNode.loadData(String, IvyNode, String, String, boolean, 
IvyNodeUsage) line: 170      
        VisitNode.loadData(String, boolean) line: 292   
        ResolveEngine.fetchDependencies(VisitNode, String, boolean) line: 718   
        ResolveEngine.doFetchDependencies(VisitNode, String) line: 803  
        ResolveEngine.fetchDependencies(VisitNode, String, boolean) line: 726   
        ResolveEngine.getDependencies(ModuleDescriptor, ResolveOptions, 
ResolveReport) line: 599        
        ResolveEngine.resolve(ModuleDescriptor, ResolveOptions) line: 236       
        Ivy.resolve(ModuleDescriptor, ResolveOptions) line: 523 
        Ivy$resolve$0.call(Object, Object, Object) line: not available  
        GrapeIvy.getDependencies(Map, IvyGrabRecord...) line: 410       
        NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not 
available [native method]  
        NativeMethodAccessorImpl.invoke(Object, Object[]) line: 62      
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43  
        Method.invoke(Object, Object...) line: 498      
        PogoMetaMethodSite$PogoCachedMethodSite.invoke(Object, Object[]) line: 
169      
        
PogoMetaMethodSite$PogoCachedMethodSite(PogoMetaMethodSite).callCurrent(GroovyObject,
 Object[]) line: 59        
        GrapeIvy.resolve(ClassLoader, Map, List, Map...) line: 571      
        GrapeIvy$resolve$1.callCurrent(GroovyObject, Object, Object, Object, 
Object) line: not available        
        GrapeIvy.resolve(ClassLoader, Map, Map...) line: 538    
        GrapeIvy$resolve$0.callCurrent(GroovyObject, Object, Object, Object) 
line: not available        
        GrapeIvy.grab(Map, Map...) line: 256    
        NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not 
available [native method]  
        NativeMethodAccessorImpl.invoke(Object, Object[]) line: 62      
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43  
        Method.invoke(Object, Object...) line: 498      
        PogoMetaMethodSite$PogoCachedMethodSite.invoke(Object, Object[]) line: 
169      
        
PogoMetaMethodSite$PogoCachedMethodSite(PogoMetaMethodSite).callCurrent(GroovyObject,
 Object[]) line: 59        
        
PogoMetaMethodSite$PogoCachedMethodSite(AbstractCallSite).callCurrent(GroovyObject,
 Object, Object) line: 174   
        GrapeIvy.grab(Map) line: 237    
        Grape.grab(Map<String,Object>) line: 152        
        MavenVersionManager.loadVersion(String) line: 109       
        CamelService.isCamelVersionExisting(String) line: 326   
        CamelManagerServiceProxy.isCamelVersionExisting(String) line: 171       
        CamelVersionChecker.isCamelVersionValid(String) line: 79        
        CamelVersionChecker.lambda$0() line: 60 
        1017131809.run() line: not available    
        Thread.run() line: 745  
{noformat}





--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to