try harder to get a number out of the pid file, trim whitespace, etc.
This commit is contained in:
		
							parent
							
								
									4c4a13570b
								
							
						
					
					
						commit
						4c7b451f69
					
				@ -36,15 +36,31 @@ public class PidFileQuery extends PidQuery {
 | 
			
		||||
        try {
 | 
			
		||||
            BufferedReader in =
 | 
			
		||||
                new BufferedReader(new FileReader(this.file));
 | 
			
		||||
            line = in.readLine();
 | 
			
		||||
            while ((line = in.readLine()) != null) {
 | 
			
		||||
                line = line.trim();
 | 
			
		||||
                if (line.length() != 0) {
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        } catch (FileNotFoundException e) {
 | 
			
		||||
            throw new SigarException(e.getMessage());
 | 
			
		||||
        } catch (IOException e) {
 | 
			
		||||
            throw new SigarException(e.getMessage());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        int len = line.length();
 | 
			
		||||
        StringBuffer number = new StringBuffer(len);
 | 
			
		||||
        char[] chars = line.toCharArray();
 | 
			
		||||
        for (int i=0; i<len; i++) {
 | 
			
		||||
            char c = chars[i];
 | 
			
		||||
            if (!Character.isDigit(c)) {
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
            number.append(c);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            this.pid = Long.parseLong(line);
 | 
			
		||||
            this.pid = Long.parseLong(number.toString());
 | 
			
		||||
        } catch (NumberFormatException e) {
 | 
			
		||||
            throw new SigarException("Not a number: " + line);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user