Improve performance of StringUtils#cleanPath
This commit is contained in:
		
							parent
							
								
									ac0363c94e
								
							
						
					
					
						commit
						1c6dda3ca4
					
				|  | @ -1,5 +1,5 @@ | |||
| /* | ||||
|  * Copyright 2002-2019 the original author or authors. | ||||
|  * Copyright 2002-2020 the original author or authors. | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  | @ -701,6 +701,10 @@ public abstract class StringUtils { | |||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		// All path elements stayed the same - shortcut | ||||
| 		if (pathArray.length == pathElements.size()) { | ||||
| 			return prefix + pathToUse; | ||||
| 		} | ||||
| 		// Remaining top paths need to be retained. | ||||
| 		for (int i = 0; i < tops; i++) { | ||||
| 			pathElements.add(0, TOP_PATH); | ||||
|  |  | |||
|  | @ -399,6 +399,7 @@ class StringUtilsTests { | |||
| 		assertThat(StringUtils.cleanPath("file:../")).isEqualTo("file:../"); | ||||
| 		assertThat(StringUtils.cleanPath("file:./../")).isEqualTo("file:../"); | ||||
| 		assertThat(StringUtils.cleanPath("file:.././")).isEqualTo("file:../"); | ||||
| 		assertThat(StringUtils.cleanPath("file:/mypath/spring.factories")).isEqualTo("file:/mypath/spring.factories"); | ||||
| 		assertThat(StringUtils.cleanPath("file:///c:/some/../path/the%20file.txt")).isEqualTo("file:///c:/path/the%20file.txt"); | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue